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}
/>