summaryrefslogtreecommitdiff
path: root/react/08-auth-with-context/src/App.jsx
diff options
context:
space:
mode:
authorKamal Wickramanayake <kamal@inbox.lk>2026-07-02 20:17:44 +0530
committerKamal Wickramanayake <kamal@inbox.lk>2026-07-02 20:17:44 +0530
commitb221a83ecef1dd7f9583d5107017d24e668205a6 (patch)
treef519d4a08e6fde2d175b2a16b6d71e90890666d2 /react/08-auth-with-context/src/App.jsx
parent48f6e61f90e5a8465a9cee8b501d990c89d79c33 (diff)
Added React global state + role based security sample app
Diffstat (limited to 'react/08-auth-with-context/src/App.jsx')
-rw-r--r--react/08-auth-with-context/src/App.jsx36
1 files changed, 36 insertions, 0 deletions
diff --git a/react/08-auth-with-context/src/App.jsx b/react/08-auth-with-context/src/App.jsx
new file mode 100644
index 0000000..aedd87e
--- /dev/null
+++ b/react/08-auth-with-context/src/App.jsx
@@ -0,0 +1,36 @@
+import { Routes, Route, Navigate } from "react-router";
+
+import Navbar from "./components/Navbar";
+import HomePage from "./pages/HomePage"
+import AboutPage from "./pages/AboutPage"
+import AuthLayout from "./features/auth/layouts/AuthLayout"
+import Login from "./features/auth/components/Login"
+import Register from "./features/auth/components/Register"
+import PostList from "./features/posts/components/PostList"
+import AdminPage from "./pages/AdminPage";
+import { useAuth } from "./contexts/AuthContext";
+
+function App() {
+ const { isAdmin } = useAuth();
+
+ return (
+ <div className="app">
+ <Navbar/>
+
+ <Routes>
+ <Route index element={<HomePage />} />
+ <Route path="about" element={<AboutPage />} />
+ <Route path="posts" element={<PostList />} />
+
+ <Route path="admin" element={isAdmin() ? <AdminPage /> : <Navigate to="/" />} />
+
+ <Route element={<AuthLayout />}>
+ <Route path="login" element={<Login />} />
+ <Route path="register" element={<Register />} />
+ </Route>
+ </Routes>
+ </div>
+ )
+}
+
+export default App