Skip to content

Commit e964b8d

Browse files
committed
add handling for missing render data
1 parent 975f0cc commit e964b8d

File tree

4 files changed

+44
-14
lines changed

4 files changed

+44
-14
lines changed

src/app/components/PerfView.tsx

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,9 @@ const PerfView = (props:PerfViewProps) => {
5454
.sort((a:{value:number}, b:{value:number}) => { return b.value - a.value; }));
5555
}, [adjustedSize]);
5656

57-
function onNoRenderData() {
58-
setNoRenderData(false);
57+
function handleNoRenderData(isNoRenderData) {
58+
console.log("lick balls", isNoRenderData);
59+
setNoRenderData(isNoRenderData);
5960
}
6061

6162
// If indexToDisplay changes, clear old tree nodes
@@ -105,8 +106,12 @@ const PerfView = (props:PerfViewProps) => {
105106
.enter().append('text')
106107
.style('fill-opacity', (d:{parent:object}) => (d.parent === packedRoot ? 1 : 0))
107108
.style('display', (d:{parent?:object}) => (d.parent === packedRoot ? 'inline' : 'none'))
108-
.text((d:{data:{name:string, componentData?:{actualDuration:any}}}) => {
109-
return `${d.data.name}: ${Number.parseFloat(d.data.componentData.actualDuration || 0).toFixed(2)}ms`});
109+
.text((d:{data:{name:string, componentData?:{actualDuration:any}}}) => {
110+
console.log("PerfView -> d.data", d.data);
111+
if (!d.data.componentData.actualDuration) handleNoRenderData(true);
112+
else handleNoRenderData(false);
113+
return `${d.data.name}: ${Number.parseFloat(d.data.componentData.actualDuration || 0).toFixed(2)}ms`;
114+
});
110115

111116
// Remove any unused nodes
112117
label.exit().remove();

src/app/components/StateRoute.tsx

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
1+
/* eslint-disable @typescript-eslint/no-unused-vars */
2+
/* eslint-disable react/jsx-first-prop-new-line */
3+
/* eslint-disable no-trailing-spaces */
4+
/* eslint-disable react/jsx-indent-props */
5+
/* eslint-disable react/jsx-one-expression-per-line */
16
/* eslint-disable max-len */
27
/* eslint-disable object-curly-newline */
38
import React, { useState } from 'react';
49
import { MemoryRouter as Router, Route, NavLink, Switch } from 'react-router-dom';
510
import Tree from './Tree';
611
import PerfView from './PerfView';
12+
import { spawn } from 'child_process';
713

814
const Chart = require('./Chart').default;
915
const ErrorHandler = require('./ErrorHandler').default;
@@ -20,7 +26,7 @@ interface StateRouteProps {
2026

2127
const StateRoute = (props:StateRouteProps) => {
2228
const { snapshot, hierarchy, snapshots, viewIndex } = props;
23-
const [noRenderData, setNoRenderData] = useState(true);
29+
const [noRenderData, setNoRenderData] = useState(false);
2430

2531
// gabi :: the hierarchy get set on the first click in the page, when page in refreshed we don't have a hierarchy so we need to check if hierarchy was initialize involk render chart
2632
const renderChart = () => {
@@ -38,15 +44,26 @@ const StateRoute = (props:StateRouteProps) => {
3844
return <div className="noState">{NO_STATE_MSG}</div>;
3945
};
4046

47+
let perfChart;
48+
if (!noRenderData) {
49+
perfChart = (
50+
<PerfView viewIndex={viewIndex}
51+
snapshots={snapshots}
52+
setNoRenderData={setNoRenderData}
53+
width={600}
54+
height={1000}
55+
/>
56+
);
57+
} else {
58+
perfChart = <div className="no-data-message">Rendering Data is not available for this application</div>;
59+
}
60+
4161
const renderPerfView = () => {
42-
if (hierarchy) {
43-
return (
44-
<ErrorHandler>
45-
<PerfView viewIndex={viewIndex} snapshots={snapshots} setNoRenderData={setNoRenderData} width={600} height={1000} />
46-
</ErrorHandler>
47-
);
48-
}
49-
return <div className="noState">{NO_STATE_MSG}</div>;
62+
return (
63+
<ErrorHandler>
64+
{perfChart}
65+
</ErrorHandler>
66+
);
5067
};
5168

5269
return (

src/app/styles/components/d3graph.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,4 +122,4 @@ div.tooltip {
122122
fill: #2a2f3a;
123123
pointer-events: none;
124124
text-anchor: middle;
125-
};
125+
};

src/app/styles/layout/_stateContainer.scss

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,14 @@
4040
@extend %disable-highlight
4141
}
4242

43+
44+
.no-data-message {
45+
font: 1.2em sans-serif;
46+
padding: 10px;
47+
// margin: 10px;
48+
color: hsl(0%, 50%, 50%);
49+
}
50+
4351
.state-container {
4452
.main-navbar-text {
4553
margin: 6px;

0 commit comments

Comments
 (0)