From 45f71a94f83d80f8e0fa0d3c22e48a21d43d0fb4 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Thu, 21 Jan 2021 06:05:58 +0100 Subject: [PATCH] PanelModel: Make sure the angular options are passed to react panel type changed handler (#30441) (#30451) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 05e37e9253761fe4360e81521b22cffe45405dac) Co-authored-by: Torkel Ödegaard --- public/app/features/dashboard/state/PanelModel.ts | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/public/app/features/dashboard/state/PanelModel.ts b/public/app/features/dashboard/state/PanelModel.ts index 0a80079faf0..8a92e709e0a 100644 --- a/public/app/features/dashboard/state/PanelModel.ts +++ b/public/app/features/dashboard/state/PanelModel.ts @@ -364,13 +364,13 @@ export class PanelModel implements DataConfigSource { changePlugin(newPlugin: PanelPlugin) { const pluginId = newPlugin.meta.id; const oldOptions: any = this.getOptionsToRemember(); - const oldFieldConfig = this.fieldConfig; + const prevFieldConfig = this.fieldConfig; const oldPluginId = this.type; const wasAngular = this.isAngularPlugin(); this.cachedPluginOptions[oldPluginId] = { properties: oldOptions, - fieldConfig: oldFieldConfig, + fieldConfig: prevFieldConfig, }; this.clearPropertiesBeforePluginChange(); @@ -378,15 +378,8 @@ export class PanelModel implements DataConfigSource { // Let panel plugins inspect options from previous panel and keep any that it can use if (newPlugin.onPanelTypeChanged) { - let oldOptions: any = {}; - - if (wasAngular) { - oldOptions = { angular: oldOptions }; - } else if (oldOptions && oldOptions.options) { - oldOptions = oldOptions.options; - } - - Object.assign(this.options, newPlugin.onPanelTypeChanged(this, oldPluginId, oldOptions, oldFieldConfig)); + const prevOptions = wasAngular ? { angular: oldOptions } : oldOptions.options; + Object.assign(this.options, newPlugin.onPanelTypeChanged(this, oldPluginId, prevOptions, prevFieldConfig)); } // switch