"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, effectiveDate, }: { employeeId: string; kontakt: Notfallkontakt; /** * Nur, wenn der Abschnitt in „Daten ändern" steht: dann treibt dessen * „Wirksam ab" auch diesen Vorgang — wie bei den Angehörigen darüber. * Ohne Angabe gilt heute. */ effectiveDate?: string; }) { const { showToast } = useToast(); const router = useRouter(); const [modalOpen, setModalOpen] = useState(false); const [entfernt, setEntfernt] = useState(false); const stichtag = effectiveDate || todayIso(); 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: stichtag, 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 (
| Name | Telefon | Verhältnis | |
|---|---|---|---|
| {kontakt.name} | {kontakt.telefon ? ( // Wählbar: im Ernstfall greift jemand in Eile danach. {kontakt.telefon} ) : ( "–" )} | {kontakt.verhaeltnis || "–"} |
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. */}