summaryrefslogtreecommitdiffstats
path: root/web/react/utils
diff options
context:
space:
mode:
authorFlorian Orben <florian.orben@gmail.com>2015-12-04 20:18:49 +0100
committerFlorian Orben <florian.orben@gmail.com>2015-12-09 22:29:54 +0100
commit99d79eee56a1b5a27f18fffd90545b4aef191bba (patch)
treeda57414d03887a1cdff3f8c51caa0bd74db7f0c1 /web/react/utils
parent985dc06e5fb9d809e4be4e5fff2c3b1ca66c1ea9 (diff)
downloadchat-99d79eee56a1b5a27f18fffd90545b4aef191bba.tar.gz
chat-99d79eee56a1b5a27f18fffd90545b4aef191bba.tar.bz2
chat-99d79eee56a1b5a27f18fffd90545b4aef191bba.zip
add helper method to add ephemeral messages; also switch 'delete message' to this new method
Diffstat (limited to 'web/react/utils')
-rw-r--r--web/react/utils/async_client.jsx15
-rw-r--r--web/react/utils/utils.jsx5
2 files changed, 19 insertions, 1 deletions
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);
+}