/* global React */ const { createContext, useContext, useEffect, useMemo, useState } = React; const LanguageContext = createContext({ language: 'en', isPortuguese: false, setLanguage: () => {} }); function LanguageProvider({ children }) { const [language, setLanguage] = useState(() => { try { return localStorage.getItem('tb-language') === 'pt-BR' ? 'pt-BR' : 'en'; } catch (_) { return 'en'; } }); useEffect(() => { document.documentElement.lang = language; try { localStorage.setItem('tb-language', language); } catch (_) {} }, [language]); const value = useMemo(() => ({ language, isPortuguese: language === 'pt-BR', setLanguage, }), [language]); return {children}; } function useLanguage() { return useContext(LanguageContext); } function LanguageToggle({ dark = false }) { const { language, setLanguage } = useLanguage(); const fg = dark ? '#F4EFE5' : 'var(--asphalt)'; const border = dark ? 'rgba(244,239,229,0.35)' : 'var(--line-strong)'; return (
{[ { code: 'en', label: 'EN' }, { code: 'pt-BR', label: 'PT-BR' }, ].map(option => { const active = language === option.code; return ( ); })}
); } Object.assign(window, { LanguageProvider, useLanguage, LanguageToggle });