blob: 7d44732a817a0bbc2efeb1de32eebe852ebb7ec0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
<script lang="ts">
import type { Media } from '$lib/AniList/media';
import ListTitle from './ListTitle.svelte';
export let media: Media[];
export let cleanCache: () => Promise<void>;
export let endTime: number;
export let lastUpdatedMedia: number;
export let updateMedia: (
id: number,
progress: number | undefined,
media: Media[]
) => Promise<void>;
export let disableIncrement = false;
</script>
<ListTitle count={media.length} time={endTime / 1000}>
<a href={'#'} title="Force a refresh" on:click={cleanCache}>Force</a>
</ListTitle>
{#if media.length === 0}
<ul>
<li>No manga to display. <a href={'#'} on:click={cleanCache}>Force refresh</a></li>
</ul>
{/if}
<ul>
{#each media as manga}
<li>
<a href={`https://anilist.co/manga/${manga.id}`} target="_blank">
{#if lastUpdatedMedia === manga.id}
<span style="color: lightcoral">
{manga.title.english || manga.title.romaji || manga.title.native}
</span>
{:else}
{manga.title.english || manga.title.romaji || manga.title.native}
{/if}
</a>
<span style="opacity: 50%;">|</span>
{(manga.mediaListEntry || { progress: 0 }).progress}
<a
href={'#'}
style={disableIncrement ? 'pointer-events: none; opacity: 50%;' : ''}
on:click={() =>
disableIncrement ? null : updateMedia(manga.id, manga.mediaListEntry?.progress, media)}
>
+
</a>
[{manga.episodes || '?'}]
</li>
{/each}
</ul>
|