Write on the margins of the internet. Powered by the AT Protocol. margin.at
extension web atproto comments
at main 2.8 kB view raw
1import { Routes, Route } from "react-router-dom"; 2import { AuthProvider } from "./context/AuthContext"; 3import Sidebar from "./components/Sidebar"; 4import RightSidebar from "./components/RightSidebar"; 5import MobileNav from "./components/MobileNav"; 6import Feed from "./pages/Feed"; 7import Url from "./pages/Url"; 8import Profile from "./pages/Profile"; 9import Login from "./pages/Login"; 10import New from "./pages/New"; 11import Bookmarks from "./pages/Bookmarks"; 12import Highlights from "./pages/Highlights"; 13import Notifications from "./pages/Notifications"; 14import AnnotationDetail from "./pages/AnnotationDetail"; 15import Collections from "./pages/Collections"; 16import CollectionDetail from "./pages/CollectionDetail"; 17import Privacy from "./pages/Privacy"; 18 19import Terms from "./pages/Terms"; 20 21import ScrollToTop from "./components/ScrollToTop"; 22 23function AppContent() { 24 return ( 25 <div className="layout"> 26 <ScrollToTop /> 27 <Sidebar /> 28 <div className="main-layout"> 29 <main className="main-content-wrapper"> 30 <Routes> 31 <Route path="/" element={<Feed />} /> 32 <Route path="/url" element={<Url />} /> 33 <Route path="/new" element={<New />} /> 34 <Route path="/bookmarks" element={<Bookmarks />} /> 35 <Route path="/highlights" element={<Highlights />} /> 36 <Route path="/notifications" element={<Notifications />} /> 37 <Route path="/profile/:handle" element={<Profile />} /> 38 <Route path="/login" element={<Login />} /> 39 <Route path="/at/:did/:rkey" element={<AnnotationDetail />} /> 40 <Route path="/annotation/:uri" element={<AnnotationDetail />} /> 41 <Route path="/collections" element={<Collections />} /> 42 <Route path="/collections/:rkey" element={<CollectionDetail />} /> 43 <Route 44 path="/:handle/collection/:rkey" 45 element={<CollectionDetail />} 46 /> 47 <Route 48 path="/:handle/annotation/:rkey" 49 element={<AnnotationDetail />} 50 /> 51 <Route 52 path="/:handle/highlight/:rkey" 53 element={<AnnotationDetail />} 54 /> 55 <Route 56 path="/:handle/bookmark/:rkey" 57 element={<AnnotationDetail />} 58 /> 59 <Route path="/collection/*" element={<CollectionDetail />} /> 60 <Route path="/privacy" element={<Privacy />} /> 61 <Route path="/terms" element={<Terms />} /> 62 </Routes> 63 </main> 64 </div> 65 <RightSidebar /> 66 <MobileNav /> 67 </div> 68 ); 69} 70 71export default function App() { 72 return ( 73 <AuthProvider> 74 <Routes> 75 <Route path="/*" element={<AppContent />} /> 76 </Routes> 77 </AuthProvider> 78 ); 79}