import { Box, Input } from '@rocket.chat/fuselage'; import { useStableCallback } from '@rocket.chat/fuselage-hooks'; import { GenericModal } from '@rocket.chat/ui-client'; import { useToastMessageDispatch, useEndpoint } from '@rocket.chat/ui-contexts'; import type { ChangeEvent, FormEvent } from 'react'; import { useState } from 'react'; import { useTranslation } from 'react-i18next'; export type RemoveDepartmentModalProps = { _id: string; name: string; reset: () => void; onClose: () => void; }; const RemoveDepartmentModal = ({ _id = '', name, reset, onClose }: RemoveDepartmentModalProps) => { const { t } = useTranslation(); const [text, setText] = useState(''); const removeDepartment = useEndpoint('DELETE', '/v1/livechat/department/:_id', { _id }); const dispatchToast = useToastMessageDispatch(); const onSubmit = useStableCallback(async (e: FormEvent) => { e.preventDefault(); try { await removeDepartment(); dispatchToast({ type: 'success', message: t('Department_removed') }); reset(); onClose(); } catch (error) { dispatchToast({ type: 'error', message: error }); } }); return ( } onCancel={onClose} confirmText={t('Delete')} title={t('Delete_Department?')} onClose={onClose} variant='danger' confirmDisabled={text !== name} > {t('Are_you_sure_delete_department')} ) => setText(event.currentTarget.value)} /> ); }; export default RemoveDepartmentModal;