[d76b7ee] | 1 | import './App.css';
|
---|
[899b19d] | 2 | import {Route, BrowserRouter as Router, Navigate, Routes, useNavigate} from "react-router-dom";
|
---|
[d76b7ee] | 3 | import axios from 'axios'
|
---|
| 4 | import env from './env'
|
---|
[13f1472] | 5 | import { gapi } from 'gapi-script';
|
---|
[d76b7ee] | 6 |
|
---|
| 7 | import {Spin} from "antd";
|
---|
| 8 | import React, {useEffect, useState} from "react";
|
---|
[a26f6a1] | 9 | import {Login, Register} from "./Auth/auth";
|
---|
[d76b7ee] | 10 | import Dashboard from "./Dashboard";
|
---|
| 11 | import Reservations from "./Dashboard/Reservations";
|
---|
| 12 | import FrontPage from "./FrontPage";
|
---|
[cc4db18] | 13 | import Restaurant from "./Dashboard/Restaurant";
|
---|
| 14 | import Menu from "./Dashboard/Menu";
|
---|
[899b19d] | 15 | import Review from "./Dashboard/Review";
|
---|
[a26f6a1] | 16 | import Confirm from "./Auth/Confirm";
|
---|
| 17 | import SendConfirm from "./Auth/SendConfirm";
|
---|
| 18 | import SendReset from "./Auth/SendReset";
|
---|
| 19 | import Reset from "./Auth/Reset";
|
---|
[a569b7c] | 20 | import ToDo from "./Dashboard/ToDo";
|
---|
[13f1472] | 21 | import Vip from "./Dashboard/Vip";
|
---|
[d76b7ee] | 22 |
|
---|
| 23 |
|
---|
| 24 | function 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 |
|
---|
| 76 | export default App;
|
---|