From 704d3b191f12e73e2b2d8b9a2340e73020d7ca7e Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Sat, 22 Nov 2025 17:04:50 +0100 Subject: [PATCH] Flag event listeners as passive --- src/base/hooks/useMouseDragScroll.tsx | 4 ++-- .../infinite-scroll/useReaderInfiniteScrollUpdateChapter.ts | 2 +- .../reader/overlay/hooks/useReaderHideOverlayOnUserScroll.ts | 4 ++-- src/features/reader/services/ReaderControls.ts | 4 ++-- .../reader/viewer/hooks/useReaderHideCursorOnInactivity.ts | 2 +- .../reader/viewer/hooks/useReaderPreserveScrollPosition.ts | 2 +- src/lib/PointerDeviceUtil.ts | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/base/hooks/useMouseDragScroll.tsx b/src/base/hooks/useMouseDragScroll.tsx index 6485b6b5..7dcc0821 100644 --- a/src/base/hooks/useMouseDragScroll.tsx +++ b/src/base/hooks/useMouseDragScroll.tsx @@ -225,14 +225,14 @@ export const useMouseDragScroll = ( previousClickPosY.current = [e.pageY, e.pageY, e.pageY]; previousClickTime.current = [Date.now() - 2, Date.now() - 1, Date.now()]; - element.addEventListener('mousemove', handleMouseMove); + element.addEventListener('mousemove', handleMouseMove, { passive: true }); element.addEventListener('mouseup', handleMouseUp); clearInertiaInterval(); }; element.addEventListener('mousedown', handleMouseDown); - element.addEventListener('wheel', clearInertiaInterval); + element.addEventListener('wheel', clearInertiaInterval, { passive: true }); return () => { element.removeEventListener('mousedown', handleMouseDown); element.removeEventListener('wheel', clearInertiaInterval); diff --git a/src/features/reader/infinite-scroll/useReaderInfiniteScrollUpdateChapter.ts b/src/features/reader/infinite-scroll/useReaderInfiniteScrollUpdateChapter.ts index d736a92e..e80da0d0 100644 --- a/src/features/reader/infinite-scroll/useReaderInfiniteScrollUpdateChapter.ts +++ b/src/features/reader/infinite-scroll/useReaderInfiniteScrollUpdateChapter.ts @@ -289,7 +289,7 @@ export const useReaderInfiniteScrollUpdateChapter = ( } }; - scrollElement.addEventListener('scroll', onScroll); + scrollElement.addEventListener('scroll', onScroll, { passive: true }); return () => scrollElement.removeEventListener('scroll', onScroll); }, [ readingMode, diff --git a/src/features/reader/overlay/hooks/useReaderHideOverlayOnUserScroll.ts b/src/features/reader/overlay/hooks/useReaderHideOverlayOnUserScroll.ts index 18f3b5dc..2c29038d 100644 --- a/src/features/reader/overlay/hooks/useReaderHideOverlayOnUserScroll.ts +++ b/src/features/reader/overlay/hooks/useReaderHideOverlayOnUserScroll.ts @@ -27,8 +27,8 @@ export const useReaderHideOverlayOnUserScroll = ( } }; - scrollElementRef.current?.addEventListener('wheel', handleScroll); - scrollElementRef.current?.addEventListener('touchmove', handleScroll); + scrollElementRef.current?.addEventListener('wheel', handleScroll, { passive: true }); + scrollElementRef.current?.addEventListener('touchmove', handleScroll, { passive: true }); return () => { scrollElementRef.current?.removeEventListener('wheel', handleScroll); scrollElementRef.current?.removeEventListener('touchmove', handleScroll); diff --git a/src/features/reader/services/ReaderControls.ts b/src/features/reader/services/ReaderControls.ts index 892bee16..690f89e6 100644 --- a/src/features/reader/services/ReaderControls.ts +++ b/src/features/reader/services/ReaderControls.ts @@ -606,8 +606,8 @@ export class ReaderControls { } }; - document.addEventListener('mousemove', handleMouseMove); - document.addEventListener('touchmove', handleTouchMove); + document.addEventListener('mousemove', handleMouseMove, { passive: true }); + document.addEventListener('touchmove', handleTouchMove, { passive: true }); return () => { document.removeEventListener('mousemove', handleMouseMove); diff --git a/src/features/reader/viewer/hooks/useReaderHideCursorOnInactivity.ts b/src/features/reader/viewer/hooks/useReaderHideCursorOnInactivity.ts index fc1e6249..194181bc 100644 --- a/src/features/reader/viewer/hooks/useReaderHideCursorOnInactivity.ts +++ b/src/features/reader/viewer/hooks/useReaderHideCursorOnInactivity.ts @@ -31,7 +31,7 @@ export const useReaderHideCursorOnInactivity = (scrollElementRef: MutableRefObje }; handleMouseMove(); - window.addEventListener('mousemove', handleMouseMove); + window.addEventListener('mousemove', handleMouseMove, { passive: true }); return () => { setCursorVisibility(true); window.removeEventListener('mousemove', handleMouseMove); diff --git a/src/features/reader/viewer/hooks/useReaderPreserveScrollPosition.ts b/src/features/reader/viewer/hooks/useReaderPreserveScrollPosition.ts index 403e3924..c1158532 100644 --- a/src/features/reader/viewer/hooks/useReaderPreserveScrollPosition.ts +++ b/src/features/reader/viewer/hooks/useReaderPreserveScrollPosition.ts @@ -130,7 +130,7 @@ const useScrollPreservationData = ( }; }; - scrollElement.addEventListener('scroll', onScroll); + scrollElement.addEventListener('scroll', onScroll, { passive: true }); return () => scrollElement.removeEventListener('scroll', onScroll); }, []); diff --git a/src/lib/PointerDeviceUtil.ts b/src/lib/PointerDeviceUtil.ts index 4c704f1b..892fa1cb 100644 --- a/src/lib/PointerDeviceUtil.ts +++ b/src/lib/PointerDeviceUtil.ts @@ -32,7 +32,7 @@ class PointerDeviceUtilClass { private detectedTrackPadLike: boolean | undefined = undefined; constructor() { - window.addEventListener('wheel', this.record.bind(this)); + window.addEventListener('wheel', this.record.bind(this), { passive: true }); setInterval(() => { this.determineIsTrackPadLike();