aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-01-26 23:52:14 -0800
committerFuwn <[email protected]>2024-01-26 23:52:14 -0800
commit952e92173fd611851808f2c5e271f579fa65c570 (patch)
tree1afbb6a174f39eb7d89f28197ff6b371bd96f74c /src/lib
parentfix(manga): double list title authorisation (diff)
downloaddue.moe-952e92173fd611851808f2c5e271f579fa65c570.tar.xz
due.moe-952e92173fd611851808f2c5e271f579fa65c570.zip
refactor(anime): use placeholder list on load
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/List/Anime/AnimeListTemplate.svelte26
-rw-r--r--src/lib/List/Anime/PlaceholderList.svelte20
-rw-r--r--src/lib/List/ListTitle.svelte6
-rw-r--r--src/lib/List/mediaTitle.ts5
4 files changed, 29 insertions, 28 deletions
diff --git a/src/lib/List/Anime/AnimeListTemplate.svelte b/src/lib/List/Anime/AnimeListTemplate.svelte
index 9e95267b..c0314727 100644
--- a/src/lib/List/Anime/AnimeListTemplate.svelte
+++ b/src/lib/List/Anime/AnimeListTemplate.svelte
@@ -9,7 +9,7 @@
import ListTitle from '../ListTitle.svelte';
import type { SubsPlease } from '$lib/Media/Anime/Airing/Subtitled/subsPlease';
import root from '$lib/Utility/root';
- import Skeleton from '$lib/Skeleton.svelte';
+ import PlaceholderList from './PlaceholderList.svelte';
export let endTime: number;
export let cleanMedia: (
@@ -33,17 +33,7 @@
</script>
{#await fetch(root(`/api/subsplease?tz=${Intl.DateTimeFormat().resolvedOptions().timeZone}`)).then( (r) => r.json() )}
- <ListTitle {title} />
-
- <Skeleton
- card={false}
- count={8}
- pad={$settings.displayCoverMode}
- height={$settings.displayCoverMode ? '8rem' : '0.9rem'}
- width={$settings.displayCoverMode ? `${$settings.displayCoverWidth / 1.05}px` : '100%'}
- list={!$settings.displayCoverMode}
- grid={$settings.displayCoverMode}
- />
+ <PlaceholderList {title} />
{:then subsPlease}
{#await animeLists}
{#if previousAnimeList}
@@ -62,17 +52,7 @@
bind:pendingUpdate
/>
{:else}
- <ListTitle {title} />
-
- <Skeleton
- card={false}
- count={8}
- pad={$settings.displayCoverMode}
- height={$settings.displayCoverMode ? '8rem' : '0.9rem'}
- width={$settings.displayCoverMode ? `${$settings.displayCoverWidth / 1.05}px` : '100%'}
- list={!$settings.displayCoverMode}
- grid={$settings.displayCoverMode}
- />
+ <PlaceholderList {title} />
{/if}
{:then media}
<CleanAnimeList
diff --git a/src/lib/List/Anime/PlaceholderList.svelte b/src/lib/List/Anime/PlaceholderList.svelte
new file mode 100644
index 00000000..3567ce62
--- /dev/null
+++ b/src/lib/List/Anime/PlaceholderList.svelte
@@ -0,0 +1,20 @@
+<script lang="ts">
+ import Skeleton from '$lib/Skeleton.svelte';
+ import settings from '$stores/settings';
+ import ListTitle from '../ListTitle.svelte';
+ import type { Title } from '../mediaTitle';
+
+ export let title: Title;
+</script>
+
+<ListTitle {title} />
+
+<Skeleton
+ card={false}
+ count={8}
+ pad={$settings.displayCoverMode}
+ height={$settings.displayCoverMode ? '8rem' : '0.9rem'}
+ width={$settings.displayCoverMode ? `${$settings.displayCoverWidth / 1.05}px` : '100%'}
+ list={!$settings.displayCoverMode}
+ grid={$settings.displayCoverMode}
+/>
diff --git a/src/lib/List/ListTitle.svelte b/src/lib/List/ListTitle.svelte
index 63551608..59f52ea7 100644
--- a/src/lib/List/ListTitle.svelte
+++ b/src/lib/List/ListTitle.svelte
@@ -1,5 +1,6 @@
<script lang="ts">
import tooltip from '$lib/Tooltip/tooltip';
+ import type { Title } from './mediaTitle';
export let time: number | undefined = undefined;
export let count = -1337;
@@ -9,11 +10,6 @@
};
export let progress: undefined | number = undefined;
export let hideTime = false;
-
- interface Title {
- title: string;
- hint: string;
- }
</script>
<summary>
diff --git a/src/lib/List/mediaTitle.ts b/src/lib/List/mediaTitle.ts
index 87e1aa56..2d14ca4c 100644
--- a/src/lib/List/mediaTitle.ts
+++ b/src/lib/List/mediaTitle.ts
@@ -2,6 +2,11 @@ import type { Media } from '$lib/AniList/media';
import settings from '$stores/settings';
import { get } from 'svelte/store';
+export interface Title {
+ title: string;
+ hint: string;
+}
+
export const mediaTitle = (media: Media) => {
if (!media) return 'Loading ...';