diff --git a/public/app/plugins/panel/barchart/BarChartPanel.tsx b/public/app/plugins/panel/barchart/BarChartPanel.tsx index 8416a943ca8..e0533c4439a 100644 --- a/public/app/plugins/panel/barchart/BarChartPanel.tsx +++ b/public/app/plugins/panel/barchart/BarChartPanel.tsx @@ -4,6 +4,7 @@ import { CartesianCoords2D, compareDataFrameStructures, DataFrame, + Field, getFieldDisplayName, PanelProps, TimeRange, @@ -97,9 +98,13 @@ export const BarChartPanel: React.FunctionComponent = ({ }; const frame0Ref = useRef(); + const colorByFieldRef = useRef(); + const info = useMemo(() => prepareBarChartDisplayValues(data?.series, theme, options), [data, theme, options]); const chartDisplay = 'viz' in info ? info : null; + colorByFieldRef.current = chartDisplay?.colorByField; + const structureRef = useRef(10000); useMemo(() => { @@ -226,7 +231,7 @@ export const BarChartPanel: React.FunctionComponent = ({ const disp = colorByField.display!; fillOpacity = (colorByField.config.custom.fillOpacity ?? 100) / 100; // gradientMode? ignore? - getColor = (seriesIdx: number, valueIdx: number) => disp(colorByField.values.get(valueIdx)).color!; + getColor = (seriesIdx: number, valueIdx: number) => disp(colorByFieldRef.current?.values.get(valueIdx)).color!; } const prepConfig = (alignedFrame: DataFrame, allFrames: DataFrame[], getTimeRange: () => TimeRange) => {