From cae21867873bec10eabf859d759541d53e7c3895 Mon Sep 17 00:00:00 2001 From: George Walker Date: Wed, 14 Aug 2019 11:48:30 -0500 Subject: [PATCH] Allow async onRowsDelete --- src/MUIDataTable.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/MUIDataTable.js b/src/MUIDataTable.js index 8f4bb43ce..bca72439c 100644 --- a/src/MUIDataTable.js +++ b/src/MUIDataTable.js @@ -1,11 +1,7 @@ -import Paper from '@material-ui/core/Paper'; -import { withStyles } from '@material-ui/core/styles'; +import { buildMap, getCollatorComparator, sortCompare } from './utils'; + import MuiTable from '@material-ui/core/Table'; -import classnames from 'classnames'; -import cloneDeep from 'lodash.clonedeep'; -import find from 'lodash.find'; -import isUndefined from 'lodash.isundefined'; -import merge from 'lodash.merge'; +import Paper from '@material-ui/core/Paper'; import PropTypes from 'prop-types'; import React from 'react'; import TableBody from './components/TableBody'; @@ -15,8 +11,13 @@ import TableHead from './components/TableHead'; import TableResize from './components/TableResize'; import TableToolbar from './components/TableToolbar'; import TableToolbarSelect from './components/TableToolbarSelect'; +import classnames from 'classnames'; +import cloneDeep from 'lodash.clonedeep'; +import find from 'lodash.find'; +import isUndefined from 'lodash.isundefined'; +import merge from 'lodash.merge'; import textLabels from './textLabels'; -import { buildMap, getCollatorComparator, sortCompare } from './utils'; +import { withStyles } from '@material-ui/core/styles'; const defaultTableStyles = theme => ({ root: {}, @@ -955,14 +956,15 @@ class MUIDataTable extends React.Component { ); }; - selectRowDelete = () => { + selectRowDelete = async () => { const { selectedRows, data, filterList } = this.state; const selectedMap = buildMap(selectedRows.data); const cleanRows = data.filter(({ index }) => !selectedMap[index]); if (this.options.onRowsDelete) { - if (this.options.onRowsDelete(selectedRows) === false) return; + const deleteResult = await this.options.onRowsDelete(selectedRows); + if (deleteResult === false) return; } this.setTableData(