// nav.jsx — header with mobile hamburger, search overlay, language toggle function Nav({ route, setRoute, cartCount, lang, setLang, cartBadgeRef, onSearchOpen }) { const [mobileOpen, setMobileOpen] = React.useState(false); const t = (ar, en) => lang === 'ar' ? ar : en; const links = [ { id: 'home', label: t('الرئيسية', 'Home') }, { id: 'shop', label: t('العطور', 'Boutique') }, { id: 'attars', label: t('العطّارون', 'Attars') }, { id: 'story', label: t('قصتنا', 'Story') }, ]; React.useEffect(() => { document.body.style.overflow = mobileOpen ? 'hidden' : ''; return () => { document.body.style.overflow = ''; }; }, [mobileOpen]); const go = (l) => { setMobileOpen(false); setRoute(l.route || l.id); }; return ( <> {/* Mobile drawer */} {mobileOpen && (
setMobileOpen(false)}>
e.stopPropagation()}>
{lang === 'ar' ? 'استبرق' : 'ISTABRAQ'}
{t('Indian Perfumery', 'Indian Perfumery')}
{links.map(l => ( go(l)}> {l.label} ))}
{t('شارع جميرا، دبي · 04-555-7788', 'Jumeirah St, Dubai · 04-555-7788')}
hello@istabraq.ae
)} ); } function SearchOverlay({ open, onClose, onPick, lang }) { const [q, setQ] = React.useState(''); const inputRef = React.useRef(); React.useEffect(() => { if (open) setTimeout(() => inputRef.current?.focus(), 50); else setQ(''); }, [open]); if (!open) return null; const results = q ? PRODUCTS.filter(p => p.name_ar.includes(q) || p.name_en.toLowerCase().includes(q.toLowerCase()) || SCENT_FAMILIES.find(f => f.id === p.family)?.ar.includes(q) || SCENT_FAMILIES.find(f => f.id === p.family)?.en.toLowerCase().includes(q.toLowerCase()) ).slice(0, 8) : PRODUCTS.slice(0, 8); return ( <>
setQ(e.target.value)} onKeyDown={(e) => e.key === 'Escape' && onClose()} />
{results.map(p => { const fam = SCENT_FAMILIES.find(f => f.id === p.family); return (
{ onPick(p); onClose(); }}>
{lang === 'ar' ? p.name_ar : p.name_en}
{lang === 'ar' ? fam.ar : fam.en} · {p.price} AED
); })}
); } window.Nav = Nav; window.SearchOverlay = SearchOverlay;