From f263e1f361997d0a52f70c9d86ba64dd8e50fce4 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Thu, 16 May 2024 13:50:53 -0700 Subject: refactor(list): generic clean list --- src/lib/List/Anime/CleanAnimeList.svelte | 160 ++++++++++++------------------- src/lib/List/CleanList.svelte | 60 ++++++++++++ src/lib/List/Manga/CleanMangaList.svelte | 118 ++++++++--------------- 3 files changed, 158 insertions(+), 180 deletions(-) create mode 100644 src/lib/List/CleanList.svelte (limited to 'src/lib') diff --git a/src/lib/List/Anime/CleanAnimeList.svelte b/src/lib/List/Anime/CleanAnimeList.svelte index ac5f16c8..d8ba4ef9 100644 --- a/src/lib/List/Anime/CleanAnimeList.svelte +++ b/src/lib/List/Anime/CleanAnimeList.svelte @@ -7,17 +7,15 @@ import { totalEpisodes } from '$lib/Media/Anime/episodes'; import type { AniListAuthorisation } from '$lib/Data/AniList/identity'; import ListTitle from '../ListTitle.svelte'; - import MediaTitle from '../MediaTitleDisplay.svelte'; - import { outboundLink } from '$lib/Media/links'; import { onDestroy, onMount } from 'svelte'; import type { SubsPlease } from '$lib/Media/Anime/Airing/Subtitled/subsPlease'; import AiringTime from '$lib/Media/Anime/Airing/AiringTime.svelte'; import { browser } from '$app/environment'; import identity from '$stores/identity'; - import Tooltip from '../../Tooltip/LinkedTooltip.svelte'; import '../covers.css'; import revalidateAnime from '$stores/revalidateAnime'; import CleanGrid from '$lib/List/CleanGrid.svelte'; + import CleanList from '../CleanList.svelte'; export let media: Media[]; export let title: any; @@ -87,20 +85,20 @@ {#if $settings.displayCoverModeAnime} -
+
{#if !upcoming && !notYetReleased} - {pendingUpdate === title.id ? progress + 1 : progress}{@html totalEpisodes(title)} + {pendingUpdate === anime.id ? progress + 1 : progress}{@html totalEpisodes(anime)} {#if !completed || dummy} - [{title.nextAiringEpisode?.episode === -1 + [{anime.nextAiringEpisode?.episode === -1 ? '?' - : (title.nextAiringEpisode?.episode || 1) - 1}] + : (anime.nextAiringEpisode?.episode || 1) - 1}]
- + {/if} {:else} - + {/if}
{:else} -
    - {#each media as anime} - {@const progress = (anime.mediaListEntry || { progress: 0 }).progress} - - {#if upcoming || notYetReleased || progress !== (anime.nextAiringEpisode?.episode || 9999) - 1} -
  • - - `} - id={`anime-${anime.id}`} - pin={`anime-${anime.id}`} - pinPosition="right" - disable={!$settings.displayHoverCover} - > - { - if ($settings.displayCopyMediaTitleNotLink) { - e.preventDefault(); - - navigator.clipboard.writeText(anime.title.romaji); - } - }} - target="_blank" - > - - - - - - {#if $settings.displaySocialButton} - [S] - {/if} - {#if !upcoming || notYetReleased || !$settings.displayCountdownRightAligned} - | - {/if} - {#if !upcoming || notYetReleased} - - {pendingUpdate === anime.id ? progress + 1 : progress}{@html totalEpisodes(anime)} - - {#if !completed} - [{anime.nextAiringEpisode?.episode === -1 - ? '?' - : (anime.nextAiringEpisode?.episode || 1) - - ((anime.nextAiringEpisode?.airingAt || 999) < - (anime.nextAiringEpisode?.nativeAiringAt || 0) - ? 2 - : 1)}] - - - - {/if} - {:else} - - - - {/if} + + + {#if !upcoming || notYetReleased || !$settings.displayCountdownRightAligned} + | + {/if} + {#if !upcoming || notYetReleased} + + {pendingUpdate === anime.id ? progress + 1 : progress}{@html totalEpisodes(anime)} + + {#if !completed} + [{anime.nextAiringEpisode?.episode === -1 + ? '?' + : (anime.nextAiringEpisode?.episode || 1) - + ((anime.nextAiringEpisode?.airingAt || 999) < + (anime.nextAiringEpisode?.nativeAiringAt || 0) + ? 2 + : 1)}] + + -
  • + {/if} + {:else} + + + {/if} - {/each} -
+ + {/if} diff --git a/src/lib/List/CleanList.svelte b/src/lib/List/CleanList.svelte new file mode 100644 index 00000000..e78f51ab --- /dev/null +++ b/src/lib/List/CleanList.svelte @@ -0,0 +1,60 @@ + + + diff --git a/src/lib/List/Manga/CleanMangaList.svelte b/src/lib/List/Manga/CleanMangaList.svelte index 03a4a725..d067b408 100644 --- a/src/lib/List/Manga/CleanMangaList.svelte +++ b/src/lib/List/Manga/CleanMangaList.svelte @@ -2,19 +2,17 @@ import type { Media } from '$lib/Data/AniList/media'; import Error from '$lib/Error/RateLimited.svelte'; import { volumeCount } from '$lib/Media/Manga/volumes'; - import { outboundLink } from '$lib/Media/links'; import settings from '$stores/settings'; import ListTitle from '../ListTitle.svelte'; - import MediaTitle from '../MediaTitleDisplay.svelte'; import { onMount } from 'svelte'; import root from '$lib/Utility/root'; import locale from '$stores/locale'; import Skeleton from '$lib/Loading/Skeleton.svelte'; import { browser } from '$app/environment'; import proxy from '$lib/Utility/proxy'; - import Tooltip from '../../Tooltip/LinkedTooltip.svelte'; import '../covers.css'; import CleanGrid from '../CleanGrid.svelte'; + import CleanList from '../CleanList.svelte'; export let media: Media[]; export let cleanCache: () => void; @@ -107,24 +105,24 @@ {#if $settings.displayCoverModeManga || dummy} -
- {pendingUpdate === title.id ? progress + 1 : progress}{#if !due} - /{title.chapters || '?'} +
+ {pendingUpdate === manga.id ? progress + 1 : progress}{#if !due} + /{manga.chapters || '?'} {/if} - {#if due || Math.floor(title.episodes) < title.chapters} - [{title.episodes || '?'}] - {#await volumeCount(title) then volumes} - {@const volumeProgress = title.mediaListEntry?.progressVolumes} + {#if due || Math.floor(manga.episodes) < manga.chapters} + [{manga.episodes || '?'}] + {#await volumeCount(manga) then volumes} + {@const volumeProgress = manga.mediaListEntry?.progressVolumes} {#if volumes !== null && (volumeProgress || 0) < volumes} @@ -136,72 +134,34 @@
{:else} -
    - {#each media as manga} - {@const progress = (manga.mediaListEntry || { progress: 0 }).progress} - - {#if progress !== manga.episodes} -
  • - `} - pin={`manga-${manga.id}`} - pinPosition="left" - disable={!$settings.displayHoverCover} - > - { - if ($settings.displayCopyMediaTitleNotLink) { - e.preventDefault(); - - navigator.clipboard.writeText(manga.title.romaji); - } - }} - target="_blank" - > - - - - - - {#if $settings.displaySocialButton} - [S] - {/if} - | - {pendingUpdate === manga.id ? progress + 1 : progress}{#if !due} - /{manga.chapters || '?'} - {/if} - - {#if due || Math.floor(manga.episodes) < manga.chapters} - [{manga.episodes || '?'}] - {#await volumeCount(manga) then volumes} - {@const volumeProgress = manga.mediaListEntry?.progressVolumes} + + + | + {pendingUpdate === manga.id ? progress + 1 : progress}{#if !due} + /{manga.chapters || '?'} + {/if} + + {#if due || Math.floor(manga.episodes) < manga.chapters} + [{manga.episodes || '?'}] + {#await volumeCount(manga) then volumes} + {@const volumeProgress = manga.mediaListEntry?.progressVolumes} - {#if volumes !== null && (volumeProgress || 0) < volumes} - - Vol. {volumeProgress} → {volumes} - - {/if} - {/await} + {#if volumes !== null && (volumeProgress || 0) < volumes} + + Vol. {volumeProgress} → {volumes} + {/if} -
  • + {/await} {/if} - {/each} -
+ + {/if} -- cgit v1.2.3