import { IconType, PendingIcon } from 'components/icon/icon';
import { SvgIconProps } from '@material-ui/core/SvgIcon';
import ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';
+import { Checkbox } from '@material-ui/core';
+import { createTree } from 'models/tree';
export type DataColumns<I, R> = Array<DataColumn<I, R>>;
currentRoute?: string;
}
-type CssRules = 'tableBody' | 'root' | 'content' | 'noItemsInfo' | 'tableCellSelect' | 'tableCell' | 'arrow' | 'arrowButton' | 'tableCellWorkflows' | 'loader';
+type CssRules = 'tableBody' | 'root' | 'content' | 'noItemsInfo' | 'checkBoxCell' | 'tableCell' | 'arrow' | 'arrowButton' | 'tableCellWorkflows' | 'loader';
const styles: StyleRulesCallback<CssRules> = (theme: Theme) => ({
root: {
textAlign: 'center',
padding: theme.spacing.unit,
},
- tableCellSelect: {
+ checkBoxCell: {
+ // border: '1px dotted green',
padding: '0',
},
tableCell: {
},
});
+const selectedList = new Set();
+
+const handleResourceSelect = (uuid) => {
+ if (selectedList.has(uuid)) selectedList.delete(uuid);
+ else selectedList.add(uuid);
+ console.log(selectedList);
+};
+
+const checkBoxColumn: DataColumn<any, any> = {
+ name: '',
+ selected: true,
+ configurable: false,
+ filters: createTree(),
+ render: (item) => <Checkbox color='primary' onChange={() => handleResourceSelect(item)} />,
+};
+
type DataTableProps<T> = DataTableDataProps<T> & WithStyles<CssRules>;
export const DataTable = withStyles(styles)(
class Component<T> extends React.Component<DataTableProps<T>> {
render() {
- const { items, classes, working } = this.props;
+ const { items, classes, working, columns } = this.props;
+ if (columns[0] !== checkBoxColumn) columns.unshift(checkBoxColumn);
return (
<div className={classes.root}>
<div className={classes.content}>
{this.mapVisibleColumns((column, index) => (
<TableCell
key={column.key || index}
- className={currentRoute === '/workflows' ? classes.tableCellWorkflows : index === 0 ? classes.tableCellSelect : classes.tableCell}
+ className={currentRoute === '/workflows' ? classes.tableCellWorkflows : index === 0 ? classes.checkBoxCell : classes.tableCell}
>
{column.render(item)}
</TableCell>