import { useState } from 'react'; import { Link, useLocation, useNavigate } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import { Menu, X, Phone, Home, Shield, FileText, Truck, Users, Search, Accessibility } from 'lucide-react'; import { Button } from '@/components/ui/button'; import LanguageSwitcher from '@/components/LanguageSwitcher'; import AccessibilityBar from '@/components/AccessibilityBar'; const Header = () => { const { t } = useTranslation('nav'); const [isMenuOpen, setIsMenuOpen] = useState(false); const [isAccessibilityOpen, setIsAccessibilityOpen] = useState(false); const location = useLocation(); const navigate = useNavigate(); const [searchQuery, setSearchQuery] = useState(''); const baseUrl = import.meta.env.BASE_URL; const navigation = [ { name: t('home'), href: '/', icon: Home }, { name: t('privateCustomers'), href: '/privatkunden', icon: Users }, { name: t('familiesAndChildren', 'Familien & Kinder'), href: '/familien-kinder', icon: Users }, { name: t('seniors'), href: '/senioren', icon: Shield }, { name: t('businessCustomers'), href: '/geschaeftskunden', icon: Truck }, ]; const rightMenuItems = [ { name: t('agency'), href: '/agentur', icon: Shield }, { name: t('finances'), href: '/finanzen', icon: FileText }, { name: t('contact'), href: '/contact#contact', icon: Phone }, ]; const searchItems = [ ...navigation, ...rightMenuItems, { name: t('accidentInsurance', 'Unfall'), href: '/unfall', icon: Shield }, { name: t('carInsurance', 'KFZ'), href: '/kfz', icon: Truck }, { name: t('services', 'Leistungen'), href: '/leistungen', icon: FileText }, { name: 'Risikolebensversicherung', href: '/risikolebensversicherung', icon: Shield }, { name: 'Krankheits-Schutzbrief', href: '/krankheitsschutzbrief', icon: Shield }, { name: 'Vermögenssicherung', href: '/vermoegenssicherung', icon: Shield }, ]; const normalizedQuery = searchQuery.trim().toLowerCase(); const filteredItems = normalizedQuery ? searchItems.filter((item) => item.name.toLowerCase().includes(normalizedQuery)) : []; return (
{/* Logo */}
Agentur Mizera & Partner
{/* Right side items */}
{/* Header Search (Desktop) */}
setSearchQuery(e.target.value)} className="w-44 lg:w-56 2xl:w-72 h-10 rounded-full border border-gray-200 bg-white pl-9 pr-4 text-sm shadow-sm" placeholder={t('searchPlaceholder', 'Suche...')} /> {filteredItems.length > 0 && (
{filteredItems.slice(0, 8).map((item) => ( ))}
)}
{/* Language Switcher (Desktop only) */}
{/* Mobile menu button */}
{/* Desktop Navigation (zweite Zeile) */}
{rightMenuItems.map((item) => { const Icon = item.icon; const isActive = location.pathname === item.href; return ( {item.name} ); })}
{/* Mobile Navigation */} {isMenuOpen && (
{/* Mobile Accessibility Bar */} {isAccessibilityOpen && (
)}
)}
); }; export default Header;