From 021adc58afa00f4587bd71d767b5f0687faff5c8 Mon Sep 17 00:00:00 2001 From: Paul Marbach Date: Mon, 12 Jan 2026 13:34:49 -0500 Subject: [PATCH] Suggestions: Set up editPreview on panel creation too --- .../panel-edit/PanelEditor.tsx | 37 +++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/public/app/features/dashboard-scene/panel-edit/PanelEditor.tsx b/public/app/features/dashboard-scene/panel-edit/PanelEditor.tsx index c5566fdab38..a1e22ad342c 100644 --- a/public/app/features/dashboard-scene/panel-edit/PanelEditor.tsx +++ b/public/app/features/dashboard-scene/panel-edit/PanelEditor.tsx @@ -259,6 +259,10 @@ export class PanelEditor extends SceneObjectBase { config.featureToggles.newVizSuggestions && panel.state.pluginId === UNCONFIGURED_PANEL_PLUGIN_ID ); + if (isUnconfigured) { + this._setupEditPreview(); + } + // Setup options pane const optionsPane = new PanelOptionsPane({ panelRef: this.state.panelRef, @@ -276,21 +280,8 @@ export class PanelEditor extends SceneObjectBase { this._subs.add( optionsPane.subscribeToState((newState, oldState) => { - if (newState.isVizPickerOpen !== oldState.isVizPickerOpen) { - const panel = this.state.panelRef.resolve(); - let editPreview: VizPanel | undefined; - if (newState.isVizPickerOpen) { - // we just "pick" timeseries, viz type will likely be overridden by Suggestions. - const editPreviewBuilder = PanelBuilders.timeseries() - .setTitle(panel.state.title) - .setDescription(panel.state.description); - if (panel.state.$data) { - editPreviewBuilder.setData(new DataProviderSharer({ source: panel.state.$data.getRef() })); - } - editPreview = editPreviewBuilder.build(); - } - this.setState({ editPreview }); - optionsPane.setState({ editPreviewRef: editPreview?.getRef() }); + if (newState.isVizPickerOpen !== oldState.isVizPickerOpen && newState.isVizPickerOpen) { + this._setupEditPreview(); } }) ); @@ -301,6 +292,22 @@ export class PanelEditor extends SceneObjectBase { } } + private _setupEditPreview() { + const panel = this.state.panelRef.resolve(); + let editPreview: VizPanel | undefined; + + // we just "pick" timeseries, viz type will likely be overridden by Suggestions. + const editPreviewBuilder = PanelBuilders.timeseries() + .setTitle(panel.state.title) + .setDescription(panel.state.description); + if (panel.state.$data) { + editPreviewBuilder.setData(new DataProviderSharer({ source: panel.state.$data.getRef() })); + } + editPreview = editPreviewBuilder.build(); + this.setState({ editPreview }); + this.state.optionsPane?.setState({ editPreviewRef: editPreview?.getRef() }); + } + private _updateDataPane(plugin: PanelPlugin) { const skipDataQuery = plugin.meta.skipDataQuery;