From 9799ac252bc845dea0d15e7b622c2493333738e8 Mon Sep 17 00:00:00 2001 From: Adela Almasan <88068998+adela-almasan@users.noreply.github.com> Date: Fri, 6 Jan 2023 15:59:41 -0600 Subject: [PATCH] Canvas: Update context menu actions for multiple elements selected (#61108) --- .../panel/canvas/CanvasContextMenu.tsx | 24 +++++-------------- 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/public/app/plugins/panel/canvas/CanvasContextMenu.tsx b/public/app/plugins/panel/canvas/CanvasContextMenu.tsx index d4eb898d069..b05759dfafe 100644 --- a/public/app/plugins/panel/canvas/CanvasContextMenu.tsx +++ b/public/app/plugins/panel/canvas/CanvasContextMenu.tsx @@ -6,6 +6,7 @@ import { SelectableValue } from '@grafana/data'; import { ContextMenu, MenuItem, MenuItemProps } from '@grafana/ui'; import { Scene } from 'app/features/canvas/runtime/scene'; +import { ElementState } from '../../../features/canvas/runtime/element'; import { FrameState } from '../../../features/canvas/runtime/frame'; import { CanvasPanel } from './CanvasPanel'; @@ -207,25 +208,12 @@ export const CanvasContextMenu = ({ scene, panel }: Props) => { } }; - const contextMenuAction = (actionType: string) => { + const contextMenuAction = (actionType: LayerActionID) => { scene.selection.pipe(first()).subscribe((currentSelectedElements) => { - const currentSelectedElement = currentSelectedElements[0]; - const currentLayer = currentSelectedElement.parent!; - - switch (actionType) { - case LayerActionID.Delete: - currentLayer.doAction(LayerActionID.Delete, currentSelectedElement); - break; - case LayerActionID.Duplicate: - currentLayer.doAction(LayerActionID.Duplicate, currentSelectedElement); - break; - case LayerActionID.MoveTop: - currentLayer.doAction(LayerActionID.MoveTop, currentSelectedElement); - break; - case LayerActionID.MoveBottom: - currentLayer.doAction(LayerActionID.MoveBottom, currentSelectedElement); - break; - } + const currentLayer = currentSelectedElements[0].parent!; + currentSelectedElements.forEach((currentSelectedElement: ElementState) => { + currentLayer.doAction(actionType, currentSelectedElement); + }); }); };