fix(Node): focus node when clicked

This commit is contained in:
EnixCoda 2018-06-17 21:01:33 +08:00
parent 57f4f2b5ea
commit b8f0ccf781
2 changed files with 16 additions and 11 deletions

View file

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

View file

@ -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 {
<div
className={cx('node-item', { expanded })}
style={{ paddingLeft: `${10 + 20 * depth}px` }}
onClick={this.onNodeClick}
onClick={this.onClick}
>
<Icon type={getIconType(node)} />
<span className={'node-item-name'}>{name}</span>