blob: 42fd8dafa679c483540ed15be4e80eae68402c8e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
import EmailToSSO from './email_to_sso.jsx';
import SSOToEmail from './sso_to_email.jsx';
import TeamStore from '../../stores/team_store.jsx';
import {FormattedMessage} from 'mm-intl';
export default class ClaimAccount extends React.Component {
constructor(props) {
super(props);
this.onTeamChange = this.onTeamChange.bind(this);
this.updateStateFromStores = this.updateStateFromStores.bind(this);
this.state = {};
}
componentWillMount() {
this.setState({
email: this.props.location.query.email,
newType: this.props.location.query.new_type,
oldType: this.props.location.query.old_type,
teamName: this.props.params.team,
teamDisplayName: ''
});
this.updateStateFromStores();
}
componentDidMount() {
TeamStore.addChangeListener(this.onTeamChange);
}
componentWillUnmount() {
TeamStore.removeChangeListener(this.onTeamChange);
}
updateStateFromStores() {
const team = TeamStore.getByName(this.state.teamName);
let displayName = '';
if (team) {
displayName = team.displayName;
}
this.setState({
teamDisplayName: displayName
});
}
onTeamChange() {
this.updateStateFromStores();
}
render() {
if (this.state.teamDisplayName === '') {
return (<div/>);
}
let content;
if (this.state.email === '') {
content = (
<p>
<FormattedMessage
id='claim.account.noEmail'
defaultMessage='No email specified'
/>
</p>
);
} else if (this.state.oldType === '' && this.state.newType !== '') {
content = (
<EmailToSSO
email={this.state.email}
type={this.state.newType}
teamName={this.state.teamName}
teamDisplayName={this.state.teamDisplayName}
/>
);
} else {
content = (
<SSOToEmail
email={this.state.email}
currentType={this.state.oldType}
teamName={this.state.teamName}
teamDisplayName={this.state.teamDisplayName}
/>
);
}
return (
<div>
<div className='signup-header'>
<a href='/'>
<span className='fa fa-chevron-left'/>
<FormattedMessage
id='web.header.back'
/>
</a>
</div>
<div className='col-sm-12'>
<div className='signup-team__container'>
<img
className='signup-team-logo'
src='/static/images/logo.png'
/>
<div id='claim'>
{content}
</div>
</div>
</div>
</div>
);
}
}
ClaimAccount.defaultProps = {
};
ClaimAccount.propTypes = {
params: React.PropTypes.object.isRequired,
location: React.PropTypes.object.isRequired
};
|