Fix DM getting marked unread from your own message (#6373)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
6e642036f4
Коммит
9625362494
@@ -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 {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Ссылка в новой задаче
Block a user