From ddf44cb71884cbf54fe5a17b3827953453f6797e Mon Sep 17 00:00:00 2001 From: Fuwn Date: Thu, 16 May 2024 13:54:11 -0700 Subject: refactor(list): single increment implementation for type --- src/lib/List/Anime/CleanAnimeList.svelte | 53 ++++++++++++-------------------- src/lib/List/Manga/CleanMangaList.svelte | 15 +++++---- 2 files changed, 27 insertions(+), 41 deletions(-) (limited to 'src') diff --git a/src/lib/List/Anime/CleanAnimeList.svelte b/src/lib/List/Anime/CleanAnimeList.svelte index d8ba4ef9..60d46a07 100644 --- a/src/lib/List/Anime/CleanAnimeList.svelte +++ b/src/lib/List/Anime/CleanAnimeList.svelte @@ -73,6 +73,24 @@ }); onDestroy(() => clearInterval(keyCacher)); + + const increment = (anime: Media, progress: number) => { + if (!dummy && pendingUpdate !== anime.id) { + $revalidateAnime = true; + lastUpdatedMedia = anime.id; + pendingUpdate = anime.id; + + incrementMediaProgress(anime.id, anime.mediaListEntry?.progress, user, () => { + const mediaListEntry = media.find((m) => m.id === anime.id)?.mediaListEntry; + + if (mediaListEntry) mediaListEntry.progress = progress + 1; + + previousAnimeList = media; + animeLists = cleanCache(user, $identity); + pendingUpdate = null; + }); + } + }; @@ -91,23 +109,7 @@ increment(anime, progress)}>+ {#if !completed || dummy} [{anime.nextAiringEpisode?.episode === -1 @@ -133,22 +135,7 @@ increment(anime, progress)}>+ {#if !completed} [{anime.nextAiringEpisode?.episode === -1 diff --git a/src/lib/List/Manga/CleanMangaList.svelte b/src/lib/List/Manga/CleanMangaList.svelte index d067b408..d1074746 100644 --- a/src/lib/List/Manga/CleanMangaList.svelte +++ b/src/lib/List/Manga/CleanMangaList.svelte @@ -37,6 +37,11 @@ if (browser) localStorage.setItem(`last${due ? '' : 'Completed'}MangaListLength`, media.length.toString()); }); + + const increment = (manga: Media) => { + if (pendingUpdate === manga.id || dummy) + updateMedia(manga.id, manga.mediaListEntry?.progress, media); + }; {#if authorised} @@ -112,10 +117,7 @@ @@ -143,10 +145,7 @@ -- cgit v1.2.3