// Page: Shop function ShopPage({ lang, navigate, wishlist, toggleWish, onWaOrder, tweaks, initialCat }) { const t = I18N[lang]; const [cat, setCat] = useState(initialCat || 'all'); const [search, setSearch] = useState(''); const [sort, setSort] = useState('new'); useReveal(); useEffect(() => { window.scrollTo(0, 0); }, []); useEffect(() => { if (initialCat) setCat(initialCat); }, [initialCat]); const filtered = useMemo(() => { let list = [...PRODUCTS]; if (cat !== 'all') list = list.filter(p => p.category === cat); if (search) { const q = search.toLowerCase(); list = list.filter(p => p.name[lang].toLowerCase().includes(q) || p.name.en.toLowerCase().includes(q)); } if (sort === 'priceLow') list.sort((a,b) => a.price - b.price); else if (sort === 'priceHigh') list.sort((a,b) => b.price - a.price); else if (sort === 'popular') list.sort((a,b) => b.sales - a.sales); return list; }, [cat, search, sort, lang]); return (

{t.shop.title}

{t.shop.sub}

{filtered.length} {t.shop.results}
setSearch(e.target.value)} />
{filtered.length === 0 ? (

{t.shop.empty}

) : (
{filtered.map(p => ( navigate('product', { id: pr.id })} wishlist={wishlist} toggleWish={toggleWish} onWaOrder={onWaOrder}/> ))}
)}
); } window.ShopPage = ShopPage;