web: basic settings page needed for testing
typescript cries about types but i don't care at this point
This commit is contained in:
31
web/src/components/buttons/SettingsCheckbox.svelte
Normal file
31
web/src/components/buttons/SettingsCheckbox.svelte
Normal file
@@ -0,0 +1,31 @@
|
||||
<script
|
||||
lang="ts"
|
||||
generics="
|
||||
Context extends Exclude<keyof CobaltSettings, 'schemaVersion'>,
|
||||
Id extends keyof CobaltSettings[Context]
|
||||
"
|
||||
>
|
||||
import settings, { updateSetting } from "$lib/settings";
|
||||
import type { CobaltSettings } from "$lib/types/settings";
|
||||
|
||||
export let settingContext: Context;
|
||||
export let settingId: Id;
|
||||
|
||||
$: setting = $settings[settingContext][settingId];
|
||||
$: isChecked = !!setting;
|
||||
</script>
|
||||
|
||||
<div>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="setting-button-{settingContext}-{String(settingId)}"
|
||||
bind:checked={isChecked}
|
||||
on:change={() =>
|
||||
updateSetting({
|
||||
[settingContext]: {
|
||||
[settingId]: isChecked,
|
||||
},
|
||||
})}
|
||||
/>
|
||||
<slot></slot>
|
||||
</div>
|
||||
@@ -12,7 +12,7 @@
|
||||
import IconMute from "$lib/icons/Mute.svelte";
|
||||
|
||||
import IconClipboard from "$lib/icons/Clipboard.svelte";
|
||||
import SettingsContextButton from "../buttons/SettingsContextButton.svelte";
|
||||
import SettingsButton from "../buttons/SettingsButton.svelte";
|
||||
|
||||
let link: string = "";
|
||||
let isFocused = false;
|
||||
@@ -68,15 +68,15 @@
|
||||
|
||||
<div id="action-container">
|
||||
<Switcher>
|
||||
<SettingsContextButton settingContext="save" settingId="downloadMode" settingKey="auto">
|
||||
<SettingsButton settingContext="save" settingId="downloadMode" settingKey="auto">
|
||||
<IconSparkles /> auto
|
||||
</SettingsContextButton>
|
||||
<SettingsContextButton settingContext="save" settingId="downloadMode" settingKey="audio">
|
||||
</SettingsButton>
|
||||
<SettingsButton settingContext="save" settingId="downloadMode" settingKey="audio">
|
||||
<IconMusic /> audio
|
||||
</SettingsContextButton>
|
||||
<SettingsContextButton settingContext="save" settingId="downloadMode" settingKey="mute">
|
||||
</SettingsButton>
|
||||
<SettingsButton settingContext="save" settingId="downloadMode" settingKey="mute">
|
||||
<IconMute /> mute
|
||||
</SettingsContextButton>
|
||||
</SettingsButton>
|
||||
</Switcher>
|
||||
<ActionButton id="paste" click={pasteClipboard}>
|
||||
<IconClipboard />
|
||||
|
||||
Reference in New Issue
Block a user