import { h, Component } from 'preact' import { bindActionCreators } from 'redux' import { connect } from 'react-redux' import { Link } from 'react-router-dom'; import moment from 'moment/min/moment.min' import util from '../util' const fieldSet = util.fieldSet(new Set(['name', 'date', 'size'])) export const FileList = props => { const { files, fields, sort, title, linkFiles, onClick, onDelete, orderBy='name asc', className='', fileListClassName='filelist', rowClassName='row file' } = props const { mapFn, sortFn } = util.sort.orderByFn(orderBy) const fileList = (files || []) .filter(f => !!f) .map(mapFn) .sort(sortFn) .map(pair => { return }) if (!fileList || !fileList.length) { return (

No files

) } // console.log(files) return (
{title &&

{title}

}
}
{fileList}
) } export const FileRow = props => { const { file, linkFiles, onDelete, onClick, className='row file', username='' } = props const fields = fieldSet(props.fields) const size = util.hush_size(file.size) const date = file.date || file.created_at const epoch = file.epoch || file.epochs || 0 let name; let key; if (file.name) { name = file.name key = name } else if (file.url) { if (file.opt && file.opt.type) { name = file.opt.type + ': ' + file.opt.title key = file.opt.token } else { name = file.url.replace(/^https?:\/\//, '') key = name } } return (
{fields.has('name') &&
{file.persisted === false ? {name} : (linkFiles && file.url) ? { e.preventDefault(); onClick && onClick(file, e) }} href={file.url}>{name} : onClick && onClick(file, e)}>{name} }
} {fields.has('age') &&
{util.get_age(date)}
} {fields.has('username') &&
{username}
} {fields.has('epoch') &&
{epoch > 0 ? 'ep. ' + epoch : ''}
} {fields.has('date') &&
{moment(date).format("YYYY-MM-DD")}
} {fields.has('datetime') &&
{moment(date).format("YYYY-MM-DD h:mm a")}
} {fields.has('size') &&
{size[1]}
} {(fields.has('activity') || fields.has('module')) &&
{fields.has('activity') && file.activity} {fields.has('module') && file.module}
} {fields.has('delete') && onDelete && file.id &&
onDelete(file)}>x
} {props.options && props.options(file)}
) }