From d177e57f7e89d03c11b97e268f7f95f73f02a72f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Wed, 18 Sep 2024 17:57:15 +0200 Subject: [PATCH] DashboardScene: Fix url state sync issue when coming form Home dashboard to a cached dashboard scene (#93442) * DashboardScene: Fixes preserve dashboard state for hidden options * DashboardScene: Alt fix for pervering only specific url keys * DashboardScene: Fixes url sync issue when coming from Home route * Update * Fix test --- .../dashboard-scene/pages/DashboardScenePage.test.tsx | 4 ++-- .../app/features/dashboard-scene/pages/DashboardScenePage.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/public/app/features/dashboard-scene/pages/DashboardScenePage.test.tsx b/public/app/features/dashboard-scene/pages/DashboardScenePage.test.tsx index e7524d1ceeb..11146de7f4d 100644 --- a/public/app/features/dashboard-scene/pages/DashboardScenePage.test.tsx +++ b/public/app/features/dashboard-scene/pages/DashboardScenePage.test.tsx @@ -220,7 +220,7 @@ describe('DashboardScenePage', () => { describe('empty state', () => { it('Shows empty state when dashboard is empty', async () => { - loadDashboardMock.mockResolvedValue({ dashboard: { panels: [] }, meta: {} }); + loadDashboardMock.mockResolvedValue({ dashboard: { uid: 'my-dash-uid', panels: [] }, meta: {} }); setup(); expect(await screen.findByText('Start your new dashboard by adding a visualization')).toBeInTheDocument(); @@ -299,7 +299,7 @@ describe('DashboardScenePage', () => { it('should show controls', async () => { getDashboardScenePageStateManager().clearDashboardCache(); loadDashboardMock.mockClear(); - loadDashboardMock.mockResolvedValue({ dashboard: { panels: [] }, meta: {} }); + loadDashboardMock.mockResolvedValue({ dashboard: { uid: 'my-dash-uid', panels: [] }, meta: {} }); setup(); diff --git a/public/app/features/dashboard-scene/pages/DashboardScenePage.tsx b/public/app/features/dashboard-scene/pages/DashboardScenePage.tsx index 2a368ffd91f..9d004d346f1 100644 --- a/public/app/features/dashboard-scene/pages/DashboardScenePage.tsx +++ b/public/app/features/dashboard-scene/pages/DashboardScenePage.tsx @@ -78,7 +78,7 @@ export function DashboardScenePage({ match, route, queryParams, history }: Props // Do not render anything when transitioning from one dashboard to another if ( match.params.type !== 'snapshot' && - dashboard.state.uid && + match.params.uid && dashboard.state.uid !== match.params.uid && route.routeName !== DashboardRoutes.Home ) {