diff options
| author | Fuwn <[email protected]> | 2023-12-28 20:28:03 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-12-28 20:28:03 -0800 |
| commit | 1d190da6e3b97ce338d185880375382b2f4bd5f7 (patch) | |
| tree | d48d4559c422eeb21b9002ab372367c1bbc77567 /src/lib/List/Manga | |
| parent | feat(hovercover): allow for no subs (diff) | |
| download | due.moe-1d190da6e3b97ce338d185880375382b2f4bd5f7.tar.xz due.moe-1d190da6e3b97ce338d185880375382b2f4bd5f7.zip | |
feat(list): hover cover
Diffstat (limited to 'src/lib/List/Manga')
| -rw-r--r-- | src/lib/List/Manga/CleanMangaList.svelte | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/src/lib/List/Manga/CleanMangaList.svelte b/src/lib/List/Manga/CleanMangaList.svelte index 3ccdbf49..918db3f9 100644 --- a/src/lib/List/Manga/CleanMangaList.svelte +++ b/src/lib/List/Manga/CleanMangaList.svelte @@ -6,6 +6,8 @@ import settings from '../../../stores/settings'; import ListTitle from '../ListTitle.svelte'; import MediaTitle from '../MediaTitleDisplay.svelte'; + import HoverCover from '$lib/Media/HoverCover.svelte'; + import { onMouseEnter, onMouseLeave, onMouseMove } from '$lib/Media/hoverCover'; export let media: Media[]; export let cleanCache: () => void; @@ -20,6 +22,10 @@ export let due: boolean; export let rateLimited: boolean; export let authorised: boolean; + + let hovering = false; + let hoveredMedia: Media | null = null; + let imageStyle = ''; </script> {#if authorised} @@ -54,7 +60,32 @@ {@const progress = (manga.mediaListEntry || { progress: 0 }).progress} {#if progress !== manga.episodes} - <li> + <li + class="entry" + on:mouseenter={() => { + if ($settings.displayHoverCover === false) return; + + const response = onMouseEnter(manga); + + hovering = response.hovering; + hoveredMedia = response.media; + }} + on:mouseleave={() => { + if ($settings.displayHoverCover === false) return; + + const response = onMouseLeave(); + + hovering = response.hovering; + hoveredMedia = response.media; + }} + on:mousemove={(e) => { + if ($settings.displayHoverCover === false) return; + + const response = onMouseMove(e); + + imageStyle = response.style; + }} + > <a href={outboundLink(manga, 'manga', $settings.displayOutboundLinksTo)} target="_blank"> <span style={lastUpdatedMedia === manga.id && manga.chapters !== progress @@ -96,3 +127,5 @@ {/if} {/each} </ul> + +<HoverCover {hovering} {hoveredMedia} {imageStyle} /> |