From 1c526b3feb8e839b6053d051f242d14c4d95e8c0 Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Sat, 27 Sep 2025 13:51:26 +0200 Subject: [PATCH] Prevent reader page preservation in none continuous modes --- .../reader/settings/ReaderSettings.utils.tsx | 4 +++- .../hooks/useReaderPreserveScrollPosition.ts | 14 +++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/features/reader/settings/ReaderSettings.utils.tsx b/src/features/reader/settings/ReaderSettings.utils.tsx index 0f09edba..1b0971d5 100644 --- a/src/features/reader/settings/ReaderSettings.utils.tsx +++ b/src/features/reader/settings/ReaderSettings.utils.tsx @@ -26,9 +26,11 @@ import { ReaderHorizontalPager } from '@/features/reader/viewer/pager/components export const isOffsetDoubleSpreadPagesEditable = (readingMode: IReaderSettings['readingMode']): boolean => readingMode === ReadingMode.DOUBLE_PAGE; -export const isReaderWidthEditable = (pageScaleMode: IReaderSettings['pageScaleMode']): boolean => +export const isReaderWidthEditable = (pageScaleMode: ReaderPageScaleMode): boolean => [ReaderPageScaleMode.WIDTH, ReaderPageScaleMode.SCREEN].includes(pageScaleMode); +export const isWidthPageScaleMode = (pageScaleMode: ReaderPageScaleMode) => isReaderWidthEditable(pageScaleMode); + export const isHeightPageScaleMode = (pageScaleMode: ReaderPageScaleMode): boolean => [ReaderPageScaleMode.HEIGHT, ReaderPageScaleMode.SCREEN].includes(pageScaleMode); diff --git a/src/features/reader/viewer/hooks/useReaderPreserveScrollPosition.ts b/src/features/reader/viewer/hooks/useReaderPreserveScrollPosition.ts index 43665b97..3c62635b 100644 --- a/src/features/reader/viewer/hooks/useReaderPreserveScrollPosition.ts +++ b/src/features/reader/viewer/hooks/useReaderPreserveScrollPosition.ts @@ -19,7 +19,7 @@ import { isContinuousReadingMode, isContinuousVerticalReadingMode, isHeightPageScaleMode, - isReaderWidthEditable, + isWidthPageScaleMode, } from '@/features/reader/settings/ReaderSettings.utils.tsx'; import { getPreviousNextChapterVisibility } from '@/features/reader/Reader.utils.ts'; import { ChapterIdInfo, TChapterReader } from '@/features/chapter/Chapter.types.ts'; @@ -30,19 +30,19 @@ const shouldPreserveOnResizeChange = ( previousWidth: number, previousHeight: number, ): boolean => { - const isEditableReaderWidth = isReaderWidthEditable(pageScaleMode); + if (!isContinuousReadingMode(readingMode)) { + return false; + } + + const isWidthPageScaleModeActive = isWidthPageScaleMode(pageScaleMode); const isHeightPageScaleModeActive = isHeightPageScaleMode(pageScaleMode); const didWidthChange = previousWidth !== window.innerWidth; const didHeightChange = previousHeight !== window.innerHeight; - const handleWidthChange = isEditableReaderWidth && didWidthChange; + const handleWidthChange = isWidthPageScaleModeActive && didWidthChange; const handleHeightChange = isHeightPageScaleModeActive && didHeightChange; - if (!isContinuousVerticalReadingMode(readingMode) && didWidthChange) { - return true; - } - return handleWidthChange || handleHeightChange; };