summaryrefslogtreecommitdiffstats
path: root/webapp/components/team_sidebar/team_sidebar_controller.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/components/team_sidebar/team_sidebar_controller.jsx')
-rw-r--r--webapp/components/team_sidebar/team_sidebar_controller.jsx189
1 files changed, 0 insertions, 189 deletions
diff --git a/webapp/components/team_sidebar/team_sidebar_controller.jsx b/webapp/components/team_sidebar/team_sidebar_controller.jsx
deleted file mode 100644
index 3cd30219f..000000000
--- a/webapp/components/team_sidebar/team_sidebar_controller.jsx
+++ /dev/null
@@ -1,189 +0,0 @@
-// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
-// See License.txt for license information.
-
-import TeamButton from './components/team_button.jsx';
-
-import TeamStore from 'stores/team_store.jsx';
-import UserStore from 'stores/user_store.jsx';
-
-import {sortTeamsByDisplayName} from 'utils/team_utils.jsx';
-import * as Utils from 'utils/utils.jsx';
-
-import $ from 'jquery';
-import PropTypes from 'prop-types';
-import React from 'react';
-import {FormattedMessage} from 'react-intl';
-
-export default class TeamSidebar extends React.Component {
- static propTypes = {
- actions: PropTypes.shape({
- getTeams: PropTypes.func.isRequired
- }).isRequired
- }
-
- constructor(props) {
- super(props);
-
- this.getStateFromStores = this.getStateFromStores.bind(this);
- this.onChange = this.onChange.bind(this);
- this.handleResize = this.handleResize.bind(this);
- this.setStyles = this.setStyles.bind(this);
-
- this.state = this.getStateFromStores();
- }
-
- getStateFromStores() {
- const teamMembers = TeamStore.getMyTeamMembers();
- const currentTeamId = TeamStore.getCurrentId();
-
- return {
- teams: TeamStore.getAll(),
- teamListings: TeamStore.getTeamListings(),
- teamMembers,
- currentTeamId,
- show: teamMembers && teamMembers.length > 1,
- isMobile: Utils.isMobile()
- };
- }
-
- componentDidMount() {
- window.addEventListener('resize', this.handleResize);
- TeamStore.addChangeListener(this.onChange);
- TeamStore.addUnreadChangeListener(this.onChange);
- this.props.actions.getTeams(0, 200);
- this.setStyles();
- }
-
- componentWillUnmount() {
- window.removeEventListener('resize', this.handleResize);
- TeamStore.removeChangeListener(this.onChange);
- TeamStore.removeUnreadChangeListener(this.onChange);
- }
-
- componentDidUpdate(prevProps, prevState) {
- if (!this.state.isMobile) {
- $('.team-wrapper').perfectScrollbar();
- }
-
- // reset the scrollbar upon switching teams
- if (this.state.currentTeam !== prevState.currentTeam) {
- this.refs.container.scrollTop = 0;
- if (!this.state.isMobile) {
- $('.team-wrapper').perfectScrollbar('update');
- }
- }
- }
-
- onChange() {
- this.setState(this.getStateFromStores());
- this.setStyles();
- }
-
- handleResize() {
- const teamMembers = this.state.teamMembers;
- this.setState({show: teamMembers && teamMembers.length > 1});
- this.setStyles();
- }
-
- setStyles() {
- const root = document.querySelector('#root');
-
- if (this.state.show) {
- root.classList.add('multi-teams');
- } else {
- root.classList.remove('multi-teams');
- }
- }
-
- render() {
- if (!this.state.show) {
- return null;
- }
-
- const myTeams = [];
- const isSystemAdmin = Utils.isSystemAdmin(UserStore.getCurrentUser().roles);
- const isAlreadyMember = new Map();
- let moreTeams = false;
-
- for (const index in this.state.teamMembers) {
- if (this.state.teamMembers.hasOwnProperty(index)) {
- const teamMember = this.state.teamMembers[index];
- if (teamMember.delete_at > 0) {
- continue;
- }
- const teamId = teamMember.team_id;
- myTeams.push(Object.assign({
- unread: teamMember.msg_count > 0,
- mentions: teamMember.mention_count
- }, this.state.teams[teamId]));
- isAlreadyMember[teamId] = true;
- }
- }
-
- for (const id in this.state.teamListings) {
- if (this.state.teamListings.hasOwnProperty(id) && !isAlreadyMember[id]) {
- moreTeams = true;
- break;
- }
- }
-
- const teams = myTeams.
- sort(sortTeamsByDisplayName).
- map((team) => {
- return (
- <TeamButton
- key={'switch_team_' + team.name}
- url={`/${team.name}`}
- tip={team.display_name}
- active={team.id === this.state.currentTeamId}
- isMobile={this.state.isMobile}
- displayName={team.display_name}
- unread={team.unread}
- mentions={team.mentions}
- />
- );
- });
-
- if (moreTeams) {
- teams.push(
- <TeamButton
- btnClass='team-btn__add'
- key='more_teams'
- url='/select_team'
- isMobile={this.state.isMobile}
- tip={
- <FormattedMessage
- id='team_sidebar.join'
- defaultMessage='Other teams you can join.'
- />
- }
- content={<i className='fa fa-plus'/>}
- />
- );
- } else if (global.window.mm_config.EnableTeamCreation === 'true' || isSystemAdmin) {
- teams.push(
- <TeamButton
- btnClass='team-btn__add'
- key='more_teams'
- url='/create_team'
- isMobile={this.state.isMobile}
- tip={
- <FormattedMessage
- id='navbar_dropdown.create'
- defaultMessage='Create a New Team'
- />
- }
- content={<i className='fa fa-plus'/>}
- />
- );
- }
-
- return (
- <div className='team-sidebar'>
- <div className='team-wrapper'>
- {teams}
- </div>
- </div>
- );
- }
-}