'use client'; import { useSortable } from '@dnd-kit/sortable'; import { CSS } from '@dnd-kit/utilities'; import { differenceInDays } from 'date-fns'; import { Badge } from '@/components/ui/badge'; interface PipelineCardProps { id: string; clientName: string | null; berthMooringNumber: string | null; leadCategory: string | null; updatedAt: string | Date; } const LEAD_CATEGORY_COLORS: Record = { general_interest: 'secondary', specific_qualified: 'default', hot_lead: 'destructive', }; export function PipelineCard({ id, clientName, berthMooringNumber, leadCategory, updatedAt, }: PipelineCardProps) { const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id, }); const style = { transform: CSS.Transform.toString(transform), transition, opacity: isDragging ? 0.5 : 1, }; const daysInStage = differenceInDays(new Date(), new Date(updatedAt)); return (

{clientName ?? 'Unknown client'}

{berthMooringNumber && (

Berth: {berthMooringNumber}

)}
{leadCategory && ( {leadCategory.replace(/_/g, ' ')} )} {daysInStage}d
); }