From 73f86f1a7d7bb2bae5eeecbad9604af25a297aba Mon Sep 17 00:00:00 2001 From: "grafana-delivery-bot[bot]" <132647405+grafana-delivery-bot[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 08:57:17 -0700 Subject: [PATCH] [v11.0.x] Canvas: Connection original persistence check (#87061) Canvas: Connection original persistence check (#86476) * Canvas: Connection original persistence check * modify current connection state directly instead of copying and needing to call "onChange" --------- Co-authored-by: nmarrs (cherry picked from commit 7590f4afe102589fa6d21b55a1f2b9cdc49a3e77) Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com> --- .../canvas/components/connections/ConnectionSVG.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/public/app/plugins/panel/canvas/components/connections/ConnectionSVG.tsx b/public/app/plugins/panel/canvas/components/connections/ConnectionSVG.tsx index a5e39ebd077..685fb39ef9c 100644 --- a/public/app/plugins/panel/canvas/components/connections/ConnectionSVG.tsx +++ b/public/app/plugins/panel/canvas/components/connections/ConnectionSVG.tsx @@ -128,7 +128,7 @@ export const ConnectionSVG = ({ // Render selected connection last, ensuring it is above other connections .sort((_a, b) => (selectedConnection === b && scene.panel.context.instanceState.selectedConnection ? -1 : 0)) .map((v, idx) => { - const { source, target, info, vertices } = v; + const { source, target, info, vertices, index } = v; const sourceRect = source.div?.getBoundingClientRect(); const parent = source.div?.parentElement; const transformScale = scene.scale; @@ -146,6 +146,15 @@ export const ConnectionSVG = ({ yStart = v.sourceOriginal.y; xEnd = v.targetOriginal.x; yEnd = v.targetOriginal.y; + } else if (source.options.connections) { + // If original source or target coordinates are not set for the current connection, set them + if ( + !source.options.connections[index].sourceOriginal || + !source.options.connections[index].targetOriginal + ) { + source.options.connections[index].sourceOriginal = { x: x1, y: y1 }; + source.options.connections[index].targetOriginal = { x: x2, y: y2 }; + } } const midpoint = calculateMidpoint(x1, y1, x2, y2);