const React = require('react') const prettyBytes = require('pretty-bytes') const getFileContentType = require('../utils/getFileContentType') const e = React.createElement const formatTime = time => new Date(time).toISOString() const DirectoryListing = ({ dir, entries }) => { const rows = entries.map(({ file, stats }, index) => { const isDir = stats.isDirectory() const href = file + (isDir ? '/' : '') return e( 'tr', { key: file, className: index % 2 ? 'odd' : 'even' }, e('td', null, e('a', { title: file, href }, file)), e('td', null, isDir ? '-' : getFileContentType(file)), e('td', null, isDir ? '-' : prettyBytes(stats.size)), e('td', null, isDir ? '-' : formatTime(stats.mtime)) ) }) if (dir !== '/') rows.unshift( e( 'tr', { key: '..', className: 'odd' }, e('td', null, e('a', { title: 'Parent directory', href: '../' }, '..')), e('td', null, '-'), e('td', null, '-'), e('td', null, '-') ) ) return e( 'table', null, e( 'thead', null, e( 'tr', null, e('th', null, 'Name'), e('th', null, 'Type'), e('th', null, 'Size'), e('th', null, 'Last Modified') ) ), e('tbody', null, rows) ) } module.exports = DirectoryListing