import { Bot } from "lucide-react"; import { useEffect, useMemo, useState } from "react"; import "./AgentAvatar.css"; interface AgentAvatarProps { agent: { id: string; icon?: string; imageUrl?: string; name: string; updatedAt?: string; }; size?: number; className?: string; } export function AgentAvatar({ agent, size = 36, className }: AgentAvatarProps) { const [imageError, setImageError] = useState(false); useEffect(() => { setImageError(false); }, [agent.imageUrl]); const imageSrc = useMemo(() => { if (!agent.imageUrl) return undefined; const timestamp = encodeURIComponent(agent.updatedAt ?? ""); const joiner = agent.imageUrl.includes("?") ? "&" : "?"; return `${agent.imageUrl}${joiner}t=${timestamp}`; }, [agent.imageUrl, agent.updatedAt]); return ( {imageSrc && !imageError ? ( {`${agent.name} setImageError(true)} /> ) : agent.icon?.trim() ? ( ) : ( ); } export type { AgentAvatarProps };