diff options
Diffstat (limited to 'packages/app/src/context')
| -rw-r--r-- | packages/app/src/context/language.tsx | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/packages/app/src/context/language.tsx b/packages/app/src/context/language.tsx index b21ec6d3c..905305d3a 100644 --- a/packages/app/src/context/language.tsx +++ b/packages/app/src/context/language.tsx @@ -174,6 +174,10 @@ function detectLocale(): Locale { return "en" } +function normalizeLocale(value: string): Locale { + return LOCALES.includes(value as Locale) ? (value as Locale) : "en" +} + export const { use: useLanguage, provider: LanguageProvider } = createSimpleContext({ name: "Language", init: () => { @@ -184,15 +188,7 @@ export const { use: useLanguage, provider: LanguageProvider } = createSimpleCont }), ) - const locale = createMemo<Locale>(() => - LOCALES.includes(store.locale as Locale) ? (store.locale as Locale) : "en", - ) - - createEffect(() => { - const current = locale() - if (store.locale === current) return - setStore("locale", current) - }) + const locale = createMemo<Locale>(() => normalizeLocale(store.locale)) const dict = createMemo<Dictionary>(() => DICT[locale()]) @@ -213,7 +209,7 @@ export const { use: useLanguage, provider: LanguageProvider } = createSimpleCont label, t, setLocale(next: Locale) { - setStore("locale", next) + setStore("locale", normalizeLocale(next)) }, } }, |
