grafana/public/app/features/data-connections/DataConnectionsPage.tsx
Levente Balogh 9a85a2e441
Data Connections: Create a new top-level page (#50018)
* Feature Flags: introduce a flag for enabling the Data Connections page

* Feature Flags: generate schemas

* Navigation: add navigation weight for the Data Connections page

* NavLink: add a comment pointing out where icon names can be looked up

* NavTree: add a new page called Data Connections

* fix(Api): prefix the navigation IDs with the parent ("data-connections")

* feat(Frontend): add a basic page with four tabs

* feat(Plugins): add a hook for importing an app plugin

* feat(Plugins): add a component for loading app plugins anywhere

* feat(Data Connections): load the cloud-onboarding app under the "Cloud onboarding" tab

* feat(Data Connections): generate a proper nav model to highlight active tabs

* test(Data Connections): add tests

* refactor(Data Connections): update temporary text content

This is only used as a placeholder until the tabs are under development.

* refactor(Data Cnnnections): move /pages to /tabs

* refactor(Data Connections): remove the `types.ts` file as it is not referenced by any module

* feat(Data Connections): only register routes if feature is enabled
2022-06-10 12:13:31 +02:00

31 lines
1007 B
TypeScript

import * as React from 'react';
import { Route, Switch } from 'react-router-dom';
import { Page } from 'app/core/components/Page/Page';
import { ROUTES } from './constants';
import { useNavModel } from './hooks/useNavModel';
import { CloudIntegrations } from './tabs/CloudIntegrations';
import { DataSources } from './tabs/DataSources';
import { Plugins } from './tabs/Plugins';
import { RecordedQueries } from './tabs/RecordedQueries';
export default function DataConnectionsPage(): React.ReactElement | null {
const navModel = useNavModel();
return (
<Page navModel={navModel}>
<Page.Contents>
<Switch>
<Route exact path={ROUTES.Plugins} component={Plugins} />
<Route exact path={ROUTES.CloudIntegrations} component={CloudIntegrations} />
<Route exact path={ROUTES.RecordedQueries} component={RecordedQueries} />
{/* Default page */}
<Route component={DataSources} />
</Switch>
</Page.Contents>
</Page>
);
}