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/components/notify_counts.jsx | 34 +--------------------------------- webapp/components/sidebar.jsx | 24 ++---------------------- 2 files changed, 3 insertions(+), 55 deletions(-) (limited to 'webapp/components') diff --git a/webapp/components/notify_counts.jsx b/webapp/components/notify_counts.jsx index dda352349..f05ecbf12 100644 --- a/webapp/components/notify_counts.jsx +++ b/webapp/components/notify_counts.jsx @@ -2,42 +2,10 @@ // See License.txt for license information. import * as utils from 'utils/utils.jsx'; +import {getCountsStateFromStores} from 'utils/channel_utils.jsx'; import ChannelStore from 'stores/channel_store.jsx'; import TeamStore from 'stores/team_store.jsx'; -function getCountsStateFromStores() { - let mentionCount = 0; - let messageCount = 0; - const teamMembers = TeamStore.getMyTeamMembers(); - const channels = ChannelStore.getAll(); - const members = ChannelStore.getMyMembers(); - - teamMembers.forEach((member) => { - if (member.team_id !== TeamStore.getCurrentId()) { - mentionCount += (member.mention_count || 0); - messageCount += (member.msg_count || 0); - } - }); - - channels.forEach((channel) => { - const channelMember = members[channel.id]; - if (channelMember == null) { - return; - } - - if (channel.type === 'D') { - mentionCount += channel.total_msg_count - channelMember.msg_count; - } else if (channelMember.mention_count > 0) { - mentionCount += channelMember.mention_count; - } - if (channelMember.notify_props.mark_unread !== 'mention' && channel.total_msg_count - channelMember.msg_count > 0) { - messageCount += 1; - } - }); - - return {mentionCount, messageCount}; -} - import React from 'react'; export default class NotifyCounts extends React.Component { diff --git a/webapp/components/sidebar.jsx b/webapp/components/sidebar.jsx index aa7b98be0..5784f96ba 100644 --- a/webapp/components/sidebar.jsx +++ b/webapp/components/sidebar.jsx @@ -90,28 +90,8 @@ export default class Sidebar extends React.Component { } getTotalUnreadCount() { - let msgs = 0; - let mentions = 0; - const unreadCounts = this.state.unreadCounts; - const teamMembers = this.state.teamMembers; - - teamMembers.forEach((member) => { - if (member.team_id !== this.state.currentTeam.id) { - msgs += member.msg_count || 0; - mentions += member.mention_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 === this.state.currentTeam.id)) { - msgs += unreadCounts[chId].msgs; - mentions += unreadCounts[chId].mentions; - } - }); - - return {msgs, mentions}; + const unreads = ChannelUtils.getCountsStateFromStores(this.state.currentTeam, this.state.teamMembers, this.state.unreadCounts); + return {msgs: unreads.messageCount, mentions: unreads.mentionCount}; } getStateFromStores() { -- cgit v1.2.3-1-g7c22