aboutsummaryrefslogtreecommitdiffstats
path: root/public/projects/react-small-apps/apps/todos/src/App.js
blob: 66e78965be9daae7d8ebe70330790e9b09dcfd16 (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
37
38
39
40
41
42
43
44
45
46
47
import "modern-normalize";
import { useSelector } from "react-redux";
import { Navigate, Route, Routes } from "react-router-dom";
import { Footer, Header, Main } from "./components/layout";
import Account from "./views/Account/Account";
import LoginForm from "./views/LoginForm/LoginForm";
import Logout from "./views/Logout/Logout";
import Todo from "./views/Todo/Todo";
import TodoList from "./views/TodoList/TodoList";
import "./App.scss";

function App() {
  const isLoggedIn = useSelector((state) => state.auth.isAuthenticated);

  return (
    <>
      <Header />
      <Main>
        <Routes>
          <Route
            path="/account"
            element={
              isLoggedIn ? <Account /> : <Navigate replace to="/login" />
            }
          />
          <Route path="/login" element={<LoginForm />} />
          <Route path="/logout" element={<Logout />} />
          <Route
            path="/todo/:string"
            element={isLoggedIn ? <Todo /> : <Navigate replace to="/login" />}
          />
          <Route
            exact
            strict
            path="/"
            element={
              isLoggedIn ? <TodoList /> : <Navigate replace to="/login" />
            }
          />
        </Routes>
      </Main>
      <Footer />
    </>
  );
}

export default App;