import { Field, TextInput, TextAreaInput, PasswordInput, MultiSelectFiltered, Box, ToggleSwitch, Icon, Divider, FieldGroup, } from '@rocket.chat/fuselage'; import React, { useCallback, useMemo, useState } from 'react'; import { validateEmail } from '../../../../lib/emailValidator'; import CustomFieldsForm from '../../../components/CustomFieldsForm'; import VerticalBar from '../../../components/VerticalBar'; import { useTranslation } from '../../../contexts/TranslationContext'; export default function UserForm({ formValues, formHandlers, availableRoles, append, prepend, errors, ...props }) { const t = useTranslation(); const [hasCustomFields, setHasCustomFields] = useState(false); const { name, username, email, verified, statusText, bio, nickname, password, setRandomPassword, requirePasswordChange, roles, customFields, joinDefaultChannels, sendWelcomeEmail, } = formValues; const { handleName, handleUsername, handleEmail, handleVerified, handleStatusText, handleBio, handleNickname, handlePassword, handleSetRandomPassword, handleRequirePasswordChange, handleRoles, handleCustomFields, handleJoinDefaultChannels, handleSendWelcomeEmail, } = formHandlers; const onLoadCustomFields = useCallback((hasCustomFields) => setHasCustomFields(hasCustomFields), []); return ( e.preventDefault(), [])} {...props}> {prepend} {useMemo( () => ( {t('Name')} {errors && errors.name && {errors.name}} ), [t, name, handleName, errors], )} {useMemo( () => ( {t('Username')} } /> {errors && errors.username && {errors.username}} ), [t, username, handleUsername, errors], )} {useMemo( () => ( {t('Email')} 0 ? 'error' : undefined} onChange={handleEmail} addon={} /> {errors && errors.email && {errors.email}} {t('Verified')} ), [t, email, handleEmail, verified, handleVerified, errors], )} {useMemo( () => ( {t('StatusMessage')} } /> ), [t, statusText, handleStatusText], )} {useMemo( () => ( {t('Bio')} } /> ), [bio, handleBio, t], )} {useMemo( () => ( {t('Nickname')} } /> ), [nickname, handleNickname, t], )} {useMemo( () => ( {t('Password')} } /> {errors && errors.password && {errors.password}} ), [t, password, handlePassword, errors], )} {useMemo( () => ( {t('Require_password_change')} ), [t, setRandomPassword, requirePasswordChange, handleRequirePasswordChange], )} {useMemo( () => ( {t('Set_random_password_and_send_by_email')} ), [t, setRandomPassword, handleSetRandomPassword], )} {useMemo( () => ( {t('Roles')} ), [availableRoles, handleRoles, roles, t], )} {useMemo( () => handleJoinDefaultChannels && ( {t('Join_default_channels')} ), [handleJoinDefaultChannels, t, joinDefaultChannels], )} {useMemo( () => handleSendWelcomeEmail && ( {t('Send_welcome_email')} ), [handleSendWelcomeEmail, t, sendWelcomeEmail], )} {hasCustomFields && ( <> {t('Custom_Fields')} )} {append} ); }