/* global React */ const { useEffect, useState, useRef } = React; function Header({ onNavigate, current, mode }) { const t = window.useT(); const [scrolled, setScrolled] = useState(false); const [open, setOpen] = useState(false); const hamburgerRef = useRef(null); const firstLinkRef = useRef(null); useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 80); window.addEventListener('scroll', onScroll, { passive: true }); onScroll(); return () => window.removeEventListener('scroll', onScroll); }, []); // body scroll-lock + Escape listener while drawer open useEffect(() => { if (!open) return; const prevOverflow = document.body.style.overflow; document.body.style.overflow = 'hidden'; const onKey = (e) => { if (e.key === 'Escape') { setOpen(false); // return focus to hamburger setTimeout(() => { if (hamburgerRef.current) hamburgerRef.current.focus(); }, 0); } }; window.addEventListener('keydown', onKey); // focus first link setTimeout(() => { if (firstLinkRef.current) firstLinkRef.current.focus(); }, 50); return () => { document.body.style.overflow = prevOverflow; window.removeEventListener('keydown', onKey); }; }, [open]); const links = [ ['agencia', t('header.nav.agencia')], ['servicios', t('header.nav.servicios')], ['metodo', t('header.nav.metodo')], ['portfolio', t('header.nav.portfolio')], ['confianza', t('header.nav.confianza')]]; // mode: 'transparent' over hero before scroll; otherwise solid const transparent = mode === 'transparent' && !scrolled; const txtColor = transparent ? 'var(--lr-cal-blanca)' : 'var(--fg-primary, var(--lr-tierra-profunda))'; const handleDrawerNav = (k) => { onNavigate(k); setOpen(false); }; return (
{e.preventDefault();onNavigate('top');}} aria-label={t('header.logo.label')} style={{ fontFamily: 'var(--font-ui)', fontWeight: 700, fontSize: 16, letterSpacing: '0.32em', textTransform: 'uppercase', textDecoration: 'none', borderBottom: 'none', color: txtColor, transition: 'color 280ms' }}>EIDORA {/* Hamburger button — visible only <768px */}
{/* Overlay */}
setOpen(false)} aria-hidden="true" style={{ position: 'fixed', inset: 0, height: '100dvh', background: 'rgba(20, 16, 12, 0.42)', backdropFilter: 'blur(6px)', WebkitBackdropFilter: 'blur(6px)', opacity: open ? 1 : 0, pointerEvents: open ? 'auto' : 'none', transition: 'opacity 300ms cubic-bezier(.2,.7,.15,1)', zIndex: 60 }} /> {/* Drawer */}
); } window.Header = Header;