aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Landing.svelte
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-05-06 05:02:49 -0700
committerFuwn <[email protected]>2024-05-06 05:02:49 -0700
commit4127ccb975dc88ac79cd1d82f2563f771fc0740f (patch)
treef9cbcaa51272b8acb590bedbd954ae7c424195e8 /src/lib/Landing.svelte
parentfix(badge.css): remove button styling (diff)
downloaddue.moe-4127ccb975dc88ac79cd1d82f2563f771fc0740f.tar.xz
due.moe-4127ccb975dc88ac79cd1d82f2563f771fc0740f.zip
feat(landing): cover mode list demos
Diffstat (limited to 'src/lib/Landing.svelte')
-rw-r--r--src/lib/Landing.svelte94
1 files changed, 6 insertions, 88 deletions
diff --git a/src/lib/Landing.svelte b/src/lib/Landing.svelte
index ae8dcca0..9e5df53d 100644
--- a/src/lib/Landing.svelte
+++ b/src/lib/Landing.svelte
@@ -1,74 +1,15 @@
<script lang="ts">
- import locale from '$stores/locale';
- import ListTitle from './List/ListTitle.svelte';
- import sampleManga from '$lib/Data/Static/SampleMedia/manga.json';
- import sampleAnime from '$lib/Data/Static/SampleMedia/anime.json';
- import MediaTitleDisplay from './List/MediaTitleDisplay.svelte';
- import { outboundLink } from './Media/links';
- import settings from '$stores/settings';
import root from './Utility/root';
- import type { Media } from './Data/AniList/media';
import { env } from '$env/dynamic/public';
import tooltip from './Tooltip/tooltip';
-
- const mangaCount = 8;
- const animeCount = 6;
- const randomManga = sampleManga
- .filter(
- (manga) =>
- manga.chapters &&
- !manga.tags.some((tag) => tag.name === 'Nudity') &&
- !manga.tags.some((tag) => tag.name === 'Rape') &&
- !manga.tags.some((tag) => tag.name === 'Tragedy') &&
- !manga.tags.some((tag) => tag.name === 'Bondage') &&
- manga.genres.some((genre) => genre === 'Comedy') &&
- !manga.genres.some((genre) => genre === 'Hentai')
- )
- .sort(() => 0.5 - Math.random())
- .slice(0, mangaCount) as unknown as Media[];
- const randomAnime = sampleAnime
- .filter(
- (anime) =>
- anime.episodes &&
- !anime.tags.some((tag) => tag.name === 'Nudity') &&
- !anime.tags.some((tag) => tag.name === 'Rape') &&
- !anime.tags.some((tag) => tag.name === 'Tragedy') &&
- !anime.tags.some((tag) => tag.name === 'Bondage') &&
- !anime.genres.some((genre) => genre === 'Hentai') &&
- anime.genres.some((genre) => genre === 'Comedy') &&
- anime.status !== 'NOT_YET_RELEASED'
- )
- .sort(() => 0.5 - Math.random())
- .slice(0, animeCount) as unknown as Media[];
+ import CompletedAnimeList from './List/Anime/CompletedAnimeList.svelte';
+ import MangaListTemplate from './List/Manga/MangaListTemplate.svelte';
</script>
<div class="example-item card">
<div class="item-content">
- <details open={true} class="list">
- <ListTitle title={$locale().lists.due.mangaAndLightNovels} count={mangaCount} hideTime />
-
- <ul>
- {#each randomManga as manga}
- {@const readChapters = Math.floor(Math.random() * (manga.chapters || 0))}
-
- <li>
- <a
- href={outboundLink(manga, 'manga', $settings.displayOutboundLinksTo)}
- target="_blank"
- title={`<img src="${manga.coverImage.extraLarge}" style="width: 250px; object-fit: cover; border-radius: 8px;" />`}
- use:tooltip
- >
- <MediaTitleDisplay title={manga.title} />
- </a>
- <span class="opaque">|</span>
- {readChapters}<span class="opaque">/{manga.chapters || '?'}</span>
- <button class="button-square button-action">+</button>
- [{Math.floor(Math.random() * ((manga.chapters ?? 0) - readChapters)) +
- readChapters +
- 1}]
- </li>
- {/each}
- </ul>
+ <details class="list" open>
+ <MangaListTemplate due={true} dummy displayUnresolved={false} />
</details>
</div>
@@ -118,31 +59,8 @@
>
</div>
<div class="item-content">
- <details open={true} class="list">
- <ListTitle title={$locale().lists.due.episodes} count={animeCount} hideTime />
-
- <ul>
- {#each randomAnime as anime}
- {@const watchedEpisodes = Math.floor(Math.random() * (anime.episodes || 0))}
-
- <li>
- <a
- href={outboundLink(anime, 'anime', $settings.displayOutboundLinksTo)}
- target="_blank"
- title={`<img src="${anime.coverImage.extraLarge}" style="width: 250px; object-fit: cover; border-radius: 8px;" />`}
- use:tooltip
- >
- <MediaTitleDisplay title={anime.title} />
- </a>
- <span class="opaque">|</span>
- {watchedEpisodes}<span class="opaque">/{anime.episodes || '?'}</span>
- <button class="button-square button-action">+</button>
- [{Math.floor(Math.random() * ((anime.episodes ?? 0) - watchedEpisodes)) +
- watchedEpisodes +
- 1}]
- </li>
- {/each}
- </ul>
+ <details class="list" open>
+ <CompletedAnimeList dummy />
</details>
</div>
</div>