From dc4bc0329ba4327e3413c411f470d746613b7001 Mon Sep 17 00:00:00 2001 From: Mark Tolmacs Date: Wed, 19 Mar 2025 21:13:37 +0100 Subject: [PATCH] Ensure group ids are all duplicated --- packages/excalidraw/element/duplicate.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/excalidraw/element/duplicate.ts b/packages/excalidraw/element/duplicate.ts index 42ebbc414..992b8555f 100644 --- a/packages/excalidraw/element/duplicate.ts +++ b/packages/excalidraw/element/duplicate.ts @@ -129,6 +129,15 @@ export const duplicateElements = ( opts?.idsOfElementsToDuplicate ?? new Map(elements.map((el) => [el.id, el])); + // For sanity + if (opts?.appState?.selectedGroupIds) { + for (const groupId of Object.keys(opts.appState.selectedGroupIds)) { + elements + .filter((el) => el.groupIds?.includes(groupId)) + .forEach((el) => _idsOfElementsToDuplicate.set(el.id, el)); + } + } + elements = normalizeElementOrder(elements); const elementsWithClones: ExcalidrawElement[] = elements.slice();