Ignore visible transition pages on page change in continuous pager

This commit is contained in:
schroda
2024-12-31 17:03:42 +01:00
parent 886cc469bc
commit f3792edac0
2 changed files with 7 additions and 5 deletions

View File

@@ -262,7 +262,7 @@ export class ReaderControls {
const { previousChapter, nextChapter } = useReaderStateChaptersContext(); const { previousChapter, nextChapter } = useReaderStateChaptersContext();
const { setIsVisible: setIsOverlayVisible } = useReaderOverlayContext(); const { setIsVisible: setIsOverlayVisible } = useReaderOverlayContext();
const { setShowPreview } = useReaderTapZoneContext(); const { setShowPreview } = useReaderTapZoneContext();
const { readingDirection } = ReaderService.useSettings(); const { readingDirection, readingMode } = ReaderService.useSettings();
const openChapter = ReaderControls.useOpenChapter(); const openChapter = ReaderControls.useOpenChapter();
const currentPage = useMemo(() => getPage(currentPageIndex, pages), [currentPageIndex, pages]); const currentPage = useMemo(() => getPage(currentPageIndex, pages), [currentPageIndex, pages]);
@@ -280,7 +280,8 @@ export class ReaderControls {
const isFirstPage = currentPage.primary.index === 0; const isFirstPage = currentPage.primary.index === 0;
const isLastPage = currentPageIndex === indexOfLastPage; const isLastPage = currentPageIndex === indexOfLastPage;
const isATransitionPageVisibleFlag = isATransitionPageVisible(transitionPageMode); const isATransitionPageVisibleFlag = isATransitionPageVisible(transitionPageMode, readingMode.value);
const isContinuousReadingModeActive = isContinuousReadingMode(readingMode.value);
return useCallback( return useCallback(
(page, forceDirection = direction, hideOverlay: boolean = true) => { (page, forceDirection = direction, hideOverlay: boolean = true) => {
@@ -317,7 +318,7 @@ export class ReaderControls {
return; return;
} }
const needToHideTransitionPage = isATransitionPageVisibleFlag; const needToHideTransitionPage = isATransitionPageVisibleFlag && !isContinuousReadingModeActive;
switch (convertedPage) { switch (convertedPage) {
case 'previous': case 'previous':
if (isFirstPage) { if (isFirstPage) {
@@ -359,6 +360,7 @@ export class ReaderControls {
nextPageIndex, nextPageIndex,
indexOfLastPage, indexOfLastPage,
isATransitionPageVisibleFlag, isATransitionPageVisibleFlag,
isContinuousReadingModeActive,
isFirstPage, isFirstPage,
isLastPage, isLastPage,
openChapter, openChapter,

View File

@@ -510,8 +510,8 @@ export const isTransitionPageVisible = (
readingMode: IReaderSettings['readingMode'], readingMode: IReaderSettings['readingMode'],
): boolean => [ReaderTransitionPageMode.BOTH, type].includes(activeMode) || isContinuousReadingMode(readingMode); ): boolean => [ReaderTransitionPageMode.BOTH, type].includes(activeMode) || isContinuousReadingMode(readingMode);
export const isATransitionPageVisible = (activeMode: ReaderTransitionPageMode): boolean => export const isATransitionPageVisible = (activeMode: ReaderTransitionPageMode, readingMode: ReadingMode): boolean =>
activeMode !== ReaderTransitionPageMode.NONE; activeMode !== ReaderTransitionPageMode.NONE || isContinuousReadingMode(readingMode);
export const getScrollIntoViewInlineOption = ( export const getScrollIntoViewInlineOption = (
offset: DirectionOffset, offset: DirectionOffset,