2022-04-20 14:22:50 +02:00
|
|
|
import { useContext, useState } from 'react';
|
2022-01-27 16:03:03 +01:00
|
|
|
import UsersList from './UsersList/UsersList';
|
2022-02-04 10:36:08 +01:00
|
|
|
import AdminMenu from '../menu/AdminMenu';
|
2022-03-28 10:49:59 +02:00
|
|
|
import PageContent from 'component/common/PageContent/PageContent';
|
|
|
|
import AccessContext from 'contexts/AccessContext';
|
2022-05-02 12:52:33 +02:00
|
|
|
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
2022-03-28 10:49:59 +02:00
|
|
|
import { ADMIN } from 'component/providers/AccessProvider/permissions';
|
2022-04-20 14:22:50 +02:00
|
|
|
import { TableActions } from 'component/common/Table/TableActions/TableActions';
|
2022-05-02 12:52:33 +02:00
|
|
|
import { HeaderTitle } from 'component/common/HeaderTitle/HeaderTitle';
|
2021-05-18 12:59:48 +02:00
|
|
|
import { Button } from '@material-ui/core';
|
2022-02-04 10:36:08 +01:00
|
|
|
import { useStyles } from './UserAdmin.styles';
|
2022-01-27 16:03:03 +01:00
|
|
|
import { useHistory } from 'react-router-dom';
|
2022-04-26 10:24:26 +02:00
|
|
|
import { AdminAlert } from 'component/common/AdminAlert/AdminAlert';
|
2021-02-24 11:03:18 +01:00
|
|
|
|
2022-01-27 16:03:03 +01:00
|
|
|
const UsersAdmin = () => {
|
2022-04-20 14:22:50 +02:00
|
|
|
const [search, setSearch] = useState('');
|
2021-04-21 09:35:13 +02:00
|
|
|
const { hasAccess } = useContext(AccessContext);
|
2022-01-27 16:03:03 +01:00
|
|
|
const history = useHistory();
|
2021-08-27 19:24:45 +02:00
|
|
|
const styles = useStyles();
|
2021-05-18 12:59:48 +02:00
|
|
|
|
2021-04-21 09:35:13 +02:00
|
|
|
return (
|
|
|
|
<div>
|
2022-02-14 15:36:08 +01:00
|
|
|
<AdminMenu />
|
2021-05-18 12:59:48 +02:00
|
|
|
<PageContent
|
2021-08-27 19:24:45 +02:00
|
|
|
bodyClass={styles.userListBody}
|
2021-05-18 12:59:48 +02:00
|
|
|
headerContent={
|
|
|
|
<HeaderTitle
|
|
|
|
title="Users"
|
|
|
|
actions={
|
|
|
|
<ConditionallyRender
|
|
|
|
condition={hasAccess(ADMIN)}
|
|
|
|
show={
|
2022-04-20 14:22:50 +02:00
|
|
|
<div className={styles.tableActions}>
|
|
|
|
<TableActions
|
|
|
|
search={search}
|
|
|
|
onSearch={search =>
|
|
|
|
setSearch(search)
|
|
|
|
}
|
|
|
|
/>
|
|
|
|
<Button
|
|
|
|
variant="contained"
|
|
|
|
color="primary"
|
|
|
|
onClick={() =>
|
|
|
|
history.push(
|
|
|
|
'/admin/create-user'
|
|
|
|
)
|
|
|
|
}
|
|
|
|
>
|
|
|
|
New user
|
|
|
|
</Button>
|
|
|
|
</div>
|
2021-05-18 12:59:48 +02:00
|
|
|
}
|
|
|
|
elseShow={
|
|
|
|
<small>
|
|
|
|
PS! Only admins can add/remove users.
|
|
|
|
</small>
|
|
|
|
}
|
|
|
|
/>
|
|
|
|
}
|
|
|
|
/>
|
|
|
|
}
|
|
|
|
>
|
2021-05-04 09:59:42 +02:00
|
|
|
<ConditionallyRender
|
|
|
|
condition={hasAccess(ADMIN)}
|
2022-04-20 14:22:50 +02:00
|
|
|
show={<UsersList search={search} />}
|
2022-04-26 10:24:26 +02:00
|
|
|
elseShow={<AdminAlert />}
|
2021-05-04 09:59:42 +02:00
|
|
|
/>
|
2021-04-21 09:35:13 +02:00
|
|
|
</PageContent>
|
|
|
|
</div>
|
|
|
|
);
|
2021-05-04 09:59:42 +02:00
|
|
|
};
|
2021-02-24 11:03:18 +01:00
|
|
|
|
2021-04-21 09:35:13 +02:00
|
|
|
export default UsersAdmin;
|