Increase performance when receiving messages (#5375)

Этот коммит содержится в:
Joram Wilander
2017-02-13 09:27:28 -05:00
коммит произвёл Corey Hulen
родитель fac85b676e
Коммит ff741740ee
14 изменённых файлов: 106 добавлений и 64 удалений

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

@@ -42,6 +42,8 @@ import SelectTeamModal from 'components/admin_console/select_team_modal.jsx';
import iNoBounce from 'inobounce';
import * as UserAgent from 'utils/user_agent.jsx';
const UNREAD_CHECK_TIME_MILLISECONDS = 10000;
export default class NeedsTeam extends React.Component {
constructor(params) {
super(params);
@@ -49,6 +51,8 @@ export default class NeedsTeam extends React.Component {
this.onTeamChanged = this.onTeamChanged.bind(this);
this.onPreferencesChanged = this.onPreferencesChanged.bind(this);
this.blurTime = new Date().getTime();
const team = TeamStore.getCurrent();
this.state = {
@@ -97,11 +101,16 @@ export default class NeedsTeam extends React.Component {
AsyncClient.viewChannel();
ChannelStore.resetCounts(ChannelStore.getCurrentId());
ChannelStore.emitChange();
window.isActive = true;
if (new Date().getTime() - this.blurTime > UNREAD_CHECK_TIME_MILLISECONDS) {
AsyncClient.getMyChannelMembers();
}
});
$(window).on('blur', () => {
window.isActive = false;
this.blurTime = new Date().getTime();
if (UserStore.getCurrentUser()) {
AsyncClient.viewChannel('');
}

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

@@ -33,7 +33,7 @@ export default class PostViewCache extends React.Component {
componentWillUnmount() {
if (UserStore.getCurrentUser()) {
AsyncClient.viewChannel('');
AsyncClient.viewChannel('', this.state.currentChannelId || '');
}
ChannelStore.removeChangeListener(this.onChannelChange);
}

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

@@ -3,6 +3,8 @@
import Constants from 'utils/constants.jsx';
import {switchTeams} from 'actions/team_actions.jsx';
import React from 'react';
import {Link} from 'react-router/es6';
import {Tooltip, OverlayTrigger} from 'react-bootstrap';
@@ -11,9 +13,15 @@ export default class TeamButton extends React.Component {
constructor(props) {
super(props);
this.handleSwitch = this.handleSwitch.bind(this);
this.handleDisabled = this.handleDisabled.bind(this);
}
handleSwitch(e) {
e.preventDefault();
switchTeams(this.props.url);
}
handleDisabled(e) {
e.preventDefault();
}
@@ -22,7 +30,7 @@ export default class TeamButton extends React.Component {
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;
const handleClick = (this.props.active || this.props.disabled) ? this.handleDisabled : this.handleSwitch;
let badge;
if (!teamClass) {