Projekt

Obecné

Profil

Stáhnout (2.93 KB) Statistiky
| Větev: | Tag: | Revize:
1 c46ffe2f plundrichov
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 7495b9eb plundrichov
import * as api_fetch from './api'
14 c46ffe2f plundrichov
15
function App() {
16
17 7495b9eb plundrichov
  useEffect(() => {
18 faed7f5e plundrichov
    if (window.location.pathname === '/login') return;
19
20 7495b9eb plundrichov
    api_fetch.getCurrentProfile().then(currentProfile => {
21 ebfe6347 plundrichov
      setUserName(currentProfile);
22 9f045397 plundrichov
    }).catch(reason => {
23 ebfe6347 plundrichov
        alert(reason)
24 7495b9eb plundrichov
    });
25 c46ffe2f plundrichov
  }, []);
26
27
  const [userName, setUserName] = useState([
28 ebfe6347 plundrichov
    { name: 'Golstoj Hyhrenciv' }
29
  ]);
30
31
32 c46ffe2f plundrichov
33
  return (
34
    <BrowserRouter>
35
      <div className="App">
36
        <Nav userName={userName} />
37
        <div className="container">
38
        <Switch>
39 ebfe6347 plundrichov
          <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 c46ffe2f plundrichov
          <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 1a58c244 plundrichov
  const [user, setUser] = useState([]);
61 c46ffe2f plundrichov
62 1a58c244 plundrichov
  const [acceptedRequest, setAcceptedRequest] = useState([]);
63 c46ffe2f plundrichov
64
  useEffect(() => {
65 1a58c244 plundrichov
    const datauser = getDatauser();
66
    setUser(datauser);
67 c46ffe2f plundrichov
  }, []);
68
69 ebfe6347 plundrichov
  // 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 1a58c244 plundrichov
  function getDatauser() {
81 c46ffe2f plundrichov
    return ([]);
82
  }
83 9f045397 plundrichov
  
84 c46ffe2f plundrichov
  return (
85 ebfe6347 plundrichov
    <div className="container">
86
      <div className="main-content">
87
        {props.userName.role === 'EMPLOYER'
88
        ? 
89 1a58c244 plundrichov
          <UpcomingRequests user={user} setUser={setUser} acceptedRequest={acceptedRequest} setAcceptedRequest={setAcceptedRequest} setEmployees={setEmployees}/>
90 ebfe6347 plundrichov
        : 
91 1a58c244 plundrichov
          <YourRequests user={user} setUser={setUser} acceptedRequest={acceptedRequest} setAcceptedRequest={setAcceptedRequest} userName={props.userName}/>
92 ebfe6347 plundrichov
        }
93 1a58c244 plundrichov
        <Calendar setUser={setUser} user={user} acceptedRequest={acceptedRequest} setAcceptedRequest={setAcceptedRequest} userName={props.userName} setEmployees={setEmployees} setUserName={props.setUserName}/> 
94 ebfe6347 plundrichov
      </div>
95
      {props.userName.role === 'EMPLOYER'
96
      ?
97
        <OverviewAdmin employees={employees} setEmployees={setEmployees} />
98
      :
99
        <Overview userName={props.userName} employees={employees}  />
100
      }
101 c46ffe2f plundrichov
    </div>
102
  )
103
};
104
105
export default App;