diff --git a/src/modules/reader/components/viewer/ReaderViewer.tsx b/src/modules/reader/components/viewer/ReaderViewer.tsx index 2b19e6d1..ca2ecbe9 100644 --- a/src/modules/reader/components/viewer/ReaderViewer.tsx +++ b/src/modules/reader/components/viewer/ReaderViewer.tsx @@ -149,6 +149,35 @@ export const ReaderViewer = forwardRef((_, ref: ForwardedRef(); + useEffect(() => { + const setCursorVisibility = (visible: boolean) => { + const scrollElement = scrollElementRef.current; + if (!scrollElement) { + return; + } + + scrollElement.style.cursor = visible ? 'default' : 'none'; + }; + + const handleMouseMove = () => { + setCursorVisibility(true); + clearTimeout(mouseInactiveTimeout.current); + mouseInactiveTimeout.current = setTimeout(() => { + setCursorVisibility(false); + }, 5000); + }; + + handleMouseMove(); + window.addEventListener('mousemove', handleMouseMove); + return () => { + setCursorVisibility(true); + window.removeEventListener('mousemove', handleMouseMove); + clearTimeout(mouseInactiveTimeout.current); + }; + }, []); + // invert x and y scrolling for the continuous horizontal reading mode useEffect(() => { if (readingMode.value !== ReadingMode.CONTINUOUS_HORIZONTAL) {