From f82667f3b86202dafff3a2a4ea56aec74c80316d Mon Sep 17 00:00:00 2001
From: enahum <nahumhbl@gmail.com>
Date: Thu, 27 Oct 2016 12:24:30 -0300
Subject: PLT-4430 improve slow channel switching (#4331)

* PLT-4430 improve slow channel switching

* Update client side unit tests

* Convert getChannelsUnread to getMyChannelMembers and address other feedback

* Pull channel members on websocket reconnect
---
 webapp/utils/async_client.jsx | 33 +++++++++++++++++++++++++++++----
 1 file changed, 29 insertions(+), 4 deletions(-)

(limited to 'webapp/utils/async_client.jsx')

diff --git a/webapp/utils/async_client.jsx b/webapp/utils/async_client.jsx
index ee9d1a4f0..67100ea3f 100644
--- a/webapp/utils/async_client.jsx
+++ b/webapp/utils/async_client.jsx
@@ -80,8 +80,7 @@ export function getChannels(doVersionCheck) {
 
             AppDispatcher.handleServerAction({
                 type: ActionTypes.RECEIVED_CHANNELS,
-                channels: data.channels,
-                members: data.members
+                channels: data
             });
         },
         (err) => {
@@ -115,6 +114,33 @@ export function getChannel(id) {
     );
 }
 
+export function getMyChannelMembers(doVersionCheck) {
+    if (isCallInProgress('getMyChannelMembers')) {
+        return;
+    }
+
+    callTracker.getMyChannelMembers = utils.getTimestamp();
+
+    Client.getMyChannelMembers(
+        (data) => {
+            callTracker.getMyChannelMembers = 0;
+
+            if (doVersionCheck) {
+                checkVersion();
+            }
+
+            AppDispatcher.handleServerAction({
+                type: ActionTypes.RECEIVED_MY_CHANNEL_MEMBERS,
+                members: data
+            });
+        },
+        (err) => {
+            callTracker.getChannelsUnread = 0;
+            dispatchError(err, 'getMyChannelMembers');
+        }
+    );
+}
+
 export function updateLastViewedAt(id, active) {
     let channelId;
     if (id) {
@@ -205,8 +231,7 @@ export function getMoreChannels(force) {
 
                 AppDispatcher.handleServerAction({
                     type: ActionTypes.RECEIVED_MORE_CHANNELS,
-                    channels: data.channels,
-                    members: data.members
+                    channels: data
                 });
             },
             (err) => {
-- 
cgit v1.2.3-1-g7c22

