1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import { BrowserRouter, Routes, Route } from 'react-router-dom'
import { PipelineViewerPage } from '@/pages/PipelineViewerPage'
import { MinimalPage } from '@/pages/MinimalPage'
import { AuthProvider, RequireAuth } from '@/auth/AuthContext'
import { LoginPage } from '@/auth/LoginPage'
import { CallbackPage } from '@/auth/CallbackPage'
import './index.css'
// Pipeline Viewer app
// Served at the root (/) by FastAPI in both dev and prod. basename is
// derived from Vite's base config via import.meta.env.BASE_URL.
const basename = import.meta.env.BASE_URL.replace(/\/$/, '') || '/'
createRoot(document.getElementById('root')!).render(
<StrictMode>
<BrowserRouter basename={basename}>
<AuthProvider>
<Routes>
<Route path="/login" element={<LoginPage />} />
<Route path="/auth/callback" element={<CallbackPage />} />
<Route
path="/minimal"
element={
<RequireAuth>
<MinimalPage />
</RequireAuth>
}
/>
<Route
path="/*"
element={
<RequireAuth>
<PipelineViewerPage />
</RequireAuth>
}
/>
</Routes>
</AuthProvider>
</BrowserRouter>
</StrictMode>,
)