Prevent reader page preservation in none continuous modes

This commit is contained in:
schroda
2025-09-27 13:51:26 +02:00
parent ab1521fb81
commit 1c526b3feb
2 changed files with 10 additions and 8 deletions

View File

@@ -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);

View File

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