"use client"; import { useRouter } from "next/navigation"; import Link from "next/link"; import { LogOut, Settings, Shield } from "lucide-react"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { signOut } from "@/lib/auth/auth-client"; interface UserMenuProps { name: string; email: string; image?: string | null; isAdmin?: boolean; } export function UserMenu({ name, email, image, isAdmin }: UserMenuProps) { const router = useRouter(); const initials = name .split(" ") .map((n) => n[0]) .join("") .slice(0, 2) .toUpperCase(); async function handleSignOut() { await signOut(); router.push("/"); router.refresh(); } return ( {image && } {initials || "U"}
{name} {email}
Settings {isAdmin && ( Admin )} Sign out
); }