source: frontend/src/App.js@ 899b19d

Last change on this file since 899b19d was 899b19d, checked in by Danilo <danilo.najkov@…>, 2 years ago

reviews full feature

  • Property mode set to 100644
File size: 2.1 KB
Line 
1import './App.css';
2import {Route, BrowserRouter as Router, Navigate, Routes, useNavigate} from "react-router-dom";
3import axios from 'axios'
4import env from './env'
5
6import {Spin} from "antd";
7import React, {useEffect, useState} from "react";
8import {Login, Register} from "./auth";
9import Dashboard from "./Dashboard";
10import Reservations from "./Dashboard/Reservations";
11import FrontPage from "./FrontPage";
12import Restaurant from "./Dashboard/Restaurant";
13import Menu from "./Dashboard/Menu";
14import Review from "./Dashboard/Review";
15
16
17function App() {
18 const [user, setUser] = useState(undefined)
19 const [loading, setLoading] = useState(false)
20 useEffect(()=>{
21 getUser()
22 },[])
23
24 const getUser = () => {
25 setLoading(true)
26 axios.get(env.api+'Users/authed',{headers:{Authorization:sessionStorage.getItem('Auth')}}).then(res=>{
27 console.log(!res.data)
28 setUser(res.data)
29 setLoading(false)
30 })
31 }
32 const logout = () => {
33 setUser(undefined);
34 sessionStorage.removeItem('Auth');
35 window.location.replace('/')
36 }
37 return (
38 <div style={{textAlign:'center'}}>
39 <Router>
40 <Routes>
41 <Route path="/dashboard" element={loading ? <Spin /> : user ? (user.isAdmin ? <Dashboard setUser={setUser}/> : <Navigate to="/" replace={true} />) : <Navigate to="/login" replace={true} />}>
42 <Route path="/dashboard" element={<Restaurant/>}/>
43 <Route path="/dashboard/menu" element={<Menu/>}/>
44 <Route path="/dashboard/reservations" element={<Reservations/>}/>
45 <Route path="/dashboard/reviews" element={<Review/>}/>
46 <Route path="/dashboard/todo" element={'todo'}/>
47 </Route>
48 <Route path="/login" element={loading ? <Spin /> : !user ? <Login setUser={setUser}/> : <Navigate to="/dashboard" replace={true} />}/>
49 <Route path="/register" element={loading ? <Spin /> : !user ? <Register setUser={setUser}/> : <Navigate to="/dashboard" replace={true} />}/>
50 <Route path="/" element={<FrontPage user={user} logout={logout}/>}/>
51 </Routes>
52 </Router>
53 </div>
54 );
55}
56
57export default App;
Note: See TracBrowser for help on using the repository browser.