aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-09-09 23:35:38 -0700
committerFuwn <[email protected]>2024-09-09 23:35:38 -0700
commit5341b07e9aab68124e51b1ed6e708fecd7dc77e4 (patch)
treec56b26ca71de3bd31f61eedb17c24cb9c231b0df /src
parentchore(nix): ignore direnv directory (diff)
downloaddue.moe-5341b07e9aab68124e51b1ed6e708fecd7dc77e4.tar.xz
due.moe-5341b07e9aab68124e51b1ed6e708fecd7dc77e4.zip
refactor(reader): chapter list component
Diffstat (limited to 'src')
-rw-r--r--src/lib/Reader/Chapters.svelte22
-rw-r--r--src/routes/reader/+page.svelte23
2 files changed, 26 insertions, 19 deletions
diff --git a/src/lib/Reader/Chapters.svelte b/src/lib/Reader/Chapters.svelte
new file mode 100644
index 00000000..9953036e
--- /dev/null
+++ b/src/lib/Reader/Chapters.svelte
@@ -0,0 +1,22 @@
+<script lang="ts">
+ export let data;
+</script>
+
+<ul>
+ {#each data.data as chapter}
+ <li>
+ {#if chapter.attributes.volume}
+ Vol. {chapter.attributes.volume}
+ {/if}
+ Ch. {chapter.attributes.chapter}
+ <span class="opaque">|</span>
+ <a
+ href={`https://mangadex.org/chapter/${chapter.id}`}
+ target="_blank"
+ rel="noopener noreferrer"
+ >
+ {chapter.attributes.title || 'Read'}
+ </a>
+ </li>
+ {/each}
+</ul>
diff --git a/src/routes/reader/+page.svelte b/src/routes/reader/+page.svelte
index cbdd3916..05e47274 100644
--- a/src/routes/reader/+page.svelte
+++ b/src/routes/reader/+page.svelte
@@ -1,5 +1,7 @@
<script>
import Notice from '$lib/Error/Notice.svelte';
+ import Message from '$lib/Loading/Message.svelte';
+ import Chapters from '$lib/Reader/Chapters.svelte';
import InputTemplate from '$lib/Tools/InputTemplate.svelte';
let submission = '';
@@ -10,29 +12,12 @@
<InputTemplate field="MangaDex URL" bind:submission submitText="Read" preserveCase>
{#if mangaDexID}
{#await fetch(`https://api.mangadex.org/manga/${mangaDexID}/feed?order[chapter]=desc&translatedLanguage[]=en`)}
- <!-- -->
+ <Message message="Loading chapters ..." />
{:then response}
{#if response.ok}
{#await response.json() then data}
{#if data.data}
- <ul>
- {#each data.data as chapter}
- <li>
- {#if chapter.attributes.volume}
- Vol. {chapter.attributes.volume}
- {/if}
- Ch. {chapter.attributes.chapter}
- <span class="opaque">|</span>
- <a
- href={`https://mangadex.org/chapter/${chapter.id}`}
- target="_blank"
- rel="noopener noreferrer"
- >
- {chapter.attributes.title}
- </a>
- </li>
- {/each}
- </ul>
+ <Chapters {data} />
{:else}
<p class="opaque">(⌣_⌣”)</p>
{/if}