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-05-09 14:38:12 +02:00
|
|
|
import { PageContent } from 'component/common/PageContent/PageContent';
|
2022-03-28 10:49:59 +02:00
|
|
|
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-05-02 15:52:41 +02:00
|
|
|
import { Button } from '@mui/material';
|
2022-04-20 14:22:50 +02:00
|
|
|
import { TableActions } from 'component/common/Table/TableActions/TableActions';
|
2022-05-09 14:38:12 +02:00
|
|
|
import { PageHeader } from 'component/common/PageHeader/PageHeader';
|
2022-02-04 10:36:08 +01:00
|
|
|
import { useStyles } from './UserAdmin.styles';
|
2022-05-05 13:42:18 +02:00
|
|
|
import { useNavigate } 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-05-05 13:42:18 +02:00
|
|
|
const navigate = useNavigate();
|
2022-05-02 15:52:41 +02:00
|
|
|
const { classes: 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}
|
2022-05-09 14:38:12 +02:00
|
|
|
header={
|
|
|
|
<PageHeader
|
2021-05-18 12:59:48 +02:00
|
|
|
title="Users"
|
|
|
|
actions={
|
|
|
|
<ConditionallyRender
|
|
|
|
condition={hasAccess(ADMIN)}
|
|
|
|
show={
|
2022-04-20 14:22:50 +02:00
|
|
|
<div className={styles.tableActions}>
|
|
|
|
<TableActions
|
2022-05-05 15:34:46 +02:00
|
|
|
initialSearchValue={search}
|
2022-04-20 14:22:50 +02:00
|
|
|
onSearch={search =>
|
|
|
|
setSearch(search)
|
|
|
|
}
|
|
|
|
/>
|
|
|
|
<Button
|
2022-05-09 12:01:12 +02:00
|
|
|
sx={{
|
|
|
|
ml: 1.5,
|
|
|
|
}}
|
2022-04-20 14:22:50 +02:00
|
|
|
variant="contained"
|
|
|
|
color="primary"
|
|
|
|
onClick={() =>
|
2022-05-05 13:42:18 +02:00
|
|
|
navigate('/admin/create-user')
|
2022-04-20 14:22:50 +02:00
|
|
|
}
|
|
|
|
>
|
|
|
|
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;
|