diff --git a/public/app/plugins/datasource/dashboard/DashboardQueryEditor.tsx b/public/app/plugins/datasource/dashboard/DashboardQueryEditor.tsx index b43d0363169..d875c8d0b85 100644 --- a/public/app/plugins/datasource/dashboard/DashboardQueryEditor.tsx +++ b/public/app/plugins/datasource/dashboard/DashboardQueryEditor.tsx @@ -9,6 +9,7 @@ import { Field, Select, useStyles2, Spinner, RadioButtonGroup, Stack, InlineSwit import config from 'app/core/config'; import { getDashboardSrv } from 'app/features/dashboard/services/DashboardSrv'; import { PanelModel } from 'app/features/dashboard/state'; +import { DashboardScene } from 'app/features/dashboard-scene/scene/DashboardScene'; import { getDatasourceSrv } from 'app/features/plugins/datasource_srv'; import { filterPanelDataToQuery } from 'app/features/query/components/QueryEditorRow'; @@ -21,6 +22,14 @@ function getQueryDisplayText(query: DataQuery): string { return JSON.stringify(query); } +function isPanelInEdit(panelId: number, panelInEditId?: number) { + let idToCompareWith = panelInEditId; + if (window.__grafanaSceneContext && window.__grafanaSceneContext instanceof DashboardScene) { + idToCompareWith = window.__grafanaSceneContext.state.editPanel?.state.panelId; + } + return panelId === idToCompareWith; +} + interface Props extends QueryEditorProps {} const topics = [ @@ -112,7 +121,7 @@ export function DashboardQueryEditor({ data, query, onChange, onRunQuery }: Prop (panel) => config.panels[panel.type] && panel.targets && - panel.id !== dashboard.panelInEdit?.id && + !isPanelInEdit(panel.id, dashboard.panelInEdit?.id) && panel.datasource?.uid !== SHARED_DASHBOARD_QUERY ) .map((panel) => ({