mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	refactor: update usersList
This commit is contained in:
		
							parent
							
								
									eb9eca38e6
								
							
						
					
					
						commit
						437d0d8105
					
				@ -1,6 +1,5 @@
 | 
				
			|||||||
/* eslint-disable no-alert */
 | 
					/* eslint-disable no-alert */
 | 
				
			||||||
import { useContext, useState } from 'react';
 | 
					import React, { useContext, useState } from 'react';
 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
    Table,
 | 
					    Table,
 | 
				
			||||||
    TableBody,
 | 
					    TableBody,
 | 
				
			||||||
@ -21,8 +20,11 @@ import loadingData from './loadingData';
 | 
				
			|||||||
import useLoading from '../../../../hooks/useLoading';
 | 
					import useLoading from '../../../../hooks/useLoading';
 | 
				
			||||||
import usePagination from '../../../../hooks/usePagination';
 | 
					import usePagination from '../../../../hooks/usePagination';
 | 
				
			||||||
import PaginateUI from '../../../common/PaginateUI/PaginateUI';
 | 
					import PaginateUI from '../../../common/PaginateUI/PaginateUI';
 | 
				
			||||||
 | 
					import { useHistory } from 'react-router-dom';
 | 
				
			||||||
 | 
					import { IUser } from '../../../../interfaces/user';
 | 
				
			||||||
 | 
					import IRole from '../../../../interfaces/role';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function UsersList({ location, closeDialog, showDialog }) {
 | 
					const UsersList = () => {
 | 
				
			||||||
    const { users, roles, refetch, loading } = useUsers();
 | 
					    const { users, roles, refetch, loading } = useUsers();
 | 
				
			||||||
    const {
 | 
					    const {
 | 
				
			||||||
        removeUser,
 | 
					        removeUser,
 | 
				
			||||||
@ -31,13 +33,17 @@ function UsersList({ location, closeDialog, showDialog }) {
 | 
				
			|||||||
        userLoading,
 | 
					        userLoading,
 | 
				
			||||||
        userApiErrors,
 | 
					        userApiErrors,
 | 
				
			||||||
    } = useAdminUsersApi();
 | 
					    } = useAdminUsersApi();
 | 
				
			||||||
 | 
					    const history = useHistory();
 | 
				
			||||||
 | 
					    const { location } = history;
 | 
				
			||||||
    const { hasAccess } = useContext(AccessContext);
 | 
					    const { hasAccess } = useContext(AccessContext);
 | 
				
			||||||
    const [pwDialog, setPwDialog] = useState({ open: false });
 | 
					    const [pwDialog, setPwDialog] = useState<{ open: boolean; user?: IUser }>({
 | 
				
			||||||
 | 
					        open: false,
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
    const [delDialog, setDelDialog] = useState(false);
 | 
					    const [delDialog, setDelDialog] = useState(false);
 | 
				
			||||||
    const [showConfirm, setShowConfirm] = useState(false);
 | 
					    const [showConfirm, setShowConfirm] = useState(false);
 | 
				
			||||||
    const [emailSent, setEmailSent] = useState(false);
 | 
					    const [emailSent, setEmailSent] = useState(false);
 | 
				
			||||||
    const [inviteLink, setInviteLink] = useState('');
 | 
					    const [inviteLink, setInviteLink] = useState('');
 | 
				
			||||||
    const [delUser, setDelUser] = useState();
 | 
					    const [delUser, setDelUser] = useState<IUser>();
 | 
				
			||||||
    const ref = useLoading(loading);
 | 
					    const ref = useLoading(loading);
 | 
				
			||||||
    const { page, pages, nextPage, prevPage, setPageIndex, pageIndex } =
 | 
					    const { page, pages, nextPage, prevPage, setPageIndex, pageIndex } =
 | 
				
			||||||
        usePagination(users, 50);
 | 
					        usePagination(users, 50);
 | 
				
			||||||
@ -47,12 +53,12 @@ function UsersList({ location, closeDialog, showDialog }) {
 | 
				
			|||||||
        setDelUser(undefined);
 | 
					        setDelUser(undefined);
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const openDelDialog = user => e => {
 | 
					    const openDelDialog = (user: IUser) => (e: React.SyntheticEvent<Element, Event>) => {
 | 
				
			||||||
        e.preventDefault();
 | 
					        e.preventDefault();
 | 
				
			||||||
        setDelDialog(true);
 | 
					        setDelDialog(true);
 | 
				
			||||||
        setDelUser(user);
 | 
					        setDelUser(user);
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    const openPwDialog = user => e => {
 | 
					    const openPwDialog = (user: IUser) => (e: React.SyntheticEvent<Element, Event>) => {
 | 
				
			||||||
        e.preventDefault();
 | 
					        e.preventDefault();
 | 
				
			||||||
        setPwDialog({ open: true, user });
 | 
					        setPwDialog({ open: true, user });
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
@ -79,8 +85,8 @@ function UsersList({ location, closeDialog, showDialog }) {
 | 
				
			|||||||
        setInviteLink('');
 | 
					        setInviteLink('');
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const renderRole = roleId => {
 | 
					    const renderRole = (roleId: number) => {
 | 
				
			||||||
        const role = roles.find(r => r.id === roleId);
 | 
					        const role = roles.find((r: IRole) => r.id === roleId);
 | 
				
			||||||
        return role ? role.name : '';
 | 
					        return role ? role.name : '';
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -156,7 +162,7 @@ function UsersList({ location, closeDialog, showDialog }) {
 | 
				
			|||||||
            />
 | 
					            />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <ConditionallyRender
 | 
					            <ConditionallyRender
 | 
				
			||||||
                condition={delUser}
 | 
					                condition={Boolean(delUser)}
 | 
				
			||||||
                show={
 | 
					                show={
 | 
				
			||||||
                    <DelUser
 | 
					                    <DelUser
 | 
				
			||||||
                        showDialog={delDialog}
 | 
					                        showDialog={delDialog}
 | 
				
			||||||
@ -170,10 +176,6 @@ function UsersList({ location, closeDialog, showDialog }) {
 | 
				
			|||||||
            />
 | 
					            />
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
UsersList.propTypes = {
 | 
					 | 
				
			||||||
    location: PropTypes.object.isRequired,
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default UsersList;
 | 
					export default UsersList;
 | 
				
			||||||
@ -1,6 +1,5 @@
 | 
				
			|||||||
import { useContext, useState } from 'react';
 | 
					import { useContext } from 'react';
 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import UsersList from './UsersList/UsersList';
 | 
				
			||||||
import UsersList from './UsersList';
 | 
					 | 
				
			||||||
import AdminMenu from '../admin-menu';
 | 
					import AdminMenu from '../admin-menu';
 | 
				
			||||||
import PageContent from '../../../component/common/PageContent/PageContent';
 | 
					import PageContent from '../../../component/common/PageContent/PageContent';
 | 
				
			||||||
import AccessContext from '../../../contexts/AccessContext';
 | 
					import AccessContext from '../../../contexts/AccessContext';
 | 
				
			||||||
@ -10,21 +9,13 @@ import { Alert } from '@material-ui/lab';
 | 
				
			|||||||
import HeaderTitle from '../../../component/common/HeaderTitle';
 | 
					import HeaderTitle from '../../../component/common/HeaderTitle';
 | 
				
			||||||
import { Button } from '@material-ui/core';
 | 
					import { Button } from '@material-ui/core';
 | 
				
			||||||
import { useStyles } from './index.styles';
 | 
					import { useStyles } from './index.styles';
 | 
				
			||||||
 | 
					import { useHistory } from 'react-router-dom';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const UsersAdmin = ({ history }) => {
 | 
					const UsersAdmin = () => {
 | 
				
			||||||
    const { hasAccess } = useContext(AccessContext);
 | 
					    const { hasAccess } = useContext(AccessContext);
 | 
				
			||||||
    const [showDialog, setDialog] = useState(false);
 | 
					    const history = useHistory();
 | 
				
			||||||
    const styles = useStyles();
 | 
					    const styles = useStyles();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const openDialog = e => {
 | 
					 | 
				
			||||||
        e.preventDefault();
 | 
					 | 
				
			||||||
        setDialog(true);
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const closeDialog = () => {
 | 
					 | 
				
			||||||
        setDialog(false);
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (
 | 
					    return (
 | 
				
			||||||
        <div>
 | 
					        <div>
 | 
				
			||||||
            <AdminMenu history={history} />
 | 
					            <AdminMenu history={history} />
 | 
				
			||||||
@ -59,13 +50,7 @@ const UsersAdmin = ({ history }) => {
 | 
				
			|||||||
            >
 | 
					            >
 | 
				
			||||||
                <ConditionallyRender
 | 
					                <ConditionallyRender
 | 
				
			||||||
                    condition={hasAccess(ADMIN)}
 | 
					                    condition={hasAccess(ADMIN)}
 | 
				
			||||||
                    show={
 | 
					                    show={<UsersList />}
 | 
				
			||||||
                        <UsersList
 | 
					 | 
				
			||||||
                            openDialog={openDialog}
 | 
					 | 
				
			||||||
                            closeDialog={closeDialog}
 | 
					 | 
				
			||||||
                            showDialog={showDialog}
 | 
					 | 
				
			||||||
                        />
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                    elseShow={
 | 
					                    elseShow={
 | 
				
			||||||
                        <Alert severity="error">
 | 
					                        <Alert severity="error">
 | 
				
			||||||
                            You need instance admin to access this section.
 | 
					                            You need instance admin to access this section.
 | 
				
			||||||
@ -77,9 +62,4 @@ const UsersAdmin = ({ history }) => {
 | 
				
			|||||||
    );
 | 
					    );
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
UsersAdmin.propTypes = {
 | 
					 | 
				
			||||||
    match: PropTypes.object.isRequired,
 | 
					 | 
				
			||||||
    history: PropTypes.object.isRequired,
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default UsersAdmin;
 | 
					export default UsersAdmin;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user