diff options
| author | Fuwn <[email protected]> | 2023-09-06 00:30:46 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-09-06 00:30:46 -0700 |
| commit | 19b51ab69176eb4f834c2c497f4c93a13779d7c7 (patch) | |
| tree | 2d21abd4c678f34f677a7c8ca625188d490c07cc /src/lib/List/Due/MangaList.svelte | |
| parent | feat(list): filter paused media (diff) | |
| download | due.moe-19b51ab69176eb4f834c2c497f4c93a13779d7c7.tar.xz due.moe-19b51ab69176eb4f834c2c497f4c93a13779d7c7.zip | |
feat(list): cache flattened
Diffstat (limited to 'src/lib/List/Due/MangaList.svelte')
| -rw-r--r-- | src/lib/List/Due/MangaList.svelte | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/src/lib/List/Due/MangaList.svelte b/src/lib/List/Due/MangaList.svelte index e7a1321f..379ec228 100644 --- a/src/lib/List/Due/MangaList.svelte +++ b/src/lib/List/Due/MangaList.svelte @@ -1,5 +1,5 @@ <script lang="ts"> - import { mediaListCollection, Type, flattenLists, type Media } from '$lib/AniList/media'; + import { mediaListCollection, Type, type Media } from '$lib/AniList/media'; import type { UserIdentity, AniListAuthorisation } from '$lib/AniList/identity'; import { onDestroy, onMount } from 'svelte'; import { chapterCount } from '$lib/mangadex'; @@ -12,7 +12,7 @@ export let identity: UserIdentity; export let displayUnresolved: boolean; - let mangaLists: Promise<{ entries: { media: Media }[] }[]>; + let mangaLists: Promise<Media[]>; let startTime: number; let endTime: number; @@ -31,10 +31,7 @@ clearInterval(keyCacher); }); - const cleanMedia = async ( - media: { entries: { media: Media }[] }[], - displayUnresolved: boolean - ) => { + const cleanMedia = async (media: Media[], displayUnresolved: boolean) => { if (media === undefined) { return []; } @@ -54,8 +51,7 @@ } } - const flattenedLists = flattenLists(media); - const releasingMedia = flattenedLists.filter( + const releasingMedia = media.filter( (media: Media) => media.status == 'RELEASING' && media.format != 'NOVEL' && @@ -117,6 +113,17 @@ ); }); }; + + const cleanCache = () => { + mangaLists = mediaListCollection( + user, + identity, + Type.Manga, + $manga, + $lastPruneTimes.manga, + true + ); + }; </script> {#await mangaLists} @@ -134,6 +141,12 @@ <small style="opacity: 50%">{endTime / 1000}s</small> </summary> + {#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> |