"use client"; import { Pencil, Plus, Trash2 } from "lucide-react"; import { useRouter } from "next/navigation"; import { useState } from "react"; import { changeEmployeeData } from "@/actions/employees"; import { Button } from "@/components/ui/Button"; import { useToast } from "@/components/ui/Toast"; import { todayIso } from "@/lib/format"; import { NotfallkontaktModal, type Notfallkontakt } from "./NotfallkontaktModal"; // Eigener Abschnitt statt einer Zelle im Raster, und unterhalb der // Angehörigen: beides sind Personen im Umfeld, und der Notfallkontakt ist die // Ausnahme davon — deshalb steht er zuletzt, nicht dazwischen. Im Ernstfall // greift jemand in Eile danach; dann muss die Nummer sofort zu finden sein // und wählbar. // // Der Knopf steht hier, weil er bei den Angehörigen darüber auch steht. Ohne // ihn führte der einzige Weg über „Daten ändern" — ein Formular über alle // Stammdaten, um eine Telefonnummer einzutragen. export function NotfallkontaktSection({ employeeId, kontakt }: { employeeId: string; kontakt: Notfallkontakt }) { const { showToast } = useToast(); const router = useRouter(); const [modalOpen, setModalOpen] = useState(false); const [entfernt, setEntfernt] = useState(false); const vorhanden = Boolean(kontakt.name); async function handleEntfernen() { setEntfernt(true); // Leere Zeichenketten, nicht ausgelassene Felder: die Datenbank macht // daraus null. Würden die Schlüssel fehlen, bliebe der Kontakt stehen. const result = await changeEmployeeData({ employee_id: employeeId, effective_date: todayIso(), person: { emergency_contact_name: "", emergency_contact_phone: "", emergency_contact_relation: "" }, contract: {}, role: {}, }); setEntfernt(false); if (result.success) { showToast("Notfallkontakt entfernt."); router.refresh(); } else { showToast(result.error ?? "Fehler beim Entfernen.", "error"); } } return (
Kein Notfallkontakt hinterlegt.
)} {/* `key` setzt die Felder auf den gespeicherten Stand zurück, sobald sich der Kontakt geändert hat — das Fenster bleibt sonst montiert und zeigte beim zweiten Öffnen den alten Entwurf. */}