@alyzenpublic/react-keyed-file-browser
Version:
Folder based file browser given a flat keyed list of objects, powered by React.
38 lines (31 loc) • 1.03 kB
JavaScript
import Moment from 'moment'
function lastModifiedComparer(a, b) {
return (+Moment(a.modified) < +Moment(b.modified))
}
function lastModifiedSort(allFiles) {
const folders = []
let files = []
for (let fileIndex = 0; fileIndex < allFiles.length; fileIndex++) {
const file = allFiles[fileIndex]
const keyFolders = (file.newKey || file.key).split('/')
if (file.children) {
// file.name = keyFolders[keyFolders.length - 2]
folders.push(file)
} else {
file.name = keyFolders[keyFolders.length - 1]
files.push(file)
}
}
files = files.sort(lastModifiedComparer)
for (let folderIndex = 0; folderIndex < folders.length; folderIndex++) {
const folder = folders[folderIndex]
folder.children = lastModifiedSort(folder.children)
}
let sortedFiles = []
sortedFiles = sortedFiles.concat(folders)
sortedFiles = sortedFiles.concat(files)
return sortedFiles
}
export default function(files) {
return lastModifiedSort(files)
}