"use client"; import type { ReactNode } from "react"; import { useMemo } from "react"; import { LayoutDashboard, LogOut, RotateCcw, UserRound } from "lucide-react"; import { Link, NavLink } from "@/lib/router"; import { useAuth } from "@/contexts/AuthContext"; import ModeToggle from "@/components/ModeToggle"; import NotificationsBell from "@/components/NotificationsBell"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { cn } from "@/lib/utils"; const NavItem = ({ to, children }: { to: string; children: ReactNode }) => ( cn( "rounded-full px-3 py-2 text-sm font-medium transition-colors", isActive ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-muted hover:text-foreground", ) } > {children} ); function ProfileAvatarMenu() { const { user, isAuthenticated } = useAuth(); const isAdminUser = isAuthenticated && Boolean(user?.is_staff || user?.is_superuser); const avatarInitials = useMemo( () => (user?.first_name?.[0] || user?.last_name?.[0] || user?.username?.[0] || "?").toUpperCase(), [user?.first_name, user?.last_name, user?.username], ); if (!isAuthenticated) { return ( ورود / ثبتنام ); } return ( {avatarInitials} {[user?.first_name, user?.last_name].filter(Boolean).join(" ") || user?.username || "حساب کاربری"} مشاهده پروفایل تغییر یا بازیابی رمز {isAdminUser ? ( داشبورد مدیریت ) : null} خروج از حساب ); } export default function Navbar() { const { isAuthenticated } = useAuth(); return ( انجمن علمی مهندسی کامپیوتر دانشکدهی فنی و مهندسی شرق گیلان خانه بلاگ رویدادها {isAuthenticated ? : null} {isAuthenticated ? : null} ); }
انجمن علمی مهندسی کامپیوتر
دانشکدهی فنی و مهندسی شرق گیلان