import AppLogo from '@/components/app-logo'; import Appearance from '@/components/appearance'; import Notification from '@/components/notification'; import ProfileToggle from '@/components/profile-toggle'; import { Button } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'; import { ScrollArea } from '@/components/ui/scroll-area'; import { Link } from '@inertiajs/react'; import { ChevronDown, Menu, X } from 'lucide-react'; import { Fragment, useState } from 'react'; interface NavbarPreviewProps { auth: boolean; navbar: Navbar; } const NavbarPreview = ({ auth, navbar }: NavbarPreviewProps) => { const [isMenuOpen, setIsMenuOpen] = useState(false); const renderNavItems = (item: NavbarItem) => { if (!item.active) return null; switch (item.type) { case 'url': return ( {item.title} ); case 'dropdown': return ( {item.title} {item.items && Array.isArray(item.items) && item.items.map((subItem: any, idx: number) => ( {subItem.title} ))} ); default: return null; } }; const renderActionItems = (item: NavbarItem) => { if (item.type === 'action' && item.active) { switch (item.slug) { // case 'search': // return {}} />; case 'theme': return ; case 'notification': return ; case 'profile': return ; default: return null; } } return null; }; const sortedItems = navbar.navbar_items.sort((a, b) => a.sort - b.sort); return ( {/* Logo */} {/* Desktop Navigation */} {sortedItems.map((item) => ( {renderNavItems(item)} ))} {auth ? ( sortedItems.map((item) => {renderActionItems(item)}) ) : ( <> Sign Up Log In > )} {/* Mobile menu button */} setIsMenuOpen(!isMenuOpen)}> {isMenuOpen ? : } {/* Mobile Menu */} {isMenuOpen && ( {sortedItems.map((item) => ( {renderNavItems(item)} ))} )} ); }; export default NavbarPreview;