i18n settings improvements (#2184)

* Handle language selector

* Improve type safety

* Add a little more safety

* Update comment
This commit is contained in:
Eric Bailey 2023-12-12 12:42:11 -06:00 committed by GitHub
parent d82b1a1047
commit c6ab6e8b8e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 79 additions and 39 deletions

View file

@ -1,5 +1,6 @@
import React from 'react'
import * as persisted from '#/state/persisted'
import {AppLanguage} from '#/locale/languages'
type SetStateCb = (
s: persisted.Schema['languagePrefs'],
@ -11,7 +12,7 @@ type ApiContext = {
toggleContentLanguage: (code2: string) => void
togglePostLanguage: (code2: string) => void
savePostLanguageToHistory: () => void
setAppLanguage: (code2: string) => void
setAppLanguage: (code2: AppLanguage) => void
}
const stateContext = React.createContext<StateContext>(
@ -23,7 +24,7 @@ const apiContext = React.createContext<ApiContext>({
toggleContentLanguage: (_: string) => {},
togglePostLanguage: (_: string) => {},
savePostLanguageToHistory: () => {},
setAppLanguage: (_: string) => {},
setAppLanguage: (_: AppLanguage) => {},
})
export function Provider({children}: React.PropsWithChildren<{}>) {
@ -106,7 +107,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
.slice(0, 6),
}))
},
setAppLanguage(code2: string) {
setAppLanguage(code2: AppLanguage) {
setStateWrapped(s => ({...s, appLanguage: code2}))
},
}),