"use client"; import { Trash2 } from "lucide-react"; import { useRouter } from "next/navigation"; import { useState } from "react"; import { deleteHistoryEntry } from "@/actions/employees"; import { Button } from "@/components/ui/Button"; import { Modal } from "@/components/ui/Modal"; import { useToast } from "@/components/ui/Toast"; import { fmtDate } from "@/lib/format"; import type { Vorschau } from "@/lib/history"; // Löschen mit Ansage. // // Bestätigen heisst hier nicht „Wirklich?" — das beantwortet jede Person nach // dem dritten Mal blind mit Ja. Der Dialog sagt stattdessen, **was danach // anders ist**: welches Feld auf welchen Wert zurückgeht, und welches nicht, // weil eine spätere Änderung es erneut angefasst hat. Wer das liest, merkt // selbst, ob er den richtigen Eintrag erwischt hat. export function HistorieLoeschen({ historyId, employeeId, bezeichnung, datum, vorschau, }: { historyId: string; employeeId: string; bezeichnung: string; datum: string; vorschau: Vorschau[]; }) { const [offen, setOffen] = useState(false); const [laeuft, setLaeuft] = useState(false); const { showToast } = useToast(); const router = useRouter(); const zurueck = vorschau.filter((v) => !v.bleibt); const bleibt = vorschau.filter((v) => v.bleibt); async function loeschen() { setLaeuft(true); const ergebnis = await deleteHistoryEntry({ history_id: historyId, employee_id: employeeId }); setLaeuft(false); if (ergebnis.success) { showToast("Eintrag gelöscht."); setOffen(false); router.refresh(); } else { showToast(ergebnis.error ?? "Löschen fehlgeschlagen.", "error"); } } return ( <> setOffen(false)} title="Eintrag löschen" footer={ <> } >

{bezeichnung} vom {fmtDate(datum)} wird aus der Historie entfernt.

{zurueck.length > 0 && (

Wird zurückgesetzt

)} {bleibt.length > 0 && (

Bleibt unverändert

)}

Der Vorgang wird im Protokoll festgehalten — mit Zeitpunkt, Person und den Werten der gelöschten Zeile. Die Zeile selbst lässt sich nicht wiederherstellen.

); }