// Top navigation function LangToggle({ compact }) { const { lang, setLang, t } = useLang(); const next = lang === 'en' ? 'zh' : 'en'; return ( setLang(next)} aria-label={t('nav.toggle_aria')} title={t('nav.toggle_aria')} > {lang === 'en' ? '中文' : 'EN'} ); } function Nav() { const { t } = useLang(); const [scrolled, setScrolled] = React.useState(false); const [menuOpen, setMenuOpen] = React.useState(false); const [ddOpen, setDdOpen] = React.useState(false); const [mobileSvcOpen, setMobileSvcOpen] = React.useState(false); const ddCloseTimer = React.useRef(null); React.useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 30); window.addEventListener('scroll', onScroll, { passive: true }); return () => window.removeEventListener('scroll', onScroll); }, []); // Lock body scroll when menu open React.useEffect(() => { document.body.style.overflow = menuOpen ? 'hidden' : ''; return () => { document.body.style.overflow = ''; }; }, [menuOpen]); const close = () => { setMenuOpen(false); setMobileSvcOpen(false); }; // Dropdown hover handlers — small delay on close so user can move down into it const openDd = () => { if (ddCloseTimer.current) clearTimeout(ddCloseTimer.current); setDdOpen(true); }; const scheduleCloseDd = () => { if (ddCloseTimer.current) clearTimeout(ddCloseTimer.current); ddCloseTimer.current = setTimeout(() => setDdOpen(false), 140); }; const services = [ { href: '/services-websites/', title: t('svc.1.title'), cn: t('svc.1.cn'), desc: t('nav.dd.1.desc'), icon: }, { href: '/services-web-apps/', title: t('svc.2.title'), cn: t('svc.2.cn'), desc: t('nav.dd.2.desc'), icon: }, { href: '/services-saas/', title: t('svc.3.title'), cn: t('svc.3.cn'), desc: t('nav.dd.3.desc'), icon: }, ]; return ( 666Website Services {t('nav.services')} {t('nav.dd.head')} {t('nav.dd.head.cn')} {services.map((s, i) => ( setDdOpen(false)} > {s.icon} {s.title} {s.cn} {s.desc} ))} setDdOpen(false)}> {t('nav.dd.foot')} {t('nav.process')} {t('nav.work')} {t('nav.pricing')} {t('nav.insights')} {t('nav.contact')} {t('nav.start')} setMenuOpen(o => !o)} > {/* Mobile slide-down menu */} setMobileSvcOpen(o => !o)} > {t('nav.services')}服务 {services.map(s => ( {s.icon} {s.title} {s.desc} ))} {t('nav.process')}流程 {t('nav.work')}专长 {t('nav.pricing')}价格 {t('nav.insights')}见解 {t('nav.contact')}联系 {t('nav.start')} 666websitepro@gmail.com WhatsApp +60 16-468 8686 ); } window.Nav = Nav; window.LangToggle = LangToggle;