import { StatusBadge } from "@/components/StatusBadge"; import { DependencyIndicator } from "@/components/DependencyIndicator"; import { cn } from "@/lib/utils"; /** Task shape as returned by tRPC (Date fields serialized to string over JSON) */ export interface SerializedTask { id: string; planId: string; name: string; description: string | null; type: string; priority: string; status: string; order: number; createdAt: string; updatedAt: string; } interface TaskRowProps { task: SerializedTask; agentName: string | null; blockedBy: Array<{ name: string; status: string }>; isLast: boolean; onClick: () => void; } export function TaskRow({ task, agentName, blockedBy, isLast, onClick, }: TaskRowProps) { const connector = isLast ? "└──" : "├──"; return (
{/* Task row */}
{/* Tree connector */} {connector} {/* Task name */} {task.name} {/* Agent assignment */} {agentName && ( [{agentName}] )} {/* Status badge */}
{/* Dependency indicator below the row */} {blockedBy.length > 0 && ( )}
); }