import type { IUser } from '@rocket.chat/core-typings'; import { Box, Modal, Button } from '@rocket.chat/fuselage'; import { useMutableCallback } from '@rocket.chat/fuselage-hooks'; import { useTranslation } from '@rocket.chat/ui-contexts'; import type { ComponentProps, FC } from 'react'; import React, { useState, memo } from 'react'; import UserAutoCompleteMultipleFederated from '../../components/UserAutoCompleteMultiple/UserAutoCompleteMultipleFederated'; import { useEndpointAction } from '../../hooks/useEndpointAction'; import { goToRoomById } from '../../lib/utils/goToRoomById'; type Username = Exclude; type CreateDirectMessageProps = { onClose: () => void; }; const CreateDirectMessage: FC = ({ onClose }) => { const t = useTranslation(); const [users, setUsers] = useState>([]); const createDirect = useEndpointAction('POST', '/v1/dm.create'); const onCreate = useMutableCallback(async (e) => { e.preventDefault(); if (!users.length) return; 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);