Add sync logic for DMs/GMs when network reconnects (#5676)

This commit is contained in:
Joram Wilander
2017-03-08 04:13:16 -05:00
committed by George Goldberg
parent 2bea17251e
commit db7540b111
5 changed files with 76 additions and 26 deletions

View File

@@ -9,14 +9,14 @@ import ChannelStore from 'stores/channel_store.jsx';
import * as ChannelUtils from 'utils/channel_utils.jsx';
import PreferenceStore from 'stores/preference_store.jsx';
import {loadProfilesForSidebar} from 'actions/user_actions.jsx';
import {loadProfilesForSidebar, loadNewDMIfNeeded, loadNewGMIfNeeded} from 'actions/user_actions.jsx';
import {trackEvent} from 'actions/diagnostics_actions.jsx';
import Client from 'client/web_client.jsx';
import * as AsyncClient from 'utils/async_client.jsx';
import * as UserAgent from 'utils/user_agent.jsx';
import * as Utils from 'utils/utils.jsx';
import {Preferences, ActionTypes} from 'utils/constants.jsx';
import {Constants, Preferences, ActionTypes} from 'utils/constants.jsx';
import {browserHistory} from 'react-router/es6';
@@ -283,8 +283,29 @@ export function unmarkFavorite(channelId) {
}
export function loadChannelsForCurrentUser() {
AsyncClient.getChannels();
AsyncClient.getMyChannelMembers();
AsyncClient.getChannels().then(() => {
AsyncClient.getMyChannelMembers().then(() => {
loadDMsAndGMsForUnreads();
});
});
}
export function loadDMsAndGMsForUnreads() {
const unreads = ChannelStore.getUnreadCounts();
for (const id in unreads) {
if (!unreads.hasOwnProperty(id)) {
continue;
}
if (unreads[id].msgs > 0 || unreads[id].mentions > 0) {
const channel = ChannelStore.get(id);
if (channel && channel.type === Constants.DM_CHANNEL) {
loadNewDMIfNeeded(Utils.getUserIdFromChannelName(channel));
} else if (channel && channel.type === Constants.GM_CHANNEL) {
loadNewGMIfNeeded(channel.id);
}
}
}
}
export function joinChannel(channel, success, error) {