summaryrefslogtreecommitdiffstats
path: root/webapp/actions/channel_actions.jsx
diff options
context:
space:
mode:
authorGeorge Goldberg <george@gberg.me>2017-03-17 16:29:26 +0000
committerGeorge Goldberg <george@gberg.me>2017-03-17 16:29:26 +0000
commit7f266c19511171f509ae8a60170de10c8d10b41e (patch)
tree04cd68ac4722313abec3ea47cc7cda229e463b1d /webapp/actions/channel_actions.jsx
parentbfae88e60c7a623afae82e06ce1421ca778c06e7 (diff)
parent8568afe5b4fb4d26b14fbc0d21f088eaa490b314 (diff)
downloadchat-7f266c19511171f509ae8a60170de10c8d10b41e.tar.gz
chat-7f266c19511171f509ae8a60170de10c8d10b41e.tar.bz2
chat-7f266c19511171f509ae8a60170de10c8d10b41e.zip
Merge branch 'release-3.7' into master.
Diffstat (limited to 'webapp/actions/channel_actions.jsx')
-rw-r--r--webapp/actions/channel_actions.jsx29
1 files changed, 25 insertions, 4 deletions
diff --git a/webapp/actions/channel_actions.jsx b/webapp/actions/channel_actions.jsx
index 5d3a9db35..acbc943cf 100644
--- a/webapp/actions/channel_actions.jsx
+++ b/webapp/actions/channel_actions.jsx
@@ -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) {