From d0db810e2a08ceddce163e6a4d7cbcb358c371b1 Mon Sep 17 00:00:00 2001 From: Pas <74743263+Pasithea0@users.noreply.github.com> Date: Sun, 19 Oct 2025 18:43:35 -0600 Subject: [PATCH] add remaining (missing) settings to all the parts --- src/backend/accounts/settings.ts | 3 + src/hooks/auth/useAuthData.ts | 38 +++++++++++++ src/hooks/useSettingsState.ts | 56 +++++++++++++++++++ src/pages/Settings.tsx | 22 ++++++++ src/pages/parts/auth/VerifyPassphrasePart.tsx | 7 +++ 5 files changed, 126 insertions(+) diff --git a/src/backend/accounts/settings.ts b/src/backend/accounts/settings.ts index 835e8610..50700700 100644 --- a/src/backend/accounts/settings.ts +++ b/src/backend/accounts/settings.ts @@ -29,6 +29,7 @@ export interface SettingsInput { enableLowPerformanceMode?: boolean; enableNativeSubtitles?: boolean; enableHoldToBoost?: boolean; + homeSectionOrder?: string[]; manualSourceSelection?: boolean; enableDoubleClickToSeek?: boolean; } @@ -48,6 +49,7 @@ export interface SettingsResponse { enableDetailsModal?: boolean; enableImageLogos?: boolean; enableCarouselView?: boolean; + forceCompactEpisodeView?: boolean; sourceOrder?: string[]; enableSourceOrder?: boolean; disabledSources?: string[]; @@ -58,6 +60,7 @@ export interface SettingsResponse { enableLowPerformanceMode?: boolean; enableNativeSubtitles?: boolean; enableHoldToBoost?: boolean; + homeSectionOrder?: string[]; manualSourceSelection?: boolean; enableDoubleClickToSeek?: boolean; } diff --git a/src/hooks/auth/useAuthData.ts b/src/hooks/auth/useAuthData.ts index 31f19a0d..ea573788 100644 --- a/src/hooks/auth/useAuthData.ts +++ b/src/hooks/auth/useAuthData.ts @@ -32,6 +32,7 @@ export function useAuthData() { (s) => s.importSubtitleLanguage, ); const setFebboxKey = usePreferencesStore((s) => s.setFebboxKey); + const setRealDebridKey = usePreferencesStore((s) => s.setRealDebridKey); const replaceBookmarks = useBookmarkStore((s) => s.replaceBookmarks); const replaceItems = useProgressStore((s) => s.replaceItems); @@ -50,11 +51,17 @@ export function useAuthData() { const setEnableCarouselView = usePreferencesStore( (s) => s.setEnableCarouselView, ); + const setForceCompactEpisodeView = usePreferencesStore( + (s) => s.setForceCompactEpisodeView, + ); const setSourceOrder = usePreferencesStore((s) => s.setSourceOrder); const setEnableSourceOrder = usePreferencesStore( (s) => s.setEnableSourceOrder, ); const setDisabledSources = usePreferencesStore((s) => s.setDisabledSources); + const setEmbedOrder = usePreferencesStore((s) => s.setEmbedOrder); + const setEnableEmbedOrder = usePreferencesStore((s) => s.setEnableEmbedOrder); + const setDisabledEmbeds = usePreferencesStore((s) => s.setDisabledEmbeds); const setProxyTmdb = usePreferencesStore((s) => s.setProxyTmdb); @@ -67,6 +74,7 @@ export function useAuthData() { const setEnableHoldToBoost = usePreferencesStore( (s) => s.setEnableHoldToBoost, ); + const setHomeSectionOrder = usePreferencesStore((s) => s.setHomeSectionOrder); const setEnableDoubleClickToSeek = usePreferencesStore( (s) => s.setEnableDoubleClickToSeek, ); @@ -173,6 +181,10 @@ export function useAuthData() { setEnableCarouselView(settings.enableCarouselView); } + if (settings.forceCompactEpisodeView !== undefined) { + setForceCompactEpisodeView(settings.forceCompactEpisodeView); + } + if (settings.sourceOrder !== undefined) { setSourceOrder(settings.sourceOrder); } @@ -185,6 +197,18 @@ export function useAuthData() { setDisabledSources(settings.disabledSources); } + if (settings.embedOrder !== undefined) { + setEmbedOrder(settings.embedOrder); + } + + if (settings.enableEmbedOrder !== undefined) { + setEnableEmbedOrder(settings.enableEmbedOrder); + } + + if (settings.disabledEmbeds !== undefined) { + setDisabledEmbeds(settings.disabledEmbeds); + } + if (settings.proxyTmdb !== undefined) { setProxyTmdb(settings.proxyTmdb); } @@ -193,6 +217,10 @@ export function useAuthData() { setFebboxKey(settings.febboxKey); } + if (settings.realDebridKey !== undefined) { + setRealDebridKey(settings.realDebridKey); + } + if (settings.enableLowPerformanceMode !== undefined) { setEnableLowPerformanceMode(settings.enableLowPerformanceMode); } @@ -205,6 +233,10 @@ export function useAuthData() { setEnableHoldToBoost(settings.enableHoldToBoost); } + if (settings.homeSectionOrder !== undefined) { + setHomeSectionOrder(settings.homeSectionOrder); + } + if (settings.manualSourceSelection !== undefined) { setManualSourceSelection(settings.manualSourceSelection); } @@ -228,14 +260,20 @@ export function useAuthData() { setEnableDetailsModal, setEnableImageLogos, setEnableCarouselView, + setForceCompactEpisodeView, setSourceOrder, setEnableSourceOrder, setDisabledSources, + setEmbedOrder, + setEnableEmbedOrder, + setDisabledEmbeds, setProxyTmdb, setFebboxKey, + setRealDebridKey, setEnableLowPerformanceMode, setEnableNativeSubtitles, setEnableHoldToBoost, + setHomeSectionOrder, setManualSourceSelection, setEnableDoubleClickToSeek, ], diff --git a/src/hooks/useSettingsState.ts b/src/hooks/useSettingsState.ts index e63f1203..0deace36 100644 --- a/src/hooks/useSettingsState.ts +++ b/src/hooks/useSettingsState.ts @@ -60,12 +60,16 @@ export function useSettingsState( sourceOrder: string[], enableSourceOrder: boolean, disabledSources: string[], + embedOrder: string[], + enableEmbedOrder: boolean, + disabledEmbeds: string[], proxyTmdb: boolean, enableSkipCredits: boolean, enableImageLogos: boolean, enableCarouselView: boolean, forceCompactEpisodeView: boolean, enableLowPerformanceMode: boolean, + enableNativeSubtitles: boolean, enableHoldToBoost: boolean, homeSectionOrder: string[], manualSourceSelection: boolean, @@ -165,6 +169,24 @@ export function useSettingsState( resetDisabledSources, disabledSourcesChanged, ] = useDerived(disabledSources); + const [ + embedOrderState, + setEmbedOrderState, + resetEmbedOrder, + embedOrderChanged, + ] = useDerived(embedOrder); + const [ + enableEmbedOrderState, + setEnableEmbedOrderState, + resetEnableEmbedOrder, + enableEmbedOrderChanged, + ] = useDerived(enableEmbedOrder); + const [ + disabledEmbedsState, + setDisabledEmbedsState, + resetDisabledEmbeds, + disabledEmbedsChanged, + ] = useDerived(disabledEmbeds); const [proxyTmdbState, setProxyTmdbState, resetProxyTmdb, proxyTmdbChanged] = useDerived(proxyTmdb); const [ @@ -185,6 +207,12 @@ export function useSettingsState( resetEnableLowPerformanceMode, enableLowPerformanceModeChanged, ] = useDerived(enableLowPerformanceMode); + const [ + enableNativeSubtitlesState, + setEnableNativeSubtitlesState, + resetEnableNativeSubtitles, + enableNativeSubtitlesChanged, + ] = useDerived(enableNativeSubtitles); const [ enableHoldToBoostState, setEnableHoldToBoostState, @@ -231,10 +259,14 @@ export function useSettingsState( resetSourceOrder(); resetEnableSourceOrder(); resetDisabledSources(); + resetEmbedOrder(); + resetEnableEmbedOrder(); + resetDisabledEmbeds(); resetProxyTmdb(); resetEnableCarouselView(); resetForceCompactEpisodeView(); resetEnableLowPerformanceMode(); + resetEnableNativeSubtitles(); resetEnableHoldToBoost(); resetHomeSectionOrder(); resetManualSourceSelection(); @@ -261,10 +293,14 @@ export function useSettingsState( sourceOrderChanged || enableSourceOrderChanged || disabledSourcesChanged || + embedOrderChanged || + enableEmbedOrderChanged || + disabledEmbedsChanged || proxyTmdbChanged || enableCarouselViewChanged || forceCompactEpisodeViewChanged || enableLowPerformanceModeChanged || + enableNativeSubtitlesChanged || enableHoldToBoostChanged || homeSectionOrderChanged || manualSourceSelectionChanged || @@ -373,6 +409,21 @@ export function useSettingsState( set: setDisabledSourcesState, changed: disabledSourcesChanged, }, + embedOrder: { + state: embedOrderState, + set: setEmbedOrderState, + changed: embedOrderChanged, + }, + enableEmbedOrder: { + state: enableEmbedOrderState, + set: setEnableEmbedOrderState, + changed: enableEmbedOrderChanged, + }, + disabledEmbeds: { + state: disabledEmbedsState, + set: setDisabledEmbedsState, + changed: disabledEmbedsChanged, + }, enableCarouselView: { state: enableCarouselViewState, set: setEnableCarouselViewState, @@ -388,6 +439,11 @@ export function useSettingsState( set: setEnableLowPerformanceModeState, changed: enableLowPerformanceModeChanged, }, + enableNativeSubtitles: { + state: enableNativeSubtitlesState, + set: setEnableNativeSubtitlesState, + changed: enableNativeSubtitlesChanged, + }, enableHoldToBoost: { state: enableHoldToBoostState, set: setEnableHoldToBoostState, diff --git a/src/pages/Settings.tsx b/src/pages/Settings.tsx index 8844a2f1..67589f00 100644 --- a/src/pages/Settings.tsx +++ b/src/pages/Settings.tsx @@ -159,6 +159,16 @@ export function SettingsPage() { const disabledSources = usePreferencesStore((s) => s.disabledSources); const setDisabledSources = usePreferencesStore((s) => s.setDisabledSources); + // These are commented because the EmbedOrderPart is on the admin page and not on the settings page. + const embedOrder = usePreferencesStore((s) => s.embedOrder); + // const setEmbedOrder = usePreferencesStore((s) => s.setEmbedOrder); + + const enableEmbedOrder = usePreferencesStore((s) => s.enableEmbedOrder); + // const setEnableEmbedOrder = usePreferencesStore((s) => s.setEnableEmbedOrder); + + const disabledEmbeds = usePreferencesStore((s) => s.disabledEmbeds); + // const setDisabledEmbeds = usePreferencesStore((s) => s.setDisabledEmbeds); + const enableDiscover = usePreferencesStore((s) => s.enableDiscover); const setEnableDiscover = usePreferencesStore((s) => s.setEnableDiscover); @@ -195,6 +205,14 @@ export function SettingsPage() { (s) => s.setEnableLowPerformanceMode, ); + // These are commented because the NativeSubtitlesPart is accessable though the atoms caption style menu and not on the settings page. + const enableNativeSubtitles = usePreferencesStore( + (s) => s.enableNativeSubtitles, + ); + // const setEnableNativeSubtitles = usePreferencesStore( + // (s) => s.setEnableNativeSubtitles, + // ); + const enableHoldToBoost = usePreferencesStore((s) => s.enableHoldToBoost); const setEnableHoldToBoost = usePreferencesStore( (s) => s.setEnableHoldToBoost, @@ -263,12 +281,16 @@ export function SettingsPage() { sourceOrder, enableSourceOrder, disabledSources, + embedOrder, + enableEmbedOrder, + disabledEmbeds, proxyTmdb, enableSkipCredits, enableImageLogos, enableCarouselView, forceCompactEpisodeView, enableLowPerformanceMode, + enableNativeSubtitles, enableHoldToBoost, homeSectionOrder, manualSourceSelection, diff --git a/src/pages/parts/auth/VerifyPassphrasePart.tsx b/src/pages/parts/auth/VerifyPassphrasePart.tsx index 68a630b3..8490394b 100644 --- a/src/pages/parts/auth/VerifyPassphrasePart.tsx +++ b/src/pages/parts/auth/VerifyPassphrasePart.tsx @@ -50,13 +50,20 @@ export function VerifyPassphrase(props: VerifyPassphraseProps) { enableDetailsModal: store.enableDetailsModal, enableImageLogos: store.enableImageLogos, enableCarouselView: store.enableCarouselView, + forceCompactEpisodeView: store.forceCompactEpisodeView, sourceOrder: store.sourceOrder, enableSourceOrder: store.enableSourceOrder, disabledSources: store.disabledSources, + embedOrder: store.embedOrder, + enableEmbedOrder: store.enableEmbedOrder, + disabledEmbeds: store.disabledEmbeds, proxyTmdb: store.proxyTmdb, febboxKey: store.febboxKey, + realDebridKey: store.realDebridKey, enableLowPerformanceMode: store.enableLowPerformanceMode, enableNativeSubtitles: store.enableNativeSubtitles, + enableHoldToBoost: store.enableHoldToBoost, + homeSectionOrder: store.homeSectionOrder, enableDoubleClickToSeek: store.enableDoubleClickToSeek, manualSourceSelection: store.manualSourceSelection, }));