78 lines
4.3 KiB
TypeScript
78 lines
4.3 KiB
TypeScript
import { Navigate, Route, Routes } from "react-router-dom";
|
|
import { Questions } from "./pages/Questions";
|
|
import { EventLandingPage } from "./pages/EventLandingPage";
|
|
import { EventTrackPage } from "./pages/EventTrackPage";
|
|
import { EventTrackV2Page } from "./pages/EventTrackV2Page";
|
|
import { FeedbackPage } from "./pages/FeedbackPage";
|
|
import { LeaderboardPage } from "./pages/LeaderboardPage";
|
|
import { RatingsPage } from "./pages/RatingsPage";
|
|
import { Home } from "./pages/Home";
|
|
import { AuthCallbackPage } from "./pages/AuthCallbackPage";
|
|
import { CompleteProfilePage } from "./pages/CompleteProfilePage";
|
|
import { LoginPage } from "./pages/LoginPage";
|
|
import { PendingApprovalPage } from "./pages/PendingApprovalPage";
|
|
import { RegisterOtpPage } from "./pages/RegisterOtpPage";
|
|
import { RegisterPage } from "./pages/RegisterPage";
|
|
import { RewardsPage } from "./pages/RewardsPage";
|
|
import { SingleEventPage } from "./pages/SingleEventPage";
|
|
import { QuizPollTakePage } from "./pages/QuizPollTakePage";
|
|
import { QuizPollPresentPage } from "./pages/QuizPollPresentPage";
|
|
import { QuestionsPresentPage } from "./pages/QuestionsPresentPage";
|
|
import { PhotoWallUploadPage } from "./pages/PhotoWallUploadPage";
|
|
import { PhotoWallPresentPage } from "./pages/PhotoWallPresentPage";
|
|
import { PhotoSearchPage } from "./pages/PhotoSearchPage";
|
|
import { SocialSharePage } from "./pages/SocialSharePage";
|
|
import { AiAvatarPage } from "./pages/AiAvatarPage";
|
|
import { CodeEntryPage } from "./pages/CodeEntryPage";
|
|
import { PrivacyPolicyPage } from "./pages/PrivacyPolicyPage";
|
|
import { TermsOfServicePage } from "./pages/TermsOfServicePage";
|
|
import { MatchUpPage } from "./pages/MatchUpPage";
|
|
import { GameQuizPage } from "./pages/GameQuizPage";
|
|
import { useEventTheme } from "./hooks/useEventTheme";
|
|
import { ThemeGate } from "./components/ThemeGate";
|
|
|
|
export default function App() {
|
|
const { ready: themeReady } = useEventTheme();
|
|
|
|
return (
|
|
<ThemeGate ready={themeReady}>
|
|
<div className="flex min-h-dvh flex-1 flex-col">
|
|
<Routes>
|
|
<Route path="/" element={<Home />} />
|
|
<Route path="/code/:code" element={<CodeEntryPage />} />
|
|
<Route path="/login" element={<LoginPage />} />
|
|
<Route path="/auth/callback" element={<AuthCallbackPage />} />
|
|
<Route path="/complete-profile" element={<CompleteProfilePage />} />
|
|
<Route path="/pending-approval" element={<PendingApprovalPage />} />
|
|
<Route path="/event" element={<EventLandingPage />} />
|
|
<Route path="/register" element={<RegisterPage />} />
|
|
<Route path="/register/otp" element={<RegisterOtpPage />} />
|
|
<Route path="/track" element={<EventTrackPage />} />
|
|
<Route path="/track-v2" element={<EventTrackV2Page />} />
|
|
<Route path="/session" element={<SingleEventPage />} />
|
|
<Route path="/quiz-poll" element={<QuizPollTakePage />} />
|
|
<Route path="/quiz-present/:token" element={<QuizPollPresentPage />} />
|
|
<Route path="/questions-present/:sessionId" element={<QuestionsPresentPage />} />
|
|
<Route path="/photo-wall/:uploadToken" element={<PhotoWallUploadPage />} />
|
|
<Route path="/photo-wall-present/:presentToken" element={<PhotoWallPresentPage />} />
|
|
<Route path="/spotlight-present/:presentToken" element={<PhotoWallPresentPage spotlightMode />} />
|
|
<Route path="/photo-search/:searchToken" element={<PhotoSearchPage />} />
|
|
<Route path="/social-share/:uploadToken" element={<SocialSharePage />} />
|
|
<Route path="/ai-avatar/:uploadToken" element={<AiAvatarPage />} />
|
|
<Route path="/match-up/:token" element={<MatchUpPage />} />
|
|
<Route path="/game-quiz/:token" element={<GameQuizPage />} />
|
|
<Route path="/questions" element={<Questions />} />
|
|
<Route path="/ask" element={<Navigate to="/questions" replace />} />
|
|
<Route path="/feedback" element={<FeedbackPage />} />
|
|
<Route path="/ratings" element={<RatingsPage />} />
|
|
<Route path="/rewards" element={<RewardsPage />} />
|
|
<Route path="/leaderboard" element={<LeaderboardPage />} />
|
|
<Route path="/privacy-policy" element={<PrivacyPolicyPage />} />
|
|
<Route path="/terms-of-service" element={<TermsOfServicePage />} />
|
|
<Route path="*" element={<Navigate to="/" replace />} />
|
|
</Routes>
|
|
</div>
|
|
</ThemeGate>
|
|
);
|
|
}
|