From 2e3d4f1021aca34bb4d137bd7ffc9b60a3764db3 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sat, 23 Aug 2025 16:06:25 -0600 Subject: [PATCH] feat(ui): implement bulk delete dialog for services in project dashboard --- .../pages/dashboard/project/[projectId].tsx | 115 +++++++++++++++++- 1 file changed, 112 insertions(+), 3 deletions(-) diff --git a/apps/dokploy/pages/dashboard/project/[projectId].tsx b/apps/dokploy/pages/dashboard/project/[projectId].tsx index 65f7d064d..3182f316a 100644 --- a/apps/dokploy/pages/dashboard/project/[projectId].tsx +++ b/apps/dokploy/pages/dashboard/project/[projectId].tsx @@ -290,6 +290,8 @@ const Project = ( const [openCombobox, setOpenCombobox] = useState(false); const [selectedServices, setSelectedServices] = useState([]); const [isDropdownOpen, setIsDropdownOpen] = useState(false); + const [isBulkDeleteDialogOpen, setIsBulkDeleteDialogOpen] = useState(false); + const [deleteVolumes, setDeleteVolumes] = useState(false); const handleSelectAll = () => { if (selectedServices.length === filteredServices.length) { @@ -532,7 +534,7 @@ const Project = ( setIsBulkActionLoading(false); }; - const handleBulkDelete = async () => { + const handleBulkDelete = async (deleteVolumes = false) => { let success = 0; setIsBulkActionLoading(true); for (const serviceId of selectedServices) { @@ -549,7 +551,7 @@ const Project = ( case "compose": await composeActions.delete.mutateAsync({ composeId: serviceId, - deleteVolumes: false, + deleteVolumes, }); break; case "postgres": @@ -879,7 +881,7 @@ const Project = ( disabled={ selectedServicesWithRunningStatus.length > 0 } - onClick={handleBulkDelete} + onClick={() => setIsBulkDeleteDialogOpen(true)} > + + + +