From da67d8576047b8aae932a9adb85a76cfc795952e Mon Sep 17 00:00:00 2001 From: Pas <74743263+Pasithea0@users.noreply.github.com> Date: Fri, 10 Oct 2025 13:56:21 -0600 Subject: [PATCH] fix double click to seek build --- src/backend/accounts/settings.ts | 4 +-- src/components/player/atoms/Seek.tsx | 8 +++-- src/hooks/auth/useAuthData.ts | 8 +++++ src/hooks/useSettingsState.ts | 30 +++++++++---------- src/pages/Settings.tsx | 29 +++++++++--------- src/pages/parts/auth/VerifyPassphrasePart.tsx | 1 + src/pages/parts/settings/PreferencesPart.tsx | 4 +-- src/stores/preferences/index.tsx | 16 +++++----- 8 files changed, 57 insertions(+), 43 deletions(-) diff --git a/src/backend/accounts/settings.ts b/src/backend/accounts/settings.ts index a6ecf766..84d6d8d2 100644 --- a/src/backend/accounts/settings.ts +++ b/src/backend/accounts/settings.ts @@ -27,8 +27,8 @@ export interface SettingsInput { enableLowPerformanceMode?: boolean; enableNativeSubtitles?: boolean; enableHoldToBoost?: boolean; - enableDoubleClickToSeek?: boolean; manualSourceSelection?: boolean; + enableDoubleClickToSeek?: boolean; } export interface SettingsResponse { @@ -54,8 +54,8 @@ export interface SettingsResponse { enableLowPerformanceMode?: boolean; enableNativeSubtitles?: boolean; enableHoldToBoost?: boolean; - enableDoubleClickToSeek?: boolean; manualSourceSelection?: boolean; + enableDoubleClickToSeek?: boolean; } export function updateSettings( diff --git a/src/components/player/atoms/Seek.tsx b/src/components/player/atoms/Seek.tsx index 081f1766..8f38a600 100644 --- a/src/components/player/atoms/Seek.tsx +++ b/src/components/player/atoms/Seek.tsx @@ -6,12 +6,16 @@ export function Seek(props: { direction: SeekDirection }) { return (
diff --git a/src/hooks/auth/useAuthData.ts b/src/hooks/auth/useAuthData.ts index 2bdfc8e5..339a925f 100644 --- a/src/hooks/auth/useAuthData.ts +++ b/src/hooks/auth/useAuthData.ts @@ -65,6 +65,9 @@ export function useAuthData() { const setEnableHoldToBoost = usePreferencesStore( (s) => s.setEnableHoldToBoost, ); + const setEnableDoubleClickToSeek = usePreferencesStore( + (s) => s.setEnableDoubleClickToSeek, + ); const login = useCallback( async ( @@ -192,6 +195,10 @@ export function useAuthData() { if (settings.enableHoldToBoost !== undefined) { setEnableHoldToBoost(settings.enableHoldToBoost); } + + if (settings.enableDoubleClickToSeek !== undefined) { + setEnableDoubleClickToSeek(settings.enableDoubleClickToSeek); + } }, [ replaceBookmarks, @@ -215,6 +222,7 @@ export function useAuthData() { setEnableLowPerformanceMode, setEnableNativeSubtitles, setEnableHoldToBoost, + setEnableDoubleClickToSeek, ], ); diff --git a/src/hooks/useSettingsState.ts b/src/hooks/useSettingsState.ts index 8d3932fb..48c911a8 100644 --- a/src/hooks/useSettingsState.ts +++ b/src/hooks/useSettingsState.ts @@ -66,9 +66,9 @@ export function useSettingsState( forceCompactEpisodeView: boolean, enableLowPerformanceMode: boolean, enableHoldToBoost: boolean, - enableDoubleClickToSeek: boolean, homeSectionOrder: string[], manualSourceSelection: boolean, + enableDoubleClickToSeek: boolean, ) { const [proxyUrlsState, setProxyUrls, resetProxyUrls, proxyUrlsChanged] = useDerived(proxyUrls); @@ -184,12 +184,6 @@ export function useSettingsState( resetEnableHoldToBoost, enableHoldToBoostChanged, ] = useDerived(enableHoldToBoost); - const [ - enableDoubleClickToSeekState, - setEnableDoubleClickToSeekState, - resetEnableDoubleClickToSeek, - enableDoubleClickToSeekChanged, - ] = useDerived(enableDoubleClickToSeek); const [ homeSectionOrderState, setHomeSectionOrderState, @@ -202,6 +196,12 @@ export function useSettingsState( resetManualSourceSelection, manualSourceSelectionChanged, ] = useDerived(manualSourceSelection); + const [ + enableDoubleClickToSeekState, + setEnableDoubleClickToSeekState, + resetEnableDoubleClickToSeek, + enableDoubleClickToSeekChanged, + ] = useDerived(enableDoubleClickToSeek); function reset() { resetTheme(); @@ -228,9 +228,9 @@ export function useSettingsState( resetForceCompactEpisodeView(); resetEnableLowPerformanceMode(); resetEnableHoldToBoost(); - resetEnableDoubleClickToSeek(); resetHomeSectionOrder(); resetManualSourceSelection(); + resetEnableDoubleClickToSeek(); } const changed = @@ -257,9 +257,9 @@ export function useSettingsState( forceCompactEpisodeViewChanged || enableLowPerformanceModeChanged || enableHoldToBoostChanged || - enableDoubleClickToSeekChanged || homeSectionOrderChanged || - manualSourceSelectionChanged; + manualSourceSelectionChanged || + enableDoubleClickToSeekChanged; return { reset, @@ -379,11 +379,6 @@ export function useSettingsState( set: setEnableHoldToBoostState, changed: enableHoldToBoostChanged, }, - enableDoubleClickToSeek: { - state: enableDoubleClickToSeekState, - set: setEnableDoubleClickToSeekState, - changed: enableDoubleClickToSeekChanged, - }, homeSectionOrder: { state: homeSectionOrderState, set: setHomeSectionOrderState, @@ -394,5 +389,10 @@ export function useSettingsState( set: setManualSourceSelectionState, changed: manualSourceSelectionChanged, }, + enableDoubleClickToSeek: { + state: enableDoubleClickToSeekState, + set: setEnableDoubleClickToSeekState, + changed: enableDoubleClickToSeekChanged, + }, }; } diff --git a/src/pages/Settings.tsx b/src/pages/Settings.tsx index 4b30350a..5627b6b6 100644 --- a/src/pages/Settings.tsx +++ b/src/pages/Settings.tsx @@ -197,13 +197,6 @@ export function SettingsPage() { (s) => s.setEnableHoldToBoost, ); - const enableDoubleClickToSeek = usePreferencesStore( - (s) => s.enableDoubleClickToSeek, - ); - const setEnableDoubleClickToSeek = usePreferencesStore( - (s) => s.setEnableDoubleClickToSeek, - ); - const homeSectionOrder = usePreferencesStore((s) => s.homeSectionOrder); const setHomeSectionOrder = usePreferencesStore((s) => s.setHomeSectionOrder); @@ -214,6 +207,13 @@ export function SettingsPage() { (s) => s.setManualSourceSelection, ); + const enableDoubleClickToSeek = usePreferencesStore( + (s) => s.enableDoubleClickToSeek, + ); + const setEnableDoubleClickToSeek = usePreferencesStore( + (s) => s.setEnableDoubleClickToSeek, + ); + const account = useAuthStore((s) => s.account); const updateProfile = useAuthStore((s) => s.setAccountProfile); const updateDeviceName = useAuthStore((s) => s.updateDeviceName); @@ -266,9 +266,9 @@ export function SettingsPage() { forceCompactEpisodeView, enableLowPerformanceMode, enableHoldToBoost, - enableDoubleClickToSeek, homeSectionOrder, manualSourceSelection, + enableDoubleClickToSeek, ); const availableSources = useMemo(() => { @@ -328,8 +328,8 @@ export function SettingsPage() { state.forceCompactEpisodeView.changed || state.enableLowPerformanceMode.changed || state.enableHoldToBoost.changed || - state.enableDoubleClickToSeek.changed || - state.manualSourceSelection.changed + state.manualSourceSelection.changed || + state.enableDoubleClickToSeek ) { await updateSettings(backendUrl, account, { applicationLanguage: state.appLanguage.state, @@ -351,8 +351,8 @@ export function SettingsPage() { forceCompactEpisodeView: state.forceCompactEpisodeView.state, enableLowPerformanceMode: state.enableLowPerformanceMode.state, enableHoldToBoost: state.enableHoldToBoost.state, - enableDoubleClickToSeek: state.enableDoubleClickToSeek.state, manualSourceSelection: state.manualSourceSelection.state, + enableDoubleClickToSeek: state.enableDoubleClickToSeek.state, }); } if (state.deviceName.changed) { @@ -393,9 +393,9 @@ export function SettingsPage() { setForceCompactEpisodeView(state.forceCompactEpisodeView.state); setEnableLowPerformanceMode(state.enableLowPerformanceMode.state); setEnableHoldToBoost(state.enableHoldToBoost.state); - setEnableDoubleClickToSeek(state.enableDoubleClickToSeek.state); setHomeSectionOrder(state.homeSectionOrder.state); setManualSourceSelection(state.manualSourceSelection.state); + setEnableDoubleClickToSeek(state.enableDoubleClickToSeek.state); if (state.profile.state) { updateProfile(state.profile.state); @@ -442,6 +442,7 @@ export function SettingsPage() { setEnableHoldToBoost, setHomeSectionOrder, setManualSourceSelection, + setEnableDoubleClickToSeek, ]); return ( @@ -494,10 +495,10 @@ export function SettingsPage() { setEnableLowPerformanceMode={state.enableLowPerformanceMode.set} enableHoldToBoost={state.enableHoldToBoost.state} setEnableHoldToBoost={state.enableHoldToBoost.set} - enableDoubleClickToSeek={state.enableDoubleClickToSeek.state} - setEnableDoubleClickToSeek={state.enableDoubleClickToSeek.set} manualSourceSelection={state.manualSourceSelection.state} setManualSourceSelection={state.manualSourceSelection.set} + enableDoubleClickToSeek={state.enableDoubleClickToSeek.state} + setEnableDoubleClickToSeek={state.enableDoubleClickToSeek.set} />
diff --git a/src/pages/parts/auth/VerifyPassphrasePart.tsx b/src/pages/parts/auth/VerifyPassphrasePart.tsx index d3f9b77d..3dabcdba 100644 --- a/src/pages/parts/auth/VerifyPassphrasePart.tsx +++ b/src/pages/parts/auth/VerifyPassphrasePart.tsx @@ -56,6 +56,7 @@ export function VerifyPassphrase(props: VerifyPassphraseProps) { febboxKey: store.febboxKey, enableLowPerformanceMode: store.enableLowPerformanceMode, enableNativeSubtitles: store.enableNativeSubtitles, + enableDoubleClickToSeek: store.enableDoubleClickToSeek, })); const backendUrl = useBackendUrl(); diff --git a/src/pages/parts/settings/PreferencesPart.tsx b/src/pages/parts/settings/PreferencesPart.tsx index f523ecc0..03b03ffd 100644 --- a/src/pages/parts/settings/PreferencesPart.tsx +++ b/src/pages/parts/settings/PreferencesPart.tsx @@ -31,10 +31,10 @@ export function PreferencesPart(props: { setEnableLowPerformanceMode: (v: boolean) => void; enableHoldToBoost: boolean; setEnableHoldToBoost: (v: boolean) => void; - enableDoubleClickToSeek: boolean; - setEnableDoubleClickToSeek: (v: boolean) => void; manualSourceSelection: boolean; setManualSourceSelection: (v: boolean) => void; + enableDoubleClickToSeek: boolean; + setEnableDoubleClickToSeek: (v: boolean) => void; }) { const { t } = useTranslation(); const sorted = sortLangCodes(appLanguageOptions.map((item) => item.code)); diff --git a/src/stores/preferences/index.tsx b/src/stores/preferences/index.tsx index f1c2129e..0aa71d19 100644 --- a/src/stores/preferences/index.tsx +++ b/src/stores/preferences/index.tsx @@ -22,9 +22,9 @@ export interface PreferencesStore { enableLowPerformanceMode: boolean; enableNativeSubtitles: boolean; enableHoldToBoost: boolean; - enableDoubleClickToSeek: boolean; homeSectionOrder: string[]; manualSourceSelection: boolean; + enableDoubleClickToSeek: boolean; setEnableThumbnails(v: boolean): void; setEnableAutoplay(v: boolean): void; @@ -45,9 +45,9 @@ export interface PreferencesStore { setEnableLowPerformanceMode(v: boolean): void; setEnableNativeSubtitles(v: boolean): void; setEnableHoldToBoost(v: boolean): void; - setEnableDoubleClickToSeek(v: boolean): void; setHomeSectionOrder(v: string[]): void; setManualSourceSelection(v: boolean): void; + setEnableDoubleClickToSeek(v: boolean): void; } export const usePreferencesStore = create( @@ -72,9 +72,9 @@ export const usePreferencesStore = create( enableLowPerformanceMode: false, enableNativeSubtitles: false, enableHoldToBoost: true, - enableDoubleClickToSeek: false, homeSectionOrder: ["watching", "bookmarks"], manualSourceSelection: false, + enableDoubleClickToSeek: false, setEnableThumbnails(v) { set((s) => { s.enableThumbnails = v; @@ -170,11 +170,6 @@ export const usePreferencesStore = create( s.enableHoldToBoost = v; }); }, - setEnableDoubleClickToSeek(v) { - set((s) => { - s.enableDoubleClickToSeek = v; - }); - }, setHomeSectionOrder(v) { set((s) => { s.homeSectionOrder = v; @@ -185,6 +180,11 @@ export const usePreferencesStore = create( s.manualSourceSelection = v; }); }, + setEnableDoubleClickToSeek(v) { + set((s) => { + s.enableDoubleClickToSeek = v; + }); + }, })), { name: "__MW::preferences",