diff --git a/packages/element/src/newElement.ts b/packages/element/src/newElement.ts index 2ce9f306c..8cec53494 100644 --- a/packages/element/src/newElement.ts +++ b/packages/element/src/newElement.ts @@ -45,7 +45,9 @@ import type { ElementsMap, ExcalidrawArrowElement, ExcalidrawElbowArrowElement, + ExcalidrawLineElement, } from "./types"; +import { isLineElement } from "./typeChecks"; export type ElementConstructorOpts = MarkOptional< Omit, @@ -459,7 +461,7 @@ export const newLinearElement = ( points?: ExcalidrawLinearElement["points"]; } & ElementConstructorOpts, ): NonDeleted => { - return { + const element = { ..._newElementBase(opts.type, opts), points: opts.points || [], lastCommittedPoint: null, @@ -468,6 +470,15 @@ export const newLinearElement = ( startArrowhead: null, endArrowhead: null, }; + + if (isLineElement(element)) { + return { + ...element, + loopLock: false, + } as NonDeleted; + } + + return element; }; export const newArrowElement = ( diff --git a/packages/excalidraw/data/__snapshots__/transform.test.ts.snap b/packages/excalidraw/data/__snapshots__/transform.test.ts.snap index 70f8daa31..403b69f77 100644 --- a/packages/excalidraw/data/__snapshots__/transform.test.ts.snap +++ b/packages/excalidraw/data/__snapshots__/transform.test.ts.snap @@ -937,6 +937,7 @@ exports[`Test Transform > should transform linear elements 3`] = ` "lastCommittedPoint": null, "link": null, "locked": false, + "loopLock": false, "opacity": 100, "points": [ [ @@ -984,6 +985,7 @@ exports[`Test Transform > should transform linear elements 4`] = ` "lastCommittedPoint": null, "link": null, "locked": false, + "loopLock": false, "opacity": 100, "points": [ [ diff --git a/packages/excalidraw/tests/__snapshots__/dragCreate.test.tsx.snap b/packages/excalidraw/tests/__snapshots__/dragCreate.test.tsx.snap index acc9b79f5..4a710e181 100644 --- a/packages/excalidraw/tests/__snapshots__/dragCreate.test.tsx.snap +++ b/packages/excalidraw/tests/__snapshots__/dragCreate.test.tsx.snap @@ -142,6 +142,7 @@ exports[`Test dragCreate > add element to the scene when pointer dragging long e "lastCommittedPoint": null, "link": null, "locked": false, + "loopLock": false, "opacity": 100, "points": [ [ diff --git a/packages/excalidraw/tests/__snapshots__/multiPointCreate.test.tsx.snap b/packages/excalidraw/tests/__snapshots__/multiPointCreate.test.tsx.snap index 3a0f3a58a..973ab3299 100644 --- a/packages/excalidraw/tests/__snapshots__/multiPointCreate.test.tsx.snap +++ b/packages/excalidraw/tests/__snapshots__/multiPointCreate.test.tsx.snap @@ -78,6 +78,7 @@ exports[`multi point mode in linear elements > line 3`] = ` ], "link": null, "locked": false, + "loopLock": false, "opacity": 100, "points": [ [ diff --git a/packages/excalidraw/tests/__snapshots__/regressionTests.test.tsx.snap b/packages/excalidraw/tests/__snapshots__/regressionTests.test.tsx.snap index e98815d86..b580b4c95 100644 --- a/packages/excalidraw/tests/__snapshots__/regressionTests.test.tsx.snap +++ b/packages/excalidraw/tests/__snapshots__/regressionTests.test.tsx.snap @@ -6410,6 +6410,7 @@ History { "lastCommittedPoint": null, "link": null, "locked": false, + "loopLock": false, "opacity": 100, "points": [ [ @@ -6630,6 +6631,7 @@ History { ], "link": null, "locked": false, + "loopLock": false, "opacity": 100, "points": [ [ @@ -8864,6 +8866,7 @@ History { "lastCommittedPoint": null, "link": null, "locked": false, + "loopLock": false, "opacity": 100, "points": [ [ @@ -9687,6 +9690,7 @@ History { "lastCommittedPoint": null, "link": null, "locked": false, + "loopLock": false, "opacity": 100, "points": [ [ diff --git a/packages/excalidraw/tests/__snapshots__/selection.test.tsx.snap b/packages/excalidraw/tests/__snapshots__/selection.test.tsx.snap index 2eea90842..1dcec36b4 100644 --- a/packages/excalidraw/tests/__snapshots__/selection.test.tsx.snap +++ b/packages/excalidraw/tests/__snapshots__/selection.test.tsx.snap @@ -68,6 +68,7 @@ exports[`select single element on the scene > arrow escape 1`] = ` "lastCommittedPoint": null, "link": null, "locked": false, + "loopLock": false, "opacity": 100, "points": [ [ diff --git a/packages/excalidraw/tests/data/__snapshots__/restore.test.ts.snap b/packages/excalidraw/tests/data/__snapshots__/restore.test.ts.snap index 7dd0c01c3..8e690c08d 100644 --- a/packages/excalidraw/tests/data/__snapshots__/restore.test.ts.snap +++ b/packages/excalidraw/tests/data/__snapshots__/restore.test.ts.snap @@ -229,6 +229,7 @@ exports[`restoreElements > should restore line and draw elements correctly 1`] = "lastCommittedPoint": null, "link": null, "locked": false, + "loopLock": false, "opacity": 100, "points": [ [ @@ -278,6 +279,7 @@ exports[`restoreElements > should restore line and draw elements correctly 2`] = "lastCommittedPoint": null, "link": null, "locked": false, + "loopLock": false, "opacity": 100, "points": [ [