mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Fix: State timeline panel tooltip error when data is not in sync (#39438)
* Fix: State timeline panel tooltip error when data is not in sync * Move check from tooltip to panel
This commit is contained in:
parent
57b20335e6
commit
24475cfdda
@ -37,14 +37,25 @@ export const StateTimelinePanel: React.FC<TimelinePanelProps> = ({
|
||||
|
||||
const renderCustomTooltip = useCallback(
|
||||
(alignedData: DataFrame, seriesIdx: number | null, datapointIdx: number | null) => {
|
||||
const data = frames ?? [];
|
||||
// Not caring about multi mode in StateTimeline
|
||||
if (seriesIdx === null || datapointIdx === null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* There could be a case when the tooltip shows a data from one of a multiple query and the other query finishes first
|
||||
* from refreshing. This causes data to be out of sync. alignedData - 1 because Time field doesn't count.
|
||||
* Render nothing in this case to prevent error.
|
||||
* See https://github.com/grafana/support-escalations/issues/932
|
||||
*/
|
||||
if (alignedData.fields.length - 1 !== data.length || !alignedData.fields[seriesIdx]) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<StateTimelineTooltip
|
||||
data={frames ?? []}
|
||||
data={data}
|
||||
alignedData={alignedData}
|
||||
seriesIdx={seriesIdx}
|
||||
datapointIdx={datapointIdx}
|
||||
|
@ -32,6 +32,7 @@ export const StateTimelineTooltip: React.FC<StateTimelineTooltipProps> = ({
|
||||
const xFieldFmt = xField.display || getDisplayProcessor({ field: xField, timeZone, theme });
|
||||
|
||||
const field = alignedData.fields[seriesIdx!];
|
||||
|
||||
const dataFrameFieldIndex = field.state?.origin;
|
||||
const fieldFmt = field.display || getDisplayProcessor({ field, timeZone, theme });
|
||||
const value = field.values.get(datapointIdx!);
|
||||
|
Loading…
Reference in New Issue
Block a user