[FA-misc] Chapter reader is now serverside loaded with a clientside fallback, fixed a warning related to reading lists
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user