mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-06-22 01:31:40 +08:00
feat: highlight nearest in chart on hover (#2184)
Co-authored-by: palashgdev <palashgdev@gmail.com>
This commit is contained in:
parent
2a20b6fc86
commit
8a5b26cefe
@ -81,6 +81,7 @@ function Graph({
|
|||||||
onDragSelect,
|
onDragSelect,
|
||||||
dragSelectColor,
|
dragSelectColor,
|
||||||
}: GraphProps): JSX.Element {
|
}: GraphProps): JSX.Element {
|
||||||
|
const nearestDatasetIndex = useRef<null | number>(null);
|
||||||
const chartRef = useRef<HTMLCanvasElement>(null);
|
const chartRef = useRef<HTMLCanvasElement>(null);
|
||||||
const isDarkMode = useIsDarkMode();
|
const isDarkMode = useIsDarkMode();
|
||||||
|
|
||||||
@ -164,8 +165,16 @@ function Graph({
|
|||||||
if (context.parsed.y !== null) {
|
if (context.parsed.y !== null) {
|
||||||
label += getToolTipValue(context.parsed.y.toString(), yAxisUnit);
|
label += getToolTipValue(context.parsed.y.toString(), yAxisUnit);
|
||||||
}
|
}
|
||||||
|
|
||||||
return label;
|
return label;
|
||||||
},
|
},
|
||||||
|
labelTextColor(labelData) {
|
||||||
|
if (labelData.datasetIndex === nearestDatasetIndex.current) {
|
||||||
|
return 'rgba(255, 255, 255, 1)';
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'rgba(255, 255, 255, 0.75)';
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
[dragSelectPluginId]: createDragSelectPluginOptions(
|
[dragSelectPluginId]: createDragSelectPluginOptions(
|
||||||
@ -237,6 +246,22 @@ function Graph({
|
|||||||
onClickHandler(event, element, chart, data);
|
onClickHandler(event, element, chart, data);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
onHover: (event, _, chart) => {
|
||||||
|
if (event.native) {
|
||||||
|
const interactions = chart.getElementsAtEventForMode(
|
||||||
|
event.native,
|
||||||
|
'nearest',
|
||||||
|
{
|
||||||
|
intersect: false,
|
||||||
|
},
|
||||||
|
true,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (interactions[0]) {
|
||||||
|
nearestDatasetIndex.current = interactions[0].datasetIndex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const chartHasData = hasData(data);
|
const chartHasData = hasData(data);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user