From d6a245893a07930712fa7f1d3cf553402bac1c54 Mon Sep 17 00:00:00 2001 From: Thomas Nordquist Date: Mon, 7 Jan 2019 12:24:01 +0100 Subject: [PATCH] Add proper copy to clipboard --- app/src/components/Sidebar/Sidebar.tsx | 13 +++++++------ app/src/components/Sidebar/Topic.tsx | 6 +----- app/src/components/Tree/Tree.tsx | 7 ++++++- app/src/components/Tree/TreeNode.tsx | 2 +- app/src/components/Tree/TreeNodeTitle.tsx | 9 +++++++-- 5 files changed, 22 insertions(+), 15 deletions(-) diff --git a/app/src/components/Sidebar/Sidebar.tsx b/app/src/components/Sidebar/Sidebar.tsx index 97a6140..06b86b9 100644 --- a/app/src/components/Sidebar/Sidebar.tsx +++ b/app/src/components/Sidebar/Sidebar.tsx @@ -10,6 +10,7 @@ import NodeStats from './NodeStats' import Topic from './Topic' import { Typography } from '@material-ui/core' import { withStyles, Theme, StyleRulesCallback } from '@material-ui/core/styles' +import Copy from '../Copy' interface Props { node?: q.TreeNode | undefined, @@ -70,15 +71,15 @@ class Sidebar extends React.Component { } private renderNode() { - const { classes } = this.props - if (!this.state.node) { - return null - } + const { classes, node } = this.props + + const copyTopic = node ? : null + const copyValue = node && node.message ? : null return
}> - Topic + Topic {copyTopic} @@ -86,7 +87,7 @@ class Sidebar extends React.Component { }> - Value + Value {copyValue} diff --git a/app/src/components/Sidebar/Topic.tsx b/app/src/components/Sidebar/Topic.tsx index 4359648..0a80644 100644 --- a/app/src/components/Sidebar/Topic.tsx +++ b/app/src/components/Sidebar/Topic.tsx @@ -2,7 +2,6 @@ import * as React from 'react' import * as q from '../../../../backend/src/Model' import { withStyles, Theme, StyleRulesCallback } from '@material-ui/core/styles' import Button from '@material-ui/core/Button' -const copy = require('copy-text-to-clipboard') interface Props { classes: any @@ -51,10 +50,7 @@ class Topic extends React.Component { prev.concat([/]).concat(current), ) - return - copy(this.props.node && this.props.node.path())}>📋 - {joinedBreadCrumps} - + return {joinedBreadCrumps} } } diff --git a/app/src/components/Tree/Tree.tsx b/app/src/components/Tree/Tree.tsx index f89869c..685c166 100644 --- a/app/src/components/Tree/Tree.tsx +++ b/app/src/components/Tree/Tree.tsx @@ -91,7 +91,12 @@ export class Tree extends React.Component { } public render() { - return + const style: React.CSSProperties = { + lineHeight: '1.1', + cursor: 'default', + } + + return { return {} } const isInViewPort = this.titleRef.current && isElementInViewport(this.titleRef.current) - const isDirty = this.dirtyMessage || this.dirtyEdges || this.collapsed() + const isDirty = this.dirtyMessage || this.dirtyEdges if (this.props.animateChages && isDirty && isInViewPort) { if (!this.cssAnimationWasSetAt) { this.cssAnimationWasSetAt = performance.now() diff --git a/app/src/components/Tree/TreeNodeTitle.tsx b/app/src/components/Tree/TreeNodeTitle.tsx index 30054c4..44b3e5e 100644 --- a/app/src/components/Tree/TreeNodeTitle.tsx +++ b/app/src/components/Tree/TreeNodeTitle.tsx @@ -37,7 +37,13 @@ class TreeNodeTitle extends React.Component { onClick={() => { this.toggle() this.props.didSelectNode && this.props.didSelectNode(this.props.treeNode) - }}> + }} + onMouseOver={() => { + if (this.props.treeNode.message) { + this.props.didSelectNode && this.props.didSelectNode(this.props.treeNode) + } + }} + > {this.renderExpander()} {this.renderSourceEdge()} {this.renderCollapsedSubnodes()} {this.renderValue()} } @@ -66,7 +72,6 @@ class TreeNodeTitle extends React.Component { return this.props.treeNode.message ? this.props.didSelectNode && this.props.didSelectNode(this.props.treeNode)} > = {this.props.treeNode.message.value.toString()} : null }