diff options
Diffstat (limited to 'src/lib/Settings')
| -rw-r--r-- | src/lib/Settings/Categories/Attributions.svelte | 2 | ||||
| -rw-r--r-- | src/lib/Settings/Categories/Cache.svelte | 6 | ||||
| -rw-r--r-- | src/lib/Settings/Categories/Calculation.svelte | 2 | ||||
| -rw-r--r-- | src/lib/Settings/Categories/Debug.svelte | 10 | ||||
| -rw-r--r-- | src/lib/Settings/Categories/Display.svelte | 24 | ||||
| -rw-r--r-- | src/lib/Settings/Categories/RSSFeeds.svelte | 10 | ||||
| -rw-r--r-- | src/lib/Settings/Categories/SettingSync.svelte | 12 | ||||
| -rw-r--r-- | src/lib/Settings/Category.svelte | 23 | ||||
| -rw-r--r-- | src/lib/Settings/SettingCheckboxToggle.svelte | 56 | ||||
| -rw-r--r-- | src/lib/Settings/SettingHint.svelte | 9 | ||||
| -rw-r--r-- | src/lib/Settings/SettingToggle.svelte | 30 |
11 files changed, 118 insertions, 66 deletions
diff --git a/src/lib/Settings/Categories/Attributions.svelte b/src/lib/Settings/Categories/Attributions.svelte index 250b08c3..28f69a74 100644 --- a/src/lib/Settings/Categories/Attributions.svelte +++ b/src/lib/Settings/Categories/Attributions.svelte @@ -34,7 +34,7 @@ </li> --> </ul> -<p /> +<p></p> <details open class="card-clear"> <summary>Outbound Link Disclaimer</summary> diff --git a/src/lib/Settings/Categories/Cache.svelte b/src/lib/Settings/Categories/Cache.svelte index e65b8081..df0165d5 100644 --- a/src/lib/Settings/Categories/Cache.svelte +++ b/src/lib/Settings/Categories/Cache.svelte @@ -11,7 +11,7 @@ <a href="https://due.moe">due.moe</a>'s site data will clear these caches too. </small> -<p /> +<p></p> Re-cache AniList media lists every <input @@ -22,7 +22,7 @@ Re-cache AniList media lists every max="60" placeholder="30" size="1" - on:change={() => + onchange={() => ($settings.cacheMinutes < 1 && ($settings.cacheMinutes = 1)) || ($settings.cacheMinutes > 60 && ($settings.cacheMinutes = 60))} /> @@ -39,7 +39,7 @@ Re-cache manga data every max="1440" placeholder="120" size="2" - on:change={() => + onchange={() => ($settings.cacheMangaMinutes < 5 && ($settings.cacheMangaMinutes = 5)) || ($settings.cacheMangaMinutes > 1440 && ($settings.cacheMangaMinutes = 1440))} /> diff --git a/src/lib/Settings/Categories/Calculation.svelte b/src/lib/Settings/Categories/Calculation.svelte index 4a202fff..1f6eeaa1 100644 --- a/src/lib/Settings/Categories/Calculation.svelte +++ b/src/lib/Settings/Categories/Calculation.svelte @@ -75,7 +75,7 @@ {#if !$settings.calculateGuessingDisabled} <br /> - <select bind:value={$settings.calculateGuessMethod} on:change={pruneAllManga}> + <select bind:value={$settings.calculateGuessMethod} onchange={pruneAllManga}> <option value="mode">Mode (fast, moderate to low accuracy)</option> <option value="median">Median (moderate speed, high accuracy, recommended)</option> <option value="iqr_median">Interquartile Range with Median (slower, high accuracy)</option> diff --git a/src/lib/Settings/Categories/Debug.svelte b/src/lib/Settings/Categories/Debug.svelte index 79e18c03..00c5852e 100644 --- a/src/lib/Settings/Categories/Debug.svelte +++ b/src/lib/Settings/Categories/Debug.svelte @@ -12,7 +12,7 @@ <SettingCheckboxToggle setting="debugDummyLists" text={$locale().debug.dummyLists} /> <button - on:click={() => { + onclick={() => { localStorage.removeItem('anime'); localStorage.removeItem('manga'); addNotification( @@ -23,10 +23,10 @@ }}>{$locale().debug.clearCaches}</button > -<p /> +<p></p> <button - on:click={() => { + onclick={() => { settings.reset(); addNotification( options({ @@ -41,10 +41,10 @@ {$locale().debug.resetAllSettings.hint} </SettingHint> -<p /> +<p></p> <button - on:click={() => { + onclick={() => { localStorage.clear(); addNotification( options({ diff --git a/src/lib/Settings/Categories/Display.svelte b/src/lib/Settings/Categories/Display.svelte index 3b572b7b..a83157fb 100644 --- a/src/lib/Settings/Categories/Display.svelte +++ b/src/lib/Settings/Categories/Display.svelte @@ -85,7 +85,7 @@ <SettingHint lineBreak> Media where either the next episode's release date is unknown or the chapter count could not be resolved is considered unresolved. - <p /> + <p></p> <span> Additionally, you hard exclude specific media from <a href={root('/')}>due.moe</a> on AniList. To exclude any media from being included in <b>any</b> <a href={root('/')}>due.moe</a> @@ -107,7 +107,7 @@ </span> </SettingHint> -<p /> +<p></p> <b>{$locale().settings.display.categories.hidePanels}</b><br /> <SettingCheckboxToggle @@ -160,7 +160,7 @@ }} /> -<p /> +<p></p> <b>{$locale().settings.display.categories.collapsePanelsByDefault}</b><br /> <SettingCheckboxToggle @@ -175,7 +175,7 @@ /> <SettingCheckboxToggle setting="displayMangaCollapsed" text={$locale().settings.media.manga} /> -<p /> +<p></p> <b>{$locale().settings.display.categories.motionAndAccessibility.title}</b><br /> <SettingCheckboxToggle @@ -215,7 +215,7 @@ </button> {/if} -<p /> +<p></p> <SettingCheckboxToggle setting="displayAniListNotifications" @@ -242,7 +242,7 @@ </SettingHint> </SettingCheckboxToggle> -<p /> +<p></p> <b>{$locale().settings.display.categories.dateAndTime.title}</b><br /> <SettingCheckboxToggle @@ -262,7 +262,7 @@ text={$locale().settings.display.categories.dateAndTime.fields.abbreviateCountdown} /> -<p /> +<p></p> <SettingCheckboxToggle setting="displayDisableLastActivityWarning" @@ -277,7 +277,7 @@ </SettingHint> </SettingCheckboxToggle> -<p /> +<p></p> <b>Show lists with media covers instead of text</b><br /> <SettingCheckboxToggle setting="displayCoverModeAnime" text="Anime" lineBreak={false} /> @@ -297,7 +297,7 @@ min="50" placeholder="116.609" size="3" - on:change={() => { + onchange={() => { if ($settings.displayCoverWidth === null) { $settings.displayCoverWidth = 116.609; @@ -313,7 +313,7 @@ <br /> {/if} -<p /> +<p></p> <b>{$locale().settings.display.categories.media.title}</b><br /> <SettingCheckboxToggle @@ -357,7 +357,7 @@ <br /> {/if} -<p /> +<p></p> <select bind:value={$settings.displayOutboundLinksTo}> <option value="anilist">AniList</option> @@ -390,7 +390,7 @@ <br /> -<select bind:value={$settings.displayAoButa} on:change={onHelperChange}> +<select bind:value={$settings.displayAoButa} onchange={onHelperChange}> <option value="mai">{$locale().settings.display.categories.helper.options.mai}</option> <option value="mai_2">{$locale().settings.display.categories.helper.options.mai} #2</option> <option value="nodoka">{$locale().settings.display.categories.helper.options.nodoka}</option> diff --git a/src/lib/Settings/Categories/RSSFeeds.svelte b/src/lib/Settings/Categories/RSSFeeds.svelte index a225b137..9ced917b 100644 --- a/src/lib/Settings/Categories/RSSFeeds.svelte +++ b/src/lib/Settings/Categories/RSSFeeds.svelte @@ -6,13 +6,17 @@ import SettingHint from '../SettingHint.svelte'; import tooltip from '$lib/Tooltip/tooltip'; - export let user: any; + interface Props { + user: any; + } + + let { user }: Props = $props(); const { addNotification } = getNotificationsContext(); </script> <button - on:click={() => { + onclick={() => { addNotification( options({ heading: 'RSS feed URL copied to clipboard' @@ -31,7 +35,7 @@ Your AniList notifications RSS feed URL <SettingHint lineBreak> This <a href={'#'} - on:click={(e) => e.preventDefault()} + onclick={(e) => e.preventDefault()} target="_blank" title={$locale().settings.rssFeeds.tooltips.rss} use:tooltip diff --git a/src/lib/Settings/Categories/SettingSync.svelte b/src/lib/Settings/Categories/SettingSync.svelte index 39e62954..24a35c79 100644 --- a/src/lib/Settings/Categories/SettingSync.svelte +++ b/src/lib/Settings/Categories/SettingSync.svelte @@ -13,7 +13,7 @@ {#if !$settings.settingsSync} <button - on:click={() => { + onclick={() => { $settings.settingsSync = true; fetch(root(`/api/configuration?id=${$identity.id}`)).then((response) => { @@ -50,9 +50,9 @@ <SettingHint lineBreak> {$locale().settings.settingsSync.buttons.pull.hint} </SettingHint> - <p /> + <p></p> <button - on:click={() => { + onclick={() => { $settings.settingsSync = true; fetch(root(`/api/configuration`), { @@ -76,7 +76,7 @@ </SettingHint> {:else} <button - on:click={() => { + onclick={() => { $settings.settingsSync = false; addNotification( @@ -89,7 +89,7 @@ {$locale().settings.settingsSync.buttons.disable} </button> <button - on:click={() => { + onclick={() => { fetch(root(`/api/configuration?id=${$identity.id}`), { method: 'DELETE' }).then((response) => { @@ -108,7 +108,7 @@ {$locale().settings.settingsSync.buttons.delete} </button> - <p /> + <p></p> <b>Last Push</b>: {$locale().dateFormatter($settingsSyncTimes.lastPush)} <br /> diff --git a/src/lib/Settings/Category.svelte b/src/lib/Settings/Category.svelte index a5b3e211..aef86d77 100644 --- a/src/lib/Settings/Category.svelte +++ b/src/lib/Settings/Category.svelte @@ -1,8 +1,19 @@ <script lang="ts"> - export let title = ''; - export let id = title.toLowerCase(); - export let open = true; - export let newLine = true; + interface Props { + title?: string; + id?: any; + open?: boolean; + newLine?: boolean; + children?: import('svelte').Snippet; + } + + let { + title = '', + id = title.toLowerCase(), + open = true, + newLine = true, + children + }: Props = $props(); </script> <details {open} {id}> @@ -10,9 +21,9 @@ <summary>{title}</summary> {/if} - <slot /> + {@render children?.()} </details> {#if newLine} - <p /> + <p></p> {/if} diff --git a/src/lib/Settings/SettingCheckboxToggle.svelte b/src/lib/Settings/SettingCheckboxToggle.svelte index 6a16edec..85dbfcdc 100644 --- a/src/lib/Settings/SettingCheckboxToggle.svelte +++ b/src/lib/Settings/SettingCheckboxToggle.svelte @@ -1,4 +1,6 @@ <script lang="ts"> + import { run } from 'svelte/legacy'; + import settings, { type Settings } from '$stores/settings'; type BooleanSettingsKeys<T> = { @@ -6,19 +8,37 @@ }; 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; - export let id: string | null = null; - - $: checked = setting ? (invert ? !$settings[setting] : $settings[setting]) : false; - $: field = text instanceof Function ? text() : text; + interface Props { + sectionBreak?: boolean; + disabled?: boolean; + text: string | (() => string); + setting: SettingsBooleanKeys[keyof SettingsBooleanKeys]; + lineBreak?: boolean; + onChange?: () => void; + invert?: boolean; + id?: string | null; + children?: import('svelte').Snippet; + } + + let { + sectionBreak = false, + disabled = false, + text, + setting, + lineBreak = true, + onChange = () => { + return; + }, + invert = false, + id = null, + children + }: Props = $props(); + + let checked = $state(false); + run(() => { + checked = setting ? (invert ? !$settings[setting] : $settings[setting]) : false; + }); + let field = $derived(text instanceof Function ? text() : text); // const toggler = (key: keyof Settings) => [ // () => @@ -53,11 +73,11 @@ }; </script> -<input type="checkbox" on:change={check} bind:checked {id} /> +<input type="checkbox" onchange={check} bind:checked {id} /> <span - on:click={flip} - on:keydown={() => { + onclick={flip} + onkeydown={() => { return; }} role="button" @@ -72,12 +92,12 @@ {/if} </span> -<slot /> +{@render children?.()} {#if lineBreak} <br /> {/if} {#if sectionBreak} - <p /> + <p></p> {/if} diff --git a/src/lib/Settings/SettingHint.svelte b/src/lib/Settings/SettingHint.svelte index f82f061c..c5a9072f 100644 --- a/src/lib/Settings/SettingHint.svelte +++ b/src/lib/Settings/SettingHint.svelte @@ -1,5 +1,10 @@ <script lang="ts"> - export let lineBreak = false; + interface Props { + lineBreak?: boolean; + children?: import('svelte').Snippet; + } + + let { lineBreak = false, children }: Props = $props(); </script> {#if lineBreak} @@ -7,5 +12,5 @@ {/if} <small style="opacity: 80%;"> - <slot /> + {@render children?.()} </small> diff --git a/src/lib/Settings/SettingToggle.svelte b/src/lib/Settings/SettingToggle.svelte index 0d177b50..0d3b893a 100644 --- a/src/lib/Settings/SettingToggle.svelte +++ b/src/lib/Settings/SettingToggle.svelte @@ -1,16 +1,28 @@ <script lang="ts"> import settings, { type Settings } from '$stores/settings'; - export let setting: keyof Settings; - export let on = ''; - export let off = ''; - export let sectionBreak = false; - export let disabled = false; + interface Props { + setting: keyof Settings; + on?: string; + off?: string; + sectionBreak?: boolean; + disabled?: boolean; + children?: import('svelte').Snippet; + } + + let { + setting, + on = '', + off = '', + sectionBreak = false, + disabled = false, + children + }: Props = $props(); </script> <a href={'#'} - on:click={() => + onclick={() => disabled ? {} : $settings[setting] @@ -20,16 +32,16 @@ {#if disabled} <strike> {$settings[setting] ? on : off} - <slot /> + {@render children?.()} </strike> {:else} {$settings[setting] ? on : off} - <slot /> + {@render children?.()} {/if} </a> <br /> {#if sectionBreak} - <p /> + <p></p> {/if} |