diff options
| author | Fuwn <[email protected]> | 2024-05-27 18:47:24 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-05-27 18:47:24 -0700 |
| commit | 84588c9adfeee6ec829532613b78f6133a7bba7b (patch) | |
| tree | 431d13af0b3f5da21138daf0c2d4a055a7404273 /src/lib/Settings | |
| parent | refactor(badges): move category toggle to script (diff) | |
| download | due.moe-84588c9adfeee6ec829532613b78f6133a7bba7b.tar.xz due.moe-84588c9adfeee6ec829532613b78f6133a7bba7b.zip | |
fix(SettingCheckboxToggle): ensure types
Diffstat (limited to 'src/lib/Settings')
| -rw-r--r-- | src/lib/Settings/SettingCheckboxToggle.svelte | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/lib/Settings/SettingCheckboxToggle.svelte b/src/lib/Settings/SettingCheckboxToggle.svelte index e17eddbc..43e9accf 100644 --- a/src/lib/Settings/SettingCheckboxToggle.svelte +++ b/src/lib/Settings/SettingCheckboxToggle.svelte @@ -16,7 +16,7 @@ }; export let invert = false; - $: checked = invert ? !$settings[setting] : $settings[setting]; + $: checked = setting ? (invert ? !$settings[setting] : $settings[setting]) : false; $: field = text instanceof Function ? text() : text; // const toggler = (key: keyof Settings) => [ @@ -41,15 +41,21 @@ const check = (e: Event & { currentTarget: EventTarget & HTMLInputElement }): void => { const checked = (e.target as HTMLInputElement).checked; - settings.setKey(setting, invert ? !checked : checked); - onChange(); + 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={() => ($settings[setting] = !$settings[setting])} + on:click={flip} on:keydown={() => { return; }} |