From 84c82e8d7a1a7e4ec8808b86ff5bea78138d1886 Mon Sep 17 00:00:00 2001 From: Reed Garmsen Date: Tue, 18 Aug 2015 09:15:16 -0700 Subject: Renamed new component files for easier identification --- web/react/components/team_signup_email_item.jsx | 53 +++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 web/react/components/team_signup_email_item.jsx (limited to 'web/react/components/team_signup_email_item.jsx') diff --git a/web/react/components/team_signup_email_item.jsx b/web/react/components/team_signup_email_item.jsx new file mode 100644 index 000000000..11cd17e74 --- /dev/null +++ b/web/react/components/team_signup_email_item.jsx @@ -0,0 +1,53 @@ +// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// See License.txt for license information. + +var utils = require('../utils/utils.jsx'); + +module.exports = React.createClass({ + displayName: 'TeamSignupEmailItem', + propTypes: { + focus: React.PropTypes.bool, + email: React.PropTypes.string + }, + getInitialState: function() { + return {}; + }, + getValue: function() { + return this.refs.email.getDOMNode().value.trim(); + }, + validate: function(teamEmail) { + var email = this.refs.email.getDOMNode().value.trim().toLowerCase(); + + if (!email) { + return true; + } + + if (!utils.isEmail(email)) { + this.state.emailError = 'Please enter a valid email address'; + this.setState(this.state); + return false; + } else if (email === teamEmail) { + this.state.emailError = 'Please use a different email than the one used at signup'; + this.setState(this.state); + return false; + } + this.state.emailError = ''; + this.setState(this.state); + return true; + }, + render: function() { + var emailError = null; + var emailDivClass = 'form-group'; + if (this.state.emailError) { + emailError = ; + emailDivClass += ' has-error'; + } + + return ( +
+ + {emailError} +
+ ); + } +}); -- cgit v1.2.3-1-g7c22