From daeb2a4e4579b1483d4eb82436ccae5a7ee0357b Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Sat, 21 Feb 2026 15:34:17 +0100 Subject: [PATCH] Access reader store setters directly without hook --- .../auto-scroll/hooks/useReaderAutoScroll.ts | 21 ++--- .../ReaderNavBarDesktopAutoScroll.tsx | 9 +-- .../reader/hooks/useReaderSetSettingsState.ts | 6 +- .../useReaderShowSettingPreviewOnChange.ts | 7 +- src/features/reader/hotkeys/ReaderHotkeys.tsx | 3 - .../hooks/useReaderHideOverlayOnUserScroll.ts | 15 ++-- .../components/ReaderNavBarDesktopActions.tsx | 16 ++-- .../ReaderBottomBarMobileQuickSettings.tsx | 17 +++-- .../progress-bar/ReaderProgressBar.tsx | 12 ++- .../desktop/StandardReaderProgressBar.tsx | 8 +- .../mobile/MobileReaderProgressBar.tsx | 10 +-- src/features/reader/screens/Reader.tsx | 6 -- .../reader/services/ReaderControls.ts | 17 +---- src/features/reader/services/ReaderService.ts | 4 +- .../components/ReaderSettingsTabs.tsx | 3 - .../settings/layout/ReaderLayoutSettings.tsx | 12 ++- .../ReaderSettingProfileSettings.tsx | 1 - .../reader/viewer/ReaderChapterViewer.tsx | 55 +++++--------- src/features/reader/viewer/ReaderViewer.tsx | 76 ++++--------------- .../hooks/useReaderHandlePageSelection.ts | 4 +- .../hooks/useReaderPreserveScrollPosition.ts | 32 +++----- 21 files changed, 118 insertions(+), 216 deletions(-) diff --git a/src/features/reader/auto-scroll/hooks/useReaderAutoScroll.ts b/src/features/reader/auto-scroll/hooks/useReaderAutoScroll.ts index 13328233..dabf402c 100644 --- a/src/features/reader/auto-scroll/hooks/useReaderAutoScroll.ts +++ b/src/features/reader/auto-scroll/hooks/useReaderAutoScroll.ts @@ -8,20 +8,21 @@ import { useEffect } from 'react'; import { IReaderSettings } from '@/features/reader/Reader.types.ts'; +import { getReaderAutoScrollStore, useReaderAutoScrollStore } from '@/features/reader/stores/ReaderStore.ts'; + +export const useReaderAutoScroll = (isOverlayVisible: boolean, isStaticNav: IReaderSettings['isStaticNav']): void => { + const { isPaused } = useReaderAutoScrollStore((state) => ({ + isPaused: state.autoScroll.isPaused, + })); -export const useReaderAutoScroll = ( - isOverlayVisible: boolean, - isAutoScrollPaused: boolean, - pauseAutoScroll: () => void, - resumeAutoScroll: () => void, - isStaticNav: IReaderSettings['isStaticNav'], -): void => { useEffect(() => { + const { pause, resume } = getReaderAutoScrollStore(); + if (isOverlayVisible && !isStaticNav) { - pauseAutoScroll(); + pause(); return; } - resumeAutoScroll(); - }, [isOverlayVisible, isAutoScrollPaused, isStaticNav]); + resume(); + }, [isOverlayVisible, isPaused, isStaticNav]); }; diff --git a/src/features/reader/auto-scroll/settings/quick-setting/ReaderNavBarDesktopAutoScroll.tsx b/src/features/reader/auto-scroll/settings/quick-setting/ReaderNavBarDesktopAutoScroll.tsx index 054c4773..92d72934 100644 --- a/src/features/reader/auto-scroll/settings/quick-setting/ReaderNavBarDesktopAutoScroll.tsx +++ b/src/features/reader/auto-scroll/settings/quick-setting/ReaderNavBarDesktopAutoScroll.tsx @@ -19,7 +19,7 @@ import { plural } from '@lingui/core/macro'; import { IReaderSettings } from '@/features/reader/Reader.types.ts'; import { AUTO_SCROLL_SPEED } from '@/features/reader/settings/ReaderSettings.constants.tsx'; import { coerceIn } from '@/lib/HelperFunctions.ts'; -import { useReaderAutoScrollStore } from '@/features/reader/stores/ReaderStore.ts'; +import { getReaderAutoScrollStore, useReaderAutoScrollStore } from '@/features/reader/stores/ReaderStore.ts'; export const ReaderNavBarDesktopAutoScroll = ({ autoScroll, @@ -28,10 +28,7 @@ export const ReaderNavBarDesktopAutoScroll = ({ setAutoScroll: (newAutoScroll: IReaderSettings['autoScroll'], commit: boolean) => void; }) => { const { t } = useLingui(); - const { isActive, toggleActive } = useReaderAutoScrollStore((state) => ({ - isActive: state.autoScroll.isActive, - toggleActive: state.autoScroll.toggleActive, - })); + const isActive = useReaderAutoScrollStore((state) => state.autoScroll.isActive); const updateTimeout = useRef(undefined); @@ -40,7 +37,7 @@ export const ReaderNavBarDesktopAutoScroll = ({