UNPKG

@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
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) }