Add code from express-unpkg repo
This commit is contained in:
50
server/middleware/components/DirectoryListing.js
Normal file
50
server/middleware/components/DirectoryListing.js
Normal file
@ -0,0 +1,50 @@
|
||||
const React = require('react')
|
||||
const prettyBytes = require('pretty-bytes')
|
||||
const { getContentType } = require('../FileUtils')
|
||||
|
||||
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 ? '-' : getContentType(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
|
Reference in New Issue
Block a user