Files
cobalt/web/src/components/buttons/SettingsCheckbox.svelte
wukko b9e7661b6d web: basic settings page needed for testing
typescript cries about types but i don't care at this point
2024-06-20 18:05:17 +06:00

32 lines
797 B
Svelte

<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>