'use client'; import React, { useState } from 'react'; import Link from 'next/link'; import { useCartStore } from '@/hooks/use-shopify-cart'; import CartDrawer from '@/components/shopify/cart-drawer'; import { RiShoppingCartLine, RiCloseLine, RiMenu3Line } from '@remixicon/react'; const CartIcon: React.FC = () => { const toggleCart = useCartStore((s) => s.toggleCart); const cart = useCartStore((s) => s.cart); const itemCount = cart?.lines?.edges?.reduce((sum, { node }) => sum + node.quantity, 0) ?? 0; return ( {itemCount > 0 && ( {itemCount > 99 ? '99+' : itemCount} )} ); }; export interface NavLink { label: string; url: string; } interface HeaderProps { storeName?: string; logoUrl?: string; links?: NavLink[]; } const Header: React.FC = ({ storeName = 'STRIDE', logoUrl, links = [ { label: 'Shop', url: '/' }, { label: 'Collections', url: '/collections' }, ], }) => { const [menuOpen, setMenuOpen] = useState(false); return ( {/* Logo */} {logoUrl ? ( ) : ( {storeName} )} {/* Desktop Navigation */} {links.map((link, index) => ( {link.label} ))} {/* Actions */} {/* Mobile hamburger */} setMenuOpen(!menuOpen)} className="md:hidden p-2.5 text-foreground hover:text-primary transition-all rounded-full hover:bg-secondary" aria-label="Toggle menu" > {menuOpen ? : } {/* Mobile Menu */} {menuOpen && ( {links.map((link, index) => ( setMenuOpen(false)} className="text-foreground hover:text-primary transition-colors py-1" > {link.label} ))} PROFESSIONAL • CLEAN • MODERN )} ); }; export default Header;