// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. // See License.txt for license information. var Client = require('../utils/client.jsx'); import {strings} from '../utils/config.js'; export default class TeamSignupAllowedDomainsPage extends React.Component { constructor(props) { super(props); this.submitBack = this.submitBack.bind(this); this.submitNext = this.submitNext.bind(this); this.state = {}; } submitBack(e) { e.preventDefault(); this.props.state.wizard = 'team_url'; this.props.updateParent(this.props.state); } submitNext(e) { e.preventDefault(); if (React.findDOMNode(this.refs.open_network).checked) { this.props.state.wizard = 'send_invites'; this.props.state.team.type = 'O'; this.props.updateParent(this.props.state); return; } if (React.findDOMNode(this.refs.allow).checked) { var name = React.findDOMNode(this.refs.name).value.trim(); var domainRegex = /^\w+\.\w+$/; if (!name) { this.setState({nameError: 'This field is required'}); return; } if (!name.trim().match(domainRegex)) { this.setState({nameError: 'The domain doesn\'t appear valid'}); return; } this.props.state.wizard = 'send_invites'; this.props.state.team.allowed_domains = name; this.props.state.team.type = 'I'; this.props.updateParent(this.props.state); } else { this.props.state.wizard = 'send_invites'; this.props.state.team.type = 'I'; this.props.updateParent(this.props.state); } } render() { Client.track('signup', 'signup_team_04_allow_domains'); var nameError = null; var nameDivClass = 'form-group'; if (this.state.nameError) { nameError = ; nameDivClass += ' has-error'; } return (

Email Domain

{'Check this box to allow your ' + strings.Team + ' members to sign up using their ' + strings.Company + ' email addresses if you share the same domain--otherwise, you need to invite everyone yourself.'}

{'Your ' + strings.Team + '\'s domain for emails'}

@
{nameError}

To allow signups from multiple domains, separate each with a comma.

 
); } } TeamSignupAllowedDomainsPage.defaultProps = { state: {} }; TeamSignupAllowedDomainsPage.propTypes = { state: React.PropTypes.object, updateParent: React.PropTypes.func };