summaryrefslogtreecommitdiffstats
path: root/webapp/actions/channel_actions.jsx
diff options
context:
space:
mode:
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) {