aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-01-30 21:50:44 -0800
committerFuwn <[email protected]>2024-01-30 21:50:44 -0800
commit0191de155936da3d7c0fa503ab93ab542571f585 (patch)
tree0b887df7a7ed04a19cc7ecfa1f00a523ba1b0045 /src
parentfeat(list): use last size as skeleton size (diff)
downloaddue.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.svelte14
-rw-r--r--src/routes/+layout.svelte10
-rw-r--r--src/stores/subsPlease.ts6
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;