1import { GTProvider } from "gt-react";
2import { useSyncExternalStore, type ReactNode } from "react";
3
4import { getI18nSnapshot, persistGTLocale, subscribeI18n } from "./runtime";
5
6const reloadToSetting = (state: { readonly locale: string }) => persistGTLocale(state.locale);
7
8export function I18nProvider({ children }: { readonly children: ReactNode }) {
9 const { locale, translations } = useSyncExternalStore(subscribeI18n, getI18nSnapshot);
10 return (
11 <GTProvider locale={locale} translations={translations} _reload={reloadToSetting}>
12 {children}
13 </GTProvider>
14 );
15}