-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.js
More file actions
111 lines (106 loc) · 3.36 KB
/
App.js
File metadata and controls
111 lines (106 loc) · 3.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
import { createContext, useState } from "react";
import { BrowserRouter, Switch, Route } from "react-router-dom";
import { Grid, makeStyles } from "@material-ui/core";
import Welcome, { ErrorPage } from "./component/Welcome";
import Navbar from "./component/Navbar";
import Login from "./component/Login";
import Logout from "./component/Logout";
import Signup from "./component/Signup";
import Home from "./component/Home";
import Applications from "./component/Applications";
import Profile from "./component/Profile";
import CreateJobs from "./component/recruiter/CreateJobs";
import MyJobs from "./component/recruiter/MyJobs";
import JobApplications from "./component/recruiter/JobApplications";
import AcceptedApplicants from "./component/recruiter/AcceptedApplicants";
import RecruiterProfile from "./component/recruiter/Profile";
import MessagePopup from "./lib/MessagePopup";
import isAuth, { userType } from "./lib/isAuth";
const useStyles = makeStyles((theme) => ({
body: {
display: "flex",
flexDirection: "column",
justifyContent: "center",
alignItems: "center",
minHeight: "98vh",
paddingTop: "64px",
boxSizing: "border-box",
width: "100%",
},
}));
export const SetPopupContext = createContext();
function App() {
const classes = useStyles();
const [popup, setPopup] = useState({
open: false,
severity: "",
message: "",
});
return (
<BrowserRouter>
<SetPopupContext.Provider value={setPopup}>
<Grid container direction="column">
<Grid item xs>
<Navbar />
</Grid>
<Grid item className={classes.body}>
<Switch>
<Route exact path="/">
<Welcome />
</Route>
<Route exact path="/login">
<Login />
</Route>
<Route exact path="/signup">
<Signup />
</Route>
<Route exact path="/logout">
<Logout />
</Route>
<Route exact path="/home">
<Home />
</Route>
<Route exact path="/applications">
<Applications />
</Route>
<Route exact path="/profile">
{userType() === "recruiter" ? (
<RecruiterProfile />
) : (
<Profile />
)}
</Route>
<Route exact path="/addjob">
<CreateJobs />
</Route>
<Route exact path="/myjobs">
<MyJobs />
</Route>
<Route exact path="/job/applications/:jobId">
<JobApplications />
</Route>
<Route exact path="/employees">
<AcceptedApplicants />
</Route>
<Route>
<ErrorPage />
</Route>
</Switch>
</Grid>
</Grid>
<MessagePopup
open={popup.open}
setOpen={(status) =>
setPopup({
...popup,
open: status,
})
}
severity={popup.severity}
message={popup.message}
/>
</SetPopupContext.Provider>
</BrowserRouter>
);
}
export default App;