From 092e978a041bb76a4ece5c1e8cd5cd1ce1486b31 Mon Sep 17 00:00:00 2001 From: Mark Tolmacs Date: Tue, 26 Aug 2025 15:38:58 +0200 Subject: [PATCH] fix: attempt at fixing the dancing arrows --- packages/element/src/binding.ts | 47 +++++++++++++++++---------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/packages/element/src/binding.ts b/packages/element/src/binding.ts index 5448c6dbb..d97459a0a 100644 --- a/packages/element/src/binding.ts +++ b/packages/element/src/binding.ts @@ -240,6 +240,30 @@ export const getStartGlobalEndLocalPointsForSimpleArrowBinding = ( ): [GlobalPoint, LocalPoint] => { let startGlobalPoint = startPoint; let endLocalPoint = endPoint; + + if (end.mode) { + const newEndLocalPoint = updateBoundPoint( + arrow, + "endBinding", + end.mode + ? { + ...calculateFixedPointForNonElbowArrowBinding( + arrow, + end.element, + "end", + elementsMap, + end.focusPoint, + ), + elementId: end.element.id, + mode: end.mode, + } + : null, + end.element, + elementsMap, + ); + endLocalPoint = newEndLocalPoint ?? endLocalPoint; + } + if (start.mode) { const newStartLocalPoint = updateBoundPoint( arrow, @@ -269,29 +293,6 @@ export const getStartGlobalEndLocalPointsForSimpleArrowBinding = ( : startGlobalPoint; } - if (end.mode) { - const newEndLocalPoint = updateBoundPoint( - arrow, - "endBinding", - end.mode - ? { - ...calculateFixedPointForNonElbowArrowBinding( - arrow, - end.element, - "end", - elementsMap, - end.focusPoint, - ), - elementId: end.element.id, - mode: end.mode, - } - : null, - end.element, - elementsMap, - ); - endLocalPoint = newEndLocalPoint ?? endLocalPoint; - } - return [ startGlobalPoint, pointFrom(