import React, { useCallback, useMemo, useState } from 'react'; import { Field, TextInput, TextAreaInput, PasswordInput, MultiSelectFiltered, Box, ToggleSwitch, Icon, Divider, FieldGroup } from '@rocket.chat/fuselage'; import { useTranslation } from '../../../contexts/TranslationContext'; import { isEmail } from '../../../../app/utils/lib/isEmail.js'; import VerticalBar from '../../../components/VerticalBar'; import CustomFieldsForm from '../../../components/CustomFieldsForm'; export default function UserForm({ formValues, formHandlers, availableRoles, append, prepend, ...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')} , [t, name, handleName])} {useMemo(() => {t('Username')} }/> , [t, username, handleUsername])} {useMemo(() => {t('Email')} 0 ? 'error' : undefined} onChange={handleEmail} addon={}/> {t('Verified')} , [t, email, handleEmail, verified, handleVerified])} {useMemo(() => {t('StatusMessage')} }/> , [t, statusText, handleStatusText])} {useMemo(() => {t('Bio')} }/> , [bio, handleBio, t])} {useMemo(() => {t('Nickname')} }/> , [nickname, handleNickname, t])} {useMemo(() => {t('Password')} }/> , [t, password, handlePassword])} {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 } ; }