Hide "tap zone overlay" on user action

This commit is contained in:
schroda
2024-12-30 16:50:54 +01:00
parent 6a32395234
commit f3962646e6
3 changed files with 19 additions and 2 deletions

View File

@@ -26,6 +26,7 @@ import {
import { ReaderStatePages } from '@/modules/reader/types/ReaderProgressBar.types.ts';
import { ReaderControls } from '@/modules/reader/services/ReaderControls.ts';
import { coerceIn } from '@/lib/HelperFunctions.ts';
import { TReaderTapZoneContext } from '@/modules/reader/types/TapZoneLayout.types.ts';
export const getInitialReaderPageIndex = (
resumeMode: ReaderResumeMode,
@@ -312,6 +313,8 @@ export const useReaderHorizontalModeInvertXYScrolling = (
export const useReaderHideOverlayOnUserScroll = (
isOverlayVisible: boolean,
setIsOverlayVisible: TReaderOverlayContext['setIsVisible'],
showPreview: TReaderTapZoneContext['showPreview'],
setShowPreview: TReaderTapZoneContext['setShowPreview'],
scrollElementRef: MutableRefObject<HTMLDivElement | null>,
) => {
useEffect(() => {
@@ -319,6 +322,10 @@ export const useReaderHideOverlayOnUserScroll = (
if (isOverlayVisible) {
setIsOverlayVisible(false);
}
if (showPreview) {
setShowPreview(false);
}
};
scrollElementRef.current?.addEventListener('wheel', handleScroll);
@@ -327,7 +334,7 @@ export const useReaderHideOverlayOnUserScroll = (
scrollElementRef.current?.removeEventListener('wheel', handleScroll);
scrollElementRef.current?.removeEventListener('touchmove', handleScroll);
};
}, [isOverlayVisible]);
}, [isOverlayVisible, showPreview]);
};
export const useReaderAutoScroll = (