From 63fa9764a355d29e55a8a44ac7d8e03e27cae265 Mon Sep 17 00:00:00 2001 From: Pierre-Charles David Date: Thu, 30 Nov 2023 14:45:16 +0100 Subject: [PATCH] [2683] Hide diagram element palette when the element itself is moved Bug: https://github.com/eclipse-sirius/sirius-web/issues/2683 Signed-off-by: Pierre-Charles David --- CHANGELOG.adoc | 1 + .../src/renderer/DiagramRenderer.tsx | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index f7162b227e..4a7ab64e57 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -128,6 +128,7 @@ It uses our algorithm instead of elk.js to perform the arrange-all. - https://github.com/eclipse-sirius/sirius-web/issues/2640[#2640] [diagram] Compute the handle position on diagram conversion, which happens every time a diagram refresh payload is received. - https://github.com/eclipse-sirius/sirius-web/issues/2647[#2647] [diagram] Split border shorthand CSS properties into non-shorthand properties for list nodes. Make some border node transparent when the node is in a list node in the convert engine. +- https://github.com/eclipse-sirius/sirius-web/issues/2683[#2683] [diagram] Hide diagram element palette when the element itself is moved. === New Features diff --git a/packages/diagrams/frontend/sirius-components-diagrams-reactflow/src/renderer/DiagramRenderer.tsx b/packages/diagrams/frontend/sirius-components-diagrams-reactflow/src/renderer/DiagramRenderer.tsx index 450887da97..eb2ac4fef4 100644 --- a/packages/diagrams/frontend/sirius-components-diagrams-reactflow/src/renderer/DiagramRenderer.tsx +++ b/packages/diagrams/frontend/sirius-components-diagrams-reactflow/src/renderer/DiagramRenderer.tsx @@ -112,6 +112,7 @@ export const DiagramRenderer = ({ diagramRefreshedEventPayload, selection, setSe setNodes(laidOutDiagram.nodes); setEdges(laidOutDiagram.edges); hideDiagramPalette(); + hideDiagramElementPalette(); resetReferencePosition(); fitToScreen(); @@ -128,6 +129,10 @@ export const DiagramRenderer = ({ diagramRefreshedEventPayload, selection, setSe const handleNodesChange: OnNodesChange = (changes: NodeChange[]) => { const transformedNodeChanges = transformBorderNodeChanges(changes); + if (transformedNodeChanges.some((change) => change.type === 'position' || change.type === 'dimensions')) { + hideDiagramElementPalette(); + } + let newNodes = applyNodeChanges(transformedNodeChanges, nodes); newNodes = applyHandleChange(transformedNodeChanges, newNodes as Node[]);