Set keys in TreeNodeTitle

This commit is contained in:
Thomas Nordquist
2019-04-09 00:04:36 +02:00
parent f76ea848cd
commit fcc560ef3f

View File

@@ -1,10 +1,8 @@
import * as React from 'react' import * as React from 'react'
import { connect } from 'react-redux'
import * as q from '../../../../backend/src/Model' import * as q from '../../../../backend/src/Model'
import { withStyles, Theme } from '@material-ui/core' import { withStyles, Theme } from '@material-ui/core'
import { TopicViewModel } from '../../model/TopicViewModel' import { TopicViewModel } from '../../model/TopicViewModel'
import { Base64Message } from '../../../../backend/src/Model/Base64Message' import { Base64Message } from '../../../../backend/src/Model/Base64Message'
const debounce = require('lodash.debounce')
export interface TreeNodeProps extends React.HTMLAttributes<HTMLElement> { export interface TreeNodeProps extends React.HTMLAttributes<HTMLElement> {
treeNode: q.TreeNode<TopicViewModel> treeNode: q.TreeNode<TopicViewModel>
@@ -20,12 +18,12 @@ class TreeNodeTitle extends React.Component<TreeNodeProps, {}> {
private renderSourceEdge() { private renderSourceEdge() {
const name = this.props.name || (this.props.treeNode.sourceEdge && this.props.treeNode.sourceEdge.name) const name = this.props.name || (this.props.treeNode.sourceEdge && this.props.treeNode.sourceEdge.name)
return <span className={this.props.classes.sourceEdge}>{name}</span> return <span key="edge" className={this.props.classes.sourceEdge}>{name}</span>
} }
private renderValue() { private renderValue() {
return this.props.treeNode.message && this.props.treeNode.message.value && this.props.treeNode.message.length > 0 return this.props.treeNode.message && this.props.treeNode.message.value && this.props.treeNode.message.length > 0
? <span className={this.props.classes.value}> = {Base64Message.toUnicodeString(this.props.treeNode.message.value).slice(0, 120)}</span> ? <span key="value" className={this.props.classes.value}> = {Base64Message.toUnicodeString(this.props.treeNode.message.value).slice(0, 120)}</span>
: null : null
} }
@@ -34,23 +32,23 @@ class TreeNodeTitle extends React.Component<TreeNodeProps, {}> {
return null return null
} }
return <span className={this.props.classes.expander} onClick={this.props.toggleCollapsed}>{this.props.collapsed ? '▶' : '▼'}</span> return <span key="expander" className={this.props.classes.expander} onClick={this.props.toggleCollapsed}>{this.props.collapsed ? '▶' : '▼'}</span>
} }
private renderCollapsedSubnodes() { private renderMetadata() {
if (this.props.treeNode.edgeCount() === 0 || !this.props.collapsed) { if (this.props.treeNode.edgeCount() === 0 || !this.props.collapsed) {
return null return null
} }
const messages = this.props.treeNode.leafMessageCount() const messages = this.props.treeNode.leafMessageCount()
return <span className={this.props.classes.collapsedSubnodes}>({this.props.treeNode.childTopicCount()} topics, {messages} messages)</span> return <span key="metadata" className={this.props.classes.collapsedSubnodes}>{`(${this.props.treeNode.childTopicCount()} topics, ${messages} messages)`}</span>
} }
public render() { public render() {
const { style, className } = this.props
return ([ return ([
this.renderExpander(), this.renderExpander(),
this.renderSourceEdge(), this.renderSourceEdge(),
this.renderCollapsedSubnodes(), this.renderMetadata(),
this.renderValue(), this.renderValue(),
]) ])
} }