Skip to content
Snippets Groups Projects
ListViewItem.jsx 1.96 KiB
Newer Older
  • Learn to ignore specific revisions
  • /*
     * 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)