PanelEdit: Need new data after plugin change (#29874)

* PanelEdit: Need new data after plugin change

* Updated
This commit is contained in:
Torkel Ödegaard
2020-12-17 11:45:28 +01:00
committed by GitHub
parent 51e3d65f9f
commit 1ee9745794

View File

@@ -1,5 +1,5 @@
// Libraries
import React, { PureComponent } from 'react';
import React, { Component } from 'react';
import classNames from 'classnames';
import { Unsubscribable } from 'rxjs';
// Components
@@ -51,7 +51,7 @@ export interface State {
data: PanelData;
}
export class PanelChrome extends PureComponent<Props, State> {
export class PanelChrome extends Component<Props, State> {
readonly timeSrv: TimeSrv = getTimeSrv();
querySubscription?: Unsubscribable;
@@ -124,6 +124,19 @@ export class PanelChrome extends PureComponent<Props, State> {
}
}
shouldComponentUpdate(prevProps: Props, prevState: State) {
const { plugin, panel } = this.props;
// If plugin changed we need to process fieldOverrides again
// We do this by asking panel query runner to resend last result
if (prevProps.plugin !== plugin) {
panel.getQueryRunner().resendLastResult();
return false;
}
return true;
}
// Updates the response with information from the stream
// The next is outside a react synthetic event so setState is not batched
// So in this context we can only do a single call to setState