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 (
{identity.displayName ? identity.displayName.slice(0, 1).toUpperCase() : }
)
}
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}
)
}