diff options
author | enahum <nahumhbl@gmail.com> | 2016-12-22 15:20:36 -0300 |
---|---|---|
committer | Corey Hulen <corey@hulen.com> | 2016-12-22 10:20:36 -0800 |
commit | b79b2b2a53935cd883312c1158918291a926bacd (patch) | |
tree | feb178ef53b3f8edf47824556bd4ba57ded8ce8d /webapp/components | |
parent | c9eb23a3d44c96042522bf7cdefc65903eb1d0a3 (diff) | |
download | chat-b79b2b2a53935cd883312c1158918291a926bacd.tar.gz chat-b79b2b2a53935cd883312c1158918291a926bacd.tar.bz2 chat-b79b2b2a53935cd883312c1158918291a926bacd.zip |
Fix team switch (#4851)
* Fix team switch
* Fix channel switching by using BrowserStore
* Fixes plt-5076 and plt-5068
* Updating styles for Teams sidebar (#4875)
Diffstat (limited to 'webapp/components')
4 files changed, 56 insertions, 21 deletions
diff --git a/webapp/components/login/login_controller.jsx b/webapp/components/login/login_controller.jsx index 005f278bd..6dc7af883 100644 --- a/webapp/components/login/login_controller.jsx +++ b/webapp/components/login/login_controller.jsx @@ -6,6 +6,7 @@ import ErrorBar from 'components/error_bar.jsx'; import FormError from 'components/form_error.jsx'; import * as GlobalActions from 'actions/global_actions.jsx'; +import BrowserStore from 'stores/browser_store.jsx'; import UserStore from 'stores/user_store.jsx'; import Client from 'client/web_client.jsx'; @@ -52,7 +53,7 @@ export default class LoginController extends React.Component { componentDidMount() { document.title = global.window.mm_config.SiteName; - + BrowserStore.removeGlobalItem('team'); if (UserStore.getCurrentUser()) { GlobalActions.redirectUserToDefaultTeam(); } diff --git a/webapp/components/signup/signup_controller.jsx b/webapp/components/signup/signup_controller.jsx index 3d853a9ee..9bf5936be 100644 --- a/webapp/components/signup/signup_controller.jsx +++ b/webapp/components/signup/signup_controller.jsx @@ -59,7 +59,7 @@ export default class SignupController extends React.Component { componentDidMount() { AsyncClient.checkVersion(); - + BrowserStore.removeGlobalItem('team'); if (this.props.location.query) { const hash = this.props.location.query.h; const data = this.props.location.query.d; diff --git a/webapp/components/team_sidebar/components/team_button.jsx b/webapp/components/team_sidebar/components/team_button.jsx index 0033ae25a..203e1de00 100644 --- a/webapp/components/team_sidebar/components/team_button.jsx +++ b/webapp/components/team_sidebar/components/team_button.jsx @@ -7,6 +7,9 @@ import React from 'react'; import {Link} from 'react-router/es6'; import {Tooltip, OverlayTrigger} from 'react-bootstrap'; +import {isMobile} from 'utils/utils.jsx'; +import {isMobileApp} from 'utils/user_agent.jsx'; + export default class TeamButton extends React.Component { constructor(props) { super(props); @@ -20,6 +23,7 @@ export default class TeamButton extends React.Component { render() { let teamClass = this.props.active ? 'active' : ''; + const btnClass = this.props.btnClass; const disabled = this.props.disabled ? 'team-disabled' : ''; const handleClick = (this.props.active || this.props.disabled) ? this.handleDisabled : null; let badge; @@ -34,6 +38,44 @@ export default class TeamButton extends React.Component { } } + let btn; + let content = this.props.content; + if (!content) { + content = ( + <div className='team-btn__initials'> + {this.props.displayName.substring(0, 2)} + <div className='team-btn__content'> + {this.props.displayName} + </div> + </div> + ); + } + if (!isMobile() && !isMobileApp()) { + btn = ( + <OverlayTrigger + delayShow={Constants.OVERLAY_TIME_DELAY} + placement={this.props.placement} + overlay={ + <Tooltip id={`tooltip-${this.props.url}`}> + {this.props.displayName} + </Tooltip> + } + > + <div className={'team-btn ' + btnClass}> + {badge} + {content} + </div> + </OverlayTrigger> + ); + } else { + btn = ( + <div className={'team-btn ' + btnClass}> + {badge} + {content} + </div> + ); + } + return ( <div className={`team-container ${teamClass}`} @@ -43,20 +85,7 @@ export default class TeamButton extends React.Component { to={this.props.url} onClick={handleClick} > - <OverlayTrigger - delayShow={Constants.OVERLAY_TIME_DELAY} - placement={this.props.placement} - overlay={ - <Tooltip id={`tooltip-${this.props.url}`}> - {this.props.tip} - </Tooltip> - } - > - <div className='team-btn'> - {badge} - {this.props.contents} - </div> - </OverlayTrigger> + {btn} </Link> </div> ); @@ -64,6 +93,7 @@ export default class TeamButton extends React.Component { } TeamButton.defaultProps = { + btnClass: '', tip: '', placement: 'right', active: false, @@ -73,9 +103,11 @@ TeamButton.defaultProps = { }; TeamButton.propTypes = { + btnClass: React.PropTypes.string, url: React.PropTypes.string.isRequired, - contents: React.PropTypes.node.isRequired, - tip: React.PropTypes.node, + displayName: React.PropTypes.string, + content: React.PropTypes.node, + tip: React.PropTypes.node.isRequired, active: React.PropTypes.bool, disabled: React.PropTypes.bool, unread: React.PropTypes.bool, diff --git a/webapp/components/team_sidebar/team_sidebar_controller.jsx b/webapp/components/team_sidebar/team_sidebar_controller.jsx index f005afeb3..24cd48d39 100644 --- a/webapp/components/team_sidebar/team_sidebar_controller.jsx +++ b/webapp/components/team_sidebar/team_sidebar_controller.jsx @@ -121,7 +121,7 @@ export default class TeamSidebar extends React.Component { url={`/${team.name}`} tip={team.display_name} active={team.id === this.state.currentTeamId} - contents={team.display_name.substring(0, 1).toUpperCase()} + displayName={team.display_name} unread={team.unread} mentions={team.mentions} /> @@ -131,6 +131,7 @@ export default class TeamSidebar extends React.Component { if (moreTeams) { teams.push( <TeamButton + btnClass='team-btn__add' key='more_teams' url='/select_team' tip={ @@ -139,12 +140,13 @@ export default class TeamSidebar extends React.Component { defaultMessage='Other teams you can join.' /> } - contents={<i className='fa fa-plus'/>} + 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' tip={ @@ -153,7 +155,7 @@ export default class TeamSidebar extends React.Component { defaultMessage='Create a New Team' /> } - contents={<i className='fa fa-plus'/>} + content={<i className='fa fa-plus'/>} /> ); } |