aboutsummaryrefslogtreecommitdiff
path: root/src/lib/List/Anime/CleanAnimeList.svelte
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-05-16 13:54:11 -0700
committerFuwn <[email protected]>2024-05-16 13:54:11 -0700
commitddf44cb71884cbf54fe5a17b3827953453f6797e (patch)
treeee6d61cc6df9ecc2d393156dca8a9a38dfeffa25 /src/lib/List/Anime/CleanAnimeList.svelte
parentrefactor(list): generic clean list (diff)
downloaddue.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.svelte53
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