From 0284278f61c66ccd75a6559c815ca299e912665f Mon Sep 17 00:00:00 2001 From: Lisa Knox Date: Thu, 20 Apr 2023 12:00:01 -0400 Subject: [PATCH] 15768: basic select function working Arvados-DCO-1.1-Signed-off-by: Lisa Knox --- src/components/data-table/data-table.tsx | 39 ++++++++++++------------ 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/src/components/data-table/data-table.tsx b/src/components/data-table/data-table.tsx index a2fc5e67..54c87566 100644 --- a/src/components/data-table/data-table.tsx +++ b/src/components/data-table/data-table.tsx @@ -13,7 +13,6 @@ import { countNodes, getTreeDirty } from 'models/tree'; import { IconType, PendingIcon } from 'components/icon/icon'; import { SvgIconProps } from '@material-ui/core/SvgIcon'; import ArrowDownwardIcon from '@material-ui/icons/ArrowDownward'; -//lisa import { Checkbox } from '@material-ui/core'; import { createTree } from 'models/tree'; @@ -90,24 +89,29 @@ const styles: StyleRulesCallback = (theme: Theme) => ({ }, }); +const selectedList = new Set(); + +const handleResourceSelect = (uuid) => { + if (selectedList.has(uuid)) selectedList.delete(uuid); + else selectedList.add(uuid); + console.log(selectedList); +}; + const checkBoxColumn: DataColumn = { - name: 'foo', + name: '', selected: true, configurable: false, filters: createTree(), - render: () => <>, + render: (item) => handleResourceSelect(item)} />, }; type DataTableProps = DataTableDataProps & WithStyles; export const DataTable = withStyles(styles)( class Component extends React.Component> { - handleResourceSelect = (uuid) => { - console.log(uuid); - }; render() { - const { items, classes, working } = this.props; - this.props.columns.unshift(checkBoxColumn); + const { items, classes, working, columns } = this.props; + if (columns[0] !== checkBoxColumn) columns.unshift(checkBoxColumn); return (
@@ -183,17 +187,14 @@ export const DataTable = withStyles(styles)( onDoubleClick={(event) => onRowDoubleClick && onRowDoubleClick(event, item)} selected={item === currentItemUuid} > - {this.mapVisibleColumns((column, index) => { - return index === 0 ? ( - - this.handleResourceSelect(item)} /> - - ) : ( - - {column.render(item)} - - ); - })} + {this.mapVisibleColumns((column, index) => ( + + {column.render(item)} + + ))} ); }; -- 2.30.2