diff --git a/products/ASC.People/Client/src/components/pages/ProfileAction/Section/Body/FormFields/EmailField.js b/products/ASC.People/Client/src/components/pages/ProfileAction/Section/Body/FormFields/EmailField.js new file mode 100644 index 0000000000..d9be890dac --- /dev/null +++ b/products/ASC.People/Client/src/components/pages/ProfileAction/Section/Body/FormFields/EmailField.js @@ -0,0 +1,58 @@ +import React from "react"; +import isEqual from "lodash/isEqual"; +import { + FieldContainer, + EmailInput +} from "asc-web-components"; + +class EmailField extends React.Component { + shouldComponentUpdate(nextProps) { + return !isEqual(this.props, nextProps); + } + + render() { + console.log("EmailField render"); + + const { + isRequired, + hasError, + labelText, + emailSettings, + + inputName, + inputValue, + inputOnChange, + inputTabIndex, + placeholder, + scale, + inputIsDisabled, + onValidateInput, + } = this.props; + + + + return ( + + + + ); + } +} + +export default EmailField; diff --git a/products/ASC.People/Client/src/components/pages/ProfileAction/Section/Body/createUserForm.js b/products/ASC.People/Client/src/components/pages/ProfileAction/Section/Body/createUserForm.js index 3b06b895fd..c61176fe39 100644 --- a/products/ASC.People/Client/src/components/pages/ProfileAction/Section/Body/createUserForm.js +++ b/products/ASC.People/Client/src/components/pages/ProfileAction/Section/Body/createUserForm.js @@ -8,6 +8,7 @@ import { createProfile, getUserPhoto } from '../../../../../store/profile/action import { MainContainer, AvatarContainer, MainFieldsContainer } from './FormFields/Form' import TextField from './FormFields/TextField' import PasswordField from './FormFields/PasswordField' +import EmailField from './FormFields/EmailField'; import DateField from './FormFields/DateField' import RadioField from './FormFields/RadioField' import DepartmentField from './FormFields/DepartmentField' @@ -211,12 +212,11 @@ class CreateUserForm extends React.Component { } validate() { - const { profile } = this.state; - const emailRegex = /.+@.+\..+/; + const { profile, errors:stateErrors } = this.state; const errors = { firstName: !profile.firstName.trim(), lastName: !profile.lastName.trim(), - email: !emailRegex.test(profile.email.trim()), + email: stateErrors.email, password: profile.passwordType === "temp" && !profile.password.trim() }; const hasError = errors.firstName || errors.lastName || errors.email || errors.password; @@ -319,6 +319,8 @@ class CreateUserForm extends React.Component { this.setState(stateCopy) } + onValidateEmailField = (value) => this.setState({errors: { ...this.state.errors, email:!value }}); + render() { const { isLoading, errors, profile, selector } = this.state; const { t, settings, i18n } = this.props; @@ -373,7 +375,7 @@ class CreateUserForm extends React.Component { inputOnChange={this.onInputChange} inputTabIndex={2} /> - } + onValidateInput={this.onValidateEmailField} />