Reader transition page
This commit is contained in:
@@ -13,10 +13,11 @@ import {
|
||||
PageInViewportType,
|
||||
ReaderPageScaleMode,
|
||||
ReadingDirection,
|
||||
ReaderTransitionPageMode,
|
||||
ReadingMode,
|
||||
} from '@/modules/reader/types/Reader.types.ts';
|
||||
import { applyStyles } from '@/modules/core/utils/ApplyStyles.ts';
|
||||
import { isReaderWidthEditable } from '@/modules/reader/utils/ReaderSettings.utils.tsx';
|
||||
import { isContinuousReadingMode, isReaderWidthEditable } from '@/modules/reader/utils/ReaderSettings.utils.tsx';
|
||||
import { ReaderStatePages } from '@/modules/reader/types/ReaderProgressBar.types.ts';
|
||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||
import { ReaderPage } from '@/modules/reader/components/viewer/ReaderPage.tsx';
|
||||
@@ -367,3 +368,9 @@ export const getPageIndexesToLoad = (
|
||||
.fill(1)
|
||||
.map((_, index) => startPagesIndex + index * directionInvert);
|
||||
};
|
||||
|
||||
export const isTransitionPageVisible = (
|
||||
mode: ReaderTransitionPageMode,
|
||||
activeMode: ReaderTransitionPageMode,
|
||||
readingMode: IReaderSettings['readingMode'],
|
||||
): boolean => [ReaderTransitionPageMode.BOTH, mode].includes(activeMode) || isContinuousReadingMode(readingMode);
|
||||
|
||||
@@ -10,6 +10,7 @@ import { RefObject, useEffect } from 'react';
|
||||
import { ReaderProgressBarProps, TReaderProgressCurrentPage } from '@/modules/reader/types/ReaderProgressBar.types.ts';
|
||||
import { getOptionForDirection as getOptionForDirectionImpl } from '@/theme.tsx';
|
||||
import { ProgressBarPosition } from '@/modules/reader/types/Reader.types.ts';
|
||||
import { ReaderControls } from '@/modules/reader/services/ReaderControls.ts';
|
||||
|
||||
export const getPage = (pageIndex: number, pages: ReaderProgressBarProps['pages']): TReaderProgressCurrentPage => {
|
||||
const pagesIndex = pages.findIndex(({ primary, secondary }) =>
|
||||
@@ -82,10 +83,10 @@ export const getProgressBarPositionInfo = (
|
||||
};
|
||||
|
||||
export const useHandleProgressDragging = (
|
||||
openPage: ReturnType<(typeof ReaderControls)['useOpenPage']>,
|
||||
progressBarRef: RefObject<HTMLDivElement | null>,
|
||||
isDragging: boolean,
|
||||
currentPage: TReaderProgressCurrentPage,
|
||||
setPageToScrollToIndex: (pageIndex: number) => void,
|
||||
pages: ReaderProgressBarProps['pages'],
|
||||
progressBarPosition: ProgressBarPosition,
|
||||
getOptionForDirection: typeof getOptionForDirectionImpl,
|
||||
@@ -115,7 +116,7 @@ export const useHandleProgressDragging = (
|
||||
return;
|
||||
}
|
||||
|
||||
setPageToScrollToIndex(newPageIndex);
|
||||
openPage(newPageIndex);
|
||||
};
|
||||
|
||||
const handleMouseMove = (e: MouseEvent) => {
|
||||
@@ -135,5 +136,5 @@ export const useHandleProgressDragging = (
|
||||
document.removeEventListener('mousemove', handleMouseMove);
|
||||
document.removeEventListener('touchmove', handleTouchMove);
|
||||
};
|
||||
}, [isDragging, currentPage, pages, progressBarPosition]);
|
||||
}, [openPage, isDragging, currentPage, pages, progressBarPosition]);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user