// app.jsx — production entry point.
// Mounts <App /> into #root with hash-based routing and language provider.

function App() {
  const [lang, setLang] = React.useState(() => {
    try { return localStorage.getItem('dvp_lang') || 'ru'; } catch { return 'ru'; }
  });
  React.useEffect(() => {
    try { localStorage.setItem('dvp_lang', lang); } catch {}
    document.documentElement.lang = lang;
  }, [lang]);

  const path = useRoute();
  const r = resolvePage(path);

  return (
    <LangProvider lang={lang} setLang={setLang}>
      <SeoBinding path={path} />
      {r.kind === 'home'
        ? <PageBody path={path} />
        : <PageShell activePath={path}><PageBody path={path} /></PageShell>}
    </LangProvider>
  );
}

// Inside <LangProvider> so it can read the current language from context.
function SeoBinding({ path }) { useSeo(path); return null; }

const __dvpMount = () => {
  const el = document.getElementById('root');
  if (!el) return;
  ReactDOM.createRoot(el).render(<App />);
};
if (document.readyState === 'loading') {
  document.addEventListener('DOMContentLoaded', __dvpMount);
} else {
  __dvpMount();
}
