diff --git a/app/src/components/Tree/TreeNode.tsx b/app/src/components/Tree/TreeNode.tsx index 2f09345..bd683b5 100644 --- a/app/src/components/Tree/TreeNode.tsx +++ b/app/src/components/Tree/TreeNode.tsx @@ -29,6 +29,9 @@ const styles = (theme: Theme) => { cursor: 'pointer', marginTop: '-1px', }, + subnodes: { + marginLeft: theme.spacing(1.5), + }, selected: { backgroundColor: 'rgba(170, 170, 170, 0.55)', }, @@ -187,23 +190,28 @@ class TreeNode extends React.Component { const highlightClass = this.state.selected ? this.props.classes.selected : (this.state.mouseOver ? this.props.classes.hover : '') return ( -
- - {this.renderNodes()} +
+
+ +
+
+ {this.renderNodes()} +
) } @@ -212,6 +220,12 @@ class TreeNode extends React.Component { this.props.didSelectTopic(this.props.treeNode) } + private didClickTitle = (event: React.MouseEvent) => { + event.preventDefault() + this.props.didSelectTopic(this.props.treeNode) + this.toggle() + } + private mouseOver = (event: React.MouseEvent) => { event.stopPropagation() this.setHover(true) @@ -226,10 +240,9 @@ class TreeNode extends React.Component { this.setState({ mouseOver: hover }) }, 45) - private didClickNode = (event: React.MouseEvent) => { + private toggleCollapsed = (event: React.MouseEvent) => { event.stopPropagation() this.toggle() - this.didSelectTopic() } private renderNodes() { diff --git a/app/src/components/Tree/TreeNodeTitle.tsx b/app/src/components/Tree/TreeNodeTitle.tsx index 653c6e8..c675604 100644 --- a/app/src/components/Tree/TreeNodeTitle.tsx +++ b/app/src/components/Tree/TreeNodeTitle.tsx @@ -11,29 +11,19 @@ export interface TreeNodeProps extends React.HTMLAttributes { collapsed?: boolean | undefined classes: any didSelectNode: any + toggleCollapsed: any } class TreeNodeTitle extends React.Component { - private mouseOver = (event: React.MouseEvent) => { - event.preventDefault() - this.selectTopic() - } - - private selectTopic = debounce(() => { - if (this.props.treeNode.message) { - this.props.didSelectNode(this.props.treeNode) - } - }, 5) - public render() { const { classes, treeNode, style, className } = this.props return ( - {this.renderExpander()} {this.renderSourceEdge()} {this.renderCollapsedSubnodes()} {this.renderValue()} + {this.renderExpander()} + {this.renderSourceEdge()} {this.renderCollapsedSubnodes()} {this.renderValue()} ) } @@ -81,6 +71,8 @@ const styles = (theme: Theme) => ({ }, expander: { color: theme.palette.type === 'light' ? '#222' : '#eee', + cursor: 'pointer' as 'pointer', + paddingRight: theme.spacing(0.25), }, title: { borderRadius: '4px', @@ -88,7 +80,7 @@ const styles = (theme: Theme) => ({ display: 'inline-block' as 'inline-block', whiteSpace: 'nowrap' as 'nowrap', padding: '1px 4px 0px 4px', - height: '16px', + height: '14px', margin: '1px 0px 2px 0px', }, collapsedSubnodes: {