grafana/public/app/features/connections/Connections.tsx
Levente Balogh 181640b080
Connections: Support standalone plugin pages (#57772)
* feat(Connections): create sub-pages wrapped by `<Page>`

* feat(Connections): rename the Connections page and update routes

* feat(Connections): use new url for editing datasources

* refactor(Connections): remove unused tab components

* feat(Connections): update routes and nav titles

* tests: fix tests for Connections

* tests: fix typo in backend tests
2022-11-10 11:14:23 +01:00

44 lines
1.6 KiB
TypeScript

import * as React from 'react';
import { Route, Switch } from 'react-router-dom';
import { DataSourcesRoutesContext } from 'app/features/datasources/state';
import { StoreState, useSelector } from 'app/types';
import { ROUTES } from './constants';
import {
ConnectDataPage,
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']);
return (
<DataSourcesRoutesContext.Provider
value={{
New: ROUTES.DataSourcesNew,
List: ROUTES.DataSources,
Edit: ROUTES.DataSourcesEdit,
Dashboards: ROUTES.DataSourcesDashboards,
}}
>
<Switch>
<Route exact path={ROUTES.Base} component={DataSourcesListPage} />
<Route exact path={ROUTES.YourConnections} component={DataSourcesListPage} />
<Route exact path={ROUTES.DataSources} component={DataSourcesListPage} />
<Route exact path={ROUTES.DataSourcesDetails} component={DataSourceDetailsPage} />
<Route exact path={ROUTES.DataSourcesNew} component={NewDataSourcePage} />
<Route exact path={ROUTES.DataSourcesEdit} component={EditDataSourcePage} />
{!isConnectDataPageOverriden && <Route path={ROUTES.ConnectData} component={ConnectDataPage} />}
{/* Default page */}
<Route component={DataSourcesListPage} />
</Switch>
</DataSourcesRoutesContext.Provider>
);
}