function _dirsFirstCompare(a, b) { var aIsFile = FileTreeViewModel.isFile(contents.get(a)), bIsFile = FileTreeViewModel.isFile(contents.get(b)); if (!aIsFile && bIsFile) { return -1; } else if (aIsFile && !bIsFile) { return 1; } else { return FileUtils.compareFilenames(a, b); } }
return DOM.ul(ulProps, namesInOrder.map(function (name) { var entry = contents.get(name); if (FileTreeViewModel.isFile(entry)) { return fileNode({ depth: this.props.depth, parentPath: this.props.parentPath, name: name, entry: entry, actions: this.props.actions, extensions: this.props.extensions, forceRender: this.props.forceRender, platform: this.props.platform, key: name }); } else { return directoryNode({ depth: this.props.depth, parentPath: this.props.parentPath, name: name, entry: entry, actions: this.props.actions, extensions: this.props.extensions, sortDirectoriesFirst: this.props.sortDirectoriesFirst, forceRender: this.props.forceRender, platform: this.props.platform, key: name }); } }.bind(this)).toArray());
myPath: function () { var result = this.props.parentPath + this.props.name; // Add trailing slash for directories if (!FileTreeViewModel.isFile(this.props.entry) && _.last(result) !== "/") { result += "/"; } return result; }