The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/client/views/omnichannel/managers/RemoveManagerButton.js

47 lines
1.6 KiB

import { Table, Icon, Button } from '@rocket.chat/fuselage';
import { useMutableCallback } from '@rocket.chat/fuselage-hooks';
import React from 'react';
import GenericModal from '../../../components/GenericModal';
import { useSetModal } from '../../../contexts/ModalContext';
import { useToastMessageDispatch } from '../../../contexts/ToastMessagesContext';
import { useTranslation } from '../../../contexts/TranslationContext';
import { useEndpointAction } from '../../../hooks/useEndpointAction';
function RemoveManagerButton({ _id, reload }) {
const t = useTranslation();
const deleteAction = useEndpointAction('DELETE', `livechat/users/manager/${_id}`);
const setModal = useSetModal();
const dispatchToastMessage = useToastMessageDispatch();
const handleRemoveClick = useMutableCallback(async () => {
const result = await deleteAction();
if (result.success === true) {
reload();
}
});
const handleDelete = useMutableCallback((e) => {
e.stopPropagation();
const onDeleteManager = async () => {
try {
await handleRemoveClick();
dispatchToastMessage({ type: 'success', message: t('Manager_removed') });
} catch (error) {
dispatchToastMessage({ type: 'error', message: error });
}
setModal();
};
setModal(<GenericModal variant='danger' onConfirm={onDeleteManager} onCancel={() => setModal()} confirmText={t('Delete')} />);
});
return (
<Table.Cell fontScale='p2' color='hint' withTruncatedText>
<Button small ghost title={t('Remove')} onClick={handleDelete}>
<Icon name='trash' size='x16' />
</Button>
</Table.Cell>
);
}
export default RemoveManagerButton;