From 99d79eee56a1b5a27f18fffd90545b4aef191bba Mon Sep 17 00:00:00 2001 From: Florian Orben Date: Fri, 4 Dec 2015 20:18:49 +0100 Subject: add helper method to add ephemeral messages; also switch 'delete message' to this new method --- web/react/utils/async_client.jsx | 15 ++++++++++++++- web/react/utils/utils.jsx | 5 +++++ 2 files changed, 19 insertions(+), 1 deletion(-) (limited to 'web/react/utils') diff --git a/web/react/utils/async_client.jsx b/web/react/utils/async_client.jsx index 88b5aa739..9cdbd73a4 100644 --- a/web/react/utils/async_client.jsx +++ b/web/react/utils/async_client.jsx @@ -82,7 +82,7 @@ export function getChannels(checkVersion) { ); } -export function getChannel(id) { +export function getChannelAndAddUnreadMessages(id, unreadCount) { if (isCallInProgress('getChannel' + id)) { return; } @@ -97,6 +97,7 @@ export function getChannel(id) { return; } + data.channel.total_msg_count += (unreadCount || 0); AppDispatcher.handleServerAction({ type: ActionTypes.RECIEVED_CHANNEL, channel: data.channel, @@ -110,6 +111,10 @@ export function getChannel(id) { ); } +export function getChannel(id) { + getChannelAndAddUnreadMessages(id, 0); +} + export function updateLastViewedAt(id) { let channelId; if (id) { @@ -131,6 +136,14 @@ export function updateLastViewedAt(id) { channelId, () => { callTracker.updateLastViewed = 0; + + var channel = ChannelStore.get(channelId); + var member = ChannelStore.getMember(channelId); + if (channel && member) { + member.msg_count = channel.total_msg_count; + member.last_viewed_at = utils.getTimestamp(); + ChannelStore.setChannelMember(member); + } }, (err) => { callTracker.updateLastViewed = 0; diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx index c2e4276b0..13c7f961a 100644 --- a/web/react/utils/utils.jsx +++ b/web/react/utils/utils.jsx @@ -1254,3 +1254,8 @@ export function isFeatureEnabled(feature) { export function isSystemMessage(post) { return post.type && (post.type.lastIndexOf(Constants.SYSTEM_MESSAGE_PREFIX) === 0); } + +// convenience method to dispatch an event in JS' next event cycle +export function defer(fn) { + setTimeout(fn, 0); +} -- cgit v1.2.3-1-g7c22