/* * Copyright ETH 2023 Zürich, Scientific IT Services * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import React from 'react' import TableRow from '@material-ui/core/TableRow' import TableCell from '@material-ui/core/TableCell' import ItemIcon from '@src/js/components/database/data-browser/ItemIcon.jsx' import { withStyles } from '@material-ui/core/styles' const styles = (theme) => ({ nameColumn: { textAlign: 'left' }, sizeColumn: { width: '11rem', textAlign: 'left' }, modifiedColumn: { width: '11rem', textAlign: 'right' }, tableRow: { fontSize: theme.typography.body1.fontSize, height: '2rem' }, tableData: { padding: theme.spacing(2), borderWidth: '0' }, selected: { backgroundColor: '#e8f7fd' }, }) export class ListViewItem extends React.Component { render() { const { classes, file, configuration } = this.props return <TableRow className={classes.tableRow}> <TableCell className={`${classes.tableData} ${classes.nameColumn}`}> {<><ItemIcon classes={classes} file={file} configuration={configuration} />{file.name}</>} </TableCell> <TableCell className={`${classes.tableData} ${classes.sizeColumn}`}>{file.folder ? '-' : file.size}</TableCell> <TableCell className={`${classes.tableData} ${classes.modifiedColumn}`}>{file.lastModifiedTime.toLocaleString()}</TableCell> </TableRow> } } export default withStyles(styles)(ListViewItem)