diff options
Diffstat (limited to 'webapp/components/signup/components/signup_email.jsx')
-rw-r--r-- | webapp/components/signup/components/signup_email.jsx | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/webapp/components/signup/components/signup_email.jsx b/webapp/components/signup/components/signup_email.jsx index 872439eda..bcf47b825 100644 --- a/webapp/components/signup/components/signup_email.jsx +++ b/webapp/components/signup/components/signup_email.jsx @@ -138,7 +138,10 @@ export default class SignupEmail extends React.Component { if (err.id === 'api.user.login.not_verified.app_error') { browserHistory.push('/should_verify_email?email=' + encodeURIComponent(user.email) + '&teamname=' + encodeURIComponent(this.state.teamName)); } else { - this.setState({serverError: err.message}); + this.setState({ + serverError: err.message, + isSubmitting: false + }); } } ); @@ -222,12 +225,18 @@ export default class SignupEmail extends React.Component { handleSubmit(e) { e.preventDefault(); + // bail out if a submission is already in progress + if (this.state.isSubmitting) { + return; + } + if (this.isUserValid()) { this.setState({ nameError: '', emailError: '', passwordError: '', - serverError: '' + serverError: '', + isSubmitting: true }); const user = { @@ -243,7 +252,10 @@ export default class SignupEmail extends React.Component { this.state.inviteId, this.handleSignupSuccess.bind(this, user), (err) => { - this.setState({serverError: err.message}); + this.setState({ + serverError: err.message, + isSubmitting: false + }); } ); } @@ -388,6 +400,7 @@ export default class SignupEmail extends React.Component { type='submit' onClick={this.handleSubmit} className='btn-primary btn' + disabled={this.state.isSubmitting} > <FormattedMessage id='signup_user_completed.create' |