summaryrefslogtreecommitdiffstats
path: root/webapp/stores/team_store.jsx
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-02-13 09:27:28 -0500
committerCorey Hulen <corey@hulen.com>2017-02-13 09:27:28 -0500
commitff741740eebceb43b1d69b13d97ae7eed2aa32d1 (patch)
tree0f795cea935a72997bf3618ceaf3b0513d5e8096 /webapp/stores/team_store.jsx
parentfac85b676eafb20b5f70db1805006d64889606ff (diff)
downloadchat-ff741740eebceb43b1d69b13d97ae7eed2aa32d1.tar.gz
chat-ff741740eebceb43b1d69b13d97ae7eed2aa32d1.tar.bz2
chat-ff741740eebceb43b1d69b13d97ae7eed2aa32d1.zip
Increase performance when receiving messages (#5375)
Diffstat (limited to 'webapp/stores/team_store.jsx')
-rw-r--r--webapp/stores/team_store.jsx25
1 files changed, 25 insertions, 0 deletions
diff --git a/webapp/stores/team_store.jsx b/webapp/stores/team_store.jsx
index 2752c6b57..e58c79806 100644
--- a/webapp/stores/team_store.jsx
+++ b/webapp/stores/team_store.jsx
@@ -316,6 +316,23 @@ class TeamStoreClass extends EventEmitter {
member.mention_count -= channelMember.mention_count;
}
}
+
+ incrementMessages(id) {
+ const member = this.my_team_members.filter((m) => m.team_id === id)[0];
+ member.msg_count++;
+ }
+
+ incrementMentionsIfNeeded(id, msgProps) {
+ let mentions = [];
+ if (msgProps && msgProps.mentions) {
+ mentions = JSON.parse(msgProps.mentions);
+ }
+
+ if (mentions.indexOf(UserStore.getCurrentId()) !== -1) {
+ const member = this.my_team_members.filter((m) => m.team_id === id)[0];
+ member.mention_count++;
+ }
+ }
}
var TeamStore = new TeamStoreClass();
@@ -370,6 +387,14 @@ TeamStore.dispatchToken = AppDispatcher.register((payload) => {
TeamStore.emitUnreadChange();
}
break;
+ case ActionTypes.RECEIVED_POST:
+ var id = action.websocketMessageProps ? action.websocketMessageProps.team_id : '';
+ if (TeamStore.getCurrentId() !== id && id.length > 0) {
+ TeamStore.incrementMessages(id);
+ TeamStore.incrementMentionsIfNeeded(id, action.websocketMessageProps);
+ TeamStore.emitChange();
+ }
+ break;
default:
}
});