"use client"; import { useMemo, useState } from 'react'; import { Link, NavLink, useNavigate } from '@/lib/router'; import { Menu, ChevronDown } from 'lucide-react'; import { useAuth } from '@/contexts/AuthContext'; import { Button } from '@/components/ui/button'; import { Sheet, SheetContent, SheetTrigger } from '@/components/ui/sheet'; import ModeToggle from '@/components/ModeToggle'; import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; const NavItem = ({ to, children, onClick, }: { to: string; children: React.ReactNode; onClick?: () => void; }) => ( [ 'px-2 py-1 rounded-md transition-colors', isActive ? 'text-primary' : 'text-muted-foreground hover:text-foreground', ].join(' ') } > {children} ); export default function Navbar() { const navigate = useNavigate(); const { user, isAuthenticated } = useAuth(); const isAdminUser = isAuthenticated && ((user?.is_staff || user?.is_superuser) ?? false); const [open, setOpen] = useState(false); const avatarInitials = useMemo( () => (user?.first_name?.[0] || user?.last_name?.[0] || user?.username?.[0] || '?').toUpperCase(), [user?.first_name, user?.last_name, user?.username], ); const UserDropdown = () => ( {user?.first_name || user?.last_name ? `${user?.first_name || ''} ${user?.last_name || ''}`.trim() : user?.username} پروفایل {isAdminUser && ( داشبورد مدیریت )} e.preventDefault()} className="flex items-center justify-between gap-2" > حالت نمایش { e.preventDefault(); navigate('/logout'); }} className="text-red-600 focus:text-red-600" > خروج ); return ( ); }