diff options
| author | Armand Philippot <git@armandphilippot.com> | 2022-02-20 16:11:50 +0100 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2022-02-20 16:15:08 +0100 |
| commit | 73a5c7fae9ffbe9ada721148c8c454a643aceebe (patch) | |
| tree | c8fad013ed9b5dd589add87f8d45cf02bbfc6e91 /public/projects/react-small-apps/apps/todos/src/App.js | |
| parent | b01239fbdcc5bbc5921f73ec0e8fee7bedd5c8e8 (diff) | |
chore!: restructure repo
I separated public files from the config/dev files. It improves repo
readability.
I also moved dotenv helper to public/inc directory and extract the
Matomo tracker in the same directory.
Diffstat (limited to 'public/projects/react-small-apps/apps/todos/src/App.js')
| -rw-r--r-- | public/projects/react-small-apps/apps/todos/src/App.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/public/projects/react-small-apps/apps/todos/src/App.js b/public/projects/react-small-apps/apps/todos/src/App.js new file mode 100644 index 0000000..66e7896 --- /dev/null +++ b/public/projects/react-small-apps/apps/todos/src/App.js @@ -0,0 +1,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; |
