* Fix team switch

* Fix channel switching by using BrowserStore

* Fixes plt-5076 and plt-5068

* Updating styles for Teams sidebar (#4875)
Этот коммит содержится в:
enahum
2016-12-22 15:20:36 -03:00
коммит произвёл Corey Hulen
родитель c9eb23a3d4
Коммит b79b2b2a53
8 изменённых файлов: 138 добавлений и 68 удалений

Просмотреть файл

@@ -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();
}

Просмотреть файл

@@ -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;

Просмотреть файл

@@ -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,

Просмотреть файл

@@ -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'/>}
/>
);
}