Increase performance when receiving messages (#5375)
Этот коммит содержится в:
коммит произвёл
Corey Hulen
родитель
fac85b676e
Коммит
ff741740ee
@@ -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) {
|
||||
|
||||
Ссылка в новой задаче
Block a user