From afce6e6e7824ac5e4c120bd9c2303c7768f995e6 Mon Sep 17 00:00:00 2001 From: Asaad Mahmood Date: Fri, 24 Jun 2016 19:05:45 +0500 Subject: Fixing team creation flow and switching from bootstrap to react bootstrap (#3408) --- .../components/create_team/components/team_url.jsx | 73 +++++++++++++--------- 1 file changed, 45 insertions(+), 28 deletions(-) (limited to 'webapp/components/create_team') diff --git a/webapp/components/create_team/components/team_url.jsx b/webapp/components/create_team/components/team_url.jsx index b6c634816..0fe047ccd 100644 --- a/webapp/components/create_team/components/team_url.jsx +++ b/webapp/components/create_team/components/team_url.jsx @@ -1,8 +1,6 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import $ from 'jquery'; - import * as Utils from 'utils/utils.jsx'; import {checkIfTeamExists, createTeam} from 'actions/team_actions.jsx'; @@ -13,6 +11,7 @@ import logoImage from 'images/logo.png'; import React from 'react'; import ReactDOM from 'react-dom'; +import {Button, Tooltip, OverlayTrigger} from 'react-bootstrap'; import {FormattedMessage, FormattedHTMLMessage} from 'react-intl'; export default class TeamUrl extends React.Component { @@ -23,7 +22,10 @@ export default class TeamUrl extends React.Component { this.submitNext = this.submitNext.bind(this); this.handleFocus = this.handleFocus.bind(this); - this.state = {nameError: ''}; + this.state = { + nameError: '', + isLoading: false + }; } submitBack(e) { e.preventDefault(); @@ -59,7 +61,7 @@ export default class TeamUrl extends React.Component { } } - $('#finish-button').button('loading'); + this.setState({isLoading: true}); var teamSignup = JSON.parse(JSON.stringify(this.props.state)); teamSignup.team.type = 'O'; teamSignup.team.name = name; @@ -68,37 +70,32 @@ export default class TeamUrl extends React.Component { (foundTeam) => { if (foundTeam) { this.setState({nameError: Utils.localizeMessage('create_team.team_url.unavailable', 'This URL is unavailable. Please try another.')}); - $('#finish-button').button('reset'); + this.setState({isLoading: false}); return; } createTeam(teamSignup.team, () => { track('signup', 'signup_team_08_complete'); - $('#sign-up-button').button('reset'); }, (err) => { this.setState({nameError: err.message}); - $('#finish-button').button('reset'); + this.setState({isLoading: false}); } ); }, (err) => { this.setState({nameError: err.message}); - $('#finish-button').button('reset'); } ); } handleFocus(e) { e.preventDefault(); - e.currentTarget.select(); } render() { - $('body').tooltip({selector: '[data-toggle=tooltip]', trigger: 'hover click'}); - track('signup', 'signup_team_03_url'); let nameError = null; @@ -109,6 +106,25 @@ export default class TeamUrl extends React.Component { } const title = `${Utils.getWindowLocationOrigin()}/`; + const urlTooltip = ( + {title} + ); + + let finishMessage = ( + + ); + + if (this.state.isLoading) { + finishMessage = ( + + ); + } return (
@@ -127,13 +143,15 @@ export default class TeamUrl extends React.Component {
- - {title} - + + {title} + + Must start with a letter and can't end in a dash" /> - +
+ +