From 8369fa539db3393b2afcade457e4eb1a20e69cb0 Mon Sep 17 00:00:00 2001 From: MDeeApp <6595194+MDeeApp@users.noreply.github.com> Date: Sat, 11 Oct 2025 11:46:36 +0200 Subject: [PATCH] changed delete confirmation --- frontend/src/locales/de/common.json | 1 + frontend/src/locales/en/common.json | 1 + frontend/src/routes/ContractsList.tsx | 40 +++++++++++++++++++++++---- 3 files changed, 37 insertions(+), 5 deletions(-) diff --git a/frontend/src/locales/de/common.json b/frontend/src/locales/de/common.json index 9e44461..3e76cea 100644 --- a/frontend/src/locales/de/common.json +++ b/frontend/src/locales/de/common.json @@ -73,6 +73,7 @@ }, "loading": "Lade Verträge…", "empty": "Keine Verträge gefunden.", + "deleteTitle": "Vertrag löschen", "deleteConfirm": "Vertrag \"{{title}}\" wirklich löschen?", "details": "Details anzeigen", "edit": "Bearbeiten", diff --git a/frontend/src/locales/en/common.json b/frontend/src/locales/en/common.json index 9ba0992..d1c1a7a 100644 --- a/frontend/src/locales/en/common.json +++ b/frontend/src/locales/en/common.json @@ -73,6 +73,7 @@ }, "loading": "Loading contracts…", "empty": "No contracts found.", + "deleteTitle": "Delete contract", "deleteConfirm": "Do you really want to delete \"{{title}}\"?", "details": "Show details", "edit": "Edit", diff --git a/frontend/src/routes/ContractsList.tsx b/frontend/src/routes/ContractsList.tsx index 58e479a..1d4cf06 100644 --- a/frontend/src/routes/ContractsList.tsx +++ b/frontend/src/routes/ContractsList.tsx @@ -6,6 +6,11 @@ import { Box, Button, Chip, + Dialog, + DialogActions, + DialogContent, + DialogContentText, + DialogTitle, IconButton, InputAdornment, MenuItem, @@ -35,6 +40,7 @@ export default function ContractsList() { const queryClient = useQueryClient(); const { showMessage } = useSnackbar(); const { t } = useTranslation(); + const [contractToDelete, setContractToDelete] = useState(null); const { data: contracts, @@ -87,10 +93,10 @@ export default function ContractsList() { onError: (error: Error) => showMessage(error.message ?? t("contracts.deleteError"), "error") }); - const handleDelete = (contract: Contract) => { - if (window.confirm(t("contracts.deleteConfirm", { title: contract.title }))) { - deleteMutation.mutate(contract.id); - } + const handleDeleteConfirm = () => { + if (!contractToDelete) return; + deleteMutation.mutate(contractToDelete.id); + setContractToDelete(null); }; return ( @@ -204,7 +210,7 @@ export default function ContractsList() { - handleDelete(contract)}> + setContractToDelete(contract)}> @@ -214,6 +220,30 @@ export default function ContractsList() { + + setContractToDelete(null)} + aria-labelledby="delete-contract-title" + > + {t("contracts.deleteTitle")} + + + {t("contracts.deleteConfirm", { title: contractToDelete?.title ?? "" })} + + + + + + + ); }