aboutsummaryrefslogtreecommitdiff
path: root/src/lib/List/Manga/MangaListTemplate.svelte
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-01-28 23:55:47 -0800
committerFuwn <[email protected]>2026-01-28 23:55:47 -0800
commit079290f881e422b03e504da27f89d4e997e63a25 (patch)
tree33f36945d6ec78f8ae5caa88c5527a2e21e54151 /src/lib/List/Manga/MangaListTemplate.svelte
parentfeat: Add hero for landing and welcome page (diff)
downloaddue.moe-079290f881e422b03e504da27f89d4e997e63a25.tar.xz
due.moe-079290f881e422b03e504da27f89d4e997e63a25.zip
feat(Landing): Update to match LandingHero
Diffstat (limited to 'src/lib/List/Manga/MangaListTemplate.svelte')
-rw-r--r--src/lib/List/Manga/MangaListTemplate.svelte44
1 files changed, 23 insertions, 21 deletions
diff --git a/src/lib/List/Manga/MangaListTemplate.svelte b/src/lib/List/Manga/MangaListTemplate.svelte
index 16665d56..c2fc0513 100644
--- a/src/lib/List/Manga/MangaListTemplate.svelte
+++ b/src/lib/List/Manga/MangaListTemplate.svelte
@@ -31,7 +31,9 @@
export let displayUnresolved: boolean;
export let due: boolean;
export let dummy = $settings.debugDummyLists || false;
+ export let dummyCount = 7;
export let disableFilter = false;
+ export let limit: number | undefined = undefined;
const authorised = privilegedUser($identity.id);
let mangaLists: Promise<Media[]>;
let startTime: number;
@@ -67,28 +69,25 @@
startTime = performance.now();
if (dummy) {
+ // Use deterministic selection for consistent display
+ const filtered = 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 === 'Hentai') &&
+ manga.genres.some((genre) => genre === 'Comedy') &&
+ manga.status !== 'NOT_YET_RELEASED'
+ );
mangaLists = Promise.resolve(
- 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 === 'Hentai') &&
- manga.genres.some((genre) => genre === 'Comedy') &&
- manga.status !== 'NOT_YET_RELEASED'
- )
- .sort(() => 0.5 - Math.random())
- .map((manga) => {
- manga.status = 'FINISHED';
- manga.episodes = Math.floor(Math.random() * (manga.chapters || 0)) as unknown as null;
- manga.mediaListEntry.progress = Math.floor(Math.random() * (manga.episodes || 0)) + 1;
-
- return manga;
- })
- .slice(0, 7) as unknown as Media[]
+ filtered.slice(0, dummyCount).map((manga) => {
+ manga.status = 'FINISHED';
+ manga.episodes = Math.floor((manga.chapters || 10) * 0.7) as unknown as null;
+ manga.mediaListEntry.progress = Math.floor((manga.episodes || 5) * 0.5) + 1;
+ return manga;
+ }) as unknown as Media[]
);
} else {
mangaLists = mediaListCollection(user, $identity, Type.Manga, $manga, $lastPruneTimes.manga, {
@@ -262,6 +261,7 @@
{authorised}
{dummy}
{disableFilter}
+ {limit}
/>
{:else}
{#if !authorised}
@@ -310,6 +310,7 @@
{authorised}
{dummy}
{disableFilter}
+ {limit}
/>
{:else}
{#if !authorised}
@@ -378,6 +379,7 @@
{authorised}
{dummy}
{disableFilter}
+ {limit}
/>
{:catch}
{#if authorised}