"use client"; import { useState, useEffect, useRef } from "react"; import Link from "next/link"; import Image from "next/image"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Badge } from "@/components/ui/badge"; import { NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, } from "@/components/ui/navigation-menu"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from "@/components/ui/sheet"; import { ThemeToggle } from "@/components/theme-toggle"; import { Search, ShoppingBag, Heart, User, Menu, Phone, Truck, RefreshCw, Shield, Globe, } from "lucide-react"; export function Header() { const [cartItems] = useState(3); const [wishlistItems] = useState(5); const [isMounted, setIsMounted] = useState(false); const sheetRef = useRef(null); const categories = [ { title: "Women", items: [ { name: "Dresses", href: "/women/dresses" }, { name: "Tops & Blouses", href: "/women/tops" }, { name: "Pants & Jeans", href: "/women/pants" }, { name: "Outerwear", href: "/women/outerwear" }, { name: "Accessories", href: "/women/accessories" }, ], }, { title: "Men", items: [ { name: "T-Shirts", href: "/men/tshirts" }, { name: "Shirts", href: "/men/shirts" }, { name: "Pants & Jeans", href: "/men/pants" }, { name: "Jackets", href: "/men/jackets" }, { name: "Accessories", href: "/men/accessories" }, ], }, { title: "Kids", items: [ { name: "Boys", href: "/kids/boys" }, { name: "Girls", href: "/kids/girls" }, { name: "Baby", href: "/kids/baby" }, { name: "Shoes", href: "/kids/shoes" }, ], }, ]; // Preload both logo variants to ensure smooth loading useEffect(() => { setIsMounted(true); // Add global error handler for scroll-related errors const handleError = (event: ErrorEvent) => { if (event.error?.message?.includes('parameter 1 is not of type \'Node\'') || event.error?.message?.includes('handleScroll')) { console.warn('Scroll handling error caught and suppressed:', event.error); event.preventDefault(); return false; } }; window.addEventListener('error', handleError); const preloadLogos = () => { if (typeof window !== 'undefined') { const lightLogo = new window.Image(); const darkLogo = new window.Image(); lightLogo.src = '/black-logo.png'; darkLogo.src = '/white-logo.png'; } }; preloadLogos(); return () => { window.removeEventListener('error', handleError); }; }, []); // Prevent hydration issues with Sheet component if (!isMounted) { return (
{/* Top banner */}

FREE SHIPPING ON ORDERS OVER $100 β€’ NEW ARRIVALS EVERY WEEK

{/* Announcement bar */}

πŸ”₯ WINTER SALE - Up to 50% off on selected items

{/* Main header */}
{/* Mobile menu placeholder */} {/* Logo */}
blcklst blcklst
{/* Simplified action buttons for SSR */}
); } return (
{/* Top banner */}

FREE SHIPPING ON ORDERS OVER $100 β€’ NEW ARRIVALS EVERY WEEK

{/* Announcement bar */}

πŸ”₯ WINTER SALE - Up to 50% off on selected items

{/* Main header */}
{/* Mobile menu */} { // Prevent auto focus to avoid scroll handling issues event.preventDefault(); }} onCloseAutoFocus={(event) => { // Prevent auto focus to avoid scroll handling issues event.preventDefault(); }} onEscapeKeyDown={(event) => { // Handle escape key gracefully try { // Default behavior } catch (error) { console.warn('Escape key handling error:', error); event.preventDefault(); } }} onPointerDownOutside={(event) => { // Handle pointer events gracefully try { // Default behavior } catch (error) { console.warn('Pointer down outside error:', error); event.preventDefault(); } }} >
{/* Header Section */} Menu {/* Navigation Section */}
{/* Footer Section */}
{/* Search Button */} {/* Account Button */}
{/* Quick Actions */}
{/* Logo */}
{/* Light theme logo - visible by default, hidden in dark mode */} blcklst {/* Dark theme logo - hidden by default, visible in dark mode */} blcklst
{/* Desktop Navigation */} {categories.map((category) => ( {category.title}
{category.items.map((item) => (
{item.name}
))}
))} Sale
{/* Search Bar */}
{/* Action buttons */}
{/* Search icon for mobile */} {/* Theme toggle */}
{/* User menu - Hidden on small mobile, visible on larger screens */} My Account Orders Wishlist Sign In Create Account {/* Wishlist - Hidden on small mobile */} {/* Cart - Always visible */} {/* Language/Currency - Hidden on mobile */} πŸ‡ΊπŸ‡Έ USD πŸ‡ͺπŸ‡Ί EUR πŸ‡¬πŸ‡§ GBP
{/* Service features */}
Free Shipping
30-Day Returns
Secure Payment
24/7 Support
); }