From bf5be037799e4418b86676c1debe8f93fac39a95 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Fri, 23 Jan 2026 05:55:30 -0800 Subject: feat(List): Add media roulette --- src/lib/List/Anime/CleanAnimeList.svelte | 18 +- src/lib/List/Manga/CleanMangaList.svelte | 15 ++ src/lib/List/MediaRoulette.svelte | 294 +++++++++++++++++++++++++++++++ 3 files changed, 326 insertions(+), 1 deletion(-) create mode 100644 src/lib/List/MediaRoulette.svelte (limited to 'src/lib/List') diff --git a/src/lib/List/Anime/CleanAnimeList.svelte b/src/lib/List/Anime/CleanAnimeList.svelte index b7b7a6cb..fef76c03 100644 --- a/src/lib/List/Anime/CleanAnimeList.svelte +++ b/src/lib/List/Anime/CleanAnimeList.svelte @@ -18,6 +18,7 @@ import CleanList from '../CleanList.svelte'; import stateBin from '$stores/stateBin'; import localforage from 'localforage'; + import MediaRoulette from '../MediaRoulette.svelte'; export let media: Media[]; export let title: any; @@ -33,6 +34,7 @@ export let dummy = false; export let disableFilter = false; + let showRoulette = false; let keyCacher: NodeJS.Timeout; let totalEpisodeDueCount = media .map((anime) => { @@ -145,7 +147,17 @@ {title} hideTime={dummy} hideCount={dummy} -/> +> + {#if $settings.displayMediaRoulette && !upcoming && !notYetReleased && filteredMedia.length > 0} + + {/if} + {#if media.length === 0} No anime to display. + {#if $settings.displayMediaRoulette && filteredMedia.length > 0} + + {/if} {/if} {/if} @@ -209,3 +220,7 @@ {/if} + +{#if showRoulette} + (showRoulette = false)} /> +{/if} diff --git a/src/lib/List/MediaRoulette.svelte b/src/lib/List/MediaRoulette.svelte new file mode 100644 index 00000000..e5b7ccba --- /dev/null +++ b/src/lib/List/MediaRoulette.svelte @@ -0,0 +1,294 @@ + + + e.key === 'Escape' && handleClose()} /> + + + + -- cgit v1.2.3