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
21function AppContent() {
22 return (
23 <div className="layout">
24 <Sidebar />
25 <div className="main-layout">
26 <main className="main-content-wrapper">
27 <Routes>
28 <Route path="/" element={<Feed />} />
29 <Route path="/url" element={<Url />} />
30 <Route path="/new" element={<New />} />
31 <Route path="/bookmarks" element={<Bookmarks />} />
32 <Route path="/highlights" element={<Highlights />} />
33 <Route path="/notifications" element={<Notifications />} />
34 <Route path="/profile/:handle" element={<Profile />} />
35 <Route path="/login" element={<Login />} />
36 <Route path="/at/:did/:rkey" element={<AnnotationDetail />} />
37 <Route path="/annotation/:uri" element={<AnnotationDetail />} />
38 <Route path="/collections" element={<Collections />} />
39 <Route path="/collections/:rkey" element={<CollectionDetail />} />
40 <Route
41 path="/:handle/collection/:rkey"
42 element={<CollectionDetail />}
43 />
44 <Route
45 path="/:handle/annotation/:rkey"
46 element={<AnnotationDetail />}
47 />
48 <Route
49 path="/:handle/highlight/:rkey"
50 element={<AnnotationDetail />}
51 />
52 <Route
53 path="/:handle/bookmark/:rkey"
54 element={<AnnotationDetail />}
55 />
56 <Route path="/collection/*" element={<CollectionDetail />} />
57 <Route path="/privacy" element={<Privacy />} />
58 <Route path="/terms" element={<Terms />} />
59 </Routes>
60 </main>
61 </div>
62 <RightSidebar />
63 <MobileNav />
64 </div>
65 );
66}
67
68export default function App() {
69 return (
70 <AuthProvider>
71 <Routes>
72 <Route path="/*" element={<AppContent />} />
73 </Routes>
74 </AuthProvider>
75 );
76}