/* ============================================================
STREAM WITH LIEN — Nav, Footer, Language toggle
============================================================ */
/* ---------- Language toggle ---------- */
function LangToggle({ lang, setLang, compact }) {
return (
);
}
/* ---------- Top navigation ---------- */
function Nav({ route, go, lang, setLang, live, ui, navItems, social }) {
const [open, setOpen] = useState(false);
const [scrolled, setScrolled] = useState(false);
useEffect(() => {
const onScroll = () => setScrolled(window.scrollY > 12);
onScroll();
window.addEventListener("scroll", onScroll, { passive: true });
return () => window.removeEventListener("scroll", onScroll);
}, []);
useEffect(() => {
document.body.style.overflow = open ? "hidden" : "";
return () => { document.body.style.overflow = ""; };
}, [open]);
const navTo = (id) => { go(id); setOpen(false); };
return (
<>
{ui.live}
{/* Mobile drawer */}
Twitch
setOpen(false)}>
>
);
}
/* ---------- Footer ---------- */
function Footer({ go, lang, f, ui, navItems, social }) {
return (
);
}
Object.assign(window, { Nav, Footer, LangToggle });