Prevent reader page preservation in none continuous modes
This commit is contained in:
@@ -26,9 +26,11 @@ import { ReaderHorizontalPager } from '@/features/reader/viewer/pager/components
|
|||||||
export const isOffsetDoubleSpreadPagesEditable = (readingMode: IReaderSettings['readingMode']): boolean =>
|
export const isOffsetDoubleSpreadPagesEditable = (readingMode: IReaderSettings['readingMode']): boolean =>
|
||||||
readingMode === ReadingMode.DOUBLE_PAGE;
|
readingMode === ReadingMode.DOUBLE_PAGE;
|
||||||
|
|
||||||
export const isReaderWidthEditable = (pageScaleMode: IReaderSettings['pageScaleMode']): boolean =>
|
export const isReaderWidthEditable = (pageScaleMode: ReaderPageScaleMode): boolean =>
|
||||||
[ReaderPageScaleMode.WIDTH, ReaderPageScaleMode.SCREEN].includes(pageScaleMode);
|
[ReaderPageScaleMode.WIDTH, ReaderPageScaleMode.SCREEN].includes(pageScaleMode);
|
||||||
|
|
||||||
|
export const isWidthPageScaleMode = (pageScaleMode: ReaderPageScaleMode) => isReaderWidthEditable(pageScaleMode);
|
||||||
|
|
||||||
export const isHeightPageScaleMode = (pageScaleMode: ReaderPageScaleMode): boolean =>
|
export const isHeightPageScaleMode = (pageScaleMode: ReaderPageScaleMode): boolean =>
|
||||||
[ReaderPageScaleMode.HEIGHT, ReaderPageScaleMode.SCREEN].includes(pageScaleMode);
|
[ReaderPageScaleMode.HEIGHT, ReaderPageScaleMode.SCREEN].includes(pageScaleMode);
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import {
|
|||||||
isContinuousReadingMode,
|
isContinuousReadingMode,
|
||||||
isContinuousVerticalReadingMode,
|
isContinuousVerticalReadingMode,
|
||||||
isHeightPageScaleMode,
|
isHeightPageScaleMode,
|
||||||
isReaderWidthEditable,
|
isWidthPageScaleMode,
|
||||||
} from '@/features/reader/settings/ReaderSettings.utils.tsx';
|
} from '@/features/reader/settings/ReaderSettings.utils.tsx';
|
||||||
import { getPreviousNextChapterVisibility } from '@/features/reader/Reader.utils.ts';
|
import { getPreviousNextChapterVisibility } from '@/features/reader/Reader.utils.ts';
|
||||||
import { ChapterIdInfo, TChapterReader } from '@/features/chapter/Chapter.types.ts';
|
import { ChapterIdInfo, TChapterReader } from '@/features/chapter/Chapter.types.ts';
|
||||||
@@ -30,19 +30,19 @@ const shouldPreserveOnResizeChange = (
|
|||||||
previousWidth: number,
|
previousWidth: number,
|
||||||
previousHeight: number,
|
previousHeight: number,
|
||||||
): boolean => {
|
): boolean => {
|
||||||
const isEditableReaderWidth = isReaderWidthEditable(pageScaleMode);
|
if (!isContinuousReadingMode(readingMode)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const isWidthPageScaleModeActive = isWidthPageScaleMode(pageScaleMode);
|
||||||
const isHeightPageScaleModeActive = isHeightPageScaleMode(pageScaleMode);
|
const isHeightPageScaleModeActive = isHeightPageScaleMode(pageScaleMode);
|
||||||
|
|
||||||
const didWidthChange = previousWidth !== window.innerWidth;
|
const didWidthChange = previousWidth !== window.innerWidth;
|
||||||
const didHeightChange = previousHeight !== window.innerHeight;
|
const didHeightChange = previousHeight !== window.innerHeight;
|
||||||
|
|
||||||
const handleWidthChange = isEditableReaderWidth && didWidthChange;
|
const handleWidthChange = isWidthPageScaleModeActive && didWidthChange;
|
||||||
const handleHeightChange = isHeightPageScaleModeActive && didHeightChange;
|
const handleHeightChange = isHeightPageScaleModeActive && didHeightChange;
|
||||||
|
|
||||||
if (!isContinuousVerticalReadingMode(readingMode) && didWidthChange) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return handleWidthChange || handleHeightChange;
|
return handleWidthChange || handleHeightChange;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user