grafana/public/app/features/connections/Connections.tsx
Ashley Harrison 4abe0249ba
Chore: Clean up old navigation (#66287)
* remove code outside of the topnav feature flag

* delete NavBar folder

* remove topnav toggle from backend

* restructure AppChrome folder

* fix utils mock

* fix applinks tests

* remove tests since they're covered in e2e

* fix 1 of the approotpage tests

* Fix another dashboardpage test

* remove reverse portalling + test for plugins using deprecated onNavChanged method

* kick drone

* handle correlations
2023-04-14 09:43:11 +01:00

55 lines
2.3 KiB
TypeScript

import * as React from 'react';
import { Redirect, Route, Switch } from 'react-router-dom';
import { NavLandingPage } from 'app/core/components/NavLandingPage/NavLandingPage';
import { DataSourcesRoutesContext } from 'app/features/datasources/state';
import { StoreState, useSelector } from 'app/types';
import { ROUTES } from './constants';
import {
ConnectDataPage,
DataSourceDashboardsPage,
DataSourceDetailsPage,
DataSourcesListPage,
EditDataSourcePage,
NewDataSourcePage,
} from './pages';
export default function Connections() {
const navIndex = useSelector((state: StoreState) => state.navIndex);
const isConnectDataPageOverriden = Boolean(navIndex['standalone-plugin-page-/connections/connect-data']);
const YourConnectionsPage =
navIndex['connections-your-connections'].children && navIndex['connections-your-connections'].children?.length > 1
? () => <NavLandingPage navId="connections-your-connections" />
: () => <Redirect to={ROUTES.DataSources} />;
return (
<DataSourcesRoutesContext.Provider
value={{
New: ROUTES.DataSourcesNew,
List: ROUTES.DataSources,
Edit: ROUTES.DataSourcesEdit,
Dashboards: ROUTES.DataSourcesDashboards,
}}
>
<Switch>
{/* Redirect to "Connect data" by default */}
<Route exact sensitive path={ROUTES.Base} component={() => <Redirect to={ROUTES.ConnectData} />} />
<Route exact sensitive path={ROUTES.YourConnections} component={YourConnectionsPage} />
<Route exact sensitive path={ROUTES.DataSources} component={DataSourcesListPage} />
<Route exact sensitive path={ROUTES.DataSourcesDetails} component={DataSourceDetailsPage} />
<Route exact sensitive path={ROUTES.DataSourcesNew} component={NewDataSourcePage} />
<Route exact sensitive path={ROUTES.DataSourcesEdit} component={EditDataSourcePage} />
<Route exact sensitive path={ROUTES.DataSourcesDashboards} component={DataSourceDashboardsPage} />
{/* "Connect data" page - we don't register a route in case a plugin already registers a standalone page for it */}
{!isConnectDataPageOverriden && <Route exact sensitive path={ROUTES.ConnectData} component={ConnectDataPage} />}
{/* Not found */}
<Route component={() => <Redirect to="/notfound" />} />
</Switch>
</DataSourcesRoutesContext.Provider>
);
}