Projekt

Obecné

Profil

Stáhnout (2.93 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') return;
19

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

    
27
  const [userName, setUserName] = useState([
28
    { name: 'Golstoj Hyhrenciv' }
29
  ]);
30

    
31

    
32

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

    
59
const Home = (props) => {
60
  const [user, setUser] = useState([]);
61

    
62
  const [acceptedRequest, setAcceptedRequest] = useState([]);
63

    
64
  useEffect(() => {
65
    const datauser = getDatauser();
66
    setUser(datauser);
67
  }, []);
68

    
69
  // OverviewAdmin state 
70
  const [employees, setEmployees] = useState([
71
    {
72
       name: 'Sadam',
73
       id: 0,
74
       sickday: 10,
75
       holiday: 10,
76
       takenSickday: 2
77
    }
78
 ]);
79

    
80
  function getDatauser() {
81
    return ([]);
82
  }
83
  
84
  return (
85
    <div className="container">
86
      <div className="main-content">
87
        {props.userName.role === 'EMPLOYER'
88
        ? 
89
          <UpcomingRequests user={user} setUser={setUser} acceptedRequest={acceptedRequest} setAcceptedRequest={setAcceptedRequest} setEmployees={setEmployees}/>
90
        : 
91
          <YourRequests user={user} setUser={setUser} acceptedRequest={acceptedRequest} setAcceptedRequest={setAcceptedRequest} userName={props.userName}/>
92
        }
93
        <Calendar setUser={setUser} user={user} acceptedRequest={acceptedRequest} setAcceptedRequest={setAcceptedRequest} userName={props.userName} setEmployees={setEmployees} setUserName={props.setUserName}/> 
94
      </div>
95
      {props.userName.role === 'EMPLOYER'
96
      ?
97
        <OverviewAdmin employees={employees} setEmployees={setEmployees} />
98
      :
99
        <Overview userName={props.userName} employees={employees}  />
100
      }
101
    </div>
102
  )
103
};
104

    
105
export default App;
106

    
(2-2/17)