import { Box, Modal, ButtonGroup, Button } from '@rocket.chat/fuselage'; import { useMutableCallback } from '@rocket.chat/fuselage-hooks'; import React, { ReactElement, useState, memo } from 'react'; import { IUser } from '../../../definition/IUser'; import UserAutoCompleteMultiple from '../../components/UserAutoCompleteMultiple'; import { useTranslation } from '../../contexts/TranslationContext'; import { useEndpointActionExperimental } from '../../hooks/useEndpointActionExperimental'; import { goToRoomById } from '../../lib/utils/goToRoomById'; type CreateDirectMessageProps = { onClose: () => void; }; const CreateDirectMessage = ({ onClose }: CreateDirectMessageProps): ReactElement => { const t = useTranslation(); const [users, setUsers] = useState>([]); const createDirect = useEndpointActionExperimental('POST', 'dm.create'); const onChangeUsers = useMutableCallback((value: IUser['username'][]) => { setUsers(value); }); const onCreate = useMutableCallback(async () => { try { const { room: { rid }, } = await createDirect({ usernames: users.join(',') }); goToRoomById(rid); onClose(); } catch (error) { console.warn(error); } }); return ( {t('Direct_Messages')} {t('Direct_message_creation_description')} ); }; export default memo(CreateDirectMessage);