// Sticky nav with scroll-aware transparency + mobile menu const Nav = ({ route, setRoute, onDarkHero, mobileOpen, setMobileOpen, lang, setLang, t }) => { const [scrolled, setScrolled] = React.useState(false); const [langOpen, setLangOpen] = React.useState(false); const langRef = React.useRef(null); React.useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 24); onScroll(); window.addEventListener('scroll', onScroll, { passive: true }); return () => window.removeEventListener('scroll', onScroll); }, []); React.useEffect(() => { const onDoc = (e) => { if (langRef.current && !langRef.current.contains(e.target)) setLangOpen(false); }; document.addEventListener('click', onDoc); return () => document.removeEventListener('click', onDoc); }, []); useLucide(); const isDark = onDarkHero && !scrolled; const tr = t || ((k) => k); const langs = SITE_DATA.languages; const current = langs.find(l => l.code === lang) || langs[0]; return ( <>
{langOpen && (
{langs.map(l => ( ))}
)}
Steffanie Ting steffanie ting real estate
{SITE_DATA.nav.map(item => ( ))}
{langs.map(l => ( ))}
{SITE_DATA.agent.phone}
); }; window.Nav = Nav; const Footer = ({ setRoute }) => { useLucide(); return ( ); }; window.Footer = Footer;