summaryrefslogtreecommitdiffstats
path: root/webapp/components
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-05-10 07:41:12 -0400
committerGitHub <noreply@github.com>2017-05-10 07:41:12 -0400
commit9625362494888c9423bb6503b7e18557b6b9cc79 (patch)
tree976611e0ee7fff14dd13e044c571c370f5895392 /webapp/components
parent6e642036f460fb2e28572d46ca29aa81fbc8c8d1 (diff)
downloadchat-9625362494888c9423bb6503b7e18557b6b9cc79.tar.gz
chat-9625362494888c9423bb6503b7e18557b6b9cc79.tar.bz2
chat-9625362494888c9423bb6503b7e18557b6b9cc79.zip
Fix DM getting marked unread from your own message (#6373)
Diffstat (limited to 'webapp/components')
-rw-r--r--webapp/components/notify_counts.jsx34
-rw-r--r--webapp/components/sidebar.jsx24
2 files changed, 3 insertions, 55 deletions
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() {