aboutsummaryrefslogtreecommitdiffhomepage
path: root/frontend/app/App.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/app/App.tsx')
-rw-r--r--frontend/app/App.tsx58
1 files changed, 58 insertions, 0 deletions
diff --git a/frontend/app/App.tsx b/frontend/app/App.tsx
new file mode 100644
index 0000000..fcf6977
--- /dev/null
+++ b/frontend/app/App.tsx
@@ -0,0 +1,58 @@
+import { Route, Router, Switch } from "wouter";
+import ProtectedRoute from "./components/ProtectedRoute";
+import PublicOnlyRoute from "./components/PublicOnlyRoute";
+import { BASE_PATH } from "./config";
+import DashboardPage from "./pages/DashboardPage";
+import GolfPlayPage from "./pages/GolfPlayPage";
+import GolfWatchPage from "./pages/GolfWatchPage";
+import IndexPage from "./pages/IndexPage";
+import LoginPage from "./pages/LoginPage";
+import TournamentPage from "./pages/TournamentPage";
+
+export default function App() {
+ return (
+ <Router base={BASE_PATH.replace(/\/$/, "")}>
+ <Switch>
+ <Route path="/">
+ <PublicOnlyRoute>
+ <IndexPage />
+ </PublicOnlyRoute>
+ </Route>
+ <Route path="/login">
+ <PublicOnlyRoute>
+ <LoginPage />
+ </PublicOnlyRoute>
+ </Route>
+ <Route path="/dashboard">
+ <ProtectedRoute>
+ <DashboardPage />
+ </ProtectedRoute>
+ </Route>
+ <Route path="/golf/:gameId/play">
+ {(params) => (
+ <ProtectedRoute>
+ <GolfPlayPage gameId={params.gameId} />
+ </ProtectedRoute>
+ )}
+ </Route>
+ <Route path="/golf/:gameId/watch">
+ {(params) => (
+ <ProtectedRoute>
+ <GolfWatchPage gameId={params.gameId} />
+ </ProtectedRoute>
+ )}
+ </Route>
+ <Route path="/tournament">
+ <ProtectedRoute>
+ <TournamentPage />
+ </ProtectedRoute>
+ </Route>
+ <Route>
+ <div className="min-h-screen bg-gray-100 flex items-center justify-center">
+ <p className="text-gray-500 text-xl">404 - Page not found</p>
+ </div>
+ </Route>
+ </Switch>
+ </Router>
+ );
+}