"use client" import { ChevronsUpDown, KeyRound, LogOut, UserRoundCog, } from "lucide-react" import { Avatar, AvatarFallback, AvatarImage, } from "@/components/ui/avatar" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" import { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar, } from "@/components/ui/sidebar" import useSWR from "swr" import { UserApi } from "@/lib/api" import { Skeleton } from "./ui/skeleton" import { toast } from "sonner" import { useRouter } from "next/navigation" export function NavUser({ }: {}) { const { isMobile } = useSidebar(); const router = useRouter(); const { data: user, isLoading, error } = useSWR( '/api/user/me', () => UserApi.me(), { onError: (error) => { if (`${error}`.includes('Unauthorized')) { localStorage.removeItem('token'); toast.info('登录凭证已失效,请重新登录'); router.replace('/console/login'); } } } ); return ( { user && <> U
{user.nickname} {user.username}
} { isLoading &&
}
{ user &&
U
{user.nickname} {user.username}
} { isLoading &&
}
账户信息 修改密码 登出
) }