summaryrefslogtreecommitdiffstats
path: root/webapp/components/backstage/backstage_navbar.jsx
blob: 8352296b77abaf9b00a91998b0c1d2d85cf56056 (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
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.

import $ from 'jquery';

import React from 'react';

import TeamStore from 'stores/team_store.jsx';

import {FormattedMessage} from 'react-intl';
import {Link} from 'react-router';

export default class BackstageNavbar extends React.Component {
    constructor(props) {
        super(props);

        this.handleChange = this.handleChange.bind(this);

        this.state = {
            team: TeamStore.getCurrent()
        };
    }

    componentDidMount() {
        TeamStore.addChangeListener(this.handleChange);
        $('body').addClass('backstage');
    }

    componentWillUnmount() {
        TeamStore.removeChangeListener(this.handleChange);
        $('body').removeClass('backstage');
    }

    handleChange() {
        this.setState({
            team: TeamStore.getCurrent()
        });
    }

    render() {
        if (!this.state.team) {
            return null;
        }

        return (
            <div className='backstage-navbar row'>
                <Link
                    className='backstage-navbar__back'
                    to={`/${this.state.team.name}/channels/town-square`}
                >
                    <i className='fa fa-angle-left'/>
                    <span>
                        <FormattedMessage
                            id='backstage_navbar.backToMattermost'
                            defaultMessage='Back to {siteName}'
                            values={{
                                siteName: global.window.mm_config.SiteName
                            }}
                        />
                    </span>
                </Link>
            </div>
        );
    }
}