Projekt

Obecné

Profil

Stáhnout (2.83 KB) Statistiky
| Větev: | Tag: | Revize:
1
import React, { useEffect, useState } from 'react';
2
import './App.css';
3
import Nav from './Nav';
4
import Overview from './Overview';
5
import OverviewAdmin from './OverviewAdmin';
6
import Calendar from './Calendar';
7
import UpcomingRequests from './UpcomingRequests';
8
import YourRequests from './YourRequests';
9
import Setting from './Setting';
10
import LogOut from './LogOut';
11
import Login from './Login';
12
import { BrowserRouter, Route, Switch } from "react-router-dom";
13
import * as api_fetch from './api'
14

    
15
function App() {
16

    
17
  useEffect(() => {
18
    if (window.location.pathname === '/login' || window.location.pathname === '/logout') return;
19

    
20
    api_fetch.getCurrentProfile().then(currentProfile => {
21
      setCurrentUser(currentProfile);
22
    }).catch(reason => {
23
        alert(reason)
24
    });
25
  }, []);
26

    
27
  const [currentUser, setCurrentUser] = useState();
28

    
29

    
30
  return (
31
    <BrowserRouter>
32
      <div className="App">
33
        <Nav currentUser={currentUser} />
34
        <div className="container">
35
        <Switch>
36
          <Route path="/" exact component={() => <Home currentUser={currentUser} setCurrentUser={setCurrentUser}/>}/>
37
          <Route path="/setting">
38
            {currentUser !== undefined && currentUser.role === 'EMPLOYER'
39
            ?
40
              <Setting/> 
41
            :
42
              <div className="permissionText column">
43
                <p>You don't have permission to access on this server.</p>
44
              </div>
45
            }
46
          </Route> 
47
          <Route path="/logout"><LogOut/></Route>
48
          <Route path="/login"><Login/></Route>
49
        </Switch>  
50
        </div>
51
      </div>
52
    </BrowserRouter>
53
  );
54
}
55

    
56
const Home = (props) => {
57
  const [user, setUser] = useState([]);
58

    
59
  const [acceptedRequest, setAcceptedRequest] = useState([]);
60

    
61
  // OverviewAdmin state 
62
  const [employees, setEmployees] = useState([]);
63

    
64
  return (
65
    <div className="container">
66
      <div className="main-content">
67
        {props.currentUser !== undefined && props.currentUser.role === 'EMPLOYER'
68
        ? 
69
          <UpcomingRequests user={user} setUser={setUser} acceptedRequest={acceptedRequest} setAcceptedRequest={setAcceptedRequest} setEmployees={setEmployees}/>
70
        : 
71
          <YourRequests user={user} setUser={setUser} acceptedRequest={acceptedRequest} setAcceptedRequest={setAcceptedRequest} currentUser={props.currentUser}/>
72
        }
73
        <Calendar setUser={setUser} user={user} acceptedRequest={acceptedRequest} setAcceptedRequest={setAcceptedRequest} currentUser={props.currentUser} setEmployees={setEmployees} setCurrentUser={props.setCurrentUser}/> 
74
      </div>
75
      {props.currentUser !== undefined && props.currentUser.role === 'EMPLOYER'
76
      ?
77
        <OverviewAdmin employees={employees} setEmployees={setEmployees} />
78
      :
79
        <Overview currentUser={props.currentUser} employees={employees}  />
80
      }
81
    </div>
82
  )
83
};
84

    
85
export default App;
86

    
(2-2/18)