From a1ffa064dff598a71f50307bce673126ca186690 Mon Sep 17 00:00:00 2001 From: zsviczian Date: Wed, 19 Jun 2024 10:55:35 +0200 Subject: [PATCH] fix: only bind arrow (#8152) Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com> --- packages/excalidraw/data/restore.ts | 7 +++++-- packages/excalidraw/element/binding.ts | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/excalidraw/data/restore.ts b/packages/excalidraw/data/restore.ts index c3739dd242..f427700870 100644 --- a/packages/excalidraw/data/restore.ts +++ b/packages/excalidraw/data/restore.ts @@ -23,6 +23,7 @@ import { refreshTextDimensions, } from "../element"; import { + isArrowElement, isLinearElement, isTextElement, isUsingAdaptiveRadius, @@ -469,13 +470,15 @@ export const restoreElements = ( if (isLinearElement(element)) { if ( element.startBinding && - !restoredElementsMap.has(element.startBinding.elementId) + (!restoredElementsMap.has(element.startBinding.elementId) || + !isArrowElement(element)) ) { (element as Mutable).startBinding = null; } if ( element.endBinding && - !restoredElementsMap.has(element.endBinding.elementId) + (!restoredElementsMap.has(element.endBinding.elementId) || + !isArrowElement(element)) ) { (element as Mutable).endBinding = null; } diff --git a/packages/excalidraw/element/binding.ts b/packages/excalidraw/element/binding.ts index 4b2fe50fb6..8d1a728eaa 100644 --- a/packages/excalidraw/element/binding.ts +++ b/packages/excalidraw/element/binding.ts @@ -358,6 +358,9 @@ export const bindLinearElement = ( startOrEnd: "start" | "end", elementsMap: NonDeletedSceneElementsMap, ): void => { + if (!isArrowElement(linearElement)) { + return; + } mutateElement(linearElement, { [startOrEnd === "start" ? "startBinding" : "endBinding"]: { elementId: hoveredElement.id,