/*
 *  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 autoBind from 'auto-bind'
import Container from '@src/js/components/common/form/Container.jsx'
import Table from '@material-ui/core/Table'
import TableBody from '@material-ui/core/TableBody'
import TableCell from '@material-ui/core/TableCell'
import TableRow from '@material-ui/core/TableRow'
import Header from '@src/js/components/common/form/Header.jsx';
import ItemIcon from '@src/js/components/database/data-browser/ItemIcon.jsx';
import { withStyles } from "@material-ui/core/styles";

const styles = () => ({
  container: {
    position: 'sticky'
  },
  icon: {
    verticalAlign: 'middle',
    fontSize: '12rem'
  }
})

class InfoPanel extends React.Component {
  constructor(props, context) {
    super(props, context)
    autoBind(this)
  }

  render() {
    const {
      classes,
      file,
      configuration
    } = this.props

    // TODO: extract strings to messages
    return (file &&
      <Container className={classes.container}>
        <Header size='big'>{file.name}</Header>
        <ItemIcon file={file} classes={classes} configuration={configuration} />
        <Table>
          <TableBody>
            <TableRow>
              <TableCell variant='head' component='th'>Size</TableCell>
              <TableCell>{file.size}</TableCell>
            </TableRow>
            <TableRow>
              <TableCell variant='head' component='th'>Created</TableCell>
              <TableCell>{file.creationTime.toLocaleString()}</TableCell>
            </TableRow>
            <TableRow>
              <TableCell variant='head' component='th'>Modified</TableCell>
              <TableCell>{file.lastModifiedTime.toLocaleString()}</TableCell>
            </TableRow>
            <TableRow>
              <TableCell variant='head' component='th'>Accessed</TableCell>
              <TableCell>{file.lastAccessTime.toLocaleString()}</TableCell>
            </TableRow>
          </TableBody>
        </Table>
      </Container>
    )
  }
}

export default withStyles(styles)(InfoPanel)