/** * ConnectionCard Component * Displays a single federation connection with PDA-friendly design */ import { FederationConnectionStatus, type ConnectionDetails } from "@/lib/api/federation"; interface ConnectionCardProps { connection: ConnectionDetails; onAccept?: (connectionId: string) => void; onReject?: (connectionId: string) => void; onDisconnect?: (connectionId: string) => void; showDetails?: boolean; compact?: boolean; } /** * Get PDA-friendly status text and color */ function getStatusDisplay(status: FederationConnectionStatus): { text: string; colorClass: string; icon: string; } { switch (status) { case FederationConnectionStatus.ACTIVE: return { text: "Active", colorClass: "text-green-600 bg-green-50", icon: "🟢", }; case FederationConnectionStatus.PENDING: return { text: "Pending", colorClass: "text-blue-600 bg-blue-50", icon: "🔵", }; case FederationConnectionStatus.DISCONNECTED: return { text: "Disconnected", colorClass: "text-yellow-600 bg-yellow-50", icon: "⏸️", }; case FederationConnectionStatus.REJECTED: return { text: "Rejected", colorClass: "text-gray-600 bg-gray-50", icon: "⚪", }; } } export function ConnectionCard({ connection, onAccept, onReject, onDisconnect, showDetails = false, compact = false, }: ConnectionCardProps): React.JSX.Element { const status = getStatusDisplay(connection.status); const name = typeof connection.metadata.name === "string" ? connection.metadata.name : "Remote Instance"; const description = connection.metadata.description as string | undefined; const paddingClass = compact ? "p-3" : "p-4"; return (
{connection.remoteUrl}
{description &&{description}
}Capabilities