import PropTypes from 'prop-types'
import classNames from 'classnames'
import FileTreeDoc from './file-tree-doc'
import FileTreeFolder from './file-tree-folder'
import { fileCollator } from '../util/file-collator'
function FileTreeFolderList({
folders,
docs,
files,
classes = {},
dropRef = null,
children,
dataTestId,
}) {
files = files.map(file => ({ ...file, isFile: true }))
const docsAndFiles = [...docs, ...files]
return (
{folders.sort(compareFunction).map(folder => {
return (
)
})}
{docsAndFiles.sort(compareFunction).map(doc => {
return (
)
})}
{children}
)
}
FileTreeFolderList.propTypes = {
folders: PropTypes.array.isRequired,
docs: PropTypes.array.isRequired,
files: PropTypes.array.isRequired,
classes: PropTypes.exact({
root: PropTypes.string,
}),
dropRef: PropTypes.func,
children: PropTypes.node,
dataTestId: PropTypes.string,
}
function compareFunction(one, two) {
return fileCollator.compare(one.name, two.name)
}
export default FileTreeFolderList