diff --git a/client/src/Components/design-elements/Table.tsx b/client/src/Components/design-elements/Table.tsx index a02f9be8f..5e4abcc11 100644 --- a/client/src/Components/design-elements/Table.tsx +++ b/client/src/Components/design-elements/Table.tsx @@ -142,7 +142,7 @@ export function DataTable< > {header.mobileLabel ?? header.content} diff --git a/client/src/Components/monitors/BulkEditNotificationsModal.tsx b/client/src/Components/monitors/BulkEditNotificationsModal.tsx index 73fa0defa..54959bcb1 100644 --- a/client/src/Components/monitors/BulkEditNotificationsModal.tsx +++ b/client/src/Components/monitors/BulkEditNotificationsModal.tsx @@ -14,14 +14,14 @@ interface BulkEditNotificationsModalProps { open: boolean; onClose: () => void; selectedMonitors: string[]; - onSuccess: () => void; + onComplete: (success: boolean) => void; } export const BulkEditNotificationsModal: React.FC = ({ open, onClose, selectedMonitors, - onSuccess, + onComplete, }) => { const { t } = useTranslation(); const theme = useTheme(); @@ -55,9 +55,7 @@ export const BulkEditNotificationsModal: React.FC + {isSmall && ( + + + 0 && selectedMonitors.length === monitors.length} + indeterminate={ + selectedMonitors.length > 0 && selectedMonitors.length < monitors.length + } + onChange={(e) => { + if (e.target.checked) { + onSelectAll(monitors.map((m) => m.id)); + } else { + onSelectAll([]); + } + }} + /> + + {t("common.selectAll", "Select All")} + + + + )} { refetch(); }; - const handleBulkEditSuccess = () => { + const handleBulkEditComplete = (success: boolean) => { setIsBulkEditModalOpen(false); - setSelectedRows([]); - refetch(); + if (success) { + setSelectedRows([]); + refetch(); + } }; const handleCancel = () => { @@ -267,12 +269,11 @@ const UptimeMonitorsPage = () => { onCancel={handleCancel} loading={isDeleting} /> - setIsBulkEditModalOpen(false)} selectedMonitors={selectedRows} - onSuccess={handleBulkEditSuccess} + onComplete={handleBulkEditComplete} /> );