Skip to content

Commit 0dfae09

Browse files
authored
Merge pull request #95 from oslabs-beta/area-chart-tooltip-values
Fixed stacked area tooltip values
2 parents bf93c4c + 1c244ac commit 0dfae09

File tree

6 files changed

+37
-36
lines changed

6 files changed

+37
-36
lines changed

src/App.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ function App() {
2626
<Container className="app">
2727
<GlobalStyle />
2828
<PieChart
29-
data={coffee_shop}
29+
data={coffee_shop.reverse()}
3030
label="product"
3131
value="sales"
3232
outerRadius={300}

src/charts/PieChart/PieChart.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ export default function PieChart({
127127

128128
const discreteColors = Math.min(keys.length, 9);
129129
const computedScheme = d3[`${colorScheme}`][discreteColors];
130-
const colorScale = d3.scaleOrdinal(computedScheme);
130+
const colorScale = d3.scaleOrdinal(Array.from(computedScheme).reverse());
131131
colorScale.domain(keys);
132132

133133
// ********************

src/components/ListeningRect.tsx

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -68,29 +68,29 @@ export default function ListeningRect({
6868
function onMouseMove(e: any) {
6969
let sBrowser;
7070
const sUsrAg = navigator.userAgent;
71-
if (sUsrAg.indexOf("Firefox") > -1) {
72-
sBrowser = "Mozilla Firefox";
71+
if (sUsrAg.indexOf('Firefox') > -1) {
72+
sBrowser = 'Mozilla Firefox';
7373
// "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0"
74-
} else if (sUsrAg.indexOf("SamsungBrowser") > -1) {
75-
sBrowser = "Samsung Internet";
74+
} else if (sUsrAg.indexOf('SamsungBrowser') > -1) {
75+
sBrowser = 'Samsung Internet';
7676
// "Mozilla/5.0 (Linux; Android 9; SAMSUNG SM-G955F Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/9.4 Chrome/67.0.3396.87 Mobile Safari/537.36
77-
} else if (sUsrAg.indexOf("Opera") > -1 || sUsrAg.indexOf("OPR") > -1) {
78-
sBrowser = "Opera";
77+
} else if (sUsrAg.indexOf('Opera') > -1 || sUsrAg.indexOf('OPR') > -1) {
78+
sBrowser = 'Opera';
7979
// "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 OPR/57.0.3098.106"
80-
} else if (sUsrAg.indexOf("Trident") > -1) {
81-
sBrowser = "Microsoft Internet Explorer";
80+
} else if (sUsrAg.indexOf('Trident') > -1) {
81+
sBrowser = 'Microsoft Internet Explorer';
8282
// "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; Zoom 3.6.0; wbx 1.0.0; rv:11.0) like Gecko"
83-
} else if (sUsrAg.indexOf("Edge") > -1) {
84-
sBrowser = "Microsoft Edge";
83+
} else if (sUsrAg.indexOf('Edge') > -1) {
84+
sBrowser = 'Microsoft Edge';
8585
// "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299"
86-
} else if (sUsrAg.indexOf("Chrome") > -1) {
87-
sBrowser = "Chrome";
86+
} else if (sUsrAg.indexOf('Chrome') > -1) {
87+
sBrowser = 'Chrome';
8888
// "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/66.0.3359.181 Chrome/66.0.3359.181 Safari/537.36"
89-
} else if (sUsrAg.indexOf("Safari") > -1) {
90-
sBrowser = "Safari";
89+
} else if (sUsrAg.indexOf('Safari') > -1) {
90+
sBrowser = 'Safari';
9191
// "Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1 980x1306"
9292
} else {
93-
sBrowser = "unknown";
93+
sBrowser = 'unknown';
9494
}
9595
const mousePosition = d3.pointer(e);
9696
const hoveredX = xScale.invert(mousePosition[0]);
@@ -114,9 +114,10 @@ export default function ListeningRect({
114114
const closestDataPoint = data[closestXIndex];
115115
closestXValue = xAccessor(closestDataPoint);
116116

117-
tooltipState.cursorX = sBrowser === 'Chrome'
118-
? e.nativeEvent.pageX - e.nativeEvent.layerX + xScale(closestXValue)
119-
: e.nativeEvent.pageX - e.nativeEvent.offsetX + xScale(closestXValue)
117+
tooltipState.cursorX =
118+
sBrowser === 'Chrome'
119+
? e.nativeEvent.pageX - e.nativeEvent.layerX + xScale(closestXValue)
120+
: e.nativeEvent.pageX - e.nativeEvent.offsetX + xScale(closestXValue);
120121
}
121122

122123
// ****************************************
@@ -140,20 +141,21 @@ export default function ListeningRect({
140141
if (typeof closestYIndex === 'number') {
141142
if (typeof closestXIndex === 'number') {
142143
closestYValue = layers[closestYIndex][closestXIndex][1];
143-
144-
tooltipState.cursorY = sBrowser === "Chrome" ?
145-
e.pageY - e.nativeEvent.layerY + yScale(closestYValue)
146-
: e.pageY - e.nativeEvent.offsetY + yScale(closestYValue)
147144

145+
tooltipState.cursorY =
146+
sBrowser === 'Chrome'
147+
? e.pageY - e.nativeEvent.layerY + yScale(closestYValue)
148+
: e.pageY - e.nativeEvent.offsetY + yScale(closestYValue);
149+
150+
const closestYKey: string = layers[closestYIndex].key;
148151
tooltipState.data = {
149-
[xKey]: closestXValue,
150-
[yKey]: closestYValue,
152+
[xKey]: data[closestXIndex][xKey],
153+
[yKey]: data[closestXIndex][closestYKey],
151154
};
152155
}
153156
}
154157

155-
tooltipState.distanceFromTop =
156-
tooltipState.cursorY + margin.top;
158+
tooltipState.distanceFromTop = tooltipState.cursorY + margin.top;
157159
tooltipState.distanceFromRight =
158160
width - (margin.left + tooltipState.cursorX);
159161
tooltipState.distanceFromLeft = margin.left + tooltipState.cursorX;

src/components/Tooltip.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ const Tooltip = ({
142142
let xValString = data[xKey as string];
143143
if (data[xKey as string] instanceof Date) {
144144
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
145-
xValString = `${xValString.getFullYear()}.${xValString.getMonth()}.${xValString.getDay()}`;
145+
xValString = `${xValString.getFullYear()}-${xValString.getMonth()}-${xValString.getDay()}`;
146146
}
147147

148148
let yValString = data[yKey as string];

src/components/VoronoiCell.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ export const VoronoiCell = ({
4848
data,
4949
};
5050

51-
tooltipState.distanceFromTop =
52-
tooltipState.cursorY + margin.top;
51+
tooltipState.distanceFromTop = tooltipState.cursorY + margin.top;
5352
tooltipState.distanceFromRight =
5453
width - (margin.left + tooltipState.cursorX);
5554
tooltipState.distanceFromLeft = margin.left + tooltipState.cursorX;

src/hooks/useWindowDimensions.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { useState, useEffect } from 'react';
22

3-
43
export default function useWindowDimensions() {
5-
const [windowDimensions, setWindowDimensions] = useState(
6-
{width: 0, height: 0}
7-
);
4+
const [windowDimensions, setWindowDimensions] = useState({
5+
width: 0,
6+
height: 0,
7+
});
88

99
useEffect(() => {
1010
function getWindowDimensions() {
@@ -17,7 +17,7 @@ export default function useWindowDimensions() {
1717
function handleResize() {
1818
setWindowDimensions(getWindowDimensions());
1919
}
20-
handleResize()
20+
handleResize();
2121

2222
window.addEventListener('resize', handleResize);
2323
return () => window.removeEventListener('resize', handleResize);

0 commit comments

Comments
 (0)