[FA-misc] Chapter reader is now serverside loaded with a clientside fallback, fixed a warning related to reading lists

This commit is contained in:
gamer147
2026-01-26 11:27:05 -05:00
parent 055ef33666
commit 1b9da7441c
5 changed files with 724 additions and 34 deletions

View File

@@ -33,10 +33,10 @@
let error: string | null = $state(null);
// Track which lists the novel is in (by list ID)
let novelInLists = new SvelteSet<number>();
let novelInLists = $state(new SvelteSet<number>());
// Track loading state for individual list toggles
let loadingListIds = new SvelteSet<number>();
let loadingListIds = $state(new SvelteSet<number>());
// Quick-create state
let showQuickCreate = $state(false);

View File

@@ -19,14 +19,24 @@
novelId?: string;
volumeOrder?: string;
chapterNumber?: string;
initialChapter?: ChapterData | null;
initialAuthFailed?: boolean;
initialError?: string | null;
}
let { novelId, volumeOrder, chapterNumber }: Props = $props();
let {
novelId,
volumeOrder,
chapterNumber,
initialChapter = null,
initialAuthFailed = false,
initialError = null
}: Props = $props();
// State
let chapter: ChapterData | null = $state(null);
let fetching = $state(true);
let error: string | null = $state(null);
// State - initialize from server data if available
let chapter: ChapterData | null = $state(initialChapter);
let fetching = $state(!initialChapter && !initialError && !initialAuthFailed);
let error: string | null = $state(initialError);
let scrollProgress = $state(0);
// Bookmark state
@@ -123,8 +133,15 @@
bookmarkDescription = newDescription ?? null;
}
onMount(() => {
fetchChapter();
onMount(async () => {
if (initialAuthFailed || (!initialChapter && !initialError)) {
// Fetch client-side: either auth recovery or fallback
await fetchChapter();
} else if (chapter) {
// Server provided data, just fetch bookmarks
await fetchBookmarks();
}
window.addEventListener('scroll', handleScroll, { passive: true });
window.addEventListener('keydown', handleKeydown);
});