diff options
| author | Fuwn <[email protected]> | 2024-01-02 02:14:22 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-01-02 02:14:22 -0800 |
| commit | 1bf5e3fe55defe95114c9df69b62cc1b40761a0b (patch) | |
| tree | c8f1269696769201156799bb136dd06243270bda /src/lib/Media/hoverCover.ts | |
| parent | fix(hovercover): no hover null (diff) | |
| download | due.moe-1bf5e3fe55defe95114c9df69b62cc1b40761a0b.tar.xz due.moe-1bf5e3fe55defe95114c9df69b62cc1b40761a0b.zip | |
refactor(media): move hover cover
Diffstat (limited to 'src/lib/Media/hoverCover.ts')
| -rw-r--r-- | src/lib/Media/hoverCover.ts | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/src/lib/Media/hoverCover.ts b/src/lib/Media/hoverCover.ts deleted file mode 100644 index d5839fa9..00000000 --- a/src/lib/Media/hoverCover.ts +++ /dev/null @@ -1,52 +0,0 @@ -import type { Media } from '$lib/AniList/media'; -import { get } from 'svelte/store'; -import type { SubsPleaseEpisode } from './Anime/Airing/Subtitled/subsPlease'; -import settings from '$stores/settings'; - -interface OnMouseEnterLeave { - hovering: boolean; - item: SubsPleaseEpisode | null; - media: Media | null; -} - -export const onMouseEnter = (media: Media | null, item: SubsPleaseEpisode | null = null) => { - if (!get(settings).displayHoverCover && !item) - return { hovering: false, item: null, media: null } as OnMouseEnterLeave; - - return { hovering: true, item, media } as OnMouseEnterLeave; -}; - -export const onMouseLeave = () => { - return { hovering: false, item: null, media: null } as OnMouseEnterLeave; -}; - -interface OnMouseMove { - height: number; - style: string; -} - -export const onMouseMove = (event: MouseEvent, imageWidth = 300) => { - const offset = 10; - let imageLeft = 0; - let imageTop = 0; - const image = document.getElementsByClassName('hover-image')[0] as HTMLImageElement; - const response: OnMouseMove = { - height: 0, - style: '' - }; - - if (image) { - image.onload = () => (response.height = image.height); - imageLeft = - event.pageX + imageWidth + offset > window.innerWidth - ? event.pageX - imageWidth - offset - : event.pageX + offset; - imageTop = - event.pageY + response.height + offset > window.innerHeight - ? event.pageY - response.height - : event.pageY + offset; - response.style = `top: ${imageTop}px; left: ${imageLeft}px;`; - } - - return response; -}; |