import React from 'react'; import PropTypes from 'prop-types'; import intl from 'react-intl-universal'; import { withStyles } from '@material-ui/core/styles'; import Table from '@material-ui/core/Table'; import TableBody from '@material-ui/core/TableBody'; import TableRow from '@material-ui/core/TableRow'; import TableCell from '@material-ui/core/TableCell'; import ResultTableCell from '../facet_results/ResultTableCell'; import Tooltip from '@material-ui/core/Tooltip'; import IconButton from '@material-ui/core/IconButton'; import InfoIcon from '@material-ui/icons/InfoOutlined'; import has from 'lodash'; const styles = theme => ({ instanceTable: { //maxWidth: 800, //width: '100%', height: '100%', borderTop: '1px solid rgba(224, 224, 224, 1);', }, divider: { marginTop: theme.spacing(1), marginBottom: theme.spacing(1) }, sahaButton: { margin: theme.spacing(2), }, spinnerContainer: { display: 'flex', width: '100%', height: '100%', alignItems: 'center', justifyContent: 'center' }, labelCell: { width: 240, } }); const InstanceHomePageTable = props => { const { classes, data, properties } = props; return ( <Table className={classes.instanceTable}> <TableBody> {properties.map(row => { const label = intl.get(`perspectives.${props.resultClass}.properties.${row.id}.label`); const description = intl.get(`perspectives.${props.resultClass}.properties.${row.id}.description`); return ( <TableRow key={row.id}> <TableCell className={classes.labelCell}> {label} <Tooltip title={description} enterDelay={300} > <IconButton> <InfoIcon /> </IconButton> </Tooltip> </TableCell> <ResultTableCell columnId={row.id} data={data[row.id]} valueType={row.valueType} makeLink={row.makeLink} externalLink={row.externalLink} sortValues={row.sortValues} numberedList={row.numberedList} container='cell' expanded={true} linkAsButton={has(row, 'linkAsButton') ? row.linkAsButton : null } collapsedMaxWords={has(row, 'collapsedMaxWords') ? row.collapsedMaxWords : null } showSource={has(row, 'showSource') ? row.showSource : null } sourceExternalLink={has(row, 'sourceExternalLink') ? row.sourceExternalLink : null } /> </TableRow> ); } )} </TableBody> </Table> ); }; InstanceHomePageTable.propTypes = { classes: PropTypes.object.isRequired, resultClass: PropTypes.string.isRequired, data: PropTypes.object.isRequired, properties: PropTypes.array.isRequired }; export default withStyles(styles)(InstanceHomePageTable);