"use client" 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 { signOut, useSession } from "@/lib/auth/auth-client" import { LogOut, Settings, User } from "lucide-react" import Link from "next/link" import { useRouter } from "next/navigation" export function SidebarUserDropdown() { const { data: session, isPending } = useSession() const { state } = useSidebar() const router = useRouter() const handleSignOut = async () => { try { await signOut({ fetchOptions: { onSuccess: () => { router.push("/") } } }) } catch (err) { console.error("Failed to sign out:", err) } } if (isPending) { return ( Loading... ) } if (!session?.user) { return ( Sign in ) } const user = session.user const userInitials = user.name ? user.name.split(" ").map(n => n[0]).join("").toUpperCase() : user.email?.[0]?.toUpperCase() || "U" return ( {userInitials}
{user.name || "User"} {user.email}
{userInitials}
{user.name || "User"} {user.email}
Settings Log out
) }