Projekt

Obecné

Profil

Stáhnout (2.83 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 1865a0be Pavel Fidransky
import { BrowserRouter, Route, Switch } from 'react-router-dom';
13
import * as api from './api';
14 c46ffe2f plundrichov
15 1865a0be Pavel Fidransky
export default function App() {
16 c46ffe2f plundrichov
17 7495b9eb plundrichov
  useEffect(() => {
18 a12a4e99 plundrichov
    if (window.location.pathname === '/login' || window.location.pathname === '/logout') return;
19 faed7f5e plundrichov
20 1865a0be Pavel Fidransky
    api.getCurrentProfile().then(currentProfile => {
21 5bedee9e plundrichov
      setCurrentUser(currentProfile);
22 9f045397 plundrichov
    }).catch(reason => {
23 1865a0be Pavel Fidransky
      alert(reason);
24 7495b9eb plundrichov
    });
25 c46ffe2f plundrichov
  }, []);
26
27 5bedee9e plundrichov
  const [currentUser, setCurrentUser] = useState();
28 ebfe6347 plundrichov
29 c46ffe2f plundrichov
30
  return (
31
    <BrowserRouter>
32
      <div className="App">
33 5bedee9e plundrichov
        <Nav currentUser={currentUser} />
34 c46ffe2f plundrichov
        <div className="container">
35 1865a0be Pavel Fidransky
          <Switch>
36
            <Route path="/" exact component={() => <Home currentUser={currentUser} setCurrentUser={setCurrentUser}/>}/>
37
            <Route path="/setting">
38
              {currentUser !== undefined && currentUser.role === 'EMPLOYER' ? (
39
                <Setting/>
40
              ) : (
41
                <div className="permissionText column">
42
                  <p>You don&apos;t have permission to access on this server.</p>
43
                </div>
44
              )}
45
            </Route>
46
            <Route path="/logout"><LogOut/></Route>
47
            <Route path="/login"><Login/></Route>
48
          </Switch>
49 c46ffe2f plundrichov
        </div>
50
      </div>
51
    </BrowserRouter>
52
  );
53
}
54
55 1865a0be Pavel Fidransky
function Home(props) {
56
  const [user, setUser] = useState({});
57 1a58c244 plundrichov
  const [acceptedRequest, setAcceptedRequest] = useState([]);
58 c46ffe2f plundrichov
59 1865a0be Pavel Fidransky
  // OverviewAdmin state
60 5bedee9e plundrichov
  const [employees, setEmployees] = useState([]);
61 ebfe6347 plundrichov
62 c46ffe2f plundrichov
  return (
63 ebfe6347 plundrichov
    <div className="container">
64
      <div className="main-content">
65 1865a0be Pavel Fidransky
        {props.currentUser !== undefined && props.currentUser.role === 'EMPLOYER' ? (
66 1a58c244 plundrichov
          <UpcomingRequests user={user} setUser={setUser} acceptedRequest={acceptedRequest} setAcceptedRequest={setAcceptedRequest} setEmployees={setEmployees}/>
67 1865a0be Pavel Fidransky
        ) : (
68 5bedee9e plundrichov
          <YourRequests user={user} setUser={setUser} acceptedRequest={acceptedRequest} setAcceptedRequest={setAcceptedRequest} currentUser={props.currentUser}/>
69 1865a0be Pavel Fidransky
        )}
70
        <Calendar setUser={setUser} user={user} acceptedRequest={acceptedRequest} setAcceptedRequest={setAcceptedRequest} currentUser={props.currentUser} setEmployees={setEmployees} setCurrentUser={props.setCurrentUser}/>
71 ebfe6347 plundrichov
      </div>
72 1865a0be Pavel Fidransky
      {props.currentUser !== undefined && props.currentUser.role === 'EMPLOYER' ? (
73 ebfe6347 plundrichov
        <OverviewAdmin employees={employees} setEmployees={setEmployees} />
74 1865a0be Pavel Fidransky
      ) : (
75
        <Overview currentUser={props.currentUser} employees={employees} />
76
      )}
77 c46ffe2f plundrichov
    </div>
78 1865a0be Pavel Fidransky
  );
79
}