diff --git a/frontend/src/lib/components/apps/editor/appUtils.ts b/frontend/src/lib/components/apps/editor/appUtils.ts index 763dd96df6..36e9de247d 100644 --- a/frontend/src/lib/components/apps/editor/appUtils.ts +++ b/frontend/src/lib/components/apps/editor/appUtils.ts @@ -107,8 +107,6 @@ export function insertNewGridItem( const subGrid = app.subgrids[key] ?? [] subGrid.push(createNewGridItem(subGrid, id, data)) app.subgrids[key] = subGrid - - } for (let i = 0; i < (data.numberOfSubgrids ?? 0); i++) { app.subgrids[`${id}-${i}`] = [] @@ -169,16 +167,21 @@ export function deleteGridItem( export function duplicateGridItem( app: App, - focusedGrid: FocusedGrid | undefined, + parent: string | undefined, id: string ): string | undefined { const gridItem = findGridItem(app, id) + if (gridItem) { const newId = getNextGridItemId(app) const newItem = JSON.parse(JSON.stringify(gridItem)) newItem.id = newId newItem.data.id = newId + let focusedGrid = parent + ? { parentComponentId: parent.split('-')[0], subGridIndex: Number(parent.split('-')[1]) } + : undefined + return insertNewGridItem(app, newItem.data, focusedGrid) } return undefined diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/ComponentPanel.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/ComponentPanel.svelte index 29ec777575..83e533d3c3 100644 --- a/frontend/src/lib/components/apps/editor/settingsPanel/ComponentPanel.svelte +++ b/frontend/src/lib/components/apps/editor/settingsPanel/ComponentPanel.svelte @@ -35,7 +35,7 @@ function duplicateElement(id: string) { $dirtyStore = true - const newId = duplicateGridItem($app, $focusedGrid, id) + const newId = duplicateGridItem($app, parent, id) $selectedComponent = newId }