diff options
Diffstat (limited to 'webapp/stores/channel_store.jsx')
-rw-r--r-- | webapp/stores/channel_store.jsx | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/webapp/stores/channel_store.jsx b/webapp/stores/channel_store.jsx index 13a5c4574..136423d45 100644 --- a/webapp/stores/channel_store.jsx +++ b/webapp/stores/channel_store.jsx @@ -263,6 +263,12 @@ class ChannelStoreClass extends EventEmitter { }); } + setUnreadCountsByCurrentMembers() { + Object.keys(this.myChannelMembers).forEach((key) => { + this.setUnreadCountByChannel(this.myChannelMembers[key].channel_id); + }); + } + setUnreadCountsByChannels(channels) { channels.forEach((c) => { this.setUnreadCountByChannel(c.id); @@ -368,6 +374,15 @@ ChannelStore.dispatchToken = AppDispatcher.register((payload) => { ChannelStore.setUnreadCountsByMembers(action.members); ChannelStore.emitChange(); break; + case ActionTypes.RECEIVED_CHANNEL_MEMBER: + ChannelStore.storeMyChannelMember(action.member); + currentId = ChannelStore.getCurrentId(); + if (currentId && window.isActive) { + ChannelStore.resetCounts(currentId); + } + ChannelStore.setUnreadCountsByCurrentMembers(); + ChannelStore.emitChange(); + break; case ActionTypes.RECEIVED_MORE_CHANNELS: ChannelStore.storeMoreChannels(action.channels); ChannelStore.emitChange(); @@ -385,4 +400,4 @@ ChannelStore.dispatchToken = AppDispatcher.register((payload) => { } }); -export default ChannelStore;
\ No newline at end of file +export default ChannelStore; |