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}