"use client"; import { useQuery } from "@tanstack/react-query"; import { useParams } from "next/navigation"; import { api } from "@/lib/api"; import type { Deadline } from "@/lib/types"; import { format } from "date-fns"; import { de } from "date-fns/locale"; import { Clock, Loader2 } from "lucide-react"; const DEADLINE_STATUS: Record = { pending: "bg-amber-50 text-amber-700", completed: "bg-emerald-50 text-emerald-700", overdue: "bg-red-50 text-red-700", }; const DEADLINE_STATUS_LABEL: Record = { pending: "Offen", completed: "Erledigt", overdue: "Ueberfaellig", }; export default function FristenPage() { const { id } = useParams<{ id: string }>(); const { data, isLoading } = useQuery({ queryKey: ["case-deadlines", id], queryFn: () => api.get<{ deadlines: Deadline[]; total: number }>( `/deadlines?case_id=${id}`, ), }); if (isLoading) { return (
); } const deadlines = Array.isArray(data?.deadlines) ? data.deadlines : []; if (deadlines.length === 0) { return (

Keine Fristen vorhanden.

); } return (
{deadlines.map((d) => (

{d.title}

{d.description && (

{d.description}

)}
{DEADLINE_STATUS_LABEL[d.status] ?? d.status} {format(new Date(d.due_date), "d. MMM yyyy", { locale: de })}
))}
); }