UNPKG

kawkab-frontend

Version:

Kawkab frontend is a frontend library for the Kawkab framework

23 lines (22 loc) 1.1 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { useEffect, useState } from 'react'; import { I18nextProvider } from 'react-i18next'; import { useNavigate, useLocation } from 'react-router-dom'; import { initI18n, hydrateLanguage, updateDocumentLanguage } from '../utils/i18n'; export function TranslationProvider({ children, resources, defaultLang = 'en', currentLang, cookieHeader, }) { const navigate = useNavigate(); const location = useLocation(); const [isInitialized, setIsInitialized] = useState(false); const i18nInstance = initI18n(resources, defaultLang, currentLang, cookieHeader); useEffect(() => { if (!isInitialized) { hydrateLanguage(() => { updateDocumentLanguage(); setIsInitialized(true); // reload the page to apply the new language (only on first initialization) navigate(location.pathname, { replace: true }); }); } }, [navigate, location, isInitialized]); return (_jsx(I18nextProvider, { i18n: i18nInstance, children: children })); }