about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2023-12-11 17:34:18 -0600
committerGitHub <noreply@github.com>2023-12-11 15:34:18 -0800
commitbae63f9bf0dbc40dd7ea99fde714e92b9fc83dc3 (patch)
tree8b4d06030dbd0603edb9345ba55c64eea44d4191 /src
parent3592f6f50b98c6bc81ebbf50f11f85df23376e53 (diff)
downloadvoidsky-bae63f9bf0dbc40dd7ea99fde714e92b9fc83dc3.tar.zst
Patch bad migration, sanitize bad value (#2179)
Diffstat (limited to 'src')
-rw-r--r--src/locale/helpers.ts12
-rw-r--r--src/locale/i18n.ts3
-rw-r--r--src/locale/i18n.web.ts3
-rw-r--r--src/state/persisted/legacy.ts3
4 files changed, 18 insertions, 3 deletions
diff --git a/src/locale/helpers.ts b/src/locale/helpers.ts
index 65db32f2f..4d01459ab 100644
--- a/src/locale/helpers.ts
+++ b/src/locale/helpers.ts
@@ -84,3 +84,15 @@ export function getTranslatorLink(text: string, lang: string): string {
     text,
   )}`
 }
+
+export function sanitizeAppLanguageSetting(appLanguage: string) {
+  const langs = appLanguage.split(',').filter(Boolean)
+
+  for (const lang of langs) {
+    if (['en', 'hi'].includes(lang)) {
+      return lang
+    }
+  }
+
+  return 'en'
+}
diff --git a/src/locale/i18n.ts b/src/locale/i18n.ts
index 4fe3cedd6..93d21f381 100644
--- a/src/locale/i18n.ts
+++ b/src/locale/i18n.ts
@@ -4,6 +4,7 @@ import {i18n} from '@lingui/core'
 import {useLanguagePrefs} from '#/state/preferences'
 import {messages as messagesEn} from '#/locale/locales/en/messages'
 import {messages as messagesHi} from '#/locale/locales/hi/messages'
+import {sanitizeAppLanguageSetting} from '#/locale/helpers'
 
 export const locales = {
   en: 'English',
@@ -26,6 +27,6 @@ export async function dynamicActivate(locale: string) {
 export async function useLocaleLanguage() {
   const {appLanguage} = useLanguagePrefs()
   useEffect(() => {
-    dynamicActivate(appLanguage)
+    dynamicActivate(sanitizeAppLanguageSetting(appLanguage))
   }, [appLanguage])
 }
diff --git a/src/locale/i18n.web.ts b/src/locale/i18n.web.ts
index 4e8b8d95d..bc484f303 100644
--- a/src/locale/i18n.web.ts
+++ b/src/locale/i18n.web.ts
@@ -2,6 +2,7 @@ import {useEffect} from 'react'
 import {i18n} from '@lingui/core'
 
 import {useLanguagePrefs} from '#/state/preferences'
+import {sanitizeAppLanguageSetting} from '#/locale/helpers'
 
 export const locales = {
   en: 'English',
@@ -29,6 +30,6 @@ export async function dynamicActivate(locale: string) {
 export async function useLocaleLanguage() {
   const {appLanguage} = useLanguagePrefs()
   useEffect(() => {
-    dynamicActivate(appLanguage)
+    dynamicActivate(sanitizeAppLanguageSetting(appLanguage))
   }, [appLanguage])
 }
diff --git a/src/state/persisted/legacy.ts b/src/state/persisted/legacy.ts
index d70263746..f689c3d06 100644
--- a/src/state/persisted/legacy.ts
+++ b/src/state/persisted/legacy.ts
@@ -94,7 +94,8 @@ export function transform(legacy: Partial<LegacySchema>): Schema {
         legacy.preferences?.postLanguageHistory ||
         defaults.languagePrefs.postLanguageHistory,
       appLanguage:
-        legacy.preferences?.postLanguage || defaults.languagePrefs.appLanguage,
+        legacy.preferences?.primaryLanguage ||
+        defaults.languagePrefs.appLanguage,
     },
     requireAltTextEnabled:
       legacy.preferences?.requireAltTextEnabled ||