source: frontend/src/App.js@ d76b7ee

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

prototype final

  • Property mode set to 100644
File size: 1.8 KB
Line 
1import './App.css';
2import {Route, BrowserRouter as Router, Navigate, Routes} 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";
12
13
14function App() {
15 const [user, setUser] = useState(false)
16 const [loading, setLoading] = useState(false)
17 useEffect(()=>{
18 getUser()
19 },[])
20
21 const getUser = () => {
22 setLoading(true)
23 axios.get(env.api+'Users/authed',{headers:{Authorization:sessionStorage.getItem('Auth')}}).then(res=>{
24 console.log(!res.data)
25 setUser(res.data)
26 setLoading(false)
27 })
28 }
29 return (
30 <div style={{textAlign:'center'}}>
31 <Router>
32 <Routes>
33 <Route path="/dashboard" element={loading ? <Spin /> : user ?<Dashboard setUser={setUser}/> : <Navigate to="/login" replace={true} />}>
34 <Route path="/dashboard" element={'edit restaurant'}/>
35 <Route path="/dashboard/menu" element={'menu'}/>
36 <Route path="/dashboard/reservations" element={<Reservations/>}/>
37 <Route path="/dashboard/reviews" element={'reviews'}/>
38 <Route path="/dashboard/todo" element={'todo'}/>
39 </Route>
40 <Route path="/login" element={loading ? <Spin /> : !user ? <Login setUser={setUser}/> : <Navigate to="/dashboard" replace={true} />}/>
41 <Route path="/register" element={loading ? <Spin /> : !user ? <Register setUser={setUser}/> : <Navigate to="/dashboard" replace={true} />}/>
42 <Route path="/" element={<FrontPage/>}/>
43 </Routes>
44 </Router>
45 </div>
46 );
47}
48
49export default App;
Note: See TracBrowser for help on using the repository browser.