From 074f541dc00ca9811ca42b4e71f2e132b4c929cd Mon Sep 17 00:00:00 2001 From: Fuwn Date: Fri, 23 Aug 2024 15:05:46 -0700 Subject: feat(SequelCatcher): side stories toggle --- src/lib/Data/AniList/media.ts | 5 +++-- src/lib/Tools/SequelCatcher/List.svelte | 6 +++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/lib/Data/AniList/media.ts b/src/lib/Data/AniList/media.ts index e99c6dff..d3b38005 100644 --- a/src/lib/Data/AniList/media.ts +++ b/src/lib/Data/AniList/media.ts @@ -476,13 +476,14 @@ export interface UnwatchedRelationMap { unwatchedRelations: PrequelRelation[]; } -export const filterRelations = (media: Media[]) => { +export const filterRelations = (media: Media[], includeSideStories = false) => { const unwatchedRelationsMap: UnwatchedRelationMap[] = []; for (const mediaItem of media) { const sequels = mediaItem.relations.edges.filter( (relation: PrequelRelation) => - relation.relationType === 'SEQUEL' && + (relation.relationType === 'SEQUEL' || + (relation.relationType === 'SIDE_STORY' && includeSideStories)) && !media.some((mediaItem) => mediaItem.id === relation.node.id) && (relation.node.mediaListEntry ? relation.node.mediaListEntry.status !== 'COMPLETED' diff --git a/src/lib/Tools/SequelCatcher/List.svelte b/src/lib/Tools/SequelCatcher/List.svelte index 71513e76..8205b8c7 100644 --- a/src/lib/Tools/SequelCatcher/List.svelte +++ b/src/lib/Tools/SequelCatcher/List.svelte @@ -7,6 +7,7 @@ export let mediaListUnchecked: Media[]; let includeCurrent = false; + let includeSideStories = false; const matchCheck = (media: Media | undefined, swap = false) => (media && @@ -25,11 +26,14 @@ Include current (watching, rewatching, paused) +
+ Include side stories (e.g., OVAs, +specials, etc.)

    - {#each filterRelations(mediaListUnchecked.filter((media) => media.mediaListEntry?.status === 'COMPLETED')) as { media, unwatchedRelations }} + {#each filterRelations( mediaListUnchecked.filter((media) => media.mediaListEntry?.status === 'COMPLETED'), includeSideStories ) as { media, unwatchedRelations }} {#if unwatchedRelations.filter( (relation) => matchCheck(mediaListUnchecked.find((media) => media.id === relation.node.id)) ).length !== 0 || includeCurrent}
  1. -- cgit v1.2.3