App.tsx
2,345 bytes
| 1 | import { Route, Routes } from "react-router-dom"; |
|---|---|
| 2 | import { AppShell } from "./components/AppShell"; |
| 3 | import { ProtectedRoute } from "./components/ProtectedRoute"; |
| 4 | import { QuickTasteProvider } from "./components/QuickTaste"; |
| 5 | import { AuthPage } from "./pages/AuthPage"; |
| 6 | import { ChallengeDetailsPage } from "./pages/ChallengeDetailsPage"; |
| 7 | import { ChallengesPage } from "./pages/ChallengesPage"; |
| 8 | import { ComparePage } from "./pages/ComparePage"; |
| 9 | import { DashboardPage } from "./pages/DashboardPage"; |
| 10 | import { DestinationPage } from "./pages/DestinationPage"; |
| 11 | import { ExplorePage } from "./pages/ExplorePage"; |
| 12 | import { JoinChallengePage } from "./pages/JoinChallengePage"; |
| 13 | import { LandingPage } from "./pages/LandingPage"; |
| 14 | import { NotFoundPage } from "./pages/NotFoundPage"; |
| 15 | import { ProfilePage } from "./pages/ProfilePage"; |
| 16 | import { PublicTasteprintPage } from "./pages/PublicTasteprintPage"; |
| 17 | import { TastingsPage } from "./pages/TastingsPage"; |
| 18 | import { TripDetailsPage } from "./pages/TripDetailsPage"; |
| 19 | import { TripsPage } from "./pages/TripsPage"; |
| 20 | |
| 21 | export function App() { |
| 22 | return ( |
| 23 | <Routes> |
| 24 | <Route path="/" element={<LandingPage />} /> |
| 25 | <Route path="/login" element={<AuthPage mode="login" />} /> |
| 26 | <Route path="/register" element={<AuthPage mode="register" />} /> |
| 27 | <Route path="/t/:shareSlug" element={<PublicTasteprintPage />} /> |
| 28 | |
| 29 | <Route element={<ProtectedRoute />}> |
| 30 | <Route path="/join/:code" element={<JoinChallengePage />} /> |
| 31 | <Route path="/app" element={<QuickTasteProvider><AppShell /></QuickTasteProvider>}> |
| 32 | <Route index element={<DashboardPage />} /> |
| 33 | <Route path="explore" element={<ExplorePage />} /> |
| 34 | <Route path="destinations/:code" element={<DestinationPage />} /> |
| 35 | <Route path="tastings" element={<TastingsPage />} /> |
| 36 | <Route path="trips" element={<TripsPage />} /> |
| 37 | <Route path="trips/:tripId" element={<TripDetailsPage />} /> |
| 38 | <Route path="challenges" element={<ChallengesPage />} /> |
| 39 | <Route path="challenges/:challengeId" element={<ChallengeDetailsPage />} /> |
| 40 | <Route path="profile" element={<ProfilePage />} /> |
| 41 | <Route path="compare/:shareSlug" element={<ComparePage />} /> |
| 42 | </Route> |
| 43 | </Route> |
| 44 | <Route path="*" element={<NotFoundPage />} /> |
| 45 | </Routes> |
| 46 | ); |
| 47 | } |
| 48 | |