From 0857b21a413eb2d6679e301abc9f2344cdfca3df Mon Sep 17 00:00:00 2001 From: Fuwn Date: Tue, 30 Jan 2024 21:36:08 -0800 Subject: feat(list): use last size as skeleton size --- src/lib/List/Manga/CleanMangaList.svelte | 8 +++++++- src/lib/List/Manga/MangaListTemplate.svelte | 12 ++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) (limited to 'src/lib/List/Manga') diff --git a/src/lib/List/Manga/CleanMangaList.svelte b/src/lib/List/Manga/CleanMangaList.svelte index 2c98a040..56a0498a 100644 --- a/src/lib/List/Manga/CleanMangaList.svelte +++ b/src/lib/List/Manga/CleanMangaList.svelte @@ -18,6 +18,7 @@ import root from '$lib/Utility/root'; import locale from '$stores/locale'; import Skeleton from '$lib/Skeleton.svelte'; + import { browser } from '$app/environment'; export let media: Media[]; export let cleanCache: () => void; @@ -36,7 +37,12 @@ let hoverCoverState: HoverCoverResponse = {}; let serviceStatusResponse: Promise; - onMount(() => (serviceStatusResponse = fetch(proxy('https://mangadex.org')))); + onMount(() => { + serviceStatusResponse = fetch(proxy('https://mangadex.org')); + + if (browser) + localStorage.setItem(`last${due ? '' : 'Completed'}MangaListLength`, media.length.toString()); + }); {#if authorised} diff --git a/src/lib/List/Manga/MangaListTemplate.svelte b/src/lib/List/Manga/MangaListTemplate.svelte index e91c809d..f9cd6124 100644 --- a/src/lib/List/Manga/MangaListTemplate.svelte +++ b/src/lib/List/Manga/MangaListTemplate.svelte @@ -17,6 +17,7 @@ import { options } from '$lib/Notification/options'; import Skeleton from '$lib/Skeleton.svelte'; import locale from '$stores/locale'; + import { browser } from '$app/environment'; export let user: AniListAuthorisation; export let identity: UserIdentity; @@ -34,6 +35,7 @@ let progress = 0; let rateLimited = false; let forceFlag = false; + let lastListSize = 5; const keyCacher = setInterval(() => { startTime = performance.now(); @@ -44,6 +46,12 @@ }, $settings.cacheMinutes * 1000 * 60); onMount(async () => { + if (browser) { + const lastStoredList = localStorage.getItem(`last${due ? '' : 'Completed'}MangaListLength`); + + if (lastStoredList) lastListSize = parseInt(lastStoredList); + } + startTime = performance.now(); mangaLists = mediaListCollection(user, identity, Type.Manga, $manga, $lastPruneTimes.manga, { addNotification @@ -229,7 +237,7 @@ {/if} - + {/if} {:then media} {#await cleanMedia(media, displayUnresolved, forceFlag)} @@ -262,7 +270,7 @@ {/if} - + {/if} {:then cleanedMedia} {#if !authorised} -- cgit v1.2.3