import { Box, Button, ButtonGroup, States, StatesAction, StatesActions, StatesSubtitle, StatesTitle, TextAreaInput, } from '@rocket.chat/fuselage'; import { validateEmail } from '@rocket.chat/tools'; import { ContextualbarScrollableContent, ContextualbarFooter, ContextualbarContent } from '@rocket.chat/ui-client'; import { useTranslation, useRoute } from '@rocket.chat/ui-contexts'; import type { ChangeEvent } from 'react'; import { useCallback, useState } from 'react'; import { useSendInvitationEmailMutation } from './hooks/useSendInvitationEmailMutation'; import { useSmtpQuery } from './hooks/useSmtpQuery'; import { FormSkeleton } from '../../../components/Skeleton'; // TODO: Replace using RHF const AdminInviteUsers = () => { const t = useTranslation(); const [text, setText] = useState(''); const getEmails = useCallback((text: string) => text.split(/[\ ,;]+/i).filter((val: string) => validateEmail(val)), []); const adminRouter = useRoute('admin-settings'); const sendInvitationMutation = useSendInvitationEmailMutation(); const { data, isLoading } = useSmtpQuery(); const handleClick = () => { sendInvitationMutation.mutate({ emails: getEmails(text) }); }; if (isLoading) { return ( ); } if (!data?.isSMTPConfigured) { return ( {t('SMTP_Server_Not_Setup_Title')} {t('SMTP_Server_Not_Setup_Description')} adminRouter.push({ group: 'Email' })}> {t('Setup_SMTP')} ); } return ( <> {t('Send_invitation_email')} {t('Send_invitation_email_info')} ): void => setText(e.currentTarget.value)} /> ); }; export default AdminInviteUsers;