From d01162d603cd8ff52e0419f50cdb13b789702645 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Tue, 16 Apr 2024 15:36:42 -0700 Subject: feat(tooltip): sliding tooltip --- src/lib/List/Anime/CleanAnimeList.svelte | 82 ++++++++------- src/lib/List/Anime/Tooltip.svelte | 175 +++++++++++++++++++++++++++++++ 2 files changed, 219 insertions(+), 38 deletions(-) create mode 100644 src/lib/List/Anime/Tooltip.svelte (limited to 'src/lib') diff --git a/src/lib/List/Anime/CleanAnimeList.svelte b/src/lib/List/Anime/CleanAnimeList.svelte index 86e2c9c1..04cdccf3 100644 --- a/src/lib/List/Anime/CleanAnimeList.svelte +++ b/src/lib/List/Anime/CleanAnimeList.svelte @@ -16,6 +16,7 @@ import AiringTime from '$lib/Media/Anime/Airing/AiringTime.svelte'; import { browser } from '$app/environment'; import identity from '$stores/identity'; + import Tooltip from './Tooltip.svelte'; export let media: Media[]; export let title: any; @@ -89,52 +90,57 @@ {@const progress = (anime.mediaListEntry || { progress: 0 }).progress} {#if upcoming || notYetReleased || progress !== (anime.nextAiringEpisode?.episode || 9999) - 1} -
- - Cover - +
+ + Cover + -
- {#if !upcoming && !notYetReleased} - {pendingUpdate === anime.id ? progress + 1 : progress}{@html totalEpisodes(anime)} - - {#if !completed} - [{anime.nextAiringEpisode?.episode === -1 - ? '?' - : (anime.nextAiringEpisode?.episode || 1) - 1}] -
- + previousAnimeList = media; + animeLists = cleanCache(user, $identity); + pendingUpdate = null; + }); + } + }}>+ + {#if !completed} + [{anime.nextAiringEpisode?.episode === -1 + ? '?' + : (anime.nextAiringEpisode?.episode || 1) - 1}] +
+ + {/if} + {:else} + {/if} - {:else} - - {/if} +
-
+ {/if} {/each} diff --git a/src/lib/List/Anime/Tooltip.svelte b/src/lib/List/Anime/Tooltip.svelte new file mode 100644 index 00000000..428943a0 --- /dev/null +++ b/src/lib/List/Anime/Tooltip.svelte @@ -0,0 +1,175 @@ + + +
+ +
+ +{#if tooltipDiv} +
+ {#key content} + + {@html content} + + {/key} +
+{/if} + + -- cgit v1.2.3