aboutsummaryrefslogtreecommitdiff
path: root/src/lib/List/Manga/CleanMangaList.svelte
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-10-09 00:41:20 -0700
committerFuwn <[email protected]>2024-10-09 00:41:43 -0700
commit998b63a35256ac985a5a2714dd1ca451af4dfd8a (patch)
tree50796121a9d5ab0330fdc5d7e098bda2860d9726 /src/lib/List/Manga/CleanMangaList.svelte
parentfeat(graphql): add badgeCount field (diff)
downloaddue.moe-998b63a35256ac985a5a2714dd1ca451af4dfd8a.tar.xz
due.moe-998b63a35256ac985a5a2714dd1ca451af4dfd8a.zip
chore(prettier): use spaces instead of tabs
Diffstat (limited to 'src/lib/List/Manga/CleanMangaList.svelte')
-rw-r--r--src/lib/List/Manga/CleanMangaList.svelte284
1 files changed, 142 insertions, 142 deletions
diff --git a/src/lib/List/Manga/CleanMangaList.svelte b/src/lib/List/Manga/CleanMangaList.svelte
index be02bace..dfaa187c 100644
--- a/src/lib/List/Manga/CleanMangaList.svelte
+++ b/src/lib/List/Manga/CleanMangaList.svelte
@@ -1,166 +1,166 @@
<script lang="ts">
- import type { Media } from '$lib/Data/AniList/media';
- import Error from '$lib/Error/RateLimited.svelte';
- import { volumeCount } from '$lib/Media/Manga/volumes';
- import settings from '$stores/settings';
- import ListTitle from '../ListTitle.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 '../covers.css';
- import CleanGrid from '../CleanGrid.svelte';
- import CleanList from '../CleanList.svelte';
+ import type { Media } from '$lib/Data/AniList/media';
+ import Error from '$lib/Error/RateLimited.svelte';
+ import { volumeCount } from '$lib/Media/Manga/volumes';
+ import settings from '$stores/settings';
+ import ListTitle from '../ListTitle.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 '../covers.css';
+ import CleanGrid from '../CleanGrid.svelte';
+ import CleanList from '../CleanList.svelte';
- export let media: Media[];
- export let cleanCache: () => void;
- export let endTime: number;
- export let lastUpdatedMedia: number;
- export let updateMedia: (
- id: number,
- progress: number | undefined,
- media: Media[]
- ) => Promise<void>;
- export let pendingUpdate: number | null;
- export let due: boolean;
- export let rateLimited: boolean;
- export let authorised: boolean;
- export let dummy = false;
+ export let media: Media[];
+ export let cleanCache: () => void;
+ export let endTime: number;
+ export let lastUpdatedMedia: number;
+ export let updateMedia: (
+ id: number,
+ progress: number | undefined,
+ media: Media[]
+ ) => Promise<void>;
+ export let pendingUpdate: number | null;
+ export let due: boolean;
+ export let rateLimited: boolean;
+ export let authorised: boolean;
+ export let dummy = false;
- let serviceStatusResponse: Promise<Response>;
+ let serviceStatusResponse: Promise<Response>;
- onMount(() => {
- serviceStatusResponse = fetch(proxy('https://api.mangadex.org/ping'));
+ onMount(() => {
+ serviceStatusResponse = fetch(proxy('https://api.mangadex.org/ping'));
- if (browser)
- localStorage.setItem(`last${due ? '' : 'Completed'}MangaListLength`, media.length.toString());
- });
+ if (browser)
+ localStorage.setItem(`last${due ? '' : 'Completed'}MangaListLength`, media.length.toString());
+ });
- const increment = (manga: Media) => {
- if (!(pendingUpdate === manga.id || dummy))
- updateMedia(manga.id, manga.mediaListEntry?.progress, media);
- };
+ const increment = (manga: Media) => {
+ if (!(pendingUpdate === manga.id || dummy))
+ updateMedia(manga.id, manga.mediaListEntry?.progress, media);
+ };
</script>
{#if authorised}
- <ListTitle
- count={media.length}
- time={endTime / 1000}
- title={due
- ? $locale().lists.due.mangaAndLightNovels
- : $locale().lists.completed.mangaAndLightNovels}
- hideTime={dummy}
- hideCount={dummy}
- >
- {#if !dummy}
- <button
- class="small-button"
- title="Force a full refresh"
- on:click={cleanCache}
- data-umami-event="Force Refresh Manga">Refresh</button
- >
- {/if}
- </ListTitle>
+ <ListTitle
+ count={media.length}
+ time={endTime / 1000}
+ title={due
+ ? $locale().lists.due.mangaAndLightNovels
+ : $locale().lists.completed.mangaAndLightNovels}
+ hideTime={dummy}
+ hideCount={dummy}
+ >
+ {#if !dummy}
+ <button
+ class="small-button"
+ title="Force a full refresh"
+ on:click={cleanCache}
+ data-umami-event="Force Refresh Manga">Refresh</button
+ >
+ {/if}
+ </ListTitle>
{/if}
{#if rateLimited}
- {#await serviceStatusResponse}
- <Skeleton card={false} count={1} height="0.9rem" list />
- {:then status}
- {#if status}
- {#if status.status === 503}
- <a href="https://due.moe">due.moe</a>'s manga data source is currently down for maintenance.
- Please check back later.
- {:else if status.status !== 200}
- <a href="https://due.moe">due.moe</a>'s manga data source is currently unavailable. Please
- check back later.
- {:else}
- <Error />
- {/if}
- {:else}
- <Skeleton card={false} count={1} height="0.9rem" list />
- {/if}
- {:catch}
- <a href="https://due.moe">due.moe</a>'s manga data source is currently unreachable. Please check
- back later.
- {/await}
+ {#await serviceStatusResponse}
+ <Skeleton card={false} count={1} height="0.9rem" list />
+ {:then status}
+ {#if status}
+ {#if status.status === 503}
+ <a href="https://due.moe">due.moe</a>'s manga data source is currently down for maintenance.
+ Please check back later.
+ {:else if status.status !== 200}
+ <a href="https://due.moe">due.moe</a>'s manga data source is currently unavailable. Please
+ check back later.
+ {:else}
+ <Error />
+ {/if}
+ {:else}
+ <Skeleton card={false} count={1} height="0.9rem" list />
+ {/if}
+ {:catch}
+ <a href="https://due.moe">due.moe</a>'s manga data source is currently unreachable. Please check
+ back later.
+ {/await}
{/if}
{#if media.length === 0 && !rateLimited}
- {#if rateLimited}
- <p />
- {/if}
+ {#if rateLimited}
+ <p />
+ {/if}
- <p>
- No manga to display. <button on:click={cleanCache} data-umami-event="Force Refresh No Manga"
- >Force refresh</button
- >
- </p>
+ <p>
+ No manga to display. <button on:click={cleanCache} data-umami-event="Force Refresh No Manga"
+ >Force refresh</button
+ >
+ </p>
- <span>
- Don't read manga? <button
- on:click={() => ($settings.disableManga = true)}
- data-umami-event="Disable No Manga">Hide the manga panel</button
- >
- You can re-enable it later in the <a href={root('/settings')}>Settings</a>.
- </span>
+ <span>
+ Don't read manga? <button
+ on:click={() => ($settings.disableManga = true)}
+ data-umami-event="Disable No Manga">Hide the manga panel</button
+ >
+ You can re-enable it later in the <a href={root('/settings')}>Settings</a>.
+ </span>
{/if}
{#if $settings.displayCoverModeManga || dummy}
- <CleanGrid {media} {dummy} type="manga">
- <div slot="title" let:title={manga} let:progress>
- {pendingUpdate === manga.id ? progress + 1 : progress}{#if !due}
- <span class="opaque">/{manga.chapters || '?'}</span>
- {/if}
- <button
- class={`button-square button-action ${pendingUpdate === manga.id ? 'opaque' : ''}`}
- style={pendingUpdate === manga.id ? 'pointer-events: none;' : ''}
- on:click={() => increment(manga)}
- >
- +
- </button>
- {#if due || Math.floor(manga.episodes) < manga.chapters}
- [{manga.episodes || '?'}]
- {#await volumeCount(manga) then volumes}
- {@const volumeProgress = manga.mediaListEntry?.progressVolumes}
+ <CleanGrid {media} {dummy} type="manga">
+ <div slot="title" let:title={manga} let:progress>
+ {pendingUpdate === manga.id ? progress + 1 : progress}{#if !due}
+ <span class="opaque">/{manga.chapters || '?'}</span>
+ {/if}
+ <button
+ class={`button-square button-action ${pendingUpdate === manga.id ? 'opaque' : ''}`}
+ style={pendingUpdate === manga.id ? 'pointer-events: none;' : ''}
+ on:click={() => increment(manga)}
+ >
+ +
+ </button>
+ {#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}
- <span style="color: lightcoral;">
- Vol. {volumeProgress} &#8594; {volumes}
- </span>
- {/if}
- {/await}
- {/if}
- </div>
- </CleanGrid>
+ {#if volumes !== null && (volumeProgress || 0) < volumes}
+ <span style="color: lightcoral;">
+ Vol. {volumeProgress} &#8594; {volumes}
+ </span>
+ {/if}
+ {/await}
+ {/if}
+ </div>
+ </CleanGrid>
{:else}
- <CleanList {media} type="manga" {lastUpdatedMedia}>
- <span slot="information" let:title={manga} let:progress>
- <span class="opaque">|</span>
- {pendingUpdate === manga.id ? progress + 1 : progress}{#if !due}
- <span class="opaque">/{manga.chapters || '?'}</span>
- {/if}
- <button
- class={`button-square button-action ${pendingUpdate === manga.id ? 'opaque' : ''}`}
- style={pendingUpdate === manga.id ? 'pointer-events: none;' : ''}
- on:click={() => increment(manga)}
- >
- +
- </button>
- {#if due || Math.floor(manga.episodes) < manga.chapters}
- [{manga.episodes || '?'}]
- {#await volumeCount(manga) then volumes}
- {@const volumeProgress = manga.mediaListEntry?.progressVolumes}
+ <CleanList {media} type="manga" {lastUpdatedMedia}>
+ <span slot="information" let:title={manga} let:progress>
+ <span class="opaque">|</span>
+ {pendingUpdate === manga.id ? progress + 1 : progress}{#if !due}
+ <span class="opaque">/{manga.chapters || '?'}</span>
+ {/if}
+ <button
+ class={`button-square button-action ${pendingUpdate === manga.id ? 'opaque' : ''}`}
+ style={pendingUpdate === manga.id ? 'pointer-events: none;' : ''}
+ on:click={() => increment(manga)}
+ >
+ +
+ </button>
+ {#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}
- <span style="color: lightcoral;">
- Vol. {volumeProgress} &#8594; {volumes}
- </span>
- {/if}
- {/await}
- {/if}
- </span>
- </CleanList>
+ {#if volumes !== null && (volumeProgress || 0) < volumes}
+ <span style="color: lightcoral;">
+ Vol. {volumeProgress} &#8594; {volumes}
+ </span>
+ {/if}
+ {/await}
+ {/if}
+ </span>
+ </CleanList>
{/if}