mirror of
https://github.com/grafana/grafana.git
synced 2025-02-11 16:15:42 -06:00
Explore: Fix refreshing the graph when data changes (#33511)
* Track data structure changes in ExploreGraphNGPanel * Use usePrevious hook * Remove unused import
This commit is contained in:
parent
8dea72a763
commit
28ec96788c
@ -1,6 +1,8 @@
|
||||
import {
|
||||
AbsoluteTimeRange,
|
||||
applyFieldOverrides,
|
||||
compareArrayValues,
|
||||
compareDataFrameStructures,
|
||||
createFieldConfigRegistry,
|
||||
DataFrame,
|
||||
dateTime,
|
||||
@ -28,9 +30,10 @@ import { hideSeriesConfigFactory } from 'app/plugins/panel/timeseries/overrides/
|
||||
import { ContextMenuPlugin } from 'app/plugins/panel/timeseries/plugins/ContextMenuPlugin';
|
||||
import { ExemplarsPlugin } from 'app/plugins/panel/timeseries/plugins/ExemplarsPlugin';
|
||||
import { css, cx } from '@emotion/css';
|
||||
import React, { useCallback, useMemo, useState } from 'react';
|
||||
import React, { useCallback, useMemo, useState, useRef } from 'react';
|
||||
import { splitOpen } from './state/main';
|
||||
import { getFieldLinksForExplore } from './utils/links';
|
||||
import { usePrevious } from 'react-use';
|
||||
|
||||
const MAX_NUMBER_OF_TIME_SERIES = 20;
|
||||
|
||||
@ -57,7 +60,17 @@ export function ExploreGraphNGPanel({
|
||||
}: Props) {
|
||||
const theme = useTheme2();
|
||||
const [showAllTimeSeries, setShowAllTimeSeries] = useState(false);
|
||||
const [structureRev, setStructureRev] = useState(1);
|
||||
const [baseStructureRev, setBaseStructureRev] = useState(1);
|
||||
|
||||
const previousData = usePrevious(data);
|
||||
const structureChangesRef = useRef(0);
|
||||
|
||||
if (data && previousData && !compareArrayValues(previousData, data, compareDataFrameStructures)) {
|
||||
structureChangesRef.current++;
|
||||
}
|
||||
|
||||
const structureRev = baseStructureRev + structureChangesRef.current;
|
||||
|
||||
const [fieldConfig, setFieldConfig] = useState<FieldConfigSource>({
|
||||
defaults: {
|
||||
color: {
|
||||
@ -96,7 +109,7 @@ export function ExploreGraphNGPanel({
|
||||
|
||||
const onLegendClick = useCallback(
|
||||
(event: GraphNGLegendEvent) => {
|
||||
setStructureRev((r) => r + 1);
|
||||
setBaseStructureRev((r) => r + 1);
|
||||
setFieldConfig(hideSeriesConfigFactory(event, fieldConfig, data));
|
||||
},
|
||||
[fieldConfig, data]
|
||||
|
Loading…
Reference in New Issue
Block a user