// Header navigation component — mobile-ready
function Header({ page, setPage, cartCount, session, onLogout, lang, setLang }) {
const [menuOpen, setMenuOpen] = React.useState(false);
const [scrolled, setScrolled] = React.useState(false);
React.useEffect(() => {
const onScroll = () => setScrolled(window.scrollY > 40);
window.addEventListener('scroll', onScroll);
return () => window.removeEventListener('scroll', onScroll);
}, []);
// Close menu on page change
React.useEffect(() => { setMenuOpen(false); }, [page]);
const t = lang === 'pt' ? {
home: 'Início', shop: 'Loja', about: 'Sobre Nós', contact: 'Contacto',
cart: 'Carrinho', login: 'Entrar', logout: 'Sair', account: 'A minha conta', admin: 'Admin'
} : {
home: 'Home', shop: 'Shop', about: 'About', contact: 'Contact',
cart: 'Cart', login: 'Sign In', logout: 'Sign Out', account: 'My Account', admin: 'Admin'
};
const navItems = [
{ key: 'home', label: t.home },
{ key: 'shop', label: t.shop },
{ key: 'about', label: t.about },
{ key: 'contact', label: t.contact },
];
const nav = (key) => { setPage(key); setMenuOpen(false); };
return (
<>
{/* Logo */}
nav('home')}>
Dom Papança
Iguarias com Alma
{/* Desktop nav */}
{/* Right actions */}
{/* Language */}
{/* Cart */}
{/* Desktop account — hidden on mobile via inline media */}
{session ? (
<>
{session.role === 'admin' && (
)}
>
) : (
)}
{/* Hamburger */}
{/* Mobile menu overlay */}
{navItems.map(item => (
))}
{session ? (
<>
{session.role === 'admin' &&
}
>
) : (
)}
>
);
}
Object.assign(window, { Header });