diff --git a/client/source/scripts/components/torrent-list/TorrentDetails.js b/client/source/scripts/components/torrent-list/TorrentDetails.js index 23bf7289..dd5e2e3a 100644 --- a/client/source/scripts/components/torrent-list/TorrentDetails.js +++ b/client/source/scripts/components/torrent-list/TorrentDetails.js @@ -3,6 +3,7 @@ import classNames from 'classnames'; import React from 'react'; import CSSTransitionGroup from 'react-addons-css-transition-group'; +import TorrentFiles from './TorrentFiles'; import EventTypes from '../../constants/EventTypes'; import format from '../../util/formatData'; import Icon from '../icons/Icon'; @@ -11,12 +12,9 @@ import TorrentStore from '../../stores/TorrentStore'; import UIStore from '../../stores/UIStore'; const METHODS_TO_BIND = [ - 'getFileData', - 'getFileTreeDomNodes', 'onTorrentDetailsHashChange', 'onOpenChange', 'onTorrentDetailsChange', - 'createFileTree', 'getHeading', 'getSidePanel' ]; @@ -76,106 +74,6 @@ export default class TorrentDetails extends React.Component { }); } - createFileTree(tree = {}, directory, file, depth = 0) { - if (depth < file.pathComponents.length - 1) { - depth++; - tree[directory] = this.createFileTree( - tree[directory], - file.pathComponents[depth], - file, - depth - ); - } else { - if (!tree.files) { - tree.files = []; - } - tree.files.push(file); - } - return tree; - } - - getFileTreeDomNodes(tree, depth = 0) { - let index = 0; - depth++; - return Object.keys(tree).map((branchName) => { - let branch = tree[branchName]; - let domNodes = null; - index++; - - if (branchName === 'files') { - branch.sort((a, b) => { - return a.filename.localeCompare(b.filename); - }); - domNodes = branch.map((file, fileIndex) => { - return ( -
- - {file.filename} -
- ); - }); - } else { - let classes = `file-list__branch file-list__branch--depth-${depth}`; - domNodes = ( -
-
- - {branchName} -
- {this.getFileTreeDomNodes(tree[branchName], depth)} -
- ); - } - - return domNodes; - }); - } - - getFileList(files) { - let tree = {}; - - files.forEach((file) => { - tree = this.createFileTree(tree, file.pathComponents[0], file); - }); - - let directoryTree = this.getFileTreeDomNodes(tree); - - return directoryTree; - } - - getFileData(torrent, files) { - let parentDirectory = torrent.directory; - let filename = torrent.filename; - - if (files) { - // We've received full file details from the client. - return ( -
-
- - {parentDirectory} -
- {this.getFileList(files)} -
- ); - } else { - // We've only received the top-level file details from the torrent list. - return ( -
-
- - {parentDirectory} -
-
- - {filename} -
-
- ); - } - } - getHeading() { // return ( //
@@ -276,7 +174,7 @@ export default class TorrentDetails extends React.Component { {this.getTrackerList(torrentDetails.trackers)} - {this.getFileData(torrent, torrentDetails.files)} + {this.getPeerList(torrentDetails.peers)}
); @@ -322,13 +220,17 @@ export default class TorrentDetails extends React.Component { } render() { - return ( - - {this.getSidePanel()} - - ); + try { + return ( + + {this.getSidePanel()} + + ); + } catch (err) { + console.trace(err); + } } }