diff options
| author | Fuwn <[email protected]> | 2024-10-09 00:41:20 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-10-09 00:41:43 -0700 |
| commit | 998b63a35256ac985a5a2714dd1ca451af4dfd8a (patch) | |
| tree | 50796121a9d5ab0330fdc5d7e098bda2860d9726 /src/lib/Settings/SettingCheckboxToggle.svelte | |
| parent | feat(graphql): add badgeCount field (diff) | |
| download | due.moe-998b63a35256ac985a5a2714dd1ca451af4dfd8a.tar.xz due.moe-998b63a35256ac985a5a2714dd1ca451af4dfd8a.zip | |
chore(prettier): use spaces instead of tabs
Diffstat (limited to 'src/lib/Settings/SettingCheckboxToggle.svelte')
| -rw-r--r-- | src/lib/Settings/SettingCheckboxToggle.svelte | 132 |
1 files changed, 66 insertions, 66 deletions
diff --git a/src/lib/Settings/SettingCheckboxToggle.svelte b/src/lib/Settings/SettingCheckboxToggle.svelte index 43e9accf..bb4e8893 100644 --- a/src/lib/Settings/SettingCheckboxToggle.svelte +++ b/src/lib/Settings/SettingCheckboxToggle.svelte @@ -1,82 +1,82 @@ <script lang="ts"> - import settings, { type Settings } from '$stores/settings'; - - type BooleanSettingsKeys<T> = { - [K in keyof T]: T[K] extends boolean ? K : never; - }; - type SettingsBooleanKeys = BooleanSettingsKeys<Settings>; - - export let sectionBreak = false; - export let disabled = false; - export let text: string | (() => string); - export let setting: SettingsBooleanKeys[keyof SettingsBooleanKeys]; - export let lineBreak = true; - export let onChange: () => void = () => { - return; - }; - export let invert = false; - - $: checked = setting ? (invert ? !$settings[setting] : $settings[setting]) : false; - $: field = text instanceof Function ? text() : text; - - // const toggler = (key: keyof Settings) => [ - // () => - // settings.update((s) => { - // (s[key] as boolean) = true; - - // $settings = s; - - // return s; - // }), - // () => - // settings.update((s) => { - // (s[key] as boolean) = false; - - // $settings = s; - - // return s; - // }) - // ]; - - const check = (e: Event & { currentTarget: EventTarget & HTMLInputElement }): void => { - const checked = (e.target as HTMLInputElement).checked; - - if (setting) { - settings.setKey(setting, invert ? !checked : checked); - onChange(); - } - }; - - const flip = () => { - if (setting) $settings[setting] = !$settings[setting]; - }; + import settings, { type Settings } from '$stores/settings'; + + type BooleanSettingsKeys<T> = { + [K in keyof T]: T[K] extends boolean ? K : never; + }; + type SettingsBooleanKeys = BooleanSettingsKeys<Settings>; + + export let sectionBreak = false; + export let disabled = false; + export let text: string | (() => string); + export let setting: SettingsBooleanKeys[keyof SettingsBooleanKeys]; + export let lineBreak = true; + export let onChange: () => void = () => { + return; + }; + export let invert = false; + + $: checked = setting ? (invert ? !$settings[setting] : $settings[setting]) : false; + $: field = text instanceof Function ? text() : text; + + // const toggler = (key: keyof Settings) => [ + // () => + // settings.update((s) => { + // (s[key] as boolean) = true; + + // $settings = s; + + // return s; + // }), + // () => + // settings.update((s) => { + // (s[key] as boolean) = false; + + // $settings = s; + + // return s; + // }) + // ]; + + const check = (e: Event & { currentTarget: EventTarget & HTMLInputElement }): void => { + const checked = (e.target as HTMLInputElement).checked; + + if (setting) { + settings.setKey(setting, invert ? !checked : checked); + onChange(); + } + }; + + const flip = () => { + if (setting) $settings[setting] = !$settings[setting]; + }; </script> <input type="checkbox" on:change={check} bind:checked /> <span - on:click={flip} - on:keydown={() => { - return; - }} - role="button" - tabindex="0" + on:click={flip} + on:keydown={() => { + return; + }} + role="button" + tabindex="0" > - {#if disabled} - <strike> - {field} - </strike> - {:else} - {field} - {/if} + {#if disabled} + <strike> + {field} + </strike> + {:else} + {field} + {/if} </span> <slot /> {#if lineBreak} - <br /> + <br /> {/if} {#if sectionBreak} - <p /> + <p /> {/if} |