import { useMutableCallback } from '@rocket.chat/fuselage-hooks'; import React from 'react'; import GenericModal from '../../../components/GenericModal'; import GenericTable from '../../../components/GenericTable'; import { useSetModal } from '../../../contexts/ModalContext'; import { useEndpoint } from '../../../contexts/ServerContext'; import { useToastMessageDispatch } from '../../../contexts/ToastMessagesContext'; import { useTranslation } from '../../../contexts/TranslationContext'; import UserRow from './UserRow'; function UsersInRoleTable({ data, reload, roleName, description, total, params, setParams, rid }) { const t = useTranslation(); const dispatchToastMessage = useToastMessageDispatch(); const setModal = useSetModal(); const closeModal = () => setModal(); const removeUser = useEndpoint('POST', 'roles.removeUserFromRole'); const onRemove = useMutableCallback((username) => { const remove = async () => { try { await removeUser({ roleName, username, rid }); dispatchToastMessage({ type: 'success', message: t('User_removed') }); } catch (error) { dispatchToastMessage({ type: 'error', message: error }); } closeModal(); reload(); }; setModal( {t('The_user_s_will_be_removed_from_role_s', username, description || roleName)} , ); }); return ( {t('Name')} {t('Email')} } results={data} params={params} setParams={setParams} total={total} > {(props) => } ); } export default UsersInRoleTable;