diff --git a/packages/bbui/src/Modal/ModalContent.svelte b/packages/bbui/src/Modal/ModalContent.svelte index 7d3a8d7c40..eb73e255d5 100644 --- a/packages/bbui/src/Modal/ModalContent.svelte +++ b/packages/bbui/src/Modal/ModalContent.svelte @@ -28,9 +28,9 @@ let loading = false $: confirmDisabled = disabled || loading - async function secondary() { + async function secondary(e) { loading = true - if (!secondaryAction || (await secondaryAction()) !== false) { + if (!secondaryAction || (await secondaryAction(e)) !== false) { hide() } loading = false diff --git a/packages/builder/src/components/backend/DataTable/Table.svelte b/packages/builder/src/components/backend/DataTable/Table.svelte index adc35a333d..7c9b5bcf3d 100644 --- a/packages/builder/src/components/backend/DataTable/Table.svelte +++ b/packages/builder/src/components/backend/DataTable/Table.svelte @@ -4,6 +4,7 @@ import { Table, Modal, Heading, notifications, Layout } from "@budibase/bbui" import { API } from "api" import Spinner from "components/common/Spinner.svelte" + import ConfirmDialog from "components/common/ConfirmDialog.svelte" import DeleteRowsButton from "./buttons/DeleteRowsButton.svelte" import CreateEditRow from "./modals/CreateEditRow.svelte" import CreateEditUser from "./modals/CreateEditUser.svelte" @@ -34,8 +35,8 @@ let editRowModal let editColumnModal let customRenderers = [] + let confirmDelete - $: isInternal = type !== "external" $: isUsersTable = tableId === TableNames.USERS $: data && resetSelectedRows() $: editRowComponent = isUsersTable ? CreateEditUser : CreateEditRow @@ -89,15 +90,17 @@ ) } - const deleteRows = async () => { + const deleteRows = async targetRows => { try { await API.deleteRows({ tableId, - rows: selectedRows, + rows: targetRows, }) - data = data.filter(row => !selectedRows.includes(row)) - notifications.success(`Successfully deleted ${selectedRows.length} rows`) - selectedRows = [] + + const deletedRowIds = targetRows.map(row => row._id) + data = data.filter(row => deletedRowIds.indexOf(row._id)) + + notifications.success(`Successfully deleted ${targetRows.length} rows`) } catch (error) { notifications.error("Error deleting rows") } @@ -133,7 +136,14 @@