1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-09 00:18:00 +01:00
unleash.unleash/frontend/src/page/admin/users/index.js

84 lines
2.9 KiB
JavaScript
Raw Normal View History

import { useContext, useState } from 'react';
import PropTypes from 'prop-types';
import UsersList from './UsersList';
import AdminMenu from '../admin-menu';
import PageContent from '../../../component/common/PageContent/PageContent';
import AccessContext from '../../../contexts/AccessContext';
import ConditionallyRender from '../../../component/common/ConditionallyRender';
import { ADMIN } from '../../../component/AccessProvider/permissions';
import { Alert } from '@material-ui/lab';
import HeaderTitle from '../../../component/common/HeaderTitle';
import { Button } from '@material-ui/core';
import { useStyles } from './index.styles';
const UsersAdmin = ({ history }) => {
const { hasAccess } = useContext(AccessContext);
const [showDialog, setDialog] = useState(false);
const styles = useStyles();
const openDialog = e => {
e.preventDefault();
setDialog(true);
};
const closeDialog = () => {
setDialog(false);
};
return (
<div>
<AdminMenu history={history} />
<PageContent
bodyClass={styles.userListBody}
headerContent={
<HeaderTitle
title="Users"
actions={
<ConditionallyRender
condition={hasAccess(ADMIN)}
show={
<Button
variant="contained"
color="primary"
onClick={openDialog}
>
Add new user
</Button>
}
elseShow={
<small>
PS! Only admins can add/remove users.
</small>
}
/>
}
/>
}
>
<ConditionallyRender
condition={hasAccess(ADMIN)}
show={
<UsersList
openDialog={openDialog}
closeDialog={closeDialog}
showDialog={showDialog}
/>
}
elseShow={
<Alert severity="error">
You need instance admin to access this section.
</Alert>
}
/>
</PageContent>
</div>
);
};
UsersAdmin.propTypes = {
match: PropTypes.object.isRequired,
history: PropTypes.object.isRequired,
};
export default UsersAdmin;