From 9625362494888c9423bb6503b7e18557b6b9cc79 Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Wed, 10 May 2017 07:41:12 -0400 Subject: Fix DM getting marked unread from your own message (#6373) --- webapp/utils/channel_utils.jsx | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'webapp/utils/channel_utils.jsx') diff --git a/webapp/utils/channel_utils.jsx b/webapp/utils/channel_utils.jsx index 10d06fbe1..1afce39b4 100644 --- a/webapp/utils/channel_utils.jsx +++ b/webapp/utils/channel_utils.jsx @@ -5,6 +5,8 @@ const Preferences = Constants.Preferences; import * as Utils from 'utils/utils.jsx'; import UserStore from 'stores/user_store.jsx'; +import ChannelStore from 'stores/channel_store.jsx'; +import TeamStore from 'stores/team_store.jsx'; import PreferenceStore from 'stores/preference_store.jsx'; import LocalizationStore from 'stores/localization_store.jsx'; @@ -251,6 +253,29 @@ export function buildGroupChannelName(channelId) { return displayName; } +export function getCountsStateFromStores(team = TeamStore.getCurrent(), teamMembers = TeamStore.getMyTeamMembers(), unreadCounts = ChannelStore.getUnreadCounts()) { + let mentionCount = 0; + let messageCount = 0; + + teamMembers.forEach((member) => { + if (member.team_id !== TeamStore.getCurrentId()) { + mentionCount += (member.mention_count || 0); + messageCount += (member.msg_count || 0); + } + }); + + Object.keys(unreadCounts).forEach((chId) => { + const channel = ChannelStore.get(chId); + + if (channel && (channel.type === Constants.DM_CHANNEL || channel.type === Constants.GM_CHANNEL || channel.team_id === team.id)) { + messageCount += unreadCounts[chId].msgs; + mentionCount += unreadCounts[chId].mentions; + } + }); + + return {mentionCount, messageCount}; +} + /* * not exported helpers */ -- cgit v1.2.3-1-g7c22