// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
import LoadingScreen from 'components/loading_screen.jsx';
import * as GlobalActions from 'action_creators/global_actions.jsx';
import BrowserStore from 'stores/browser_store.jsx';
import UserStore from 'stores/user_store.jsx';
import * as Utils from 'utils/utils.jsx';
import Client from 'utils/web_client.jsx';
import Constants from 'utils/constants.jsx';
import {FormattedMessage, FormattedHTMLMessage} from 'react-intl';
import {browserHistory, Link} from 'react-router';
import React from 'react';
import ReactDOM from 'react-dom';
import logoImage from 'images/logo.png';
class SignupUserComplete extends React.Component {
constructor(props) {
super(props);
this.handleSubmit = this.handleSubmit.bind(this);
this.state = {
data: '',
hash: '',
usedBefore: false,
email: '',
teamDisplayName: '',
teamName: '',
teamId: '',
openServer: false,
loading: true,
inviteId: ''
};
}
componentWillMount() {
let data = this.props.location.query.d;
let hash = this.props.location.query.h;
const inviteId = this.props.location.query.id;
let usedBefore = false;
let email = '';
let teamDisplayName = '';
let teamName = '';
let teamId = '';
let openServer = false;
let loading = true;
if ((inviteId && inviteId.length > 0) || (hash && hash.length > 0)) {
// if we are already logged in then attempt to just join the team
if (UserStore.getCurrentUser()) {
loading = true;
Client.addUserToTeamFromInvite(
data,
hash,
inviteId,
() => {
GlobalActions.emitInitialLoad(
() => {
browserHistory.push('/select_team');
}
);
},
(err) => {
this.setState({
noOpenServerError: true,
serverError: err.message,
loading: false
});
}
);
} else if (hash) {
// If we have a hash in the url then we are attempting to access a private team
const parsedData = JSON.parse(data);
usedBefore = BrowserStore.getGlobalItem(hash);
email = parsedData.email;
teamDisplayName = parsedData.display_name;
teamName = parsedData.name;
teamId = parsedData.id;
loading = false;
} else {
loading = true;
Client.getInviteInfo(
inviteId,
(inviteData) => {
if (!inviteData) {
return;
}
this.setState({
serverError: null,
teamDisplayName: inviteData.display_name,
teamName: inviteData.name,
teamId: inviteData.id,
loading: false
});
},
() => {
this.setState({
noOpenServerError: true,
loading: false,
serverError: