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.
This commit is contained in:
filpgame
2026-05-16 01:14:57 -03:00
parent 3a490844e1
commit 165ebce8d1
@@ -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) {