diff --git a/src/components/pages/SeriesDetail.svelte b/src/components/pages/SeriesDetail.svelte index 9535c0c..797d795 100644 --- a/src/components/pages/SeriesDetail.svelte +++ b/src/components/pages/SeriesDetail.svelte @@ -69,7 +69,20 @@ } const sortDir = $derived(store.settings.chapterSortDir); - const sortedChapters = $derived(sortDir === "desc" ? [...chapters].reverse() : [...chapters]); + const sortMode = $derived(store.settings.chapterSortMode ?? "source"); + let sortMenuOpen = $state(false); + + const sortedChapters = $derived.by(() => { + const base = [...chapters]; + if (sortMode === "chapterNumber") { + base.sort((a, b) => a.chapterNumber - b.chapterNumber); + } else if (sortMode === "uploadDate") { + base.sort((a, b) => Number(a.uploadDate ?? 0) - Number(b.uploadDate ?? 0)); + } else { + base.sort((a, b) => a.sourceOrder - b.sourceOrder); + } + return sortDir === "desc" ? base.reverse() : base; + }); const totalPages = $derived(Math.ceil(sortedChapters.length / CHAPTERS_PER_PAGE)); const pageChapters = $derived(sortedChapters.slice((chapterPage - 1) * CHAPTERS_PER_PAGE, chapterPage * CHAPTERS_PER_PAGE)); const readCount = $derived(chapters.filter(c => c.isRead).length); @@ -461,10 +474,27 @@
- +
+ + {#if sortMenuOpen} + + {/if} +