From a32bd7a54b0ed3eded7ea4432697083325cefc4b Mon Sep 17 00:00:00 2001 From: Simon Howe Date: Mon, 18 Apr 2016 12:03:39 +0200 Subject: [PATCH] Removes the metrics-feeder to keep things in sync. Another temp fix. --- client/app/scripts/charts/nodes-chart-elements.js | 1 + client/app/scripts/charts/nodes-chart-nodes.js | 13 ++++++++----- client/app/scripts/charts/nodes-chart.js | 1 + client/app/scripts/components/app.js | 4 +++- .../node-details/node-details-health-item.js | 3 +-- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/client/app/scripts/charts/nodes-chart-elements.js b/client/app/scripts/charts/nodes-chart-elements.js index d5dca9e39..075827818 100644 --- a/client/app/scripts/charts/nodes-chart-elements.js +++ b/client/app/scripts/charts/nodes-chart-elements.js @@ -16,6 +16,7 @@ export default class NodesChartElements extends React.Component { layoutPrecision={props.layoutPrecision} /> ( - node.get('metrics') && node.get('metrics') + const metric = node => { + const isHighlighted = topCardNode && topCardNode.details && topCardNode.id === node.get('id'); + const sourceNode = isHighlighted ? fromJS(topCardNode.details) : node; + return sourceNode.get('metrics') && sourceNode.get('metrics') .filter(m => m.get('id') === selectedMetric) - .first() - ); + .first(); + }; const nodesToRender = layoutNodes.toIndexedSeq() .map(setHighlighted) diff --git a/client/app/scripts/charts/nodes-chart.js b/client/app/scripts/charts/nodes-chart.js index df4a5f887..ecd7ad411 100644 --- a/client/app/scripts/charts/nodes-chart.js +++ b/client/app/scripts/charts/nodes-chart.js @@ -153,6 +153,7 @@ export default class NodesChart extends React.Component { nodeScale={this.state.nodeScale} scale={this.state.scale} selectedNodeScale={this.state.selectedNodeScale} + topCardNode={this.props.topCardNode} topologyId={this.props.topologyId} /> diff --git a/client/app/scripts/components/app.js b/client/app/scripts/components/app.js index 987fb250f..e04b6571f 100644 --- a/client/app/scripts/components/app.js +++ b/client/app/scripts/components/app.js @@ -122,7 +122,8 @@ export default class App extends React.Component { } render() { - const {nodeDetails, controlPipe } = this.state; + const { nodeDetails, controlPipe } = this.state; + const topCardNode = nodeDetails.last(); const showingDetails = nodeDetails.size > 0; const showingTerminal = controlPipe; // width of details panel blocking a view @@ -160,6 +161,7 @@ export default class App extends React.Component { detailsWidth={detailsWidth} selectedNodeId={this.state.selectedNodeId} topMargin={topMargin} + topCardNode={topCardNode} selectedMetric={this.state.selectedMetric} forceRelayout={this.state.forceRelayout} topologyOptions={this.state.activeTopologyOptions} diff --git a/client/app/scripts/components/node-details/node-details-health-item.js b/client/app/scripts/components/node-details/node-details-health-item.js index fc68b64f7..f418220d6 100644 --- a/client/app/scripts/components/node-details/node-details-health-item.js +++ b/client/app/scripts/components/node-details/node-details-health-item.js @@ -1,7 +1,6 @@ import React from 'react'; import Sparkline from '../sparkline'; -import metricFeeder from '../../hoc/metric-feeder'; import { formatMetric } from '../../utils/string-utils'; function NodeDetailsHealthItem(props) { @@ -17,4 +16,4 @@ function NodeDetailsHealthItem(props) { ); } -export default metricFeeder(NodeDetailsHealthItem); +export default NodeDetailsHealthItem;