import type { UptimeMessage } from "@/services/types"; import { Progressbar } from "@/components/Progressbar"; import { formatRelativeTime, isAgentOnline } from "@/services/utils"; type AgentOverviewCardProps = { count: number; title: string; icon: { ref: React.ReactNode; color: string; bgColor: string; }; }; export function AgentOverviewCard({ props, }: { props: AgentOverviewCardProps; }) { return (

{props.title}

{props.count}

{props.icon.ref}
); } type AgentCardProps = { data: UptimeMessage; onClick: () => void; }; export function AgentCard({ data, onClick }: AgentCardProps) { const status = isAgentOnline(data) ? { name: "online", color: "bg-green-500", textColor: "text-green-400", borderColor: "border-green-500/20", bgColor: "bg-green-500/10", } : { name: "offline", color: "bg-red-500", textColor: "text-red-400", borderColor: "border-red-500/20", bgColor: "bg-red-500/10", }; return (
onClick()} className="bg-[#111111] border border-[#262626] rounded-lg p-6 hover:bg-[#151515] transition-all cursor-pointer group" >
{status.name.toUpperCase()}

{data.agent}

{formatRelativeTime(data.last_seen)} {data.uptime.toFixed(2)}%
); }