mirror of
https://github.com/EnixCoda/Gitako.git
synced 2026-03-11 08:54:44 +00:00
fix(Node): focus node when clicked
This commit is contained in:
parent
57f4f2b5ea
commit
b8f0ccf781
2 changed files with 16 additions and 11 deletions
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Reference in a new issue