aboutsummaryrefslogtreecommitdiff
path: root/src/lib/List/Anime
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-11-06 18:23:53 -0800
committerFuwn <[email protected]>2023-11-06 18:23:53 -0800
commitcfc1a9221e4ddabcd0f7090358f19ad374346e3a (patch)
tree4a68a03af410c29031be93ddaa83f623637d00c9 /src/lib/List/Anime
parentfix(manga): wait for prune on clean (diff)
downloaddue.moe-cfc1a9221e4ddabcd0f7090358f19ad374346e3a.tar.xz
due.moe-cfc1a9221e4ddabcd0f7090358f19ad374346e3a.zip
refactor(list): move modules to sub-modules
Diffstat (limited to 'src/lib/List/Anime')
-rw-r--r--src/lib/List/Anime/AnimeListTemplate.svelte63
-rw-r--r--src/lib/List/Anime/CompletedAnimeList.svelte2
-rw-r--r--src/lib/List/Anime/DueAnimeList.svelte2
-rw-r--r--src/lib/List/Anime/UpcomingAnimeList.svelte2
4 files changed, 66 insertions, 3 deletions
diff --git a/src/lib/List/Anime/AnimeListTemplate.svelte b/src/lib/List/Anime/AnimeListTemplate.svelte
new file mode 100644
index 00000000..2c806a2f
--- /dev/null
+++ b/src/lib/List/Anime/AnimeListTemplate.svelte
@@ -0,0 +1,63 @@
+<script lang="ts">
+ /* eslint svelte/no-at-html-tags: "off" */
+
+ import type { AniListAuthorisation, UserIdentity } from '$lib/AniList/identity';
+ import type { Media } from '$lib/AniList/media';
+ import Error from '$lib/Error.svelte';
+ import settings from '../../../stores/settings';
+ import CleanAnimeList from './CleanAnimeList.svelte';
+ import ListTitle from '../ListTitle.svelte';
+
+ export let endTime: number;
+ export let cleanMedia: (media: Media[], displayUnresolved: boolean) => Media[];
+ export let animeLists: Promise<Media[]>;
+ export let user: AniListAuthorisation;
+ export let identity: UserIdentity;
+ export let title: string;
+ export let completed = false;
+
+ let lastUpdatedMedia = -1;
+ let previousAnimeList: Media[];
+ let pendingUpdate: number | null = null;
+</script>
+
+{#await animeLists}
+ {#if previousAnimeList}
+ <CleanAnimeList
+ media={previousAnimeList}
+ {title}
+ bind:animeLists
+ {user}
+ {identity}
+ {endTime}
+ bind:lastUpdatedMedia
+ {completed}
+ bind:previousAnimeList
+ disableIncrement
+ bind:pendingUpdate
+ />
+ {:else}
+ <ListTitle custom={title} />
+
+ <ul><li>Loading ...</li></ul>
+ {/if}
+{:then media}
+ {@const cleanedMedia = cleanMedia(media, $settings.displayUnresolved)}
+
+ <CleanAnimeList
+ media={cleanedMedia}
+ {title}
+ bind:animeLists
+ {user}
+ {identity}
+ {endTime}
+ bind:lastUpdatedMedia
+ {completed}
+ bind:previousAnimeList
+ bind:pendingUpdate
+ />
+{:catch}
+ <ListTitle time={0} count={-1337} custom={title} />
+
+ <Error />
+{/await}
diff --git a/src/lib/List/Anime/CompletedAnimeList.svelte b/src/lib/List/Anime/CompletedAnimeList.svelte
index 50a124a2..302092ca 100644
--- a/src/lib/List/Anime/CompletedAnimeList.svelte
+++ b/src/lib/List/Anime/CompletedAnimeList.svelte
@@ -5,7 +5,7 @@
import anime from '../../../stores/anime';
import lastPruneTimes from '../../../stores/lastPruneTimes';
import settings from '../../../stores/settings';
- import AnimeList from '../Template/AnimeListTemplate.svelte';
+ import AnimeList from './AnimeListTemplate.svelte';
export let user: AniListAuthorisation;
export let identity: UserIdentity;
diff --git a/src/lib/List/Anime/DueAnimeList.svelte b/src/lib/List/Anime/DueAnimeList.svelte
index 765ba970..02b344fd 100644
--- a/src/lib/List/Anime/DueAnimeList.svelte
+++ b/src/lib/List/Anime/DueAnimeList.svelte
@@ -5,7 +5,7 @@
import anime from '../../../stores/anime';
import settings from '../../../stores/settings';
import lastPruneTimes from '../../../stores/lastPruneTimes';
- import AnimeList from '../Template/AnimeListTemplate.svelte';
+ import AnimeList from './AnimeListTemplate.svelte';
export let user: AniListAuthorisation;
export let identity: UserIdentity;
diff --git a/src/lib/List/Anime/UpcomingAnimeList.svelte b/src/lib/List/Anime/UpcomingAnimeList.svelte
index 238c338e..232f3d55 100644
--- a/src/lib/List/Anime/UpcomingAnimeList.svelte
+++ b/src/lib/List/Anime/UpcomingAnimeList.svelte
@@ -4,7 +4,7 @@
import { onMount } from 'svelte';
import anime from '../../../stores/anime';
import lastPruneTimes from '../../../stores/lastPruneTimes';
- import AnimeList from '../Template/AnimeListTemplate.svelte';
+ import AnimeList from './AnimeListTemplate.svelte';
export let user: AniListAuthorisation;
export let identity: UserIdentity;