aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-08-23 14:23:02 -0700
committerFuwn <[email protected]>2024-08-23 14:23:02 -0700
commitf94253494a9e1cd17324820c57de4596b9c1681b (patch)
treef794471888d2c6799b1385a2372c9e364a5da529 /src
parentrefactor(Tools): SequelCatcher as modules (diff)
downloaddue.moe-f94253494a9e1cd17324820c57de4596b9c1681b.tar.xz
due.moe-f94253494a9e1cd17324820c57de4596b9c1681b.zip
fix(SequelCatcher): allow toggling current
Diffstat (limited to 'src')
-rw-r--r--src/lib/Tools/SequelCatcher/List.svelte72
1 files changed, 45 insertions, 27 deletions
diff --git a/src/lib/Tools/SequelCatcher/List.svelte b/src/lib/Tools/SequelCatcher/List.svelte
index 685cae72..129cea5f 100644
--- a/src/lib/Tools/SequelCatcher/List.svelte
+++ b/src/lib/Tools/SequelCatcher/List.svelte
@@ -1,41 +1,59 @@
<script lang="ts">
import { filterRelations, type Media } from '$lib/Data/AniList/media';
import MediaTitleDisplay from '$lib/List/MediaTitleDisplay.svelte';
-
import { outboundLink } from '$lib/Media/links';
import settings from '$stores/settings';
export let mediaListUnchecked: Media[];
- const mediaList = mediaListUnchecked.filter(
- (media) => media.mediaListEntry?.status === 'COMPLETED'
- );
+ let includeCurrent = false;
+
+ const matchCheck = (media: Media | undefined) =>
+ (media &&
+ media.mediaListEntry &&
+ media.mediaListEntry?.status !== 'CURRENT' &&
+ media.mediaListEntry?.status !== 'REPEATING' &&
+ media.mediaListEntry?.status !== 'PAUSED') ||
+ !media;
</script>
+<input type="checkbox" bind:checked={includeCurrent} /> Include current (watching, rewatching,
+paused)
+
+<p />
+
<ol class="media-list">
- {#each filterRelations(mediaList) as { media, unwatchedRelations }}
- <a href={outboundLink(media, 'anime', $settings.displayOutboundLinksTo)} target="_blank">
- <MediaTitleDisplay title={media.title} />
- </a>
- <span class="opaque">
- ({media.startDate.year})
- </span>
-
- <ol class="unwatched-relations-list">
- {#each unwatchedRelations as relation}
- <li>
- <a
- href={outboundLink(relation.node, 'anime', $settings.displayOutboundLinksTo)}
- target="_blank"
- >
- <MediaTitleDisplay title={relation.node.title} />
- </a>
- <span class="opaque">
- ({relation.node.startDate.year})
- </span>
- </li>
- {/each}
- </ol>
+ {#each filterRelations(mediaListUnchecked.filter((media) => media.mediaListEntry?.status === 'COMPLETED')) as { media, unwatchedRelations }}
+ {#if unwatchedRelations.filter( (relation) => matchCheck(mediaListUnchecked.find((media) => media.id === relation.node.id)) ).length !== 0 || includeCurrent}
+ <li>
+ <a href={outboundLink(media, 'anime', $settings.displayOutboundLinksTo)} target="_blank">
+ <MediaTitleDisplay title={media.title} />
+ </a>
+
+ <span class="opaque">
+ ({media.startDate.year})
+ </span>
+
+ <ol class="unwatched-relations-list">
+ {#each unwatchedRelations as relation}
+ {#if matchCheck(mediaListUnchecked.find((media) => media.id === relation.node.id)) || includeCurrent}
+ <li>
+ <a
+ href={outboundLink(relation.node, 'anime', $settings.displayOutboundLinksTo)}
+ target="_blank"
+ >
+ <MediaTitleDisplay title={relation.node.title} />
+ </a>
+
+ <span class="opaque">
+ ({relation.node.startDate.year})
+ </span>
+ </li>
+ {/if}
+ {/each}
+ </ol>
+ </li>
+ {/if}
{/each}
</ol>