"use client" 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 { signOut, useSession } from "@/lib/auth/auth-client" import { LogOut, Settings } from "lucide-react" import Link from "next/link" import { useRouter } from "next/navigation" interface UserDropdownProps { className?: string } export function UserDropdown({ className }: UserDropdownProps) { const { data: session, isPending } = useSession() 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 ( ) } if (!session?.user) { return ( ) } const user = session.user const userInitials = user.name ? user.name.split(" ").map(n => n[0]).join("").toUpperCase() : user.email?.[0]?.toUpperCase() || "U" return (

{user.name || "User"}

{user.email}

Dashboard Log out
) }