From f76ea848cd50c99b3cf8fbb70e9b0fb5a5f1a4d9 Mon Sep 17 00:00:00 2001 From: Thomas Nordquist Date: Mon, 8 Apr 2019 20:23:07 +0200 Subject: [PATCH] Reduce tree DOM nodes by 33% --- app/src/components/Tree/TreeNode.tsx | 16 +++++++---- app/src/components/Tree/TreeNodeSubnodes.tsx | 4 +-- app/src/components/Tree/TreeNodeTitle.tsx | 30 ++++++-------------- 3 files changed, 21 insertions(+), 29 deletions(-) diff --git a/app/src/components/Tree/TreeNode.tsx b/app/src/components/Tree/TreeNode.tsx index c41e1a1..a6d8586 100644 --- a/app/src/components/Tree/TreeNode.tsx +++ b/app/src/components/Tree/TreeNode.tsx @@ -38,6 +38,15 @@ const styles = (theme: Theme) => { hover: { backgroundColor: theme.palette.type === 'dark' ? 'rgba(100, 100, 100, 0.55)' : 'rgba(200, 200, 200, 0.55)', }, + title: { + borderRadius: '4px', + lineHeight: '1em', + display: 'inline-block' as 'inline-block', + whiteSpace: 'nowrap' as 'nowrap', + padding: '1px 4px 0px 4px', + height: '14px', + margin: '1px 0px 2px 0px', + }, } } @@ -236,7 +245,7 @@ class TreeNode extends React.Component {
{ collapsed={this.collapsed()} treeNode={this.props.treeNode} name={this.props.name} - className={highlightClass} />
-
- {this.renderNodes()} -
+ {this.renderNodes()}
) } diff --git a/app/src/components/Tree/TreeNodeSubnodes.tsx b/app/src/components/Tree/TreeNodeSubnodes.tsx index 4bda1ad..aa03524 100644 --- a/app/src/components/Tree/TreeNodeSubnodes.tsx +++ b/app/src/components/Tree/TreeNodeSubnodes.tsx @@ -94,9 +94,7 @@ const styles = (theme: Theme) => ({ list: { display: 'block' as 'block', clear: 'both' as 'both', - }, - listItem: { - padding: `0px 0px 0px ${theme.spacing(1)}`, + marginLeft: theme.spacing(1.5), }, }) diff --git a/app/src/components/Tree/TreeNodeTitle.tsx b/app/src/components/Tree/TreeNodeTitle.tsx index d57c1c3..073fd34 100644 --- a/app/src/components/Tree/TreeNodeTitle.tsx +++ b/app/src/components/Tree/TreeNodeTitle.tsx @@ -10,9 +10,9 @@ export interface TreeNodeProps extends React.HTMLAttributes { treeNode: q.TreeNode name?: string | undefined collapsed?: boolean | undefined - classes: any didSelectNode: any toggleCollapsed: any + classes: any } class TreeNodeTitle extends React.Component { @@ -34,7 +34,7 @@ class TreeNodeTitle extends React.Component { return null } - return this.props.collapsed ? '▶' : '▼' + return {this.props.collapsed ? '▶' : '▼'} } private renderCollapsedSubnodes() { @@ -46,16 +46,13 @@ class TreeNodeTitle extends React.Component { return ({this.props.treeNode.childTopicCount()} topics, {messages} messages) } public render() { - const { classes, style, className } = this.props - return ( - - {this.renderExpander()} - {this.renderSourceEdge()} {this.renderCollapsedSubnodes()} {this.renderValue()} - - ) + const { style, className } = this.props + return ([ + this.renderExpander(), + this.renderSourceEdge(), + this.renderCollapsedSubnodes(), + this.renderValue(), + ]) } } @@ -75,15 +72,6 @@ const styles = (theme: Theme) => ({ cursor: 'pointer' as 'pointer', paddingRight: theme.spacing(0.25), }, - title: { - borderRadius: '4px', - lineHeight: '1em', - display: 'inline-block' as 'inline-block', - whiteSpace: 'nowrap' as 'nowrap', - padding: '1px 4px 0px 4px', - height: '14px', - margin: '1px 0px 2px 0px', - }, collapsedSubnodes: { color: theme.palette.text.secondary, },