diff --git a/public/app/features/dashboard-scene/pages/DashboardScenePage.tsx b/public/app/features/dashboard-scene/pages/DashboardScenePage.tsx index 9d004d346f1..f74e53c0d89 100644 --- a/public/app/features/dashboard-scene/pages/DashboardScenePage.tsx +++ b/public/app/features/dashboard-scene/pages/DashboardScenePage.tsx @@ -3,6 +3,7 @@ import { useEffect, useMemo } from 'react'; import { PageLayoutType } from '@grafana/data'; import { UrlSyncContextProvider } from '@grafana/scenes'; +import { Alert, Box } from '@grafana/ui'; import { Page } from 'app/core/components/Page/Page'; import PageLoader from 'app/core/components/PageLoader/PageLoader'; import { GrafanaRouteComponentProps } from 'app/core/navigation/types'; @@ -68,9 +69,15 @@ export function DashboardScenePage({ match, route, queryParams, history }: Props if (!dashboard) { return ( - - {isLoading && } - {loadError &&

{loadError}

} + + + {isLoading && } + {loadError && ( + + {loadError} + + )} + ); } diff --git a/public/app/features/dashboard-scene/pages/DashboardScenePageStateManager.test.ts b/public/app/features/dashboard-scene/pages/DashboardScenePageStateManager.test.ts index b67870e1b90..3c0c7b5a2ed 100644 --- a/public/app/features/dashboard-scene/pages/DashboardScenePageStateManager.test.ts +++ b/public/app/features/dashboard-scene/pages/DashboardScenePageStateManager.test.ts @@ -35,7 +35,7 @@ describe('DashboardScenePageStateManager', () => { const loader = new DashboardScenePageStateManager({}); await loader.loadDashboard({ uid: 'fake-dash', route: DashboardRoutes.Normal }); - expect(loader.state.dashboard).toBeDefined(); + expect(loader.state.dashboard).toBeUndefined(); expect(loader.state.isLoading).toBe(false); expect(loader.state.loadError).toBe('Dashboard not found'); }); @@ -107,8 +107,7 @@ describe('DashboardScenePageStateManager', () => { const loader = new DashboardScenePageStateManager({}); await loader.loadDashboard({ uid: '', route: DashboardRoutes.Home }); - expect(loader.state.dashboard).toBeDefined(); - expect(loader.state.dashboard?.state.title).toEqual('Failed to load home dashboard'); + expect(loader.state.dashboard).toBeUndefined(); expect(loader.state.loadError).toEqual('Failed to load home dashboard'); }); }); diff --git a/public/app/features/dashboard-scene/pages/DashboardScenePageStateManager.ts b/public/app/features/dashboard-scene/pages/DashboardScenePageStateManager.ts index 40cd0b07fc1..089cfa0f417 100644 --- a/public/app/features/dashboard-scene/pages/DashboardScenePageStateManager.ts +++ b/public/app/features/dashboard-scene/pages/DashboardScenePageStateManager.ts @@ -1,13 +1,11 @@ import { locationUtil } from '@grafana/data'; import { config, getBackendSrv, isFetchError, locationService } from '@grafana/runtime'; -import { defaultDashboard } from '@grafana/schema'; import { StateManagerBase } from 'app/core/services/StateManagerBase'; import { default as localStorageStore } from 'app/core/store'; import { getMessageFromError } from 'app/core/utils/errors'; import { startMeasure, stopMeasure } from 'app/core/utils/metrics'; import { dashboardLoaderSrv } from 'app/features/dashboard/services/DashboardLoaderSrv'; import { getDashboardSrv } from 'app/features/dashboard/services/DashboardSrv'; -import { DashboardModel } from 'app/features/dashboard/state'; import { emitDashboardViewEvent } from 'app/features/dashboard/state/analyticsProcessor'; import { DASHBOARD_FROM_LS_KEY, @@ -20,10 +18,7 @@ import { DashboardDTO, DashboardRoutes } from 'app/types'; import { PanelEditor } from '../panel-edit/PanelEditor'; import { DashboardScene } from '../scene/DashboardScene'; import { buildNewDashboardSaveModel } from '../serialization/buildNewDashboardSaveModel'; -import { - createDashboardSceneFromDashboardModel, - transformSaveModelToScene, -} from '../serialization/transformSaveModelToScene'; +import { transformSaveModelToScene } from '../serialization/transformSaveModelToScene'; import { restoreDashboardStateFromLocalStorage } from '../utils/dashboardSessionState'; import { updateNavModel } from './utils'; @@ -203,11 +198,7 @@ export class DashboardScenePageStateManager extends StateManagerBase

${msg}

`, - mode: 'html', - }, - title: '', - transparent: true, - type: 'text', - }, - ], - }, - meta: { canSave: false, canEdit: false }, - }; - return createDashboardSceneFromDashboardModel(new DashboardModel(dto.dashboard, dto.meta), dto.dashboard); -}