This repository has no description
1import React from 'react';
2import { Analytics } from '@vercel/analytics/react';
3import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom';
4import Navbar from './components/Navbar/Navbar';
5import Footer from './components/Footer/Footer';
6import Newsletter from './components/Newsletter/Newsletter';
7import About from './components/About/About';
8import Home from './components/Home/Home';
9import Leaderboard from './components/Leaderboard/Leaderboard';
10import Supporter from './components/Supporter/Supporter';
11import Definitions from './components/Definitions/Definitions';
12import Shortcut from './components/Shortcut/Shortcut';
13import Resources from './components/Resources/Resources';
14import ScoringMethodology from './components/ScoringMethodology/ScoringMethodology';
15import Terms from './components/PrivacyTerms/Terms';
16import Privacy from './components/PrivacyTerms/Privacy';
17import AltTextRatingTool from './components/AltTextRating/AltTextRatingTool';
18import UserProfile from './components/UserProfile/UserProfile';
19import ZenPage from './components/ZenPage';
20import CompareScores from './components/CompareScores/CompareScores';
21import CollectionsFeed from './components/CollectionsFeed/CollectionsFeed';
22import Login from './components/Login/Login';
23import LoginCallback from './components/Login/LoginCallback';
24import Verifier from './components/Verifier/Verifier';
25import Canceler from './components/Canceler/Canceler';
26import { AuthProvider } from './contexts/AuthContext';
27import ProtectedRoute from './components/ProtectedRoute';
28import "./App.css";
29
30const App = () => {
31 return (
32 <>
33 <AuthProvider>
34 <Router>
35 <div className="app-container" style={{ display: 'flex', flexDirection: 'column', minHeight: '100vh' }}>
36 <Navbar />
37 <div className="main-container" style={{ flex: 1 }}>
38 <Routes>
39 {/* Auth Routes */}
40 <Route path="/login" element={<Login />} />
41 <Route path="/login/callback" element={<LoginCallback />} />
42
43 {/* Public Routes */}
44 <Route path="/home" element={<Home />} />
45 <Route path="/compare/:username1/:username2" element={<CompareScores />} />
46 <Route path="/compare" element={<CompareScores />} />
47 <Route path="/alt-text" element={<AltTextRatingTool />} />
48 <Route path="/about" element={<About />} />
49 <Route path="/privacy" element={<Privacy />} />
50 <Route path="/terms" element={<Terms />} />
51 <Route path="/newsletter" element={<Newsletter />} />
52 <Route path="/supporter" element={<Supporter />} />
53 <Route path="/definitions" element={<Definitions />} />
54 <Route path="/leaderboard" element={<Leaderboard />} />
55 <Route path="/resources" element={<Resources />} />
56 <Route
57 path="/verifier"
58 element={
59 <ProtectedRoute>
60 <Verifier />
61 </ProtectedRoute>
62 }
63 />
64 <Route
65 path="/canceler"
66 element={
67 <ProtectedRoute>
68 <Canceler />
69 </ProtectedRoute>
70 }
71 />
72 <Route path="/shortcut" element={<Shortcut />} />
73 <Route path="/zen" element={<ZenPage />} />
74 <Route path="/methodology" element={<ScoringMethodology />} />
75
76 {/* Omnifeed Routes - Temporarily Commented Out */}
77 {/*
78 <Route
79 path="/omnifeed/:username"
80 element={<CollectionsFeed />}
81 />
82 <Route
83 path="/omnifeed"
84 element={<CollectionsFeed />}
85 />
86 */}
87
88 {/* Handle both DIDs and regular usernames */}
89 <Route path="/:username" element={<UserProfile />} />
90
91 {/* Default routes */}
92 <Route path="/" element={<Navigate to="/home" replace />} />
93 <Route path="*" element={<Navigate to="/home" replace />} />
94 </Routes>
95 </div>
96 <Footer />
97 </div>
98 </Router>
99 </AuthProvider>
100 <Analytics />
101 </>
102 );
103};
104
105export default App;