diff options
| author | Fuwn <[email protected]> | 2024-05-16 13:54:11 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-05-16 13:54:11 -0700 |
| commit | ddf44cb71884cbf54fe5a17b3827953453f6797e (patch) | |
| tree | ee6d61cc6df9ecc2d393156dca8a9a38dfeffa25 /src/lib/List/Anime/CleanAnimeList.svelte | |
| parent | refactor(list): generic clean list (diff) | |
| download | due.moe-ddf44cb71884cbf54fe5a17b3827953453f6797e.tar.xz due.moe-ddf44cb71884cbf54fe5a17b3827953453f6797e.zip | |
refactor(list): single increment implementation for type
Diffstat (limited to 'src/lib/List/Anime/CleanAnimeList.svelte')
| -rw-r--r-- | src/lib/List/Anime/CleanAnimeList.svelte | 53 |
1 files changed, 20 insertions, 33 deletions
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; + }); + } + }; </script> <ListTitle time={endTime / 1000} count={media.length} {title} hideTime={dummy} hideCount={dummy} /> @@ -91,23 +109,7 @@ <button class={`button-square button-action ${pendingUpdate === anime.id ? 'opaque' : ''}`} style={pendingUpdate === anime.id ? 'pointer-events: none;' : ''} - on:click={() => { - 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; - }); - } - }}>+</button + on:click={() => increment(anime, progress)}>+</button > {#if !completed || dummy} [{anime.nextAiringEpisode?.episode === -1 @@ -133,22 +135,7 @@ <button class={`button-square button-action ${pendingUpdate === anime.id ? 'opaque' : ''}`} style={pendingUpdate === anime.id ? 'pointer-events: none;' : ''} - on:click={() => { - if (!dummy && pendingUpdate !== anime.id) { - 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; - }); - } - }}>+</button + on:click={() => increment(anime, progress)}>+</button > {#if !completed} [{anime.nextAiringEpisode?.episode === -1 |