fix(home): keep finished series off the Continue-reading shelf

A "Continue reading" shelf listing series the reader already finished (read
to the last page, nothing new) is odd. Expose the last-read chapter's
page_count on the read-progress list, and filter the shelf to drop entries
that are caught up (on the last page of the latest chapter with no new
chapters). Mid-chapter and has-new-chapters entries stay; the full history
view is unaffected. Finished detection is a pure, unit-tested helper.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
MechaCat02
2026-07-04 21:52:58 +02:00
parent 3824eaafb2
commit bfaa166e0a
14 changed files with 133 additions and 6 deletions

View File

@@ -26,6 +26,7 @@
listMyReadProgressOrEmpty,
type ReadProgressSummary
} from '$lib/api/read_progress';
import { isCaughtUp } from '$lib/continueReading';
import Chip from '$lib/components/Chip.svelte';
import ContinueReadingShelf from '$lib/components/ContinueReadingShelf.svelte';
import MangaCard from '$lib/components/MangaCard.svelte';
@@ -312,7 +313,9 @@
// empty for guests (401 swallowed), which hides the shelf.
try {
const progress = await listMyReadProgressOrEmpty();
continueEntries = progress.items;
// Drop finished series (read to the end, nothing new) — a
// "Continue reading" shelf is for what's still in progress.
continueEntries = progress.items.filter((e) => !isCaughtUp(e));
} catch {
// Never let a history hiccup break the catalogue — leave the
// shelf hidden.