diff --git a/public/app/features/dashboard-scene/scene/DashboardScene.test.tsx b/public/app/features/dashboard-scene/scene/DashboardScene.test.tsx index d2138cc8b57..bb4488f705f 100644 --- a/public/app/features/dashboard-scene/scene/DashboardScene.test.tsx +++ b/public/app/features/dashboard-scene/scene/DashboardScene.test.tsx @@ -753,6 +753,20 @@ describe('DashboardScene', () => { expect(gridItem.state.body!.state.key).toBe('panel-7'); }); + it('Should maintain size of duplicated panel', () => { + const gItem = (scene.state.body as SceneGridLayout).state.children[0] as DashboardGridItem; + gItem.setState({ height: 1 }); + const vizPanel = gItem.state.body; + scene.duplicatePanel(vizPanel as VizPanel); + + const body = scene.state.body as SceneGridLayout; + const newGridItem = body.state.children[5] as DashboardGridItem; + + expect(body.state.children.length).toBe(6); + expect(newGridItem.state.body!.state.key).toBe('panel-7'); + expect(newGridItem.state.height).toBe(1); + }); + it('Should duplicate a library panel', () => { const libraryPanel = ((scene.state.body as SceneGridLayout).state.children[4] as DashboardGridItem).state.body; const vizPanel = (libraryPanel as LibraryVizPanel).state.panel; diff --git a/public/app/features/dashboard-scene/scene/DashboardScene.tsx b/public/app/features/dashboard-scene/scene/DashboardScene.tsx index bf14cc0c422..c050e66ec37 100644 --- a/public/app/features/dashboard-scene/scene/DashboardScene.tsx +++ b/public/app/features/dashboard-scene/scene/DashboardScene.tsx @@ -594,8 +594,8 @@ export class DashboardScene extends SceneObjectBase { newGridItem = new DashboardGridItem({ x: gridItem.state.x, y: gridItem.state.y, - height: NEW_PANEL_HEIGHT, - width: NEW_PANEL_WIDTH, + height: gridItem.state.height, + width: gridItem.state.width, body: new VizPanel({ ...panelState, $data: panelData, key: getVizPanelKeyForPanelId(newPanelId) }), }); }