"use client"; import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; import { useRouter } from "next/navigation"; import { api } from "@/lib/api"; import type { Case, Deadline } from "@/lib/types"; import { Breadcrumb } from "@/components/layout/Breadcrumb"; import { useState } from "react"; import { toast } from "sonner"; const inputClass = "w-full rounded-md border border-neutral-200 px-3 py-1.5 text-sm outline-none focus:border-neutral-400 focus:ring-1 focus:ring-neutral-400"; const labelClass = "mb-1 block text-xs font-medium text-neutral-600"; export default function NewDeadlinePage() { const router = useRouter(); const queryClient = useQueryClient(); const [caseId, setCaseId] = useState(""); const [title, setTitle] = useState(""); const [description, setDescription] = useState(""); const [dueDate, setDueDate] = useState(""); const [warningDate, setWarningDate] = useState(""); const [notes, setNotes] = useState(""); const { data: casesData } = useQuery({ queryKey: ["cases"], queryFn: () => api.get<{ cases: Case[]; total: number } | Case[]>("/cases"), }); const cases = Array.isArray(casesData) ? casesData : Array.isArray(casesData?.cases) ? casesData.cases : []; const createMutation = useMutation({ mutationFn: (body: Record) => api.post(`/cases/${caseId}/deadlines`, body), onSuccess: (data) => { queryClient.invalidateQueries({ queryKey: ["deadlines"] }); queryClient.invalidateQueries({ queryKey: ["dashboard"] }); toast.success("Frist erstellt"); router.push(`/fristen/${data.id}`); }, onError: () => toast.error("Fehler beim Erstellen der Frist"), }); function handleSubmit(e: React.FormEvent) { e.preventDefault(); if (!caseId || !title.trim() || !dueDate) return; const body: Record = { title: title.trim(), due_date: new Date(dueDate).toISOString(), source: "manual", }; if (description.trim()) body.description = description.trim(); if (warningDate) body.warning_date = new Date(warningDate).toISOString(); if (notes.trim()) body.notes = notes.trim(); createMutation.mutate(body); } return (

Neue Frist anlegen

Erstellen Sie eine neue Frist fuer eine Akte.

setTitle(e.target.value)} required className={inputClass} placeholder="z.B. Klageschrift einreichen" />
setDescription(e.target.value)} className={inputClass} placeholder="Optionale Beschreibung" />
setDueDate(e.target.value)} required className={inputClass} />
setWarningDate(e.target.value)} className={inputClass} />