[release-12.0.1] DashboardEditPane: Fix source viz panel selection (#104868)

DashboardEditPane: Fix source viz panel selection (#104686)

* revert ae86746

* extract source viz panel for edit pane select
pull/104888/head
Sergej-Vlasov 3 months ago committed by GitHub
parent 96e46887d7
commit 6d8c492cbe
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 23
      public/app/features/dashboard-scene/edit-pane/DashboardEditPane.tsx

@ -3,7 +3,14 @@ import { Resizable } from 're-resizable';
import { useLocalStorage } from 'react-use';
import { GrafanaTheme2 } from '@grafana/data';
import { SceneObjectState, SceneObjectBase, SceneObject, sceneGraph, useSceneObjectState } from '@grafana/scenes';
import {
SceneObjectState,
SceneObjectBase,
SceneObject,
sceneGraph,
useSceneObjectState,
VizPanel,
} from '@grafana/scenes';
import {
ElementSelectionContextItem,
ElementSelectionContextState,
@ -17,8 +24,8 @@ import {
} from '@grafana/ui';
import { t, Trans } from 'app/core/internationalization';
import { containsCloneKey, getOriginalKey, isInCloneChain } from '../utils/clone';
import { getDashboardSceneFor } from '../utils/utils';
import { containsCloneKey, getLastKeyFromClone, isInCloneChain } from '../utils/clone';
import { findEditPanel, getDashboardSceneFor } from '../utils/utils';
import { DashboardOutline } from './DashboardOutline';
import { ElementEditPane } from './ElementEditPane';
@ -101,10 +108,14 @@ export class DashboardEditPane extends SceneObjectBase<DashboardEditPaneState> {
return;
}
const elementId = containsCloneKey(element.id) ? getOriginalKey(element.id) : element.id;
const obj = sceneGraph.findByKey(this, elementId);
let obj = sceneGraph.findByKey(this, element.id);
if (obj) {
if (obj instanceof VizPanel && containsCloneKey(getLastKeyFromClone(element.id))) {
const sourceVizPanel = findEditPanel(this, element.id);
if (sourceVizPanel) {
obj = sourceVizPanel;
}
}
this.selectObject(obj, element.id, options);
}
}

Loading…
Cancel
Save