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 { AuthProvider } from './contexts/AuthContext';
26import ProtectedRoute from './components/ProtectedRoute';
27import "./App.css";
28
29const App = () => {
30 return (
31 <>
32 <AuthProvider>
33 <Router>
34 <div className="app-container" style={{ display: 'flex', flexDirection: 'column', minHeight: '100vh' }}>
35 <Navbar />
36 <div className="main-container" style={{ flex: 1 }}>
37 <Routes>
38 {/* Auth Routes */}
39 <Route path="/login" element={<Login />} />
40 <Route path="/login/callback" element={<LoginCallback />} />
41
42 {/* Public Routes */}
43 <Route path="/home" element={<Home />} />
44 <Route path="/compare/:username1/:username2" element={<CompareScores />} />
45 <Route path="/compare" element={<CompareScores />} />
46 <Route path="/alt-text" element={<AltTextRatingTool />} />
47 <Route path="/about" element={<About />} />
48 <Route path="/privacy" element={<Privacy />} />
49 <Route path="/terms" element={<Terms />} />
50 <Route path="/newsletter" element={<Newsletter />} />
51 <Route path="/supporter" element={<Supporter />} />
52 <Route path="/definitions" element={<Definitions />} />
53 <Route path="/leaderboard" element={<Leaderboard />} />
54 <Route path="/resources" element={<Resources />} />
55 <Route
56 path="/verifier"
57 element={
58 <ProtectedRoute>
59 <Verifier />
60 </ProtectedRoute>
61 }
62 />
63 <Route path="/shortcut" element={<Shortcut />} />
64 <Route path="/zen" element={<ZenPage />} />
65 <Route path="/methodology" element={<ScoringMethodology />} />
66
67 {/* Omnifeed Routes - Temporarily Commented Out */}
68 {/*
69 <Route
70 path="/omnifeed/:username"
71 element={<CollectionsFeed />}
72 />
73 <Route
74 path="/omnifeed"
75 element={<CollectionsFeed />}
76 />
77 */}
78
79 {/* Handle both DIDs and regular usernames */}
80 <Route path="/:username" element={<UserProfile />} />
81
82 {/* Default routes */}
83 <Route path="/" element={<Navigate to="/home" replace />} />
84 <Route path="*" element={<Navigate to="/home" replace />} />
85 </Routes>
86 </div>
87 <Footer />
88 </div>
89 </Router>
90 </AuthProvider>
91 <Analytics />
92 </>
93 );
94};
95
96export default App;