From d0161379899bf1b892a8caa3d966350c281d429b Mon Sep 17 00:00:00 2001 From: qtchaos <72168435+qtchaos@users.noreply.github.com> Date: Fri, 29 Dec 2023 23:58:15 +0200 Subject: [PATCH] Add Worker URLs syncing with backend --- src/backend/accounts/settings.ts | 2 ++ src/hooks/auth/useAuthData.ts | 6 ++++++ src/pages/Settings.tsx | 9 +++++++-- src/pages/parts/auth/VerifyPassphrasePart.tsx | 1 + 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/backend/accounts/settings.ts b/src/backend/accounts/settings.ts index d12f7b07..c749795b 100644 --- a/src/backend/accounts/settings.ts +++ b/src/backend/accounts/settings.ts @@ -7,12 +7,14 @@ export interface SettingsInput { applicationLanguage?: string; applicationTheme?: string | null; defaultSubtitleLanguage?: string; + proxyUrls?: string[] | null; } export interface SettingsResponse { applicationTheme?: string | null; applicationLanguage?: string | null; defaultSubtitleLanguage?: string | null; + proxyUrls?: string[] | null; } export function updateSettings( diff --git a/src/hooks/auth/useAuthData.ts b/src/hooks/auth/useAuthData.ts index d38ba136..ae33faac 100644 --- a/src/hooks/auth/useAuthData.ts +++ b/src/hooks/auth/useAuthData.ts @@ -20,6 +20,7 @@ export function useAuthData() { const loggedIn = !!useAuthStore((s) => s.account); const setAccount = useAuthStore((s) => s.setAccount); const removeAccount = useAuthStore((s) => s.removeAccount); + const setProxySet = useAuthStore((s) => s.setProxySet); const clearBookmarks = useBookmarkStore((s) => s.clear); const clearProgress = useProgressStore((s) => s.clear); const setTheme = useThemeStore((s) => s.setTheme); @@ -80,6 +81,10 @@ export function useAuthData() { if (settings.applicationTheme) { setTheme(settings.applicationTheme); } + + if (settings.proxyUrls) { + setProxySet(settings.proxyUrls); + } }, [ replaceBookmarks, @@ -87,6 +92,7 @@ export function useAuthData() { setAppLanguage, importSubtitleLanguage, setTheme, + setProxySet, ], ); diff --git a/src/pages/Settings.tsx b/src/pages/Settings.tsx index 3d40a4cf..0fb27d85 100644 --- a/src/pages/Settings.tsx +++ b/src/pages/Settings.tsx @@ -140,10 +140,15 @@ export function SettingsPage() { const saveChanges = useCallback(async () => { if (account) { - if (state.appLanguage.changed || state.theme.changed) { + if ( + state.appLanguage.changed || + state.theme.changed || + state.proxyUrls.changed + ) { await updateSettings(backendUrl, account, { applicationLanguage: state.appLanguage.state, applicationTheme: state.theme.state, + proxyUrls: state.proxyUrls.state?.filter((v) => v !== "") ?? null, }); } if (state.deviceName.changed) { @@ -166,7 +171,7 @@ export function SettingsPage() { setAppLanguage(state.appLanguage.state); setTheme(state.theme.state); setSubStyling(state.subtitleStyling.state); - setProxySet(state.proxyUrls.state); + setProxySet(state.proxyUrls.state?.filter((v) => v !== "") ?? null); if (state.profile.state) { updateProfile(state.profile.state); diff --git a/src/pages/parts/auth/VerifyPassphrasePart.tsx b/src/pages/parts/auth/VerifyPassphrasePart.tsx index ab64b51c..2f040ccb 100644 --- a/src/pages/parts/auth/VerifyPassphrasePart.tsx +++ b/src/pages/parts/auth/VerifyPassphrasePart.tsx @@ -74,6 +74,7 @@ export function VerifyPassphrase(props: VerifyPassphraseProps) { applicationLanguage, defaultSubtitleLanguage: defaultSubtitleLanguage ?? undefined, applicationTheme: applicationTheme ?? undefined, + proxyUrls: undefined, }); await restore(account);