import { cn } from "@/lib/utils"; import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { LogIn, LogOutIcon } from "lucide-react"; import { auth, signIn, signOut } from "@/lib/auth"; import { getTranslations } from "next-intl/server"; import { Skeleton } from "@/components/ui/skeleton"; import { SettingsButton } from "@/components/settings-button"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; const handleLogIn = async () => { "use server"; await signIn(); }; const handleLogOut = async () => { "use server"; await signOut(); }; interface UserAvatarIconProps { image?: string | null; name?: string | null; className?: string; } const UserAvatarIcon = ({ image, name, className }: UserAvatarIconProps) => { return ( {name?.charAt(0) ?? "U"} ); }; interface UserProfileInfoProps { name?: string | null; email?: string | null; } const UserProfileInfo = ({ name, email }: UserProfileInfoProps) => { return (
{name ?? "undefined"} {email ?? "undefined"}
); }; const UserAvatar = async () => { const session = await auth(); const user = session?.user; const isLoggedIn = !!user; const t = await getTranslations("UserAvatar"); return ( {!isLoggedIn ? ( {t("LogIn")} ) : ( <>
{t("LogOut")} )}
); }; const UserAvatarSkeleton = () => { return ; }; export { UserAvatar, UserAvatarSkeleton };