import { BrowserRouter, Routes, Route } from 'react-router-dom' import { QueryClient, QueryClientProvider } from '@tanstack/react-query' import { AppShell } from './components/layout/AppShell' import { AuthProvider } from './contexts/AuthContext' import { RepoListSkeleton } from './ui/Skeleton' import { Suspense, lazy, useEffect } from 'react' import { bootstrapCSRF } from './api/client' import './index.css' const queryClient = new QueryClient({ defaultOptions: { queries: { staleTime: 30_000, retry: false, placeholderData: (prev: unknown) => prev, }, }, }) const LoginPage = lazy(() => import('./pages/LoginPage')) const RegisterPage = lazy(() => import('./pages/RegisterPage')) const DashboardPage = lazy(() => import('./pages/DashboardPage')) const ReposPage = lazy(() => import('./pages/ReposPage')) const CreateRepoPage = lazy(() => import('./pages/CreateRepoPage')) const ImportRepoPage = lazy(() => import('./pages/ImportRepoPage')) const RepoPage = lazy(() => import('./pages/RepoPage')) const BlobPage = lazy(() => import('./pages/BlobPage')) const RepoSettingsPage = lazy(() => import('./pages/RepoSettingsPage')) const RepoIssuesPage = lazy(() => import('./pages/RepoIssuesPage')) const RepoPRsPage = lazy(() => import('./pages/RepoPRsPage')) const CreatePRPage = lazy(() => import('./pages/CreatePRPage')) const PRDetailPage = lazy(() => import('./pages/PRDetailPage')) const CommitsPage = lazy(() => import('./pages/CommitsPage')) const BranchesPage = lazy(() => import('./pages/BranchesPage')) const StarredPage = lazy(() => import('./pages/StarredPage')) const PRsPage = lazy(() => import('./pages/PRsPage')) const PipelinesPage = lazy(() => import('./pages/PipelinesPage')) const PipelineRunPage = lazy(() => import('./pages/PipelineRunPage')) const RepoPipelinesPage = lazy(() => import('./pages/RepoPipelinesPage')) const EnvironmentsPage = lazy(() => import('./pages/EnvironmentsPage')) const RepoTimelinePage = lazy(() => import('./pages/RepoTimelinePage')) const RepoSecretsPage = lazy(() => import('./pages/RepoSecretsPage')) const RepoSecurityPage = lazy(() => import('./pages/RepoSecurityPage')) const WorkspacesPage = lazy(() => import('./pages/WorkspacesPage')) const WorkspacePage = lazy(() => import('./pages/WorkspacePage')) const WorkspaceSettingsPage = lazy(() => import('./pages/WorkspaceSettingsPage')) const ProfilePage = lazy(() => import('./pages/ProfilePage')) const ExplorePage = lazy(() => import('./pages/ExplorePage')) const SettingsPage = lazy(() => import('./pages/SettingsPage')) function S({ children }: { children: React.ReactNode }) { return }>{children} } function CSRFBootstrap() { useEffect(() => { bootstrapCSRF() }, []) return null } function NotFound() { return (

404

Page not found.

) } export default function App() { return ( } /> } /> }> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> ) }