From 90caa282ee4681beb5d4649973ce2a9df3f85f54 Mon Sep 17 00:00:00 2001 From: Raffael Sheikh Date: Sun, 7 Jun 2026 11:28:48 +0200 Subject: [PATCH] =?UTF-8?q?UI:=20Best=C3=A4tigungsdialog=20vor=20allen=20L?= =?UTF-8?q?=C3=B6schungen=20(Projekt=20+=20Lead)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bisher loeschten 8 Muelltonnen-Icons sofort und unwiderruflich, ganz ohne Rueckfrage. Jetzt fragt jeder Loeschpfad ueber useConfirm() nach. - projekt.tsx: Aenderung, Stakeholder, Risiko, Meilenstein - lead.tsx: Kontakt, Touchpoint, offene Frage, Anhang Co-Authored-By: Claude Opus 4.8 (1M context) --- apps/web/src/routes/lead.tsx | 49 ++++++++++++++++++++++++++++++--- apps/web/src/routes/projekt.tsx | 49 ++++++++++++++++++++++++++++++--- 2 files changed, 90 insertions(+), 8 deletions(-) diff --git a/apps/web/src/routes/lead.tsx b/apps/web/src/routes/lead.tsx index 0b60fea..9af5c19 100644 --- a/apps/web/src/routes/lead.tsx +++ b/apps/web/src/routes/lead.tsx @@ -10,6 +10,7 @@ import { voice } from '../lib/voice'; import { Card } from '../components/ui/Card'; import { Button } from '../components/ui/Button'; import { SkeletonCard } from '../components/ui/SkeletonCard'; +import { useConfirm } from '../components/ui/ConfirmProvider'; import { LEAD_STATUS_META, LEAD_STATUS_ORDER, @@ -591,6 +592,7 @@ function ContactRow({ leadId, contact }: { leadId: string; contact: Contact }) { await utils.lead.byId.invalidate({ id: leadId }); }, }); + const confirm = useConfirm(); const details = [ contact.email, contact.telefon, @@ -628,7 +630,16 @@ function ContactRow({ leadId, contact }: { leadId: string; contact: Contact }) {