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; };