diff --git a/src/components/FileExplorer.js b/src/components/FileExplorer.js index 281e614..43f54c9 100644 --- a/src/components/FileExplorer.js +++ b/src/components/FileExplorer.js @@ -201,6 +201,17 @@ export default class List extends React.Component { this.updateVisibleNodes() } + onNodeClick = (node) => { + if (node.type === 'tree') { + this.toggleNodeExpand(node, true) + } else if (node.type === 'blob') { + this.focusNode(node, true) + DOMHelper.loadWithPJAX(node.url) + } else if (node.type === 'commit') { + DOMHelper.loadWithPJAX(node.parent.url) + } + } + render() { const { visibleNodes: { nodes, depths, focusedNode, expandedNodes } } = this.state const { freeze } = this.props @@ -218,7 +229,7 @@ export default class List extends React.Component { depth={depths.get(node)} focused={focusedNode === node} expanded={expandedNodes.has(node)} - toggleExpand={this.toggleNodeExpand} + onClick={this.onNodeClick} /> ))} diff --git a/src/components/Node.js b/src/components/Node.js index 7f65cec..da83634 100644 --- a/src/components/Node.js +++ b/src/components/Node.js @@ -17,15 +17,9 @@ function getIconType(node) { } export default class Node extends React.PureComponent { - onNodeClick = () => { - const { node, toggleExpand } = this.props - if (node.type === 'tree') { - toggleExpand(node, true) - } else if (node.type === 'blob') { - DOMHelper.loadWithPJAX(node.url) - } else if (node.type === 'commit') { - DOMHelper.loadWithPJAX(node.parent.url) - } + onClick = () => { + const { node, onClick } = this.props + onClick(node) } render() { @@ -36,7 +30,7 @@ export default class Node extends React.PureComponent {
{name}