From cf6c06b31f7b586399031c988ae8d22443115859 Mon Sep 17 00:00:00 2001 From: Domino987 Date: Mon, 27 Jun 2022 23:39:32 +0200 Subject: [PATCH] fix: display export button for selected state --- src/components/MTableToolbar/index.js | 38 ++++++++------------------- src/material-table.js | 3 ++- src/utils/data-manager.js | 2 +- 3 files changed, 14 insertions(+), 29 deletions(-) diff --git a/src/components/MTableToolbar/index.js b/src/components/MTableToolbar/index.js index 244ffc56..dd798d29 100644 --- a/src/components/MTableToolbar/index.js +++ b/src/components/MTableToolbar/index.js @@ -24,8 +24,8 @@ export function MTableToolbar(props) { const options = useOptionStore(); const selectedRows = React.useMemo( - () => props.selectedRows.filter((a) => a.tableData.checked), - [props.selectedRows] + () => props.originalData.filter((a) => a.tableData.checked), + [props.originalData] ); const onSearchChange = (searchText) => { @@ -127,12 +127,12 @@ export function MTableToolbar(props) { } } - function renderDefaultActions() { + function renderDefaultActions(isSelectionActive) { const { classes } = props; - + const diplayedActions = isSelectionActive ? 'toolbarOnSelect' : 'toolbar'; return (
- {options.columnsButton && ( + {options.columnsButton && !isSelectionActive && ( a.position === 'toolbar') + props.actions.filter((a) => a.position === diplayedActions) } + data={isSelectionActive ? selectedRows : undefined} components={props.components} /> @@ -252,30 +253,12 @@ export function MTableToolbar(props) { ); } - function renderSelectedActions() { - return ( - - a.position === 'toolbarOnSelect' - )} - data={selectedRows} - components={props.components} - /> - - ); - } - function renderActions() { const { classes } = props; return (
-
- {selectedRows.length > 0 - ? renderSelectedActions() - : renderDefaultActions()} -
+
{renderDefaultActions(selectedRows.length > 0)}
); } @@ -311,6 +294,7 @@ export function MTableToolbar(props) { : options.showTitle ? props.title : null; + return ( this.props.options.exportAll ? this.state.data : this.state.renderData; + render() { const props = this.getProps(); return ( @@ -1089,7 +1090,7 @@ export default class MaterialTable extends React.Component {