"use client"; import Link from "next/link"; import { CircleUserRoundIcon, LogInIcon, LogOutIcon, Settings2Icon, UserPlusIcon, } from "lucide-react"; import { signOutAction } from "@/app/auth-actions"; import type { AuthState } from "@/lib/auth/session"; import { ProfileAvatar } from "@/components/profile/profile-avatar"; import type { NavProfile } from "@/lib/profile/service"; function formatNavDisplayName(displayName: string | null): string | null { if (!displayName) return null; const parts = displayName.trim().split(/\s+/); if (parts.length < 2) return displayName; return `${parts[0][0]}. ${parts[parts.length - 1]}`; } import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; type AccountMenuProps = { authState: AuthState; navProfile: NavProfile | null; }; export function AccountMenu({ authState, navProfile }: AccountMenuProps) { const showAvatar = authState.isAuthenticated && navProfile?.avatarUrl; const navLabel = formatNavDisplayName(navProfile?.displayName ?? null) ?? "Account"; return ( {showAvatar ? ( ) : ( )} {navLabel} {authState.isConfigured ? ( authState.isAuthenticated ? ( <> {authState.email ?? "Ingelogde gebruiker"} } > Instellingen
} > Uitloggen
) : ( <> Niet ingelogd } > Inloggen } > Account aanmaken ) ) : ( <> Account Auth nog niet geconfigureerd )}
); }