diff options
Diffstat (limited to 'web/react/components/signup_user_complete.jsx')
-rw-r--r-- | web/react/components/signup_user_complete.jsx | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/web/react/components/signup_user_complete.jsx b/web/react/components/signup_user_complete.jsx index 495159efc..4e17c6d06 100644 --- a/web/react/components/signup_user_complete.jsx +++ b/web/react/components/signup_user_complete.jsx @@ -20,8 +20,6 @@ export default class SignupUserComplete extends React.Component { initialState.user = {}; initialState.user.team_id = this.props.teamId; initialState.user.email = this.props.email; - initialState.hash = this.props.hash; - initialState.data = this.props.data; initialState.original_email = this.props.email; } @@ -41,15 +39,13 @@ export default class SignupUserComplete extends React.Component { return; } - this.state.user.email = providedEmail; - - this.state.user.username = React.findDOMNode(this.refs.name).value.trim().toLowerCase(); - if (!this.state.user.username) { + const providedUsername = React.findDOMNode(this.refs.name).value.trim().toLowerCase(); + if (!providedUsername) { this.setState({nameError: 'This field is required', emailError: '', passwordError: '', serverError: ''}); return; } - var usernameError = Utils.isValidUsername(this.state.user.username); + const usernameError = Utils.isValidUsername(providedUsername); if (usernameError === 'Cannot use a reserved word as a username.') { this.setState({nameError: 'This username is reserved, please choose a new one.', emailError: '', passwordError: '', serverError: ''}); return; @@ -63,23 +59,35 @@ export default class SignupUserComplete extends React.Component { return; } - this.state.user.password = React.findDOMNode(this.refs.password).value.trim(); - if (!this.state.user.password || this.state.user.password .length < 5) { + const providedPassword = React.findDOMNode(this.refs.password).value.trim(); + if (!providedPassword || providedPassword.length < 5) { this.setState({nameError: '', emailError: '', passwordError: 'Please enter at least 5 characters', serverError: ''}); return; } - this.setState({nameError: '', emailError: '', passwordError: '', serverError: ''}); + const user = { + team_id: this.props.teamId, + email: providedEmail, + username: providedUsername, + password: providedPassword, + allow_marketing: true + }; - this.state.user.allow_marketing = true; + this.setState({ + user, + nameError: '', + emailError: '', + passwordError: '', + serverError: '' + }); - client.createUser(this.state.user, this.state.data, this.state.hash, + client.createUser(user, this.props.data, this.props.hash, function createUserSuccess() { client.track('signup', 'signup_user_02_complete'); - client.loginByEmail(this.props.teamName, this.state.user.email, this.state.user.password, + client.loginByEmail(this.props.teamName, user.email, user.password, function emailLoginSuccess(data) { - UserStore.setLastEmail(this.state.user.email); + UserStore.setLastEmail(user.email); UserStore.setCurrentUser(data); if (this.props.hash > 0) { BrowserStore.setGlobalItem(this.props.hash, JSON.stringify({wizard: 'finished'})); @@ -88,7 +96,7 @@ export default class SignupUserComplete extends React.Component { }.bind(this), function emailLoginFailure(err) { if (err.message === 'Login failed because email address has not been verified') { - window.location.href = '/verify_email?email=' + encodeURIComponent(this.state.user.email) + '&teamname=' + encodeURIComponent(this.props.teamName); + window.location.href = '/verify_email?email=' + encodeURIComponent(user.email) + '&teamname=' + encodeURIComponent(this.props.teamName); } else { this.setState({serverError: err.message}); } |