-
Notifications
You must be signed in to change notification settings - Fork 0
/
AdminPortal.js
51 lines (47 loc) · 1.56 KB
/
AdminPortal.js
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
import React, { useEffect } from "react";
import { connect } from "react-redux";
import { USER_PERMISSIONS } from "../../../sharedUtilities/constants";
import NavBar from "../shared/components/NavBar/NavBar";
import { policeDataManagerMenuOptions } from "../shared/components/NavBar/policeDataManagerMenuOptions";
import MassUpload from "./massUpload/MassUpload";
import Signatures from "./signatures/Signatures";
import LetterTypes from "./letterTypes/LetterTypes";
import getSigners from "./thunks/getSigners";
import getCaseStatuses from "../cases/thunks/getCaseStatuses";
import getComplaintTypes from "./thunks/getComplaintTypes";
const AdminPortal = ({
permissions,
getCaseStatuses,
getSigners,
thisIsATest,
getComplaintTypes
}) => {
useEffect(() => {
getSigners();
getCaseStatuses();
getComplaintTypes();
}, []);
const checkPermissions = (...children) => {
if (permissions.includes(USER_PERMISSIONS.ADMIN_ACCESS)) {
return <article>{children}</article>;
} else {
return <div>Loading...</div>;
}
};
return (
<main className="admin-portal">
<NavBar menuType={policeDataManagerMenuOptions}>Admin Portal</NavBar>
{checkPermissions(<MassUpload key="massUpload" />)}
{checkPermissions(
<Signatures key="signatures" thisIsATest={thisIsATest} />
)}
{checkPermissions(<LetterTypes key="letterTypes" />)}
</main>
);
};
export default connect(
state => ({
permissions: state?.users?.current?.userInfo?.permissions
}),
{ getSigners, getCaseStatuses, getComplaintTypes }
)(AdminPortal);