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:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user