// Libraries import React, { useEffect } from 'react'; import { PageLayoutType } from '@grafana/data'; import { Page } from 'app/core/components/Page/Page'; import PageLoader from 'app/core/components/PageLoader/PageLoader'; import { GrafanaRouteComponentProps } from 'app/core/navigation/types'; import { DashboardPageRouteParams } from 'app/features/dashboard/containers/types'; import { DashboardRoutes } from 'app/types'; import { getDashboardScenePageStateManager } from './DashboardScenePageStateManager'; export interface Props extends GrafanaRouteComponentProps {} export function DashboardScenePage({ match, route }: Props) { const stateManager = getDashboardScenePageStateManager(); const { dashboard, isLoading, loadError } = stateManager.useState(); useEffect(() => { if (route.routeName === DashboardRoutes.Home) { stateManager.loadDashboard({ uid: route.routeName }); } else { stateManager.loadDashboard({ uid: match.params.uid! }); } return () => { stateManager.clearState(); }; }, [stateManager, match.params.uid, route.routeName]); if (!dashboard) { return ( {isLoading && } {loadError &&

{loadError}

}
); } return ; } export default DashboardScenePage;