summaryrefslogtreecommitdiffstats
path: root/web/react/components/team_settings.jsx
blob: 1a79eef1dbb46d17a5e82cca7d27a8d7562dae86 (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
// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
// See License.txt for license information.

var TeamStore = require('../stores/team_store.jsx');
var ImportTab = require('./team_import_tab.jsx');
var FeatureTab = require('./team_feature_tab.jsx');
var GeneralTab = require('./team_general_tab.jsx');
var utils = require('../utils/utils.jsx');

module.exports = React.createClass({
    displayName: 'Team Settings',
    propTypes: {
        activeTab: React.PropTypes.string.isRequired,
        activeSection: React.PropTypes.string.isRequired,
        updateSection: React.PropTypes.func.isRequired,
        teamDisplayName: React.PropTypes.string.isRequired
    },
    componentDidMount: function() {
        TeamStore.addChangeListener(this.onChange);
    },
    componentWillUnmount: function() {
        TeamStore.removeChangeListener(this.onChange);
    },
    onChange: function() {
        var team = TeamStore.getCurrent();
        if (!utils.areStatesEqual(this.state.team, team)) {
            this.setState({team: team});
        }
    },
    getInitialState: function() {
        return {team: TeamStore.getCurrent()};
    },
    render: function() {
        var result;
        switch (this.props.activeTab) {
            case 'general':
                result = (
                    <div>
                        <GeneralTab
                            team={this.state.team}
                            activeSection={this.props.activeSection}
                            updateSection={this.props.updateSection}
                            teamDisplayName={this.props.teamDisplayName}
                        />
                    </div>
                );
                break;
            case 'feature':
                result = (
                    <div>
                        <FeatureTab team={this.state.team} activeSection={this.props.activeSection} updateSection={this.props.updateSection} />
                    </div>
                );
                break;
            case 'import':
                result = (
                    <div>
                        <ImportTab team={this.state.team} activeSection={this.props.activeSection} updateSection={this.props.updateSection} />
                    </div>
                );
                break;
            default:
                result = (
                    <div/>
                );
                break;
        }
        return result;
    }
});