"use client"; import Link from "next/link"; import { Loader2, CheckCircle2, Clock } from "lucide-react"; import { useAgentActivity } from "@/lib/api/agents"; import type { PaperclipIssue } from "@/lib/api/agents"; import { formatRelative } from "@/lib/format-date"; const STATUS_DOT: Record = { in_progress: "bg-gold", todo: "bg-rule", backlog: "bg-rule", done: "bg-success", cancelled: "bg-ink-muted/40", }; const STATUS_LABEL: Record = { in_progress: "בביצוע", todo: "לביצוע", backlog: "ממתין", done: "הושלם", cancelled: "בוטל", }; function timeAgo(iso: string | null): string { return formatRelative(iso, { units: "tight", fallback: "—" }); } function IssueRow({ issue }: { issue: PaperclipIssue }) { const dot = STATUS_DOT[issue.status] ?? "bg-rule"; const lbl = STATUS_LABEL[issue.status] ?? issue.status; const isDone = issue.status === "done"; return (

{issue.title}

{issue.assignee_name ?? lbl}

{isDone ? ( ) : issue.status === "in_progress" ? ( ) : ( )} {timeAgo(issue.completed_at ?? issue.started_at ?? issue.created_at)}
); } export function AgentActivityPreview({ caseNumber, }: { caseNumber: string; }) { const { data, isLoading } = useAgentActivity(caseNumber); const issues = [...(data?.issues ?? [])] .sort((a, b) => { const ta = a.started_at ?? a.created_at ?? ""; const tb = b.started_at ?? b.created_at ?? ""; return tb.localeCompare(ta); }) .slice(0, 4); return (
פעילות סוכנים כל הפעילות →
{isLoading ? (
טוען...
) : issues.length === 0 ? (

אין פעילות סוכנים עדיין

) : ( issues.map((issue) => ) )}
); }