import { LogIn, LogOut, UserRound } from "lucide-react" import type { Agents24ChatIdentity } from "../../identity" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "../ui/dropdown-menu" import { SidebarMenu, SidebarMenuButton, SidebarMenuItem } from "../ui/sidebar" function identityLabel(identity: Agents24ChatIdentity): string { if (identity.displayName) return identity.displayName if (identity.state === "authenticated") return "Signed in" if (identity.state === "loading") return "Loading identity" if (identity.state === "error") return "Identity unavailable" if (identity.state === "signed_out") return "Sign in" return "Guest" } function IdentityAvatar({ identity }: { identity: Agents24ChatIdentity }) { if (identity.avatarUrl) { return } return ( ) } export function IdentityControl({ identity }: { identity: Agents24ChatIdentity }) { const label = identityLabel(identity) const canSignOut = identity.state === "authenticated" && Boolean(identity.onSignOut) const canSignIn = (identity.state === "guest" || identity.state === "signed_out" || identity.state === "error") && Boolean(identity.onSignIn) return ( {label} {identity.secondaryText ? {identity.secondaryText} : null} {label} {identity.secondaryText ? {identity.secondaryText} : null} {(canSignIn || canSignOut) ? : null} {canSignIn ? identity.onSignIn?.()}>Sign in : null} {canSignOut ? identity.onSignOut?.()}>Sign out : null} ) }