diff options
| author | Fuwn <[email protected]> | 2023-10-03 14:43:05 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-10-03 14:43:05 -0700 |
| commit | bc986fb6efa925b2ef1e566ce20fa0aa4655f6aa (patch) | |
| tree | 931f9277da485d421e25f0a8315d19732a59c29f /src/lib/List/Template | |
| parent | feat(anime): no loading on increment (diff) | |
| download | due.moe-bc986fb6efa925b2ef1e566ce20fa0aa4655f6aa.tar.xz due.moe-bc986fb6efa925b2ef1e566ce20fa0aa4655f6aa.zip | |
feat(manga): no load on increment
Diffstat (limited to 'src/lib/List/Template')
| -rw-r--r-- | src/lib/List/Template/MangaListTemplate.svelte | 57 |
1 files changed, 21 insertions, 36 deletions
diff --git a/src/lib/List/Template/MangaListTemplate.svelte b/src/lib/List/Template/MangaListTemplate.svelte index 9bbfec49..904d14cf 100644 --- a/src/lib/List/Template/MangaListTemplate.svelte +++ b/src/lib/List/Template/MangaListTemplate.svelte @@ -9,6 +9,7 @@ import lastPruneTimes from '../../../stores/lastPruneTimes'; import ListTitle from '../ListTitle.svelte'; import Error from '$lib/Error.svelte'; + import CleanMangaList from '../CleanMangaList.svelte'; export let user: AniListAuthorisation; export let identity: UserIdentity; @@ -19,6 +20,7 @@ let startTime: number; let endTime: number; let lastUpdatedMedia = -1; + let previousMangaList: Media[] = []; const keyCacher = setInterval(() => { startTime = performance.now(); @@ -102,9 +104,10 @@ return finalMedia; }; - const updateMedia = async (id: number, progress: number | undefined) => { + const updateMedia = async (id: number, progress: number | undefined, media: Media[]) => { await chapterDatabase.chapters.delete(id); await fetch(`/api/anilist-increment?id=${id}&progress=${(progress || 0) + 1}`).then(() => { + previousMangaList = media; mangaLists = mediaListCollection( user, identity, @@ -134,44 +137,26 @@ </script> {#await mangaLists} - <ListTitle /> - - <ul><li>Loading ...</li></ul> + <CleanMangaList + media={previousMangaList} + {cleanCache} + {endTime} + {lastUpdatedMedia} + {updateMedia} + disableIncrement + /> {:then media} {#await cleanMedia(media, displayUnresolved)} - <ListTitle /> - - <ul><li>Loading ...</li></ul> + <CleanMangaList + media={previousMangaList} + {cleanCache} + {endTime} + {lastUpdatedMedia} + {updateMedia} + disableIncrement + /> {:then cleanedMedia} - <ListTitle count={cleanedMedia.length} time={endTime / 1000}> - <a href={'#'} title="Force a refresh" on:click={cleanCache}>Force</a> - </ListTitle> - - {#if cleanedMedia.length === 0} - <ul> - <li>No manga to display. <a href={'#'} on:click={cleanCache}>Force refresh</a></li> - </ul> - {/if} - - <ul> - {#each cleanedMedia as manga} - <li> - <a href={`https://anilist.co/manga/${manga.id}`} target="_blank"> - {#if lastUpdatedMedia === manga.id} - <span style="color: lightcoral"> - {manga.title.english || manga.title.romaji || manga.title.native} - </span> - {:else} - {manga.title.english || manga.title.romaji || manga.title.native} - {/if} - </a> - <span style="opacity: 50%;">|</span> - {(manga.mediaListEntry || { progress: 0 }).progress} - <a href={'#'} on:click={() => updateMedia(manga.id, manga.mediaListEntry?.progress)}>+</a> - [{manga.episodes || '?'}] - </li> - {/each} - </ul> + <CleanMangaList media={cleanedMedia} {cleanCache} {endTime} {lastUpdatedMedia} {updateMedia} /> {:catch} <ListTitle count={-1337} time={0} /> |