mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
StateTimeline: Fix toolitp not showing when for frames with multiple fields (#42741)
* StateTimeline: Fix toolitp not showing when for frames with multiple fields * Update public/app/plugins/panel/state-timeline/StateTimelinePanel.tsx Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com> * Update public/app/plugins/panel/state-timeline/StateTimelinePanel.tsx Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com> * Update public/app/plugins/panel/state-timeline/StateTimelinePanel.tsx Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com> Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
This commit is contained in:
parent
c2e2c658ce
commit
826b3bfd52
@ -1,5 +1,5 @@
|
|||||||
import React, { useCallback, useMemo } from 'react';
|
import React, { useCallback, useMemo } from 'react';
|
||||||
import { DataFrame, PanelProps } from '@grafana/data';
|
import { DataFrame, FieldType, PanelProps } from '@grafana/data';
|
||||||
import { TooltipPlugin, useTheme2, ZoomPlugin, usePanelContext } from '@grafana/ui';
|
import { TooltipPlugin, useTheme2, ZoomPlugin, usePanelContext } from '@grafana/ui';
|
||||||
import { TimelineMode, TimelineOptions } from './types';
|
import { TimelineMode, TimelineOptions } from './types';
|
||||||
import { TimelineChart } from './TimelineChart';
|
import { TimelineChart } from './TimelineChart';
|
||||||
@ -39,6 +39,12 @@ export const StateTimelinePanel: React.FC<TimelinePanelProps> = ({
|
|||||||
const renderCustomTooltip = useCallback(
|
const renderCustomTooltip = useCallback(
|
||||||
(alignedData: DataFrame, seriesIdx: number | null, datapointIdx: number | null) => {
|
(alignedData: DataFrame, seriesIdx: number | null, datapointIdx: number | null) => {
|
||||||
const data = frames ?? [];
|
const data = frames ?? [];
|
||||||
|
// Count value fields in the state-timeline-ready frame
|
||||||
|
const valueFieldsCount = data.reduce(
|
||||||
|
(acc, frame) => acc + frame.fields.filter((field) => field.type !== FieldType.time).length,
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
// Not caring about multi mode in StateTimeline
|
// Not caring about multi mode in StateTimeline
|
||||||
if (seriesIdx === null || datapointIdx === null) {
|
if (seriesIdx === null || datapointIdx === null) {
|
||||||
return null;
|
return null;
|
||||||
@ -51,7 +57,7 @@ export const StateTimelinePanel: React.FC<TimelinePanelProps> = ({
|
|||||||
* See https://github.com/grafana/support-escalations/issues/932
|
* See https://github.com/grafana/support-escalations/issues/932
|
||||||
*/
|
*/
|
||||||
if (
|
if (
|
||||||
(!alignedData.meta?.transformations?.length && alignedData.fields.length - 1 !== data.length) ||
|
(!alignedData.meta?.transformations?.length && alignedData.fields.length - 1 !== valueFieldsCount) ||
|
||||||
!alignedData.fields[seriesIdx]
|
!alignedData.fields[seriesIdx]
|
||||||
) {
|
) {
|
||||||
return null;
|
return null;
|
||||||
|
Loading…
Reference in New Issue
Block a user