diff options
| author | Fuwn <[email protected]> | 2024-01-30 21:50:44 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-01-30 21:50:44 -0800 |
| commit | 0191de155936da3d7c0fa503ab93ab542571f585 (patch) | |
| tree | 0b887df7a7ed04a19cc7ecfa1f00a523ba1b0045 /src | |
| parent | feat(list): use last size as skeleton size (diff) | |
| download | due.moe-0191de155936da3d7c0fa503ab93ab542571f585.tar.xz due.moe-0191de155936da3d7c0fa503ab93ab542571f585.zip | |
refactor(anime): global subsPlease cache
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/List/Anime/AnimeListTemplate.svelte | 14 | ||||
| -rw-r--r-- | src/routes/+layout.svelte | 10 | ||||
| -rw-r--r-- | src/stores/subsPlease.ts | 6 |
3 files changed, 22 insertions, 8 deletions
diff --git a/src/lib/List/Anime/AnimeListTemplate.svelte b/src/lib/List/Anime/AnimeListTemplate.svelte index 8b52e324..a4444944 100644 --- a/src/lib/List/Anime/AnimeListTemplate.svelte +++ b/src/lib/List/Anime/AnimeListTemplate.svelte @@ -8,10 +8,10 @@ import CleanAnimeList from './CleanAnimeList.svelte'; import ListTitle from '../ListTitle.svelte'; import type { SubsPlease } from '$lib/Media/Anime/Airing/Subtitled/subsPlease'; - import root from '$lib/Utility/root'; import PlaceholderList from './PlaceholderList.svelte'; import { browser } from '$app/environment'; import { onMount } from 'svelte'; + import subsPlease from '$stores/subsPlease'; export let endTime: number; export let cleanMedia: ( @@ -46,9 +46,9 @@ }); </script> -{#await fetch(root(`/api/subsplease?tz=${Intl.DateTimeFormat().resolvedOptions().timeZone}`)).then( (r) => r.json() )} +{#if !$subsPlease} <PlaceholderList count={lastListSize} {title} /> -{:then subsPlease} +{:else} {#await animeLists} {#if previousAnimeList} <CleanAnimeList @@ -70,7 +70,7 @@ {/if} {:then media} <CleanAnimeList - media={cleanMedia(media, $settings.displayUnresolved, subsPlease, plannedOnly)} + media={cleanMedia(media, $settings.displayUnresolved, $subsPlease, plannedOnly)} {title} bind:animeLists {user} @@ -80,7 +80,7 @@ {completed} {notYetReleased} {upcoming} - {subsPlease} + subsPlease={$subsPlease} bind:previousAnimeList bind:pendingUpdate /> @@ -89,6 +89,4 @@ <Error /> {/await} -{:catch} - <Error type="Subtitle release data" /> -{/await} +{/if} diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index dc7cbd15..ab9bd40a 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -19,6 +19,7 @@ import type { LocaleDictionary } from '$lib/Locale/layout'; import locale from '$stores/locale'; import Skeleton from '$lib/Skeleton.svelte'; + import subsPlease from '$stores/subsPlease'; export let data; @@ -68,6 +69,15 @@ getUserIdentity(data.user).then((h) => { if ($userIdentity.id === -2) userIdentity.set(h); }); + + if (!$subsPlease) + subsPlease.set( + await ( + await fetch( + root(`/api/subsplease?tz=${Intl.DateTimeFormat().resolvedOptions().timeZone}`) + ) + ).json() + ); }); </script> diff --git a/src/stores/subsPlease.ts b/src/stores/subsPlease.ts new file mode 100644 index 00000000..1006ce25 --- /dev/null +++ b/src/stores/subsPlease.ts @@ -0,0 +1,6 @@ +import type { SubsPlease } from '$lib/Media/Anime/Airing/Subtitled/subsPlease'; +import { writable } from 'svelte/store'; + +const subsPlease = writable<SubsPlease>(undefined); + +export default subsPlease; |