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(