Skip to content

Commit 2984b3a

Browse files
feat(auth):creating auth pages
1 parent f0b8c88 commit 2984b3a

28 files changed

+1328
-40
lines changed

web/package-lock.json

Lines changed: 202 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web/package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,14 @@
1111
},
1212
"dependencies": {
1313
"@fontsource/sen": "^5.2.8",
14+
"@hookform/error-message": "^2.0.1",
15+
"@hookform/resolvers": "^5.2.2",
1416
"firebase": "^12.9.0",
1517
"react": "^19.2.0",
1618
"react-dom": "^19.2.0",
17-
"react-router": "^7.13.1"
19+
"react-router": "^7.13.1",
20+
"react-router-dom": "^7.13.1",
21+
"styled-components": "^6.3.11"
1822
},
1923
"devDependencies": {
2024
"@eslint/js": "^9.39.1",

web/src/App.tsx

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,46 @@
1-
import { createBrowserRouter, RouterProvider } from "react-router";
1+
import React from 'react'
2+
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'
3+
import { ThemeProvider } from 'styled-components'
4+
import { AuthProvider } from './context/AuthContext'
5+
import { ProtectedRoute, PublicRoute } from './guards/RouteGuards'
6+
import { AuthPage } from './pages/AuthPage'
7+
import { DashboardPage } from './pages/DashboardPage'
8+
import { GlobalStyles, theme } from './styles/theme'
29

3-
const router = createBrowserRouter([{path: "/", element: <div>Hello World</div>}]);
10+
const App: React.FC = () => {
11+
return (
12+
<ThemeProvider theme={theme}>
13+
<GlobalStyles />
14+
<BrowserRouter>
15+
<AuthProvider>
16+
<Routes>
17+
{/* Public: redirect to dashboard if already logged in */}
18+
<Route
19+
path="/auth"
20+
element={
21+
<PublicRoute>
22+
<AuthPage />
23+
</PublicRoute>
24+
}
25+
/>
426

27+
{/* Protected: redirect to /auth if not logged in */}
28+
<Route
29+
path="/dashboard"
30+
element={
31+
<ProtectedRoute>
32+
<DashboardPage />
33+
</ProtectedRoute>
34+
}
35+
/>
536

6-
export default function App() {
7-
37+
{/* Default redirect */}
38+
<Route path="*" element={<Navigate to="/auth" replace />} />
39+
</Routes>
40+
</AuthProvider>
41+
</BrowserRouter>
42+
</ThemeProvider>
43+
)
44+
}
845

9-
return <RouterProvider router={router}></RouterProvider>;
10-
}
46+
export default App

0 commit comments

Comments
 (0)