From 0240eb79b99140bb396581da3ec203b55a4f6264 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Wed, 26 Mar 2025 13:56:30 +0100 Subject: [PATCH] Dashboard: Fixes issue switching layouts (#102884) --- .../scene/layout-rows/RowsLayoutManager.tsx | 2 +- .../scene/layout-tabs/TabsLayoutManager.tsx | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/public/app/features/dashboard-scene/scene/layout-rows/RowsLayoutManager.tsx b/public/app/features/dashboard-scene/scene/layout-rows/RowsLayoutManager.tsx index 41977255db0..863ded45b63 100644 --- a/public/app/features/dashboard-scene/scene/layout-rows/RowsLayoutManager.tsx +++ b/public/app/features/dashboard-scene/scene/layout-rows/RowsLayoutManager.tsx @@ -213,7 +213,7 @@ export class RowsLayoutManager extends SceneObjectBase i if (layout instanceof TabsLayoutManager) { for (const tab of layout.state.tabs) { - rows.push(new RowItem({ layout: tab.state.layout, title: tab.state.title })); + rows.push(new RowItem({ layout: tab.state.layout.clone(), title: tab.state.title })); } } else if (layout instanceof DefaultGridLayoutManager) { const config: Array<{ diff --git a/public/app/features/dashboard-scene/scene/layout-tabs/TabsLayoutManager.tsx b/public/app/features/dashboard-scene/scene/layout-tabs/TabsLayoutManager.tsx index f4369290323..e8477e002b4 100644 --- a/public/app/features/dashboard-scene/scene/layout-tabs/TabsLayoutManager.tsx +++ b/public/app/features/dashboard-scene/scene/layout-tabs/TabsLayoutManager.tsx @@ -210,9 +210,12 @@ export class TabsLayoutManager extends SceneObjectBase i let tabs: TabItem[] = []; if (layout instanceof RowsLayoutManager) { - tabs = layout.state.rows.map((row) => new TabItem({ layout: row.state.layout.clone(), title: row.state.title })); + for (const row of layout.state.rows) { + tabs.push(new TabItem({ layout: row.state.layout.clone(), title: row.state.title })); + } } else { - tabs.push(new TabItem({ layout: layout.clone() })); + layout.clearParent(); + tabs.push(new TabItem({ layout: layout })); } return new TabsLayoutManager({ tabs });