// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; import { Table, TableBody, TableRow, TableCell, TableHead, StyleRulesCallback, Theme, WithStyles, withStyles, Typography, Grid } from '@material-ui/core'; import { Column } from './column'; import ColumnsConfigurator from "./columns-configurator/columns-configurator"; export interface DataExplorerProps { items: T[]; columns: Array>; onColumnToggle: (column: Column) => void; onItemClick: (item: T) => void; } class DataExplorer extends React.Component & WithStyles> { render() { const { items, columns, classes, onItemClick, onColumnToggle } = this.props; return (
{ items.length > 0 ? ( { columns.filter(column => column.selected).map((column, index) => ( {column.header} )) } { items.map((item, index) => ( onItemClick(item)}> { columns.filter(column => column.selected).map((column, index) => ( {column.render(item)} )) } )) }
) : ( No items ) }
); } } type CssRules = "tableBody" | "tableContainer"; const styles: StyleRulesCallback = (theme: Theme) => ({ tableContainer: { overflowX: 'auto' }, tableBody: { background: theme.palette.background.paper } }); export default withStyles(styles)(DataExplorer);