diff --git a/src/helpers.js b/src/helpers.js index fb305a42..da61a536 100644 --- a/src/helpers.js +++ b/src/helpers.js @@ -100,12 +100,18 @@ function createFile(data, name, children) { size: formatBytes(data.size), icon: getIconForFileType(name.split('.').pop()), priority: data.priority, - children: children + children: children, + type: 'file' } } function createFolder(parent, name, children) { - children.sort((a, b) => a.name.localeCompare(b.name)) + children.sort((a, b) => { + if (a.type === b.type) return a.name.localeCompare(b.name) + else if (a.type === 'directory') return -1 + else return 1 + }) + return { name: name, fullName: parent === undefined ? name : `${parent.fullName}/${name}`, diff --git a/src/types/vuetorrent/TreeObjects.ts b/src/types/vuetorrent/TreeObjects.ts index acf4ec4a..df4aaf6f 100644 --- a/src/types/vuetorrent/TreeObjects.ts +++ b/src/types/vuetorrent/TreeObjects.ts @@ -2,6 +2,7 @@ export interface TreeNode { name: string fullName: string children: TreeNode[] + type: 'file' | 'directory' } export interface TreeFile extends TreeNode { @@ -10,6 +11,7 @@ export interface TreeFile extends TreeNode { size: string icon: string priority: number + type: 'file' } export interface TreeFolder extends TreeNode {