// Nav compartilhado (header + mega menu de Soluções) — usado em todas as páginas do site TS Corp. function TSNav({ current }) { const { useState, useEffect, useRef } = React; const [scrolled, setScrolled] = useState(false); const [open, setOpen] = useState(false); const [megaOpen, setMegaOpen] = useState(false); const [mobileSolucoesOpen, setMobileSolucoesOpen] = useState(false); const closeTimer = useRef(null); const solutions = window.TS_SOLUTIONS || []; useEffect(() => { const fn = () => setScrolled(window.scrollY > 40); window.addEventListener('scroll', fn, { passive: true }); return () => window.removeEventListener('scroll', fn); }, []); useEffect(() => { document.body.style.overflow = open ? 'hidden' : ''; return () => { document.body.style.overflow = ''; }; }, [open]); useEffect(() => { const onKey = (e) => { if (e.key === 'Escape') setMegaOpen(false); }; window.addEventListener('keydown', onKey); return () => window.removeEventListener('keydown', onKey); }, []); const openMega = () => { clearTimeout(closeTimer.current); setMegaOpen(true); }; const scheduleClose = () => { clearTimeout(closeTimer.current); closeTimer.current = setTimeout(() => setMegaOpen(false), 180); }; const links = [ ['Início', '/'], ['Ecossistema', '/ecossistema-ts'], ['Quem somos', '/quem-somos'], ['Inovação', '/inovacao'] ]; const navScriptEl = document.querySelector('script[src$="ts-nav.jsx"]'); const navBase = navScriptEl ? navScriptEl.getAttribute('src').replace(/ts-nav\.jsx$/, '') : ''; const logoSrc = navBase + 'logo-dark.png'; const isActive = (label) => current === label; return ( ); } window.TSNav = TSNav;