import { useState } from 'react'; import { Search, Menu, Sparkles, MapPin, Star, ChevronDown, Building, Users, Crown, Palette, Shield, FerrisWheel, Factory } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Sheet, SheetContent, SheetTrigger } from '@/components/ui/sheet'; import { Badge } from '@/components/ui/badge'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'; import { Link, useNavigate } from 'react-router-dom'; import { SearchDropdown } from '@/components/search/SearchDropdown'; import { MobileSearch } from '@/components/search/MobileSearch'; import { AuthButtons } from '@/components/auth/AuthButtons'; import { ThemeToggle } from '@/components/theme/ThemeToggle'; import { NotificationCenter } from '@/components/notifications/NotificationCenter'; import { useAuth } from '@/hooks/useAuth'; import { useUserRole } from '@/hooks/useUserRole'; import { useIsMobile } from '@/hooks/use-mobile'; import { NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, } from "@/components/ui/navigation-menu"; export function Header() { const navigate = useNavigate(); const [open, setOpen] = useState(false); const [mobileSearchOpen, setMobileSearchOpen] = useState(false); const { user } = useAuth(); const { isModerator, loading: rolesLoading } = useUserRole(); const isMobile = useIsMobile(); return ( <> {/* Mobile: Menu + Logo */} {/* Mobile Menu */} Toggle menu Explore setOpen(false)} > Rides setOpen(false)} > Parks setOpen(false)} > Manufacturers setOpen(false)} > Designers setOpen(false)} > Operators setOpen(false)} > Property Owners {!rolesLoading && isModerator() && ( <> setOpen(false)} > Admin > )} Theme {/* Logo */} ThrillWiki {/* Desktop Navigation */} Explore Rides Discover exciting rides and attractions Parks Browse theme parks around the world Manufacturers Explore ride manufacturers Designers View ride designers Operators Find park operators Property Owners View property owners {!rolesLoading && isModerator() && ( Admin )} {/* Right side: Search, Theme, Auth */} {/* Desktop Search */} {/* Mobile Search Button */} setMobileSearchOpen(true)} > Search {user && } {/* Mobile Search Modal */} > ); }
Discover exciting rides and attractions
Browse theme parks around the world
Explore ride manufacturers
View ride designers
Find park operators
View property owners