import { CalendarClock, UserCircle } from "lucide-react"; import { cn } from "@/lib/utils"; interface TaskCardProps { title: string; priority?: string; assignee?: string; due?: string; approvalsPendingCount?: number; onClick?: () => void; draggable?: boolean; isDragging?: boolean; onDragStart?: (event: React.DragEvent) => void; onDragEnd?: (event: React.DragEvent) => void; } export function TaskCard({ title, priority, assignee, due, approvalsPendingCount = 0, onClick, draggable = false, isDragging = false, onDragStart, onDragEnd, }: TaskCardProps) { const hasPendingApproval = approvalsPendingCount > 0; const priorityBadge = (value?: string) => { if (!value) return null; const normalized = value.toLowerCase(); if (normalized === "high") { return "bg-rose-100 text-rose-700"; } if (normalized === "medium") { return "bg-amber-100 text-amber-700"; } if (normalized === "low") { return "bg-emerald-100 text-emerald-700"; } return "bg-slate-100 text-slate-600"; }; const priorityLabel = priority ? priority.toUpperCase() : "MEDIUM"; return (
{ if (event.key === "Enter" || event.key === " ") { event.preventDefault(); onClick?.(); } }} > {hasPendingApproval ? ( ) : null}

{title}

{hasPendingApproval ? (
Approval needed ยท {approvalsPendingCount}
) : null}
{priorityLabel}
{assignee ?? "Unassigned"}
{due ? (
{due}
) : null}
); }