mirror of
https://github.com/p-stream/p-stream.git
synced 2026-03-11 17:55:33 +00:00
fix double click to seek build
This commit is contained in:
parent
ca921612f0
commit
da67d85760
8 changed files with 57 additions and 43 deletions
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -6,12 +6,16 @@ export function Seek(props: { direction: SeekDirection }) {
|
|||
return (
|
||||
<div
|
||||
className={`pointer-events-none flex h-20 w-20 items-center justify-center rounded-full bg-black bg-opacity-50 text-white ${
|
||||
props.direction === "backward" ? "animate-seek-left" : "animate-seek-right"
|
||||
props.direction === "backward"
|
||||
? "animate-seek-left"
|
||||
: "animate-seek-right"
|
||||
}`}
|
||||
>
|
||||
<Icon
|
||||
icon={
|
||||
props.direction === "backward" ? Icons.SKIP_BACKWARD : Icons.SKIP_FORWARD
|
||||
props.direction === "backward"
|
||||
? Icons.SKIP_BACKWARD
|
||||
: Icons.SKIP_FORWARD
|
||||
}
|
||||
className="text-3xl"
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
],
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 (
|
||||
<SubPageLayout>
|
||||
|
|
@ -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}
|
||||
/>
|
||||
</div>
|
||||
<div id="settings-appearance" className="mt-28">
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ export function VerifyPassphrase(props: VerifyPassphraseProps) {
|
|||
febboxKey: store.febboxKey,
|
||||
enableLowPerformanceMode: store.enableLowPerformanceMode,
|
||||
enableNativeSubtitles: store.enableNativeSubtitles,
|
||||
enableDoubleClickToSeek: store.enableDoubleClickToSeek,
|
||||
}));
|
||||
|
||||
const backendUrl = useBackendUrl();
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
Loading…
Reference in a new issue