diff options
| author | Fuwn <[email protected]> | 2023-08-28 01:39:25 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-08-28 01:39:25 -0700 |
| commit | 478da07bf7fa6eab587650e487ed34cc220017f4 (patch) | |
| tree | 3425fb046022680cb22f8e1086035110c7413a12 /src | |
| parent | feat(list): error handling (diff) | |
| download | due.moe-478da07bf7fa6eab587650e487ed34cc220017f4.tar.xz due.moe-478da07bf7fa6eab587650e487ed34cc220017f4.zip | |
feat(settings): toggle zero progress media
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/List/Due/AnimeList.svelte | 8 | ||||
| -rw-r--r-- | src/lib/List/Due/MangaList.svelte | 4 | ||||
| -rw-r--r-- | src/routes/settings/+page.svelte | 12 | ||||
| -rw-r--r-- | src/stores/displayNotStarted.ts | 14 |
4 files changed, 36 insertions, 2 deletions
diff --git a/src/lib/List/Due/AnimeList.svelte b/src/lib/List/Due/AnimeList.svelte index 366adfc4..334b47fe 100644 --- a/src/lib/List/Due/AnimeList.svelte +++ b/src/lib/List/Due/AnimeList.svelte @@ -5,6 +5,7 @@ import anime from '../../../stores/anime'; import animeLastPrune from '../../../stores/mangaLastPrune'; import sortByDifference from '../../../stores/sortByDifference'; + import displayNotStarted from '../../../stores/displayNotStarted'; export let user: AniListAuthorisation; export let identity: UserIdentity; @@ -25,7 +26,12 @@ } const flattenedLists = flattenLists(media); - const releasingMedia = flattenedLists.filter((media: Media) => media['status'] == 'RELEASING'); + const releasingMedia = flattenedLists.filter( + (media: Media) => + media['status'] == 'RELEASING' && + (media['mediaListEntry'] || { progress: 0 })['progress'] >= + ($displayNotStarted === 'true' ? 0 : 1) + ); const outdatedMedia = releasingMedia.filter((media: Media) => { return ( (media['nextAiringEpisode'] || { episode: 0 })['episode'] - 1 != diff --git a/src/lib/List/Due/MangaList.svelte b/src/lib/List/Due/MangaList.svelte index 5d605276..e2c0ad05 100644 --- a/src/lib/List/Due/MangaList.svelte +++ b/src/lib/List/Due/MangaList.svelte @@ -9,6 +9,7 @@ import cacheMangaMinutes from '../../../stores/cacheMangaMinutes'; import roundDownChapters from '../../../stores/roundDownChapters'; import mangaLastPrune from '../../../stores/mangaLastPrune'; + import displayNotStarted from '../../../stores/displayNotStarted'; export let user: AniListAuthorisation; export let identity: UserIdentity; @@ -48,7 +49,8 @@ (media: Media) => media['status'] == 'RELEASING' && media['format'] != 'NOVEL' && - (media['mediaListEntry'] || { progress: 0 })['progress'] >= 1 + (media['mediaListEntry'] || { progress: 0 })['progress'] >= + ($displayNotStarted === 'true' ? 0 : 1) ); let finalMedia = releasingMedia; diff --git a/src/routes/settings/+page.svelte b/src/routes/settings/+page.svelte index 087cc445..c3153700 100644 --- a/src/routes/settings/+page.svelte +++ b/src/routes/settings/+page.svelte @@ -7,6 +7,7 @@ import cacheMinutes from '../../stores/cacheMinutes'; import roundDownChapters from '../../stores/roundDownChapters'; import sortByDifference from '../../stores/sortByDifference'; + import displayNotStarted from '../../stores/displayNotStarted'; export let data; @@ -58,6 +59,17 @@ <a href="#" on:click={() => + $displayNotStarted === 'true' + ? displayNotStarted.set('false') + : displayNotStarted.set('true')} + >{$displayNotStarted === 'true' ? 'Hide' : 'Show'} media with zero progress</a + > + <small style="opacity: 50%;">Displays unresolved chapter counts as "?"</small> + </li> + <li> + <a + href="#" + on:click={() => $roundDownChapters === 'true' ? roundDownChapters.set('false') : roundDownChapters.set('true')} diff --git a/src/stores/displayNotStarted.ts b/src/stores/displayNotStarted.ts new file mode 100644 index 00000000..f8c1c42a --- /dev/null +++ b/src/stores/displayNotStarted.ts @@ -0,0 +1,14 @@ +import { browser } from '$app/environment'; +import { writable } from 'svelte/store'; + +const displayNotStarted = writable<string>( + browser ? localStorage.getItem('displayNotStarted') ?? 'false' : 'false' +); + +displayNotStarted.subscribe((value) => { + if (browser) { + localStorage.setItem('displayNotStarted', value); + } +}); + +export default displayNotStarted; |