feat: add loading state to AppI18nProvider for locale readiness
This commit is contained in:
@@ -31,12 +31,14 @@ const LocaleContext = createContext<LocaleContextValue>({
|
||||
|
||||
export function AppI18nProvider({ children }: { children: ReactNode }) {
|
||||
const [locale, setLocaleState] = useState<AppLocale>(DEFAULT_LOCALE)
|
||||
const [isLocaleReady, setIsLocaleReady] = useState(false)
|
||||
|
||||
useEffect(() => {
|
||||
const storedLocale = readStoredLocale()
|
||||
setLocaleState(storedLocale)
|
||||
document.documentElement.lang = storedLocale
|
||||
document.title = translateMessage(storedLocale, "app.metadataTitle")
|
||||
setIsLocaleReady(true)
|
||||
}, [])
|
||||
|
||||
useEffect(() => {
|
||||
@@ -57,6 +59,10 @@ export function AppI18nProvider({ children }: { children: ReactNode }) {
|
||||
[locale]
|
||||
)
|
||||
|
||||
if (!isLocaleReady) {
|
||||
return null
|
||||
}
|
||||
|
||||
return (
|
||||
<LocaleContext.Provider value={value}>
|
||||
{children}
|
||||
|
||||
Reference in New Issue
Block a user