Allow auto scrolling with static reader overlay

This commit is contained in:
schroda
2025-07-04 03:35:33 +02:00
parent da78ce3181
commit 963cd55b37
2 changed files with 8 additions and 3 deletions

View File

@@ -103,6 +103,7 @@ const BaseReaderViewer = forwardRef(
pageGap,
customFilter,
shouldStretchPage,
isStaticNav,
readerNavBarWidth,
setScrollbarXSize,
setScrollbarYSize,
@@ -144,6 +145,7 @@ const BaseReaderViewer = forwardRef(
| 'pageGap'
| 'customFilter'
| 'shouldStretchPage'
| 'isStaticNav'
> &
Pick<TReaderScrollbarContext, 'setScrollbarXSize' | 'setScrollbarYSize'> &
Pick<NavbarContextType, 'readerNavBarWidth'> &
@@ -282,7 +284,7 @@ const BaseReaderViewer = forwardRef(
setShowPreview,
scrollElementRef,
);
useReaderAutoScroll(isOverlayVisible, automaticScrolling);
useReaderAutoScroll(isOverlayVisible, automaticScrolling, isStaticNav);
useReaderPreserveScrollPosition(
scrollElementRef,
currentChapter?.id,
@@ -479,6 +481,7 @@ export const ReaderViewer = withPropsFrom(
'pageGap',
'customFilter',
'shouldStretchPage',
'isStaticNav',
'readerNavBarWidth',
'transitionPageMode',
'setScrollbarXSize',

View File

@@ -8,17 +8,19 @@
import { useEffect } from 'react';
import { useAutomaticScrolling } from '@/modules/core/hooks/useAutomaticScrolling.ts';
import { IReaderSettings } from '@/modules/reader/types/Reader.types.ts';
export const useReaderAutoScroll = (
isOverlayVisible: boolean,
automaticScrolling: ReturnType<typeof useAutomaticScrolling>,
isStaticNav: IReaderSettings['isStaticNav'],
): void => {
useEffect(() => {
if (isOverlayVisible) {
if (isOverlayVisible && !isStaticNav) {
automaticScrolling.pause();
return;
}
automaticScrolling.resume();
}, [isOverlayVisible, automaticScrolling.isPaused]);
}, [isOverlayVisible, automaticScrolling.isPaused, isStaticNav]);
};