Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | 54x 54x 54x 54x 54x 22x 54x 108x | import { lazy, Suspense } from 'react'
import { Routes, Route, Navigate } from 'react-router-dom'
import { AuthGuard } from '@/features/auth/AuthGuard'
import { AppLayout } from '@/layouts/AppLayout'
import { SettingsPage } from '@/features/settings/SettingsPage'
import { DashboardPage } from '@/features/dashboard/DashboardPage'
import { ProjectsPage } from '@/features/projects/ProjectsPage'
import { ProjectDetailPage } from '@/features/projects/ProjectDetailPage'
import { ProjectFormPage } from '@/features/projects/ProjectFormPage'
import { PipelineFormPage } from '@/features/pipelines/PipelineFormPage'
import { PipelineDetailPage } from '@/features/pipelines/PipelineDetailPage'
import { RepositoriesPage } from '@/features/repositories/RepositoriesPage'
import { RepositoryFormPage } from '@/features/repositories/RepositoryFormPage'
import { RunsPage } from '@/features/runs/RunsPage'
import { RunDetailPage } from '@/features/runs/RunDetailPage'
import { NotFoundPage } from '@/features/errors/NotFoundPage'
const LoginPage = lazy(() =>
import('@/features/auth/LoginPage').then((m) => ({ default: m.LoginPage })),
)
const CallbackPage = lazy(() =>
import('@/features/auth/CallbackPage').then((m) => ({
default: m.CallbackPage,
})),
)
function LazyLoader({ children }: { children: React.ReactNode }) {
return (
<Suspense
fallback={
<div className="flex min-h-screen items-center justify-center">
<p className="text-muted-foreground">Loading...</p>
</div>
}
>
{children}
</Suspense>
)
}
export function AppRouter() {
return (
<Routes>
<Route
path="/login"
element={
<LazyLoader>
<LoginPage />
</LazyLoader>
}
/>
<Route
path="/callback"
element={
<LazyLoader>
<CallbackPage />
</LazyLoader>
}
/>
<Route
path="/"
element={
<AuthGuard>
<AppLayout />
</AuthGuard>
}
>
<Route index element={<DashboardPage />} />
<Route path="projects" element={<ProjectsPage />} />
<Route path="projects/new" element={<ProjectFormPage />} />
<Route path="projects/:id" element={<ProjectDetailPage />} />
<Route path="projects/:id/edit" element={<ProjectFormPage />} />
<Route path="projects/:projectId/pipelines/new" element={<PipelineFormPage />} />
<Route path="pipelines/:id" element={<PipelineDetailPage />} />
<Route path="pipelines/:id/edit" element={<PipelineFormPage />} />
<Route path="runs" element={<RunsPage />} />
<Route path="runs/:id" element={<RunDetailPage />} />
<Route path="repositories" element={<RepositoriesPage />} />
<Route path="repositories/new" element={<RepositoryFormPage />} />
<Route path="repositories/:id/edit" element={<RepositoryFormPage />} />
<Route path="settings" element={<SettingsPage />} />
{/*
<Route path="manifests" element={<div className="p-6"><h1 className="text-2xl font-bold">Manifests</h1><p className="text-muted-foreground">Coming soon</p></div>} />
*/}
</Route>
<Route path="/404" element={<NotFoundPage />} />
<Route path="*" element={<Navigate to="/404" replace />} />
</Routes>
)
}
|