diff options
| author | Fuwn <[email protected]> | 2024-08-23 14:23:02 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-08-23 14:23:02 -0700 |
| commit | f94253494a9e1cd17324820c57de4596b9c1681b (patch) | |
| tree | f794471888d2c6799b1385a2372c9e364a5da529 /src | |
| parent | refactor(Tools): SequelCatcher as modules (diff) | |
| download | due.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.svelte | 72 |
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> |