"use client"; import { AlignLeft, CalendarClock, GripVertical } from "lucide-react"; import type { Task } from "@prisma/client"; import { cn, formatDate } from "@/lib/utils"; /** Faelligkeit einordnen: ueberfaellig, heute, demnaechst. */ function dueTone(due: Date | string | null, done: boolean) { if (!due || done) return null; const date = new Date(due); if (Number.isNaN(date.getTime())) return null; const today = new Date(); today.setHours(0, 0, 0, 0); const target = new Date(date); target.setHours(0, 0, 0, 0); const days = Math.round((target.getTime() - today.getTime()) / 86_400_000); if (days < 0) return { className: "text-rose-300", label: "ueberfaellig" }; if (days === 0) return { className: "text-amber-300", label: "heute" }; if (days <= 3) return { className: "text-amber-200/70", label: null }; return { className: "text-slate-500", label: null }; } export function TaskCard({ task, onEdit, dragHandle, overlay = false, }: { task: Task; onEdit?: (task: Task) => void; dragHandle?: Record; overlay?: boolean; }) { const done = task.status === "DONE"; const due = dueTone(task.dueDate, done); return (
); }