// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import ReactDOM from 'react-dom'; import * as utils from 'utils/utils.jsx'; import * as client from 'utils/client.jsx'; import {injectIntl, intlShape, defineMessages, FormattedMessage} from 'react-intl'; import logoImage from 'images/logo.png'; const holders = defineMessages({ required: { id: 'team_signup_display_name.required', defaultMessage: 'This field is required' }, charLength: { id: 'team_signup_display_name.charLength', defaultMessage: 'Name must be 4 or more characters up to a maximum of 15' } }); import React from 'react'; class TeamSignupDisplayNamePage 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 = 'welcome'; this.props.updateParent(this.props.state); } submitNext(e) { e.preventDefault(); const {formatMessage} = this.props.intl; var displayName = ReactDOM.findDOMNode(this.refs.name).value.trim(); if (!displayName) { this.setState({nameError: formatMessage(holders.required)}); return; } else if (displayName.length < 4 || displayName.length > 15) { this.setState({nameError: formatMessage(holders.charLength)}); return; } this.props.state.wizard = 'team_url'; this.props.state.team.display_name = displayName; this.props.state.team.name = utils.cleanUpUrlable(displayName); this.props.updateParent(this.props.state); } handleFocus(e) { e.preventDefault(); e.currentTarget.select(); } render() { client.track('signup', 'signup_team_02_name'); var nameError = null; var nameDivClass = 'form-group'; if (this.state.nameError) { nameError = ; nameDivClass += ' has-error'; } return (

{nameError}
); } } TeamSignupDisplayNamePage.propTypes = { intl: intlShape.isRequired, state: React.PropTypes.object, updateParent: React.PropTypes.func }; export default injectIntl(TeamSignupDisplayNamePage);