"use client" import { useRouter } from "next/navigation" import { useState } from "react" import { useAuth } from "@/components/auth-provider" import { ChangePasswordDialog } from "@/components/change-password-dialog" import { useNotifications } from "@/components/notification-provider" import { Badge } from "@/components/ui/badge" import { Avatar, AvatarFallback, AvatarImage, } from "@/components/ui/avatar" import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" import { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar, } from "@/components/ui/sidebar" import { BellIcon, EllipsisVerticalIcon, KeyRoundIcon, LogOutIcon } from "lucide-react" export function NavUser({ user, }: { user: { name: string email: string avatar: string } }) { const { signOut } = useAuth() const { unreadCount } = useNotifications() const { isMobile } = useSidebar() const router = useRouter() const [changePasswordOpen, setChangePasswordOpen] = useState(false) const fallback = user.name.slice(0, 1).toUpperCase() || "U" return ( <> } > {fallback}
{user.name} {user.email}
{fallback}
{user.name} {user.email}
{ router.push("/dashboard/notifications") }} className="gap-2" > 通知中心 {unreadCount > 0 ? ( {unreadCount > 99 ? "99+" : unreadCount} ) : null} { setChangePasswordOpen(true) }} > 修改密码 { void signOut() }} > 退出登录
) }