aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-08-28 01:39:25 -0700
committerFuwn <[email protected]>2023-08-28 01:39:25 -0700
commit478da07bf7fa6eab587650e487ed34cc220017f4 (patch)
tree3425fb046022680cb22f8e1086035110c7413a12 /src
parentfeat(list): error handling (diff)
downloaddue.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.svelte8
-rw-r--r--src/lib/List/Due/MangaList.svelte4
-rw-r--r--src/routes/settings/+page.svelte12
-rw-r--r--src/stores/displayNotStarted.ts14
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;