From 165ebce8d1226cde22a36df28c0c45c2d79e2423 Mon Sep 17 00:00:00 2001 From: filpgame Date: Sat, 16 May 2026 01:14:57 -0300 Subject: [PATCH] fix: settings page resets UI language to server default When navigating to the Settings page, useSettingsState called i18n.changeLanguage() with the server-stored general_default_language value on every settings query resolution. This caused the admin UI language to reset to the server default (e.g. "en") regardless of the language the user had selected via the LanguageSelector. The general_default_language setting is intended as the default for public galleries, not for controlling the admin UI language. The admin UI language is already persisted via localStorage through i18next-browser-languagedetector and should not be overridden by server settings. Remove the i18n.changeLanguage() call from the useEffect that initialises settings state from the API response. --- frontend/src/features/settings/hooks/useSettingsState.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/frontend/src/features/settings/hooks/useSettingsState.ts b/frontend/src/features/settings/hooks/useSettingsState.ts index a1ad55c7..dcbc3ad8 100644 --- a/frontend/src/features/settings/hooks/useSettingsState.ts +++ b/frontend/src/features/settings/hooks/useSettingsState.ts @@ -70,7 +70,7 @@ export interface SeoSettings { export function useSettingsState() { const queryClient = useQueryClient(); - const { t, i18n } = useTranslation(); + const { t } = useTranslation(); const { updateUserProfile } = useAdminAuth(); // Fetch settings @@ -164,10 +164,6 @@ export function useSettingsState() { // Initialize settings from API useEffect(() => { if (settings) { - if (settings.general_default_language && settings.general_default_language !== i18n.language) { - i18n.changeLanguage(settings.general_default_language); - } - setGeneralSettings({ site_url: settings.general_site_url || '', default_expiration_days: toNumber(settings.general_default_expiration_days, 30), @@ -236,7 +232,7 @@ export function useSettingsState() { sitemap_url: settings.seo_sitemap_url || '' }); } - }, [settings, i18n]); + }, [settings]); useEffect(() => { if (adminProfile) {