diff --git a/src/components/layout/DeleteDialog.tsx b/src/components/layout/DeleteDialog.tsx index 9dbd9d2..0834970 100644 --- a/src/components/layout/DeleteDialog.tsx +++ b/src/components/layout/DeleteDialog.tsx @@ -17,6 +17,7 @@ interface DeleteDialogProps { topicName?: string; onConfirm: () => void; isLoading?: boolean; + warningContent?: React.ReactNode; } const DeleteDialog: React.FC = ({ @@ -26,6 +27,7 @@ const DeleteDialog: React.FC = ({ topicName, onConfirm, isLoading, + warningContent, }) => { return ( @@ -39,6 +41,11 @@ const DeleteDialog: React.FC = ({ dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden. + {warningContent && ( +
+ {warningContent} +
+ )} + )} +
+ + { + setDeleteDialogOpen(open); + if (!open) setEmployeeToDelete(null); + }} + itemName={employeeToDelete?.name} + topicName="Mitarbeiter" + onConfirm={handleDeleteConfirm} + isLoading={isDeleting} + warningContent={ + activeCourseCount > 0 && employeeToDelete ? ( +

+ Dieser Trainer ist noch in{" "} + + {activeCourseCount} aktiven Kurs{activeCourseCount !== 1 ? "en" : ""} + {" "} + eingetragen. Nach dem Löschen wird er in diesen Kursen nicht mehr angezeigt. +

+ ) : undefined + } + />
); }; diff --git a/src/modules/employee/ui/views/employee-list-view.tsx b/src/modules/employee/ui/views/employee-list-view.tsx index ae318a6..e63b634 100644 --- a/src/modules/employee/ui/views/employee-list-view.tsx +++ b/src/modules/employee/ui/views/employee-list-view.tsx @@ -6,6 +6,7 @@ import EmployeeListItem from "../components/EmployeeListItem"; import { toast } from "sonner"; import DeleteDialog from "@/src/components/layout/DeleteDialog"; import { useDeleteEmployee } from "../../hooks/useDeleteEmployee"; +import Link from "next/link"; type Employee = { id: string; @@ -39,6 +40,7 @@ const EmployeeListView = ({ canCreate, canEdit, canDelete }: EmployeeListViewPro employeeToDelete, setEmployeeToDelete, isDeleting, + activeCourseCount, handleDeleteClick, handleDeleteConfirm, } = useDeleteEmployee({ @@ -144,6 +146,24 @@ const EmployeeListView = ({ canCreate, canEdit, canDelete }: EmployeeListViewPro topicName="Mitarbeiter" onConfirm={handleDeleteConfirm} isLoading={isDeleting} + warningContent={ + activeCourseCount > 0 && employeeToDelete ? ( +

+ Dieser Trainer ist noch in{" "} + + {activeCourseCount} aktiven Kurs{activeCourseCount !== 1 ? "en" : ""} + {" "} + eingetragen.{" "} + setDeleteDialogOpen(false)} + > + Kurse anzeigen + +

+ ) : undefined + } /> );