diff --git a/packages/grafana-ui/src/components/uPlot/plugins/TooltipPlugin.tsx b/packages/grafana-ui/src/components/uPlot/plugins/TooltipPlugin.tsx index 2b9c8c61605..1884dce43cf 100644 --- a/packages/grafana-ui/src/components/uPlot/plugins/TooltipPlugin.tsx +++ b/packages/grafana-ui/src/components/uPlot/plugins/TooltipPlugin.tsx @@ -29,15 +29,6 @@ interface TooltipPluginProps { renderTooltip?: (alignedFrame: DataFrame, seriesIdx: number | null, datapointIdx: number | null) => React.ReactNode; } -const eqArrays = (a: any[], b: any[]) => { - for (let i = 0; i < a.length; i++) { - if (a[i] !== b[i]) { - return false; - } - } - return true; -}; - const TOOLTIP_OFFSET = 10; /** @@ -123,16 +114,13 @@ export const TooltipPlugin: React.FC = ({ })(u); }); } else { - let prevIdx: number | null = null; - let prevIdxs: Array | null = null; + config.addHook('setLegend', (u) => { + setFocusedPointIdx(u.legend.idx!); + setFocusedPointIdxs(u.legend.idxs!.slice()); + }); // default series/datapoint idx retireval config.addHook('setCursor', (u) => { - if (u.cursor.idx !== prevIdx || prevIdxs == null || !eqArrays(prevIdxs, u.cursor.idxs!)) { - setFocusedPointIdx((prevIdx = u.cursor.idx!)); - setFocusedPointIdxs((prevIdxs = u.cursor.idxs!.slice())); - } - const bbox = plotCtx.getCanvasBoundingBox(); if (!bbox) { return;