diff --git a/packages/excalidraw/element/duplicate.ts b/packages/excalidraw/element/duplicate.ts index 6015ca59c..9c6eb1ccf 100644 --- a/packages/excalidraw/element/duplicate.ts +++ b/packages/excalidraw/element/duplicate.ts @@ -194,7 +194,7 @@ export const duplicateElements = ( } elementsWithClones.splice( - index + (opts?.reverseOrder ? 0 : +1), + index + (opts?.reverseOrder ? -1 : +1), 0, ...castArray(elements), ); diff --git a/packages/excalidraw/tests/__snapshots__/move.test.tsx.snap b/packages/excalidraw/tests/__snapshots__/move.test.tsx.snap index bea916d63..4001c3b17 100644 --- a/packages/excalidraw/tests/__snapshots__/move.test.tsx.snap +++ b/packages/excalidraw/tests/__snapshots__/move.test.tsx.snap @@ -1,6 +1,40 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`duplicate element on move when ALT is clicked > rectangle 5`] = ` +{ + "angle": 0, + "backgroundColor": "transparent", + "boundElements": null, + "customData": undefined, + "fillStyle": "solid", + "frameId": null, + "groupIds": [], + "height": 50, + "id": "id2", + "index": "Zz", + "isDeleted": false, + "link": null, + "locked": false, + "opacity": 100, + "roughness": 1, + "roundness": { + "type": 3, + }, + "seed": 238820263, + "strokeColor": "#1e1e1e", + "strokeStyle": "solid", + "strokeWidth": 2, + "type": "rectangle", + "updated": 1, + "version": 6, + "versionNonce": 1604849351, + "width": 30, + "x": 30, + "y": 20, +} +`; + +exports[`duplicate element on move when ALT is clicked > rectangle 6`] = ` { "angle": 0, "backgroundColor": "transparent", @@ -34,40 +68,6 @@ exports[`duplicate element on move when ALT is clicked > rectangle 5`] = ` } `; -exports[`duplicate element on move when ALT is clicked > rectangle 6`] = ` -{ - "angle": 0, - "backgroundColor": "transparent", - "boundElements": null, - "customData": undefined, - "fillStyle": "solid", - "frameId": null, - "groupIds": [], - "height": 50, - "id": "id2", - "index": "a1", - "isDeleted": false, - "link": null, - "locked": false, - "opacity": 100, - "roughness": 1, - "roundness": { - "type": 3, - }, - "seed": 238820263, - "strokeColor": "#1e1e1e", - "strokeStyle": "solid", - "strokeWidth": 2, - "type": "rectangle", - "updated": 1, - "version": 6, - "versionNonce": 1604849351, - "width": 30, - "x": 30, - "y": 20, -} -`; - exports[`move element > rectangle 5`] = ` { "angle": 0, diff --git a/packages/excalidraw/tests/__snapshots__/regressionTests.test.tsx.snap b/packages/excalidraw/tests/__snapshots__/regressionTests.test.tsx.snap index 2a4fcac97..62f81054d 100644 --- a/packages/excalidraw/tests/__snapshots__/regressionTests.test.tsx.snap +++ b/packages/excalidraw/tests/__snapshots__/regressionTests.test.tsx.snap @@ -2139,7 +2139,7 @@ History { "frameId": null, "groupIds": [], "height": 10, - "index": "a1", + "index": "Zz", "isDeleted": false, "link": null, "locked": false, @@ -10629,7 +10629,7 @@ History { "id7", ], "height": 10, - "index": "a3", + "index": "a0G", "isDeleted": false, "link": null, "locked": false, @@ -10662,7 +10662,7 @@ History { "id7", ], "height": 10, - "index": "a4", + "index": "a0V", "isDeleted": false, "link": null, "locked": false, @@ -10695,7 +10695,7 @@ History { "id7", ], "height": 10, - "index": "a5", + "index": "a0l", "isDeleted": false, "link": null, "locked": false, diff --git a/packages/excalidraw/tests/move.test.tsx b/packages/excalidraw/tests/move.test.tsx index 86b72c9e9..090449980 100644 --- a/packages/excalidraw/tests/move.test.tsx +++ b/packages/excalidraw/tests/move.test.tsx @@ -175,8 +175,8 @@ describe("duplicate element on move when ALT is clicked", () => { expect(h.elements.length).toEqual(2); // behavior should be the same as Ctrl+D - expect([h.elements[0].x, h.elements[0].y]).toEqual([-10, 60]); - expect([h.elements[1].x, h.elements[1].y]).toEqual([30, 20]); + expect([h.elements[0].x, h.elements[0].y]).toEqual([30, 20]); + expect([h.elements[1].x, h.elements[1].y]).toEqual([-10, 60]); h.elements.forEach((element) => expect(element).toMatchSnapshot()); });