summaryrefslogtreecommitdiff
path: root/react/08-auth-with-context/src/App.jsx
blob: aedd87e0ac31b99bab8453b5ff6842a83eabd6b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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