From 6908dbff40351f6cbc712247f0009baf7fc68b8a Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sat, 9 Sep 2023 22:07:49 -0700 Subject: refactor(settings): component toggles --- src/lib/SettingToggle.svelte | 19 +++++ src/routes/settings/+page.svelte | 161 ++++++++++++--------------------------- src/stores/settings.ts | 2 +- 3 files changed, 68 insertions(+), 114 deletions(-) create mode 100644 src/lib/SettingToggle.svelte (limited to 'src') diff --git a/src/lib/SettingToggle.svelte b/src/lib/SettingToggle.svelte new file mode 100644 index 00000000..fffb854f --- /dev/null +++ b/src/lib/SettingToggle.svelte @@ -0,0 +1,19 @@ + + + + $settings[setting] ? settings.setKey(setting, false) : settings.setKey(setting, true)} + >{$settings[setting] ? on : off} + +{#if lineBreak} +
+{/if} diff --git a/src/routes/settings/+page.svelte b/src/routes/settings/+page.svelte index 572db92f..b93414e6 100644 --- a/src/routes/settings/+page.svelte +++ b/src/routes/settings/+page.svelte @@ -5,6 +5,7 @@ import manga from '../../stores/manga'; import anime from '../../stores/anime'; import settings from '../../stores/settings'; + import SettingToggle from '$lib/SettingToggle.svelte'; export let data; @@ -34,125 +35,59 @@ {:else}

Display

- - $settings.forceLightTheme - ? settings.setKey('forceLightTheme', false) - : settings.setKey('forceLightTheme', true)} - >{$settings.forceLightTheme ? 'Use preferred theme' : 'Force light theme'} -
- - - $settings.linkToAniList - ? settings.setKey('linkToAniList', false) - : settings.setKey('linkToAniList', true)} - >{$settings.linkToAniList ? 'Link anime to LiveChart.me' : 'Link anime to AniList'} -
- - - $settings.showCompletedAnime - ? settings.setKey('showCompletedAnime', false) - : settings.setKey('showCompletedAnime', true)} - >{$settings.showCompletedAnime ? 'Hide' : 'Show'} completed anime -
- - - $settings.displayPausedMedia - ? settings.setKey('displayPausedMedia', false) - : settings.setKey('displayPausedMedia', true)} - >{$settings.displayPausedMedia ? 'Hide' : 'Show'} paused media -
+ + theme + + + + completed anime + + + paused media +

- - $settings.displayUnresolved - ? settings.setKey('displayUnresolved', false) - : settings.setKey('displayUnresolved', true)} - >{$settings.displayUnresolved ? 'Hide' : 'Show'} unresolved -
+ unresolved Displays unresolved chapter counts as "?"

- - $settings.displayNotStarted - ? settings.setKey('displayNotStarted', false) - : settings.setKey('displayNotStarted', true)} - >{$settings.displayNotStarted ? 'Hide' : 'Show'} media with zero progress -
- May cause rate-limiting depending on how much releasing manga are on your lists + + media with zero progress + + + May cause + rate-limiting + depending on how much releasing manga are on your lists +

- - $settings.closeAnimeByDefault - ? settings.setKey('closeAnimeByDefault', false) - : settings.setKey('closeAnimeByDefault', true)} - >{$settings.closeAnimeByDefault ? 'Expand' : 'Close'} anime panel by default - -
- - - $settings.closeMangaByDefault - ? settings.setKey('closeMangaByDefault', false) - : settings.setKey('closeMangaByDefault', true)} - >{$settings.closeMangaByDefault ? 'Expand' : 'Close'} manga panel by default - -
- - - $settings.sortByDifference - ? settings.setKey('sortByDifference', false) - : settings.setKey('sortByDifference', true)} - >Sort anime by {@html !$settings.sortByDifference + + anime panel by default + + + manga panel by default + + + Sort anime by {@html !$settings.sortByDifference ? 'difference between last watched and next episode' - : 'days left until next episode'} + : 'days left until next episode'} +

Calculation

- - $settings.roundDownChapters - ? settings.setKey('roundDownChapters', false) - : settings.setKey('roundDownChapters', true)} - >{!$settings.roundDownChapters ? 'Round down' : 'Maintain'} chapters -
- 50/50.6 would {@html $settings.roundDownChapters ? 'not' : ''} be due + + chapters + + + 50/50.6 would {@html $settings.roundDownChapters ? 'not' : ''} be due +

Cache

@@ -180,11 +115,11 @@ /> minutes
- Low values may cause rate-limiting depending on how much releasing manga are on your lists + + Low values may cause + rate-limiting + depending on how much releasing manga are on your lists +

Reset

@@ -194,7 +129,7 @@ localStorage.clear()}>Clear localStorage
- Doesn't break anything, but resets all settings and key caches. Recommended after updates + + Doesn't break anything, but resets all settings and key caches. Recommended after updates + {/if} diff --git a/src/stores/settings.ts b/src/stores/settings.ts index c32a2a2a..d0e83514 100644 --- a/src/stores/settings.ts +++ b/src/stores/settings.ts @@ -1,7 +1,7 @@ import { browser } from '$app/environment'; import { writable } from 'svelte/store'; -interface Settings { +export interface Settings { cacheMangaMinutes: number; cacheMinutes: number; closeAnimeByDefault: boolean; -- cgit v1.2.3