diff options
| author | Fuwn <[email protected]> | 2024-08-23 13:51:32 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-08-23 13:51:32 -0700 |
| commit | 5d860ec9675a832dca5e8fd855bca0c9debfb5ef (patch) | |
| tree | 07ce577124d64be0239ab7366a14d7a7c832687e /src | |
| parent | fix(AniList): request relation native title (diff) | |
| download | due.moe-5d860ec9675a832dca5e8fd855bca0c9debfb5ef.tar.xz due.moe-5d860ec9675a832dca5e8fd855bca0c9debfb5ef.zip | |
refactor(Tools): SequelCatcher as modules
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/Tools/SequelCatcher/List.svelte | 50 | ||||
| -rw-r--r-- | src/lib/Tools/SequelCatcher/Tool.svelte (renamed from src/lib/Tools/SequelCatcher.svelte) | 50 | ||||
| -rw-r--r-- | src/routes/tools/[tool]/+page.svelte | 2 |
3 files changed, 54 insertions, 48 deletions
diff --git a/src/lib/Tools/SequelCatcher/List.svelte b/src/lib/Tools/SequelCatcher/List.svelte new file mode 100644 index 00000000..685cae72 --- /dev/null +++ b/src/lib/Tools/SequelCatcher/List.svelte @@ -0,0 +1,50 @@ +<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' + ); +</script> + +<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} +</ol> + +<style> + .media-list li { + margin-bottom: 1rem; + } + + .unwatched-relations-list li:not(:last-child) { + margin-bottom: 0 !important; + } +</style> diff --git a/src/lib/Tools/SequelCatcher.svelte b/src/lib/Tools/SequelCatcher/Tool.svelte index 5d7cf81a..06d635b3 100644 --- a/src/lib/Tools/SequelCatcher.svelte +++ b/src/lib/Tools/SequelCatcher/Tool.svelte @@ -1,15 +1,13 @@ <script lang="ts"> + import List from './List.svelte'; import type { AniListAuthorisation } from '$lib/Data/AniList/identity'; import userIdentity from '$stores/identity'; - import { filterRelations, type Media, mediaListCollection, Type } from '$lib/Data/AniList/media'; + import { type Media, mediaListCollection, Type } from '$lib/Data/AniList/media'; import LogInRestricted from '$lib/Error/LogInRestricted.svelte'; import anime from '$stores/anime'; import identity from '$stores/identity'; import { onMount } from 'svelte'; import lastPruneTimes from '$stores/lastPruneTimes'; - import MediaTitleDisplay from '$lib/List/MediaTitleDisplay.svelte'; - import { outboundLink } from '$lib/Media/links'; - import settings from '$stores/settings'; import Message from '$lib/Loading/Message.svelte'; import Skeleton from '$lib/Loading/Skeleton.svelte'; import Username from '$lib/Layout/Username.svelte'; @@ -55,39 +53,7 @@ /> {:then mediaListUnchecked} {#if mediaListUnchecked} - {@const mediaList = mediaListUnchecked.filter( - (media) => media.mediaListEntry?.status === 'COMPLETED' - )} - - <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} - </ol> + <List {mediaListUnchecked} /> {:else} <Message message="Cross-checking media ..." /> @@ -112,13 +78,3 @@ </blockquote> </div> {/if} - -<style> - .media-list li { - margin-bottom: 1rem; - } - - .unwatched-relations-list li:not(:last-child) { - margin-bottom: 0 !important; - } -</style> diff --git a/src/routes/tools/[tool]/+page.svelte b/src/routes/tools/[tool]/+page.svelte index dee9b4e6..8d9d4ba5 100644 --- a/src/routes/tools/[tool]/+page.svelte +++ b/src/routes/tools/[tool]/+page.svelte @@ -18,7 +18,7 @@ import root from '$lib/Utility/root.js'; import Popup from '$lib/Layout/Popup.svelte'; import HololiveBirthdays from '$lib/Tools/HololiveBirthdays.svelte'; - import SequelCatcher from '$lib/Tools/SequelCatcher.svelte'; + import SequelCatcher from '$lib/Tools/SequelCatcher/Tool.svelte'; export let data; |