A simple, clean, fast browser for the AtmosphereConf(2026) VODs
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 41 lines 1.7 kB view raw
1import { lazy, Suspense } from 'react' 2import { Navigate, Route, Routes } from 'react-router-dom' 3 4import { AppShell } from '@/components/layout/app-shell' 5 6const BrowsePage = lazy(() => import('@/pages/browse-page').then((module) => ({ default: module.BrowsePage }))) 7const AtmosphereConfPage = lazy(() => 8 import('@/pages/atmosphereconf-page').then((module) => ({ default: module.AtmosphereConfPage })), 9) 10const SearchPage = lazy(() => import('@/pages/search-page').then((module) => ({ default: module.SearchPage }))) 11const AboutPage = lazy(() => import('@/pages/about-page').then((module) => ({ default: module.AboutPage }))) 12const VideoPage = lazy(() => import('@/pages/video-page').then((module) => ({ default: module.VideoPage }))) 13const TagPage = lazy(() => import('@/pages/tag-page').then((module) => ({ default: module.TagPage }))) 14 15function RouteFallback() { 16 return ( 17 <section className="rounded-lg border border-line/45 bg-surface/80 p-5"> 18 <p className="text-sm text-muted">Loading view...</p> 19 </section> 20 ) 21} 22 23function App() { 24 return ( 25 <AppShell> 26 <Suspense fallback={<RouteFallback />}> 27 <Routes> 28 <Route path="/" element={<BrowsePage />} /> 29 <Route path="/atmosphereconf-2026" element={<AtmosphereConfPage />} /> 30 <Route path="/search" element={<SearchPage />} /> 31 <Route path="/about" element={<AboutPage />} /> 32 <Route path="/video/:didParam/:rkeyParam" element={<VideoPage />} /> 33 <Route path="/tag/:tagParam" element={<TagPage />} /> 34 <Route path="*" element={<Navigate to="/" replace />} /> 35 </Routes> 36 </Suspense> 37 </AppShell> 38 ) 39} 40 41export default App