/ webui / src / router.tsx
router.tsx
 1  import React from 'react';
 2  
 3  import { Home } from './routes/home/Home';
 4  import { Connections } from './routes/connections/Connections';
 5  import { ChooseConnector } from './routes/connections/ChooseConnector';
 6  import { CreateConnection } from './routes/connections/CreateConnection';
 7  import { PipelinesIndex } from './routes/pipelines/PipelinesIndex';
 8  import { CreatePipeline } from './routes/pipelines/CreatePipeline';
 9  import { PipelineDetails } from './routes/pipelines/PipelineDetails';
10  import { addCloudRoutes, needsOrgSetup } from './lib/CloudComponents';
11  import { createBrowserRouter, RouterProvider } from 'react-router-dom';
12  import App from './App';
13  import PageNotFound from './routes/not_found/PageNotFound';
14  
15  export function Router(): JSX.Element {
16    let routes = [
17      {
18        path: '*',
19        element: <PageNotFound />,
20      },
21      {
22        path: '',
23        element: <Home />,
24      },
25      {
26        path: 'connections',
27        element: <Connections />,
28      },
29      {
30        path: 'connections/new',
31        element: <ChooseConnector />,
32      },
33      {
34        path: 'connections/new/:connectorId',
35        element: <CreateConnection />,
36      },
37      {
38        path: 'pipelines',
39        element: <PipelinesIndex />,
40      },
41      {
42        path: 'pipelines/new',
43        element: <CreatePipeline />,
44      },
45      {
46        path: 'pipelines/:pipelineId',
47        element: <PipelineDetails />,
48      },
49    ];
50  
51    addCloudRoutes(routes);
52  
53    let router = createBrowserRouter([
54      {
55        path: '/',
56        element: App(),
57        children: routes,
58      },
59    ]);
60  
61    let orgSetup = needsOrgSetup();
62    if (orgSetup) {
63      return orgSetup;
64    } else {
65      return <RouterProvider router={router} />;
66    }
67  }