Keep rendered chapters on infinite scroll chapter change

The changes from 642708b8b3 didn't consider the case were the chapter change was triggered due to scrolling to the unloaded previous/next chapter with infinite scroll
This commit is contained in:
schroda
2025-04-02 02:45:22 +02:00
parent 642708b8b3
commit 0f49115b23

View File

@@ -239,8 +239,9 @@ export class ReaderControls {
const isAlreadyLoaded = const isAlreadyLoaded =
lastLeadingChapterSourceOrder <= chapterToOpen.sourceOrder && lastLeadingChapterSourceOrder <= chapterToOpen.sourceOrder &&
lastTrailingChapterSourceOrder >= chapterToOpen.sourceOrder; lastTrailingChapterSourceOrder >= chapterToOpen.sourceOrder;
const keepRenderedChapters = !scrollIntoView || isAlreadyLoaded;
if (isAlreadyLoaded) { if (keepRenderedChapters) {
setReaderStateChapters((prevState) => setReaderStateChapters((prevState) =>
updateReaderStateVisibleChapters( updateReaderStateVisibleChapters(
isPreviousChapter, isPreviousChapter,
@@ -255,7 +256,7 @@ export class ReaderControls {
openChapter(chapterToOpen, { openChapter(chapterToOpen, {
resumeMode: getReaderOpenChapterResumeMode(isSpecificChapterMode, isPreviousChapter), resumeMode: getReaderOpenChapterResumeMode(isSpecificChapterMode, isPreviousChapter),
updateInitialChapter: !isAlreadyLoaded, updateInitialChapter: !keepRenderedChapters,
}); });
} catch (error) { } catch (error) {
defaultPromiseErrorHandler('ReaderControls#useOpenChapter#doOpenChapter:')(error); defaultPromiseErrorHandler('ReaderControls#useOpenChapter#doOpenChapter:')(error);