Move "ReaderTransitionPage" to "ReaderViewer"

This commit is contained in:
schroda
2025-01-20 02:47:31 +01:00
parent db7aad58ec
commit 649a17c2ae
3 changed files with 20 additions and 4 deletions

View File

@@ -25,6 +25,8 @@ import {
IReaderSettings, IReaderSettings,
PageInViewportType, PageInViewportType,
ReaderPageSpreadState, ReaderPageSpreadState,
ReaderTransitionPageMode,
ReadingDirection,
ReadingMode, ReadingMode,
TReaderScrollbarContext, TReaderScrollbarContext,
} from '@/modules/reader/types/Reader.types.ts'; } from '@/modules/reader/types/Reader.types.ts';
@@ -56,6 +58,7 @@ import { useReaderHideCursorOnInactivity } from '@/modules/reader/hooks/useReade
import { useReaderScrollToStartOnPageChange } from '@/modules/reader/hooks/useReaderScrollToStartOnPageChange.ts'; import { useReaderScrollToStartOnPageChange } from '@/modules/reader/hooks/useReaderScrollToStartOnPageChange.ts';
import { useReaderHandlePageSelection } from '@/modules/reader/hooks/useReaderHandlePageSelection.ts'; import { useReaderHandlePageSelection } from '@/modules/reader/hooks/useReaderHandlePageSelection.ts';
import { useReaderConvertPagesForReadingMode } from '@/modules/reader/hooks/useReaderConvertPagesForReadingMode.ts'; import { useReaderConvertPagesForReadingMode } from '@/modules/reader/hooks/useReaderConvertPagesForReadingMode.ts';
import { ReaderTransitionPage } from '@/modules/reader/components/viewer/ReaderTransitionPage.tsx';
const READING_MODE_TO_IN_VIEWPORT_TYPE: Record<ReadingMode, PageInViewportType> = { const READING_MODE_TO_IN_VIEWPORT_TYPE: Record<ReadingMode, PageInViewportType> = {
[ReadingMode.SINGLE_PAGE]: PageInViewportType.X, [ReadingMode.SINGLE_PAGE]: PageInViewportType.X,
@@ -170,6 +173,7 @@ const BaseReaderViewer = forwardRef(
const Pager = useMemo(() => getPagerForReadingMode(readingMode), [readingMode]); const Pager = useMemo(() => getPagerForReadingMode(readingMode), [readingMode]);
const inViewportType = READING_MODE_TO_IN_VIEWPORT_TYPE[readingMode]; const inViewportType = READING_MODE_TO_IN_VIEWPORT_TYPE[readingMode];
const isLtrReadingDirection = readingDirection === ReadingDirection.LTR;
const onLoad = useMemo( const onLoad = useMemo(
() => () =>
@@ -248,11 +252,20 @@ const BaseReaderViewer = forwardRef(
width: '100%', width: '100%',
height: '100%', height: '100%',
overflow: 'auto', overflow: 'auto',
flexWrap: 'nowrap',
...applyStyles( ...applyStyles(
isContinuousVerticalReadingMode(readingMode) && isContinuousVerticalReadingMode(readingMode) &&
shouldApplyReaderWidth(readerWidth, pageScaleMode), shouldApplyReaderWidth(readerWidth, pageScaleMode),
{ alignItems: 'center' }, { alignItems: 'center' },
), ),
...applyStyles(readingMode === ReadingMode.CONTINUOUS_HORIZONTAL, {
...applyStyles(themeDirection === 'ltr', {
flexDirection: isLtrReadingDirection ? 'row' : 'row-reverse',
}),
...applyStyles(themeDirection === 'rtl', {
flexDirection: isLtrReadingDirection ? 'row-reverse' : 'row',
}),
}),
}} }}
onClick={(e) => !isDragging && handleClick(e)} onClick={(e) => !isDragging && handleClick(e)}
onScroll={() => onScroll={() =>
@@ -265,6 +278,7 @@ const BaseReaderViewer = forwardRef(
) )
} }
> >
<ReaderTransitionPage type={ReaderTransitionPageMode.PREVIOUS} />
<Pager <Pager
totalPages={totalPages} totalPages={totalPages}
currentPageIndex={currentPageIndex} currentPageIndex={currentPageIndex}
@@ -276,6 +290,7 @@ const BaseReaderViewer = forwardRef(
onLoad={onLoad} onLoad={onLoad}
onError={onError} onError={onError}
/> />
<ReaderTransitionPage type={ReaderTransitionPageMode.NEXT} />
</Stack> </Stack>
); );
}, },

View File

@@ -12,7 +12,6 @@ import { ReaderService } from '@/modules/reader/services/ReaderService.ts';
import { getPageIndexesToLoad } from '@/modules/reader/utils/ReaderPager.utils.tsx'; import { getPageIndexesToLoad } from '@/modules/reader/utils/ReaderPager.utils.tsx';
import { ReaderStatePages } from '@/modules/reader/types/ReaderProgressBar.types.ts'; import { ReaderStatePages } from '@/modules/reader/types/ReaderProgressBar.types.ts';
import { IReaderSettings, ReaderPagerProps, ReaderTransitionPageMode } from '@/modules/reader/types/Reader.types.ts'; import { IReaderSettings, ReaderPagerProps, ReaderTransitionPageMode } from '@/modules/reader/types/Reader.types.ts';
import { ReaderTransitionPage } from '@/modules/reader/components/viewer/ReaderTransitionPage.tsx';
import { withPropsFrom } from '@/modules/core/hoc/withPropsFrom.tsx'; import { withPropsFrom } from '@/modules/core/hoc/withPropsFrom.tsx';
const BaseBasePager = ({ const BaseBasePager = ({
@@ -62,9 +61,11 @@ const BaseBasePager = ({
return ( return (
<Box <Box
{...slots?.boxProps} {...slots?.boxProps}
sx={[...(Array.isArray(slots?.boxProps?.sx) ? (slots?.boxProps?.sx ?? []) : [slots?.boxProps?.sx])]} sx={[
{ width: 'fit-content', height: 'fit-content' },
...(Array.isArray(slots?.boxProps?.sx) ? (slots?.boxProps?.sx ?? []) : [slots?.boxProps?.sx]),
]}
> >
<ReaderTransitionPage type={ReaderTransitionPageMode.PREVIOUS} />
{pages.map((page, pagesIndex) => {pages.map((page, pagesIndex) =>
createPage( createPage(
page, page,
@@ -74,7 +75,6 @@ const BaseBasePager = ({
setRef, setRef,
), ),
)} )}
<ReaderTransitionPage type={ReaderTransitionPageMode.NEXT} />
</Box> </Box>
); );
}; };

View File

@@ -49,6 +49,7 @@ const BaseReaderVerticalPager = ({
setRef, setRef,
) )
} }
slots={{ boxProps: { sx: { margin: 'auto' } } }}
/> />
); );
}; };