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",