feat: add loading state to AppI18nProvider for locale readiness

This commit is contained in:
mlogclub
2026-06-13 10:18:19 +08:00
parent 164953d56d
commit 0b78104978
+6
View File
@@ -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}