source: frontend/src/App.js@ 13f1472

Last change on this file since 13f1472 was 13f1472, checked in by Danilo <danilo.najkov@…>, 21 months ago

vip functionallity + menu fields + alergens filtering + google/fb login + email queueing

  • Property mode set to 100644
File size: 3.0 KB
RevLine 
[d76b7ee]1import './App.css';
[899b19d]2import {Route, BrowserRouter as Router, Navigate, Routes, useNavigate} from "react-router-dom";
[d76b7ee]3import axios from 'axios'
4import env from './env'
[13f1472]5import { gapi } from 'gapi-script';
[d76b7ee]6
7import {Spin} from "antd";
8import React, {useEffect, useState} from "react";
[a26f6a1]9import {Login, Register} from "./Auth/auth";
[d76b7ee]10import Dashboard from "./Dashboard";
11import Reservations from "./Dashboard/Reservations";
12import FrontPage from "./FrontPage";
[cc4db18]13import Restaurant from "./Dashboard/Restaurant";
14import Menu from "./Dashboard/Menu";
[899b19d]15import Review from "./Dashboard/Review";
[a26f6a1]16import Confirm from "./Auth/Confirm";
17import SendConfirm from "./Auth/SendConfirm";
18import SendReset from "./Auth/SendReset";
19import Reset from "./Auth/Reset";
[a569b7c]20import ToDo from "./Dashboard/ToDo";
[13f1472]21import Vip from "./Dashboard/Vip";
[d76b7ee]22
23
24function App() {
[899b19d]25 const [user, setUser] = useState(undefined)
[a26f6a1]26 const [loading, setLoading] = useState(true)
[d76b7ee]27 useEffect(()=>{
28 getUser()
29 },[])
30
[13f1472]31 gapi.load('client:auth2', () => {
32 gapi.client.init({
33 clientId: '748923557453-ljii8ulhti93man769d2dd9soi7038j5.apps.googleusercontent.com',
34 plugin_name: 'chat'
35 });
36 });
37
[d76b7ee]38 const getUser = () => {
39 setLoading(true)
[a26f6a1]40 axios.get(env.api+'Users/authed',{headers:{Authorization:localStorage.getItem('Auth')}}).then(res=>{
41 console.log(res.data)
[d76b7ee]42 setUser(res.data)
43 setLoading(false)
44 })
45 }
[899b19d]46 const logout = () => {
47 setUser(undefined);
[a26f6a1]48 localStorage.removeItem('Auth');
[899b19d]49 window.location.replace('/')
50 }
[d76b7ee]51 return (
52 <div style={{textAlign:'center'}}>
53 <Router>
54 <Routes>
[899b19d]55 <Route path="/dashboard" element={loading ? <Spin /> : user ? (user.isAdmin ? <Dashboard setUser={setUser}/> : <Navigate to="/" replace={true} />) : <Navigate to="/login" replace={true} />}>
[cc4db18]56 <Route path="/dashboard" element={<Restaurant/>}/>
57 <Route path="/dashboard/menu" element={<Menu/>}/>
[d76b7ee]58 <Route path="/dashboard/reservations" element={<Reservations/>}/>
[899b19d]59 <Route path="/dashboard/reviews" element={<Review/>}/>
[a569b7c]60 <Route path="/dashboard/todo" element={<ToDo/>}/>
[13f1472]61 <Route path="/dashboard/vip" element={<Vip/>}/>
[d76b7ee]62 </Route>
63 <Route path="/login" element={loading ? <Spin /> : !user ? <Login setUser={setUser}/> : <Navigate to="/dashboard" replace={true} />}/>
64 <Route path="/register" element={loading ? <Spin /> : !user ? <Register setUser={setUser}/> : <Navigate to="/dashboard" replace={true} />}/>
[a26f6a1]65 <Route path="/reset-password" element={loading ? <Spin /> : <SendReset/>}/>
66 <Route path="/reset" element={loading ? <Spin /> : <Reset/>}/>
67 <Route path="/confirm" element={loading ? <Spin /> : <Confirm setUser={setUser} user={user}/>}/>
68 <Route path="/confirm-email" element={loading ? <Spin /> : <SendConfirm setUser={setUser} user={user}/>}/>
[899b19d]69 <Route path="/" element={<FrontPage user={user} logout={logout}/>}/>
[d76b7ee]70 </Routes>
71 </Router>
72 </div>
73 );
74}
75
76export default App;
Note: See TracBrowser for help on using the repository browser.