Suggestions: Set up editPreview on panel creation too

This commit is contained in:
Paul Marbach
2026-01-12 13:34:49 -05:00
parent 0d1ec94548
commit 021adc58af
@@ -259,6 +259,10 @@ export class PanelEditor extends SceneObjectBase<PanelEditorState> {
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<PanelEditorState> {
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<PanelEditorState> {
}
}
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;