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}
/>
);