|
@@ -25,6 +25,7 @@ class UserInviteModal extends React.Component {
|
|
|
emailInputValue: '',
|
|
emailInputValue: '',
|
|
|
sendEmail: false,
|
|
sendEmail: false,
|
|
|
invitedEmailList: null,
|
|
invitedEmailList: null,
|
|
|
|
|
+ createUserButtonPushed: false,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
this.handleSubmit = this.handleSubmit.bind(this);
|
|
this.handleSubmit = this.handleSubmit.bind(this);
|
|
@@ -108,6 +109,7 @@ class UserInviteModal extends React.Component {
|
|
|
|
|
|
|
|
renderModalFooter() {
|
|
renderModalFooter() {
|
|
|
const { t, appContainer } = this.props;
|
|
const { t, appContainer } = this.props;
|
|
|
|
|
+ const { createUserButtonPushed } = this.state;
|
|
|
const { isMailerSetup } = appContainer.config;
|
|
const { isMailerSetup } = appContainer.config;
|
|
|
|
|
|
|
|
return (
|
|
return (
|
|
@@ -143,8 +145,11 @@ class UserInviteModal extends React.Component {
|
|
|
<button
|
|
<button
|
|
|
type="button"
|
|
type="button"
|
|
|
className="btn btn-primary"
|
|
className="btn btn-primary"
|
|
|
- onClick={this.handleSubmit}
|
|
|
|
|
- disabled={!this.validEmail()}
|
|
|
|
|
|
|
+ onClick={() => {
|
|
|
|
|
+ this.handleSubmit();
|
|
|
|
|
+ this.setState({ createUserButtonPushed: true });
|
|
|
|
|
+ }}
|
|
|
|
|
+ disabled={!this.validEmail() || createUserButtonPushed}
|
|
|
>
|
|
>
|
|
|
{t('admin:user_management.invite_modal.issue')}
|
|
{t('admin:user_management.invite_modal.issue')}
|
|
|
</button>
|
|
</button>
|
|
@@ -215,6 +220,9 @@ class UserInviteModal extends React.Component {
|
|
|
async handleSubmit() {
|
|
async handleSubmit() {
|
|
|
const { adminUsersContainer } = this.props;
|
|
const { adminUsersContainer } = this.props;
|
|
|
|
|
|
|
|
|
|
+ // eslint-disable-next-line no-unused-vars
|
|
|
|
|
+ const { createUserButtonPushed } = this.state;
|
|
|
|
|
+
|
|
|
const array = this.state.emailInputValue.split('\n');
|
|
const array = this.state.emailInputValue.split('\n');
|
|
|
const emailList = array.filter((element) => { return element.match(/.+@.+\..+/) });
|
|
const emailList = array.filter((element) => { return element.match(/.+@.+\..+/) });
|
|
|
const shapedEmailList = emailList.map((email) => { return email.trim() });
|
|
const shapedEmailList = emailList.map((email) => { return email.trim() });
|
|
@@ -245,6 +253,7 @@ class UserInviteModal extends React.Component {
|
|
|
catch (err) {
|
|
catch (err) {
|
|
|
toastError(err);
|
|
toastError(err);
|
|
|
}
|
|
}
|
|
|
|
|
+ this.setState({ createUserButtonPushed: false });
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
handleInput(event) {
|
|
handleInput(event) {
|