'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 SearchDialog from '@/components/shopify/search-dialog'; import AccountMenu from '@/components/shopify/account-menu'; import { RiShoppingBagLine, RiCloseLine, RiMenu3Line } from '@remixicon/react'; import { Button } from '@/components/ui/button'; import Logo from '@/components/logo'; 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 ( ); }; export interface NavLink { label: string; url: string; } interface HeaderProps { storeName?: string; logoUrl?: string; links?: NavLink[]; /** Thin bar above the nav. Pass null to hide it. */ announcement?: string | null; announcementUrl?: string; } const Header: React.FC = ({ storeName = 'Shop', logoUrl, links = [ { label: 'Shop', url: '/' }, { label: 'Collections', url: '/collections' }, ], announcement = 'Free shipping on orders over $100', announcementUrl, }) => { const [menuOpen, setMenuOpen] = useState(false); return ( <> {/* Sits above the sticky nav, so it scrolls away on its own. */} {announcement && (
{announcementUrl ? ( {announcement} ) : ( {announcement} )}
)} ); }; export default Header;