diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/routes/updates/+page.svelte | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/routes/updates/+page.svelte b/src/routes/updates/+page.svelte index 0534d0bb..bbcb087d 100644 --- a/src/routes/updates/+page.svelte +++ b/src/routes/updates/+page.svelte @@ -23,6 +23,7 @@ let novelFeed: }[]; }; } + | null | undefined; let startTime: number; let mangaEndTime: number; @@ -32,12 +33,22 @@ let directLink = browser : false; let removeHeightObserver: (() => void) | undefined; +const fetchJson = async (path: string) => { + try { + const response = await fetch(root(path)); + + return response.ok ? await response.json() : null; + } catch { + return null; + } +}; + onMount(async () => { removeHeightObserver = createHeightObserver(false); startTime = performance.now(); - const allNovels = await (await fetch(root("/api/updates/all-novels"))).json(); + const allNovels = await fetchJson("/api/updates/all-novels"); if (allNovels?.data?.items) for (const item of allNovels.data.items) { @@ -45,11 +56,11 @@ onMount(async () => { if (item.series) item.series.name = sanitizeFeedHtml(item.series.name); } - novelFeed = allNovels; + novelFeed = allNovels?.data?.items ? allNovels : null; novelEndTime = performance.now() - startTime; startTime = performance.now(); - const mangaFeed = await (await fetch(root("/api/updates/manga"))).json(); + const mangaFeed = await fetchJson("/api/updates/manga"); if (mangaFeed?.items) for (const item of mangaFeed.items) { @@ -57,7 +68,7 @@ onMount(async () => { item.content = sanitizeFeedHtml(item.content); } - feed = mangaFeed; + feed = mangaFeed?.items ? mangaFeed : null; mangaEndTime = performance.now() - startTime; }); |