Spaces:
Sleeping
Sleeping
File size: 900 Bytes
43a06dc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<script
lang="ts"
generics="
Context extends Exclude<keyof CobaltSettings, 'schemaVersion'>,
Id extends keyof CobaltSettings[Context],
Value extends CobaltSettings[Context][Id]
"
>
import settings, { updateSetting } from "$lib/state/settings";
import type { CobaltSettings } from "$lib/types/settings";
export let settingContext: Context;
export let settingId: Id;
export let settingValue: Value;
$: setting = $settings[settingContext][settingId];
$: isActive = setting === settingValue;
</script>
<button
id="setting-button-{settingContext}-{String(settingId)}-{settingValue}"
class="button"
class:active={isActive}
aria-pressed={isActive}
on:click={() =>
updateSetting({
[settingContext]: {
[settingId]: settingValue,
},
})}
>
<slot></slot>
</button>
|