Skip to content

Commit 539c264

Browse files
[risk=no] fixing some location map bugs (#1537)
* fixing some bugs * fixing some bugs
1 parent f7a48c4 commit 539c264

File tree

4 files changed

+45
-11
lines changed

4 files changed

+45
-11
lines changed

public-ui/src/app/data-browser/charts/chart-stacked-age-gender/chart-stacked-age-gender-react.component.tsx

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export const StackedColumnChartReactComponent = class extends React.Component<Pr
1818
super(props);
1919

2020
const isSurvey = props.domain === "survey";
21-
const filteredData = this.getFilteredData(props.ageGenderAnalysis, props.selectedResult, isSurvey);
21+
const filteredData = this.getFilteredData(props.ageGenderAnalysis, props.selectedResult, props.domain);
2222

2323
this.state = {
2424
options: {
@@ -77,7 +77,6 @@ export const StackedColumnChartReactComponent = class extends React.Component<Pr
7777
const totalInGroup = this.series.chart.series
7878
.map(s => s.data[this.point.index]?.y || 0)
7979
.reduce((a, b) => a + b, 0);
80-
console.log(totalInGroup);
8180
const percent = totalInGroup > 0 ? ((count / totalInGroup) * 100).toFixed(1) : '0';
8281

8382
return `
@@ -109,8 +108,28 @@ export const StackedColumnChartReactComponent = class extends React.Component<Pr
109108
};
110109
}
111110

112-
getFilteredData(data, selectedResult, isSurvey) {
113-
if (isSurvey && selectedResult) {
111+
componentDidUpdate(prevProps) {
112+
// Check if the data has changed
113+
if (prevProps.ageGenderAnalysis !== this.props.ageGenderAnalysis) {
114+
const isSurvey = this.props.domain === "survey";
115+
const filteredData = this.getFilteredData(this.props.ageGenderAnalysis, this.props.selectedResult, this.props.domain);
116+
117+
// Update the chart options with new data
118+
this.setState({
119+
options: {
120+
...this.state.options,
121+
xAxis: {
122+
...this.state.options.xAxis,
123+
categories: this.formatAgeCategories(filteredData)
124+
},
125+
series: this.formatAgeGenderData(filteredData)
126+
}
127+
});
128+
}
129+
}
130+
131+
getFilteredData(data, selectedResult, domain) {
132+
if (domain && domain === "survey" && selectedResult) {
114133
const filteredResults = data.results.filter(r => r.stratum4 === selectedResult.stratum4);
115134
return { ...data, results: filteredResults };
116135
}
@@ -177,4 +196,4 @@ export const StackedColumnChartReactComponent = class extends React.Component<Pr
177196
</div>
178197
);
179198
}
180-
};
199+
};

public-ui/src/app/data-browser/components/heat-map/heat-map.component.tsx

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,20 @@ export const HeatMapReactComponent =
181181
}, 100);
182182
}
183183

184+
componentDidUpdate(prevProps) {
185+
if (prevProps.color !== this.props.color) {
186+
// Update the chart's userOptions so regular states get the new hover color
187+
const chartObj = this.chartRef.current?.chart;
188+
if (chartObj) {
189+
(chartObj.userOptions as any).hoverColor = this.props.color;
190+
}
191+
192+
// Update the options object with new color
193+
this.options.hoverColor = this.props.color;
194+
this.options.series[0].states.hover.color = getHoverColor(this.props.color);
195+
}
196+
}
197+
184198
applyTerritoryColors() {
185199
const chartObj = this.chartRef.current?.chart;
186200
if (!chartObj || !chartObj.series || !chartObj.series[0]) return;
@@ -242,6 +256,7 @@ export const HeatMapReactComponent =
242256
});
243257
});
244258
}
259+
245260
componentWillUnmount() {
246261
// Loop over all groups
247262
Object.keys(this.domPathsByGroup).forEach(groupName => {
@@ -264,6 +279,7 @@ export const HeatMapReactComponent =
264279
(pathEl as HTMLElement).style.fill = getHoverColor(this.props.color);
265280
});
266281
}
282+
267283
handleMouseLeaveGroup(groupName) {
268284
const pathsInGroup = this.domPathsByGroup[groupName];
269285
pathsInGroup.forEach(pathEl => {
@@ -312,6 +328,7 @@ export const HeatMapReactComponent =
312328
}
313329
return output;
314330
}
331+
315332
static getOriginalColor(series, keys: string[]) {
316333
keys.forEach(key => {
317334
const point = series.data.find(pt => pt['hc-key'] === key);
@@ -324,8 +341,6 @@ export const HeatMapReactComponent =
324341
series.chart.redraw();
325342
}
326343

327-
328-
329344
render() {
330345
return (<>
331346
<style>{style}</style>

public-ui/src/app/data-browser/views/fitbit-view/fitbit-view-react.component.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ export const FitbitReactComponent = withRouteData(
313313
{selectedAnalyses && selectedAnalyses.combinedAgeGenderAnalysis && (
314314
<StackedColumnChartReactComponent
315315
ageGenderAnalysis={selectedAnalyses.combinedAgeGenderAnalysis}
316-
selectedResult=""
316+
selectedResult={selectedResult}
317317
domain="fitbit"
318318
/>
319319
)}
@@ -326,7 +326,7 @@ export const FitbitReactComponent = withRouteData(
326326
<HeatMapReactComponent
327327
locationAnalysis={selectedAnalyses?.locationAnalysis}
328328
domain="fitbit"
329-
selectedResult = ""
329+
selectedResult={selectedResult}
330330
color = "" />
331331
)}
332332
</div>

public-ui/src/environments/environment.prod.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export const environment = {
1414
fitbitCDRUpdate: true,
1515
infiniteSrcoll: true,
1616
svVCFBrowser: false,
17-
heatmap: false,
18-
combinedAgeGenderChart: false,
17+
heatmap: true,
18+
combinedAgeGenderChart: true,
1919
geneLeads: false,
2020
};

0 commit comments

Comments
 (0)