summaryrefslogtreecommitdiffstats
path: root/web/react/utils/async_client.jsx
diff options
context:
space:
mode:
authorJoramWilander <jwawilander@gmail.com>2015-08-12 12:45:15 -0400
committerJoramWilander <jwawilander@gmail.com>2015-08-18 08:59:26 -0400
commitfa1491bbfbb1261757943759edf44883d31e5477 (patch)
treeac5474908c28abf741371602603e22669cb4197e /web/react/utils/async_client.jsx
parentc77f6041889b2dd8c6e830b8c2f42ab9c1340849 (diff)
downloadchat-fa1491bbfbb1261757943759edf44883d31e5477.tar.gz
chat-fa1491bbfbb1261757943759edf44883d31e5477.tar.bz2
chat-fa1491bbfbb1261757943759edf44883d31e5477.zip
finalize implenetation of predictive client posts so that users get immediate feedback after posting
Diffstat (limited to 'web/react/utils/async_client.jsx')
-rw-r--r--web/react/utils/async_client.jsx29
1 files changed, 18 insertions, 11 deletions
diff --git a/web/react/utils/async_client.jsx b/web/react/utils/async_client.jsx
index 8fa022cbc..349fe9021 100644
--- a/web/react/utils/async_client.jsx
+++ b/web/react/utils/async_client.jsx
@@ -346,24 +346,33 @@ module.exports.search = function(terms) {
module.exports.getPosts = function(force, id, maxPosts) {
if (PostStore.getCurrentPosts() == null || force) {
- var channelId = id ? id : ChannelStore.getCurrentId();
+ var channelId = id;
+ if (channelId == null) {
+ channelId = ChannelStore.getCurrentId();
+ }
- if (isCallInProgress('getPosts_'+channelId)) return;
+ if (isCallInProgress('getPosts_' + channelId)) {
+ return;
+ }
- var post_list = PostStore.getCurrentPosts();
+ var postList = PostStore.getCurrentPosts();
- if (!maxPosts) { maxPosts = Constants.POST_CHUNK_SIZE * Constants.MAX_POST_CHUNKS };
+ var max = maxPosts;
+ if (max == null) {
+ max = Constants.POST_CHUNK_SIZE * Constants.MAX_POST_CHUNKS;
+ }
// if we already have more than POST_CHUNK_SIZE posts,
// let's get the amount we have but rounded up to next multiple of POST_CHUNK_SIZE,
// with a max at maxPosts
- var numPosts = Math.min(maxPosts, Constants.POST_CHUNK_SIZE);
- if (post_list && post_list.order.length > 0) {
- numPosts = Math.min(maxPosts, Constants.POST_CHUNK_SIZE * Math.ceil(post_list.order.length / Constants.POST_CHUNK_SIZE));
+ var numPosts = Math.min(max, Constants.POST_CHUNK_SIZE);
+ if (postList && postList.order.length > 0) {
+ numPosts = Math.min(max, Constants.POST_CHUNK_SIZE * Math.ceil(postList.order.length / Constants.POST_CHUNK_SIZE));
}
if (channelId != null) {
- callTracker['getPosts_'+channelId] = utils.getTimestamp();
+ callTracker['getPosts_' + channelId] = utils.getTimestamp();
+
client.getPosts(
channelId,
0,
@@ -377,15 +386,13 @@ module.exports.getPosts = function(force, id, maxPosts) {
post_list: data
});
- PostStore.removeNonFailedPendingPosts(channelId);
-
module.exports.getProfiles();
},
function(err) {
dispatchError(err, 'getPosts');
},
function() {
- callTracker['getPosts_'+channelId] = 0;
+ callTracker['getPosts_' + channelId] = 0;
}
);
}