sceyt-chat-react-uikit 1.7.8-beta.2 → 1.7.8-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.js +549 -651
  2. package/index.modern.js +549 -651
  3. package/package.json +1 -1
package/index.js CHANGED
@@ -2840,93 +2840,6 @@ function _forOf(target, body, check) {
2840
2840
 
2841
2841
  const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol("Symbol.asyncIterator"))) : "@@asyncIterator";
2842
2842
 
2843
- // Asynchronously implement a generic for loop
2844
- function _for(test, update, body) {
2845
- var stage;
2846
- for (;;) {
2847
- var shouldContinue = test();
2848
- if (_isSettledPact(shouldContinue)) {
2849
- shouldContinue = shouldContinue.v;
2850
- }
2851
- if (!shouldContinue) {
2852
- return result;
2853
- }
2854
- if (shouldContinue.then) {
2855
- stage = 0;
2856
- break;
2857
- }
2858
- var result = body();
2859
- if (result && result.then) {
2860
- if (_isSettledPact(result)) {
2861
- result = result.s;
2862
- } else {
2863
- stage = 1;
2864
- break;
2865
- }
2866
- }
2867
- if (update) {
2868
- var updateValue = update();
2869
- if (updateValue && updateValue.then && !_isSettledPact(updateValue)) {
2870
- stage = 2;
2871
- break;
2872
- }
2873
- }
2874
- }
2875
- var pact = new _Pact();
2876
- var reject = _settle.bind(null, pact, 2);
2877
- (stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);
2878
- return pact;
2879
- function _resumeAfterBody(value) {
2880
- result = value;
2881
- do {
2882
- if (update) {
2883
- updateValue = update();
2884
- if (updateValue && updateValue.then && !_isSettledPact(updateValue)) {
2885
- updateValue.then(_resumeAfterUpdate).then(void 0, reject);
2886
- return;
2887
- }
2888
- }
2889
- shouldContinue = test();
2890
- if (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {
2891
- _settle(pact, 1, result);
2892
- return;
2893
- }
2894
- if (shouldContinue.then) {
2895
- shouldContinue.then(_resumeAfterTest).then(void 0, reject);
2896
- return;
2897
- }
2898
- result = body();
2899
- if (_isSettledPact(result)) {
2900
- result = result.v;
2901
- }
2902
- } while (!result || !result.then);
2903
- result.then(_resumeAfterBody).then(void 0, reject);
2904
- }
2905
- function _resumeAfterTest(shouldContinue) {
2906
- if (shouldContinue) {
2907
- result = body();
2908
- if (result && result.then) {
2909
- result.then(_resumeAfterBody).then(void 0, reject);
2910
- } else {
2911
- _resumeAfterBody(result);
2912
- }
2913
- } else {
2914
- _settle(pact, 1, result);
2915
- }
2916
- }
2917
- function _resumeAfterUpdate() {
2918
- if (shouldContinue = test()) {
2919
- if (shouldContinue.then) {
2920
- shouldContinue.then(_resumeAfterTest).then(void 0, reject);
2921
- } else {
2922
- _resumeAfterTest(shouldContinue);
2923
- }
2924
- } else {
2925
- _settle(pact, 1, result);
2926
- }
2927
- }
2928
- }
2929
-
2930
2843
  // Asynchronously call a function and send errors to recovery continuation
2931
2844
  function _catch(body, recover) {
2932
2845
  try {
@@ -9302,7 +9215,9 @@ function updateChannelLastMessageOnAllChannels(channelId, message) {
9302
9215
  if (updateChannel) {
9303
9216
  var updateMessage = message;
9304
9217
  if (updateChannel.lastMessage && updateChannel.lastMessage.id === message.id && updateChannel.lastMessage.deliveryStatus === MESSAGE_DELIVERY_STATUS.READ) {
9305
- updateMessage.deliveryStatus = MESSAGE_DELIVERY_STATUS.READ;
9218
+ updateMessage = _extends({}, message, {
9219
+ deliveryStatus: MESSAGE_DELIVERY_STATUS.READ
9220
+ });
9306
9221
  }
9307
9222
  updateChannel = _extends({}, updateChannel, {
9308
9223
  lastMessage: updateMessage
@@ -9319,7 +9234,9 @@ function updateChannelOnAllChannels(channelId, config, messageUpdateData) {
9319
9234
  if (messageUpdateData && channel.lastMessage && messageUpdateData.id === channel.lastMessage.id) {
9320
9235
  var updateMessage = messageUpdateData;
9321
9236
  if (channel.lastMessage.id === messageUpdateData.id && channel.lastMessage.deliveryStatus === MESSAGE_DELIVERY_STATUS.READ) {
9322
- updateMessage.deliveryStatus = MESSAGE_DELIVERY_STATUS.READ;
9237
+ updateMessage = _extends({}, messageUpdateData, {
9238
+ deliveryStatus: MESSAGE_DELIVERY_STATUS.READ
9239
+ });
9323
9240
  }
9324
9241
  channel.lastMessage = _extends({}, channel.lastMessage, updateMessage);
9325
9242
  }
@@ -10326,13 +10243,16 @@ function setMessageToEditAC(message) {
10326
10243
  message: message
10327
10244
  });
10328
10245
  }
10329
- function getMessagesAC(channel, loadWithLastMessage, messageId, limit, withDeliveredMessages, highlight, behavior, scrollToMessage) {
10246
+ function getMessagesAC(channel, loadWithLastMessage, messageId, limit, highlight, behavior, scrollToMessage, networkChanged) {
10330
10247
  if (highlight === void 0) {
10331
10248
  highlight = true;
10332
10249
  }
10333
10250
  if (scrollToMessage === void 0) {
10334
10251
  scrollToMessage = true;
10335
10252
  }
10253
+ if (networkChanged === void 0) {
10254
+ networkChanged = false;
10255
+ }
10336
10256
  return {
10337
10257
  type: GET_MESSAGES,
10338
10258
  payload: {
@@ -10340,10 +10260,10 @@ function getMessagesAC(channel, loadWithLastMessage, messageId, limit, withDeliv
10340
10260
  loadWithLastMessage: loadWithLastMessage,
10341
10261
  messageId: messageId,
10342
10262
  limit: limit,
10343
- withDeliveredMessages: withDeliveredMessages,
10344
10263
  highlight: highlight,
10345
10264
  behavior: behavior,
10346
- scrollToMessage: scrollToMessage
10265
+ scrollToMessage: scrollToMessage,
10266
+ networkChanged: networkChanged
10347
10267
  }
10348
10268
  };
10349
10269
  }
@@ -10840,7 +10760,8 @@ function updatePendingMessageAC(channelId, messageId, updatedMessage) {
10840
10760
  });
10841
10761
  }
10842
10762
 
10843
- var MESSAGES_MAX_LENGTH = 80;
10763
+ var MESSAGES_MAX_PAGE_COUNT = 80;
10764
+ var MESSAGES_MAX_LENGTH = 50;
10844
10765
  var LOAD_MAX_MESSAGE_COUNT = 30;
10845
10766
  var MESSAGE_LOAD_DIRECTION = {
10846
10767
  PREV: 'prev',
@@ -10906,12 +10827,12 @@ var setAllMessages = function setAllMessages(messages) {
10906
10827
  var addAllMessages = function addAllMessages(messages, direction) {
10907
10828
  if (direction === MESSAGE_LOAD_DIRECTION.PREV) {
10908
10829
  activeChannelAllMessages = [].concat(messages, activeChannelAllMessages);
10909
- if (activeChannelAllMessages.length > MESSAGES_MAX_LENGTH) {
10830
+ if (activeChannelAllMessages.length > MESSAGES_MAX_PAGE_COUNT) {
10910
10831
  setHasNextCached(true);
10911
10832
  }
10912
10833
  } else {
10913
10834
  activeChannelAllMessages = [].concat(activeChannelAllMessages, messages);
10914
- if (activeChannelAllMessages.length > MESSAGES_MAX_LENGTH) {
10835
+ if (activeChannelAllMessages.length > MESSAGES_MAX_PAGE_COUNT) {
10915
10836
  setHasPrevCached(true);
10916
10837
  }
10917
10838
  }
@@ -10980,8 +10901,8 @@ var getHasNextCached = function getHasNextCached() {
10980
10901
  var getFromAllMessagesByMessageId = function getFromAllMessagesByMessageId(messageId, direction, getWithLastMessage) {
10981
10902
  var messagesForAdd = [];
10982
10903
  if (getWithLastMessage) {
10983
- messagesForAdd = [].concat(activeChannelAllMessages.slice(-MESSAGES_MAX_LENGTH));
10984
- setHasPrevCached(activeChannelAllMessages.length > MESSAGES_MAX_LENGTH);
10904
+ messagesForAdd = [].concat(activeChannelAllMessages.slice(-MESSAGES_MAX_PAGE_COUNT));
10905
+ setHasPrevCached(activeChannelAllMessages.length > MESSAGES_MAX_PAGE_COUNT);
10985
10906
  setHasNextCached(false);
10986
10907
  } else {
10987
10908
  var fromMessageIndex = activeChannelAllMessages.findIndex(function (mes) {
@@ -11009,14 +10930,25 @@ var getFromAllMessagesByMessageId = function getFromAllMessagesByMessageId(messa
11009
10930
  }
11010
10931
  return messagesForAdd;
11011
10932
  };
11012
- function setMessagesToMap(channelId, messages) {
11013
- if (!messagesMap[channelId] || messages.length === 0) {
10933
+ function setMessagesToMap(channelId, messages, firstMessageId, lastMessageId) {
10934
+ if (firstMessageId === void 0) {
10935
+ firstMessageId = '0';
10936
+ }
10937
+ if (lastMessageId === void 0) {
10938
+ lastMessageId = '0';
10939
+ }
10940
+ if (!messagesMap[channelId]) {
11014
10941
  messagesMap[channelId] = {};
11015
10942
  }
11016
- messages.forEach(function (msg) {
11017
- if (msg.tid && messagesMap[channelId][msg.tid]) {
11018
- delete messagesMap[channelId][msg.tid];
10943
+ for (var key in messagesMap[channelId]) {
10944
+ if (Object.prototype.hasOwnProperty.call(messagesMap[channelId], key)) {
10945
+ var element = messagesMap[channelId][key];
10946
+ if (element.id >= firstMessageId && element.id <= lastMessageId) {
10947
+ delete messagesMap[channelId][key];
10948
+ }
11019
10949
  }
10950
+ }
10951
+ messages.forEach(function (msg) {
11020
10952
  messagesMap[channelId][msg.id || msg.tid] = msg;
11021
10953
  });
11022
10954
  }
@@ -11442,42 +11374,36 @@ var messageSlice = createSlice({
11442
11374
  });
11443
11375
  });
11444
11376
  if (direction === MESSAGE_LOAD_DIRECTION.PREV && newMessagesLength > 0) {
11445
- if (currentMessagesLength + newMessagesLength >= MESSAGES_MAX_LENGTH) {
11377
+ if (currentMessagesLength + newMessagesLength > MESSAGES_MAX_PAGE_COUNT) {
11446
11378
  var _state$activeChannelM;
11447
11379
  setHasNextCached(true);
11448
11380
  if (newMessagesLength > 0) {
11449
- if (currentMessagesLength >= MESSAGES_MAX_LENGTH) {
11381
+ if (currentMessagesLength >= MESSAGES_MAX_PAGE_COUNT) {
11450
11382
  state.activeChannelMessages.splice(-newMessagesLength);
11451
11383
  } else {
11452
- state.activeChannelMessages.splice(-(newMessagesLength - (MESSAGES_MAX_LENGTH - currentMessagesLength)));
11384
+ state.activeChannelMessages.splice(-(currentMessagesLength - currentMessagesLength + newMessagesLength - MESSAGES_MAX_PAGE_COUNT));
11453
11385
  }
11454
11386
  }
11455
11387
  (_state$activeChannelM = state.activeChannelMessages).splice.apply(_state$activeChannelM, [0, 0].concat(messagesIsNotIncludeInActiveChannelMessages));
11456
- } else if (newMessagesLength + currentMessagesLength > MESSAGES_MAX_LENGTH) {
11388
+ } else {
11457
11389
  var _state$activeChannelM2;
11458
- var sliceElementCount = newMessagesLength + currentMessagesLength - MESSAGES_MAX_LENGTH;
11459
- setHasNextCached(true);
11460
- state.activeChannelMessages.splice(-sliceElementCount);
11461
11390
  (_state$activeChannelM2 = state.activeChannelMessages).splice.apply(_state$activeChannelM2, [0, 0].concat(messagesIsNotIncludeInActiveChannelMessages));
11462
- } else {
11463
- var _state$activeChannelM3;
11464
- (_state$activeChannelM3 = state.activeChannelMessages).splice.apply(_state$activeChannelM3, [0, 0].concat(messagesIsNotIncludeInActiveChannelMessages));
11465
11391
  }
11466
- } else if (direction === 'next' && newMessagesLength > 0) {
11467
- if (currentMessagesLength >= MESSAGES_MAX_LENGTH) {
11468
- var _state$activeChannelM4;
11392
+ } else if (direction === MESSAGE_LOAD_DIRECTION.NEXT && newMessagesLength > 0) {
11393
+ if (currentMessagesLength >= MESSAGES_MAX_PAGE_COUNT) {
11394
+ var _state$activeChannelM3;
11469
11395
  setHasPrevCached(true);
11470
11396
  state.activeChannelMessages.splice(0, messagesIsNotIncludeInActiveChannelMessages.length);
11397
+ (_state$activeChannelM3 = state.activeChannelMessages).push.apply(_state$activeChannelM3, messagesIsNotIncludeInActiveChannelMessages);
11398
+ } else if (newMessagesLength + currentMessagesLength > MESSAGES_MAX_PAGE_COUNT) {
11399
+ var _state$activeChannelM4;
11400
+ var sliceElementCount = newMessagesLength + currentMessagesLength - MESSAGES_MAX_PAGE_COUNT;
11401
+ setHasPrevCached(true);
11402
+ state.activeChannelMessages.splice(0, sliceElementCount);
11471
11403
  (_state$activeChannelM4 = state.activeChannelMessages).push.apply(_state$activeChannelM4, messagesIsNotIncludeInActiveChannelMessages);
11472
- } else if (newMessagesLength + currentMessagesLength > MESSAGES_MAX_LENGTH) {
11404
+ } else {
11473
11405
  var _state$activeChannelM5;
11474
- var _sliceElementCount = newMessagesLength + currentMessagesLength - MESSAGES_MAX_LENGTH;
11475
- setHasPrevCached(true);
11476
- state.activeChannelMessages.splice(0, _sliceElementCount);
11477
11406
  (_state$activeChannelM5 = state.activeChannelMessages).push.apply(_state$activeChannelM5, messagesIsNotIncludeInActiveChannelMessages);
11478
- } else {
11479
- var _state$activeChannelM6;
11480
- (_state$activeChannelM6 = state.activeChannelMessages).push.apply(_state$activeChannelM6, messagesIsNotIncludeInActiveChannelMessages);
11481
11407
  }
11482
11408
  }
11483
11409
  },
@@ -11501,6 +11427,9 @@ var messageSlice = createSlice({
11501
11427
  });
11502
11428
  }
11503
11429
  }
11430
+ state.activeChannelMessages.sort(function (a, b) {
11431
+ return !(a !== null && a !== void 0 && a.id) ? 1 : (a === null || a === void 0 ? void 0 : a.id) < (b === null || b === void 0 ? void 0 : b.id) ? -1 : 1;
11432
+ });
11504
11433
  },
11505
11434
  updateMessage: function updateMessage(state, action) {
11506
11435
  var _action$payload3 = action.payload,
@@ -11546,6 +11475,9 @@ var messageSlice = createSlice({
11546
11475
  if (!messageFound && addIfNotExists) {
11547
11476
  state.activeChannelMessages.push(params);
11548
11477
  }
11478
+ state.activeChannelMessages.sort(function (a, b) {
11479
+ return !(a !== null && a !== void 0 && a.id) ? 1 : (a === null || a === void 0 ? void 0 : a.id) < (b === null || b === void 0 ? void 0 : b.id) ? -1 : 1;
11480
+ });
11549
11481
  },
11550
11482
  updateMessageAttachment: function updateMessageAttachment(state, action) {
11551
11483
  var _action$payload4 = action.payload,
@@ -18971,111 +18903,6 @@ var getFrame = function getFrame(videoSrc, time) {
18971
18903
  }
18972
18904
  };
18973
18905
 
18974
- var processQueue = function processQueue(channelId) {
18975
- try {
18976
- var _temp4 = function _temp4() {
18977
- queue.processing = false;
18978
- log.info(new Date().toISOString() + " [ChannelQueue] Finished processing queue for channel: " + channelId);
18979
- };
18980
- var queue = getChannelQueue(channelId);
18981
- if (queue.processing || queue.queue.length === 0) {
18982
- return Promise.resolve();
18983
- }
18984
- queue.processing = true;
18985
- log.info("[ChannelQueue] Starting to process queue for channel: " + channelId + ", queue length: " + queue.queue.length);
18986
- var _temp3 = _for(function () {
18987
- return queue.queue.length > 0;
18988
- }, void 0, function () {
18989
- var queuedTask = queue.queue.shift();
18990
- var task = queuedTask.task,
18991
- resolve = queuedTask.resolve,
18992
- reject = queuedTask.reject,
18993
- functionName = queuedTask.functionName,
18994
- queuedAt = queuedTask.queuedAt;
18995
- var waitTime = queuedAt ? Date.now() - queuedAt : 0;
18996
- var functionInfo = functionName || 'unknown';
18997
- log.info("[ChannelQueue] Executing request for channel: " + channelId + ", function: " + functionInfo + ", queue position: " + (queue.queue.length + 1) + ", waited: " + waitTime + "ms");
18998
- var startTime = Date.now();
18999
- return _catch(function () {
19000
- var result = task();
19001
- var _temp2 = function () {
19002
- if (result && typeof result.then === 'function') {
19003
- return Promise.resolve(result).then(function (value) {
19004
- var duration = Date.now() - startTime;
19005
- log.info(new Date().toISOString() + " [ChannelQueue] Request completed for channel: " + channelId + ", \n function: " + functionInfo + ", duration: " + duration + "ms, remaining: " + queue.queue.length);
19006
- resolve(value);
19007
- });
19008
- } else {
19009
- var duration = Date.now() - startTime;
19010
- log.info(new Date().toISOString() + " [ChannelQueue] Request completed (sync) for channel: " + channelId + ", \n function: " + functionInfo + ", duration: " + duration + "ms, remaining: " + queue.queue.length);
19011
- resolve(result);
19012
- }
19013
- }();
19014
- if (_temp2 && _temp2.then) return _temp2.then(function () {});
19015
- }, function (error) {
19016
- var duration = Date.now() - startTime;
19017
- log.error(new Date().toISOString() + " [ChannelQueue] Request failed for channel: " + channelId + ", \n function: " + functionInfo + ", duration: " + duration + "ms, error:", error);
19018
- reject(error);
19019
- });
19020
- });
19021
- return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
19022
- } catch (e) {
19023
- return Promise.reject(e);
19024
- }
19025
- };
19026
- var channelQueues = new Map();
19027
- function getChannelQueue(channelId) {
19028
- if (!channelQueues.has(channelId)) {
19029
- channelQueues.set(channelId, {
19030
- channelId: channelId,
19031
- queue: [],
19032
- processing: false
19033
- });
19034
- }
19035
- return channelQueues.get(channelId);
19036
- }
19037
- function queueChannelRequest(channelId, task, functionName) {
19038
- return new Promise(function (resolve, reject) {
19039
- var queue = getChannelQueue(channelId);
19040
- var queuedTask = {
19041
- task: task,
19042
- resolve: resolve,
19043
- reject: reject,
19044
- functionName: functionName,
19045
- queuedAt: Date.now()
19046
- };
19047
- queue.queue.push(queuedTask);
19048
- log.info(new Date().toISOString() + " [ChannelQueue] Request queued for channel: " + channelId + ", \n function: " + (functionName || 'unknown') + ", queue length: " + queue.queue.length + ", processing: " + queue.processing);
19049
- processQueue(channelId);
19050
- });
19051
- }
19052
- function queuedChannelCall(channelId, fn) {
19053
- for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
19054
- args[_key - 2] = arguments[_key];
19055
- }
19056
- var functionName = fn.name || fn.displayName || 'anonymous';
19057
- var functionInfo = functionName + "(" + args.length + " args)";
19058
- return queueChannelRequest(channelId, function () {
19059
- try {
19060
- var _exit = false;
19061
- var result = fn.apply(void 0, args);
19062
- var _temp = function () {
19063
- if (result && typeof result.then === 'function') {
19064
- return Promise.resolve(result).then(function (_await$result) {
19065
- _exit = true;
19066
- return _await$result;
19067
- });
19068
- }
19069
- }();
19070
- return Promise.resolve(_temp && _temp.then ? _temp.then(function (_result) {
19071
- return _exit ? _result : result;
19072
- }) : _exit ? _temp : result);
19073
- } catch (e) {
19074
- return Promise.reject(e);
19075
- }
19076
- }, functionInfo);
19077
- }
19078
-
19079
18906
  var SDKErrorTypeEnum = {
19080
18907
  BadRequest: {
19081
18908
  value: 'BadRequest',
@@ -19119,6 +18946,9 @@ var fromValue = function fromValue(value) {
19119
18946
  };
19120
18947
  var isResendableError = function isResendableError(value) {
19121
18948
  var _errorType$isResendab;
18949
+ if (!value) {
18950
+ return true;
18951
+ }
19122
18952
  var errorType = fromValue(value);
19123
18953
  return (_errorType$isResendab = errorType === null || errorType === void 0 ? void 0 : errorType.isResendable) != null ? _errorType$isResendab : true;
19124
18954
  };
@@ -19256,13 +19086,13 @@ var updateMessage$1 = function updateMessage(actionType, pending, channelId, scr
19256
19086
  scrollToNewMessage = true;
19257
19087
  }
19258
19088
  return /*#__PURE__*/_regenerator().m(function _callee() {
19259
- var activeChannelId;
19089
+ var activeChannelId, channel, messages, _channel$lastMessage2, repliedMessage, scrollRef, _channel$lastMessage3;
19260
19090
  return _regenerator().w(function (_context) {
19261
19091
  while (1) switch (_context.n) {
19262
19092
  case 0:
19263
19093
  activeChannelId = getActiveChannelId();
19264
19094
  if (!(actionType !== RESEND_MESSAGE)) {
19265
- _context.n = 3;
19095
+ _context.n = 7;
19266
19096
  break;
19267
19097
  }
19268
19098
  if (activeChannelId === channelId) {
@@ -19279,12 +19109,43 @@ var updateMessage$1 = function updateMessage(actionType, pending, channelId, scr
19279
19109
  return effects.call(addPendingMessage, message, pending, channelId);
19280
19110
  case 2:
19281
19111
  if (!scrollToNewMessage) {
19282
- _context.n = 3;
19112
+ _context.n = 7;
19283
19113
  break;
19284
19114
  }
19285
19115
  _context.n = 3;
19286
- return effects.put(scrollToNewMessageAC(true, true));
19116
+ return effects.call(getChannelFromAllChannels, channelId);
19287
19117
  case 3:
19118
+ channel = _context.v;
19119
+ messages = store.getState().MessageReducer.activeChannelMessages;
19120
+ if (!(messages.findIndex(function (msg) {
19121
+ var _channel$lastMessage;
19122
+ return msg.id === (channel === null || channel === void 0 ? void 0 : (_channel$lastMessage = channel.lastMessage) === null || _channel$lastMessage === void 0 ? void 0 : _channel$lastMessage.id);
19123
+ }) >= 10)) {
19124
+ _context.n = 6;
19125
+ break;
19126
+ }
19127
+ _context.n = 4;
19128
+ return effects.put(scrollToNewMessageAC(true, false, false));
19129
+ case 4:
19130
+ _context.n = 5;
19131
+ return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADING));
19132
+ case 5:
19133
+ repliedMessage = document.getElementById(channel === null || channel === void 0 ? void 0 : (_channel$lastMessage2 = channel.lastMessage) === null || _channel$lastMessage2 === void 0 ? void 0 : _channel$lastMessage2.id);
19134
+ if (repliedMessage) {
19135
+ scrollRef = document.getElementById('scrollableDiv');
19136
+ if (scrollRef) {
19137
+ scrollRef.scrollTo({
19138
+ top: 1000,
19139
+ behavior: 'smooth'
19140
+ });
19141
+ }
19142
+ }
19143
+ _context.n = 7;
19144
+ break;
19145
+ case 6:
19146
+ _context.n = 7;
19147
+ return effects.put(getMessagesAC(channel, false, channel === null || channel === void 0 ? void 0 : (_channel$lastMessage3 = channel.lastMessage) === null || _channel$lastMessage3 === void 0 ? void 0 : _channel$lastMessage3.id, undefined, false, 'smooth', true));
19148
+ case 7:
19288
19149
  return _context.a(2);
19289
19150
  }
19290
19151
  }, _callee);
@@ -19436,7 +19297,7 @@ function sendMessage(action) {
19436
19297
  break;
19437
19298
  }
19438
19299
  _context2.n = 1;
19439
- return effects.call(updateMessage$1, action.type, _pending, channel.id, false, message);
19300
+ return effects.call(updateMessage$1, action.type, _pending, channel.id, true, message);
19440
19301
  case 1:
19441
19302
  _context2.n = 3;
19442
19303
  break;
@@ -19489,7 +19350,7 @@ function sendMessage(action) {
19489
19350
  break;
19490
19351
  }
19491
19352
  _context4.n = 11;
19492
- return effects.call(updateMessage$1, action.type, pending, channel.id, false, message);
19353
+ return effects.call(updateMessage$1, action.type, pending, channel.id, true, message);
19493
19354
  case 11:
19494
19355
  messageToSend = _extends({}, messageToSend, {
19495
19356
  attachments: attachmentsToSend
@@ -19534,7 +19395,7 @@ function sendMessage(action) {
19534
19395
  });
19535
19396
  }
19536
19397
  _context3.n = 4;
19537
- return effects.call(queuedChannelCall, channel.id, channel.sendMessage, messageToSend);
19398
+ return effects.call(channel.sendMessage, messageToSend);
19538
19399
  case 4:
19539
19400
  messageResponse = _context3.v;
19540
19401
  if (!customUploader) {
@@ -19791,7 +19652,7 @@ function sendTextMessage(action) {
19791
19652
  break;
19792
19653
  }
19793
19654
  _context5.n = 8;
19794
- return effects.call(updateMessage$1, action.type, pendingMessage, channel.id, false, message);
19655
+ return effects.call(updateMessage$1, action.type, pendingMessage, channel.id, true, message);
19795
19656
  case 8:
19796
19657
  if (!(connectionState === CONNECTION_STATUS.CONNECTED)) {
19797
19658
  _context5.n = 17;
@@ -19809,7 +19670,7 @@ function sendTextMessage(action) {
19809
19670
  break;
19810
19671
  case 10:
19811
19672
  _context5.n = 11;
19812
- return effects.call(queuedChannelCall, channel.id, channel.sendMessage, messageToSend);
19673
+ return effects.call(channel.sendMessage, messageToSend);
19813
19674
  case 11:
19814
19675
  messageResponse = _context5.v;
19815
19676
  case 12:
@@ -20042,7 +19903,7 @@ function forwardMessage(action) {
20042
19903
  break;
20043
19904
  }
20044
19905
  _context6.n = 10;
20045
- return effects.call(queuedChannelCall, channel.id, channel.sendMessage, messageToSend);
19906
+ return effects.call(channel.sendMessage, messageToSend);
20046
19907
  case 10:
20047
19908
  messageResponse = _context6.v;
20048
19909
  messageUpdateData = {
@@ -20231,7 +20092,7 @@ function deleteMessage(action) {
20231
20092
  }
20232
20093
  }
20233
20094
  _context8.n = 2;
20234
- return effects.call(queuedChannelCall, channel.id, channel.deleteMessageById, messageId, deleteOption === 'forMe');
20095
+ return effects.call(channel.deleteMessageById, messageId, deleteOption === 'forMe');
20235
20096
  case 2:
20236
20097
  deletedMessage = _context8.v;
20237
20098
  _context8.n = 3;
@@ -20296,7 +20157,7 @@ function editMessage(action) {
20296
20157
  message.attachments = [].concat(anotherAttachments, linkAttachmentsToSend);
20297
20158
  }
20298
20159
  _context9.n = 2;
20299
- return effects.call(queuedChannelCall, channel.id, channel.editMessage, _extends({}, message, {
20160
+ return effects.call(channel.editMessage, _extends({}, message, {
20300
20161
  metadata: isJSON(message.metadata) ? message.metadata : JSON.stringify(message.metadata),
20301
20162
  attachments: message.attachments.map(function (att) {
20302
20163
  return _extends({}, att, {
@@ -20429,13 +20290,13 @@ var sendPendingMessages = /*#__PURE__*/_regenerator().m(function _callee4(connec
20429
20290
  }
20430
20291
  }, _callee4, null, [[3, 9]]);
20431
20292
  });
20432
- var updateMessages = /*#__PURE__*/_regenerator().m(function _callee5(channel, updatedMessages) {
20293
+ var updateMessages = /*#__PURE__*/_regenerator().m(function _callee5(channel, updatedMessages, firstMessageId, lastMessageId) {
20433
20294
  var messages;
20434
20295
  return _regenerator().w(function (_context1) {
20435
20296
  while (1) switch (_context1.n) {
20436
20297
  case 0:
20437
20298
  messages = [].concat(updatedMessages);
20438
- setMessagesToMap(channel.id, messages);
20299
+ setMessagesToMap(channel.id, messages, firstMessageId, lastMessageId);
20439
20300
  setAllMessages(messages);
20440
20301
  _context1.n = 1;
20441
20302
  return effects.put(setMessagesAC(JSON.parse(JSON.stringify(messages))));
@@ -20460,7 +20321,7 @@ var getFilteredPendingMessages = function getFilteredPendingMessages(messages) {
20460
20321
  return filteredPendingMessages;
20461
20322
  };
20462
20323
  function getMessagesQuery(action) {
20463
- var _action$payload, channel, loadWithLastMessage, messageId, limit, withDeliveredMessages, highlight, behavior, scrollToMessage, connectionState, SceytChatClient, messageQueryBuilder, messageQuery, cachedMessages, result, allMessages, havLastMessage, sentMessages, messagesMap, filteredSentMessages, _allMessages, messageIndex, maxLengthPart, queueResult, parsedMessages, _filteredPendingMessages, updatedMessages, filteredPendingMessages, waitToSendPendingMessages, updatedChannel, _t0, _t1;
20324
+ var _action$payload, channel, loadWithLastMessage, messageId, limit, highlight, behavior, scrollToMessage, networkChanged, connectionState, SceytChatClient, messageQueryBuilder, messageQuery, cachedMessages, result, _result$messages$, _result$messages, _messages$Math$floor, messages, centerMessageId, loadWithMessageId, allMessages, messageIndex, maxLengthPart, _result$messages$2, _result$messages2, secondResult, thirdResult, fourthResult, _fourthResult, _result$messages$3, _result$messages3, _channel$lastMessage4, _channel$lastMessage5, _channel$lastMessage6, _updatedMessages$, _parsedMessages$, _parsedMessages, parsedMessages, _filteredPendingMessages, updatedMessages, messageIdForLoad, filteredPendingMessages, waitToSendPendingMessages, updatedChannel, _t0, _t1, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
20464
20325
  return _regenerator().w(function (_context10) {
20465
20326
  while (1) switch (_context10.p = _context10.n) {
20466
20327
  case 0:
@@ -20468,10 +20329,10 @@ function getMessagesQuery(action) {
20468
20329
  _context10.n = 1;
20469
20330
  return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADING));
20470
20331
  case 1:
20471
- _action$payload = action.payload, channel = _action$payload.channel, loadWithLastMessage = _action$payload.loadWithLastMessage, messageId = _action$payload.messageId, limit = _action$payload.limit, withDeliveredMessages = _action$payload.withDeliveredMessages, highlight = _action$payload.highlight, behavior = _action$payload.behavior, scrollToMessage = _action$payload.scrollToMessage;
20332
+ _action$payload = action.payload, channel = _action$payload.channel, loadWithLastMessage = _action$payload.loadWithLastMessage, messageId = _action$payload.messageId, limit = _action$payload.limit, highlight = _action$payload.highlight, behavior = _action$payload.behavior, scrollToMessage = _action$payload.scrollToMessage, networkChanged = _action$payload.networkChanged;
20472
20333
  connectionState = store.getState().UserReducer.connectionStatus;
20473
- if (!(channel.id && !channel.isMockChannel)) {
20474
- _context10.n = 51;
20334
+ if (!(channel !== null && channel !== void 0 && channel.id && !(channel !== null && channel !== void 0 && channel.isMockChannel))) {
20335
+ _context10.n = 84;
20475
20336
  break;
20476
20337
  }
20477
20338
  SceytChatClient = getClient();
@@ -20501,364 +20362,399 @@ function getMessagesQuery(action) {
20501
20362
  hasNext: false
20502
20363
  };
20503
20364
  if (!loadWithLastMessage) {
20504
- _context10.n = 15;
20365
+ _context10.n = 22;
20505
20366
  break;
20506
20367
  }
20507
- allMessages = getAllMessages();
20508
- havLastMessage = allMessages && allMessages.length && channel.lastMessage && allMessages[allMessages.length - 1] && allMessages[allMessages.length - 1].id === channel.lastMessage.id;
20509
- if (!(channel.newMessageCount && channel.newMessageCount > 0 || !havLastMessage)) {
20510
- _context10.n = 10;
20368
+ if (!(channel.newMessageCount && channel.newMessageCount > 0)) {
20369
+ _context10.n = 15;
20511
20370
  break;
20512
20371
  }
20513
20372
  setHasPrevCached(false);
20514
- setMessagesToMap(channel.id, []);
20515
20373
  setAllMessages([]);
20374
+ messageQuery.limit = MESSAGES_MAX_LENGTH;
20375
+ if (!Number(channel.lastDisplayedMessageId)) {
20376
+ _context10.n = 8;
20377
+ break;
20378
+ }
20516
20379
  if (!(connectionState === CONNECTION_STATUS.CONNECTED)) {
20517
20380
  _context10.n = 6;
20518
20381
  break;
20519
20382
  }
20520
20383
  _context10.n = 5;
20521
- return effects.call(queuedChannelCall, channel.id, function () {
20522
- try {
20523
- return Promise.resolve(messageQuery.loadPreviousMessageId('0')).then(function (firstResult) {
20524
- var _exit = false;
20525
- var _temp7 = function () {
20526
- if (firstResult.messages.length === 50) {
20527
- messageQuery.limit = 30;
20528
- return Promise.resolve(messageQuery.loadPreviousMessageId(firstResult.messages[0].id)).then(function (secondResult) {
20529
- var _messages$hasNext = {
20530
- messages: [].concat(secondResult.messages, firstResult.messages),
20531
- hasNext: secondResult.hasNext
20532
- };
20533
- _exit = true;
20534
- return _messages$hasNext;
20535
- });
20536
- }
20537
- }();
20538
- return _temp7 && _temp7.then ? _temp7.then(function (_result) {
20539
- return _exit ? _result : firstResult;
20540
- }) : _exit ? _temp7 : firstResult;
20541
- });
20542
- } catch (e) {
20543
- return Promise.reject(e);
20544
- }
20545
- });
20384
+ return effects.call(messageQuery.loadNearMessageId, channel.lastDisplayedMessageId);
20546
20385
  case 5:
20547
- result = _context10.v;
20386
+ _t1 = _context10.v;
20548
20387
  _context10.n = 7;
20549
20388
  break;
20550
20389
  case 6:
20551
- result = {
20390
+ _t1 = {
20552
20391
  messages: [],
20553
20392
  hasNext: false
20554
20393
  };
20555
20394
  case 7:
20556
- sentMessages = [];
20557
- if (withDeliveredMessages) {
20558
- sentMessages = getFromAllMessagesByMessageId('', '', true);
20559
- }
20560
- messagesMap = {};
20561
- result.messages.forEach(function (msg) {
20562
- messagesMap[msg.tid || ''] = msg;
20563
- });
20564
- filteredSentMessages = sentMessages.filter(function (msg) {
20565
- return !messagesMap[msg.tid || ''];
20566
- });
20567
- result.messages = [].concat(result.messages, filteredSentMessages).slice(filteredSentMessages.length);
20568
- _context10.n = 8;
20569
- return effects.put(setMessagesAC(JSON.parse(JSON.stringify(result.messages))));
20395
+ result = _t1;
20396
+ _context10.n = 12;
20397
+ break;
20570
20398
  case 8:
20571
- setMessagesToMap(channel.id, result.messages);
20572
- setAllMessages(result.messages);
20399
+ if (!(connectionState === CONNECTION_STATUS.CONNECTED)) {
20400
+ _context10.n = 10;
20401
+ break;
20402
+ }
20573
20403
  _context10.n = 9;
20574
- return effects.put(setMessagesHasPrevAC(true));
20404
+ return effects.call(messageQuery.loadPrevious);
20575
20405
  case 9:
20576
- _context10.n = 12;
20406
+ _t10 = _context10.v;
20407
+ _context10.n = 11;
20577
20408
  break;
20578
20409
  case 10:
20579
- result.messages = getFromAllMessagesByMessageId('', '', true);
20580
- _context10.n = 11;
20581
- return effects.put(setMessagesAC(JSON.parse(JSON.stringify(result.messages))));
20410
+ _t10 = {
20411
+ messages: [],
20412
+ hasNext: false
20413
+ };
20582
20414
  case 11:
20583
- _context10.n = 12;
20584
- return effects.put(setMessagesHasPrevAC(true));
20415
+ result = _t10;
20585
20416
  case 12:
20586
20417
  _context10.n = 13;
20587
- return effects.put(setMessagesHasNextAC(false));
20418
+ return effects.put(setMessagesAC(JSON.parse(JSON.stringify(result.messages))));
20588
20419
  case 13:
20420
+ setMessagesToMap(channel.id, result.messages, (_result$messages$ = result.messages[0]) === null || _result$messages$ === void 0 ? void 0 : _result$messages$.id, (_result$messages = result.messages[result.messages.length - 1]) === null || _result$messages === void 0 ? void 0 : _result$messages.id);
20421
+ setAllMessages(result.messages);
20422
+ _context10.n = 14;
20423
+ return effects.put(setMessagesHasPrevAC(true));
20424
+ case 14:
20425
+ _context10.n = 17;
20426
+ break;
20427
+ case 15:
20428
+ result.messages = getFromAllMessagesByMessageId('', '', true);
20429
+ _context10.n = 16;
20430
+ return effects.put(setMessagesAC(JSON.parse(JSON.stringify(result.messages))));
20431
+ case 16:
20432
+ _context10.n = 17;
20433
+ return effects.put(setMessagesHasPrevAC(true));
20434
+ case 17:
20435
+ _context10.n = 18;
20436
+ return effects.put(setMessagesHasNextAC(false));
20437
+ case 18:
20589
20438
  setHasNextCached(false);
20590
20439
  if (!(messageId && scrollToMessage)) {
20591
- _context10.n = 14;
20440
+ _context10.n = 21;
20592
20441
  break;
20593
20442
  }
20594
- _context10.n = 14;
20595
- return effects.put(setScrollToMessagesAC(messageId, highlight, behavior));
20596
- case 14:
20597
- _context10.n = 44;
20443
+ if (!(channel.newMessageCount && channel.newMessageCount > 0)) {
20444
+ _context10.n = 20;
20445
+ break;
20446
+ }
20447
+ _context10.n = 19;
20448
+ return effects.put(setScrollToMessagesAC(channel.lastDisplayedMessageId, highlight, behavior));
20449
+ case 19:
20450
+ _context10.n = 21;
20598
20451
  break;
20599
- case 15:
20452
+ case 20:
20453
+ _context10.n = 21;
20454
+ return effects.put(scrollToNewMessageAC(true));
20455
+ case 21:
20456
+ _context10.n = 77;
20457
+ break;
20458
+ case 22:
20600
20459
  if (!messageId) {
20601
- _context10.n = 29;
20460
+ _context10.n = 52;
20602
20461
  break;
20603
20462
  }
20604
- _allMessages = getAllMessages();
20605
- messageIndex = _allMessages.findIndex(function (msg) {
20606
- return msg.id === messageId;
20463
+ messages = store.getState().MessageReducer.activeChannelMessages;
20464
+ centerMessageId = (_messages$Math$floor = messages[Math.floor(messages.length / 2)]) === null || _messages$Math$floor === void 0 ? void 0 : _messages$Math$floor.id;
20465
+ loadWithMessageId = networkChanged && (messages === null || messages === void 0 ? void 0 : messages.length) > 0 ? centerMessageId : messageId;
20466
+ allMessages = getAllMessages();
20467
+ messageIndex = allMessages.findIndex(function (msg) {
20468
+ return msg.id === loadWithMessageId;
20607
20469
  });
20608
20470
  maxLengthPart = MESSAGES_MAX_LENGTH / 2;
20609
20471
  if (!(messageIndex >= maxLengthPart)) {
20610
- _context10.n = 18;
20472
+ _context10.n = 25;
20611
20473
  break;
20612
20474
  }
20613
- result.messages = _allMessages.slice(messageIndex - maxLengthPart, messageIndex + maxLengthPart);
20614
- _context10.n = 16;
20475
+ result.messages = allMessages.slice(messageIndex - maxLengthPart, messageIndex + maxLengthPart);
20476
+ _context10.n = 23;
20615
20477
  return effects.put(setMessagesAC(JSON.parse(JSON.stringify(result.messages))));
20616
- case 16:
20478
+ case 23:
20617
20479
  setHasPrevCached(messageIndex > maxLengthPart);
20618
- setHasNextCached(_allMessages.length > maxLengthPart);
20619
- _context10.n = 17;
20480
+ setHasNextCached(allMessages.length > maxLengthPart);
20481
+ _context10.n = 24;
20620
20482
  return effects.put(setMessagesHasPrevAC(true));
20621
- case 17:
20622
- _context10.n = 25;
20483
+ case 24:
20484
+ _context10.n = 48;
20623
20485
  break;
20624
- case 18:
20486
+ case 25:
20625
20487
  messageQuery.limit = MESSAGES_MAX_LENGTH;
20626
- log.info('load by message id from server ...............', messageId);
20488
+ log.info('load by message id from server ...............', loadWithMessageId);
20627
20489
  if (!(connectionState === CONNECTION_STATUS.CONNECTED)) {
20628
- _context10.n = 22;
20490
+ _context10.n = 27;
20629
20491
  break;
20630
20492
  }
20631
- _context10.n = 19;
20632
- return effects.call(queuedChannelCall, channel.id, function () {
20633
- try {
20634
- return Promise.resolve(messageQuery.loadNearMessageId(messageId)).then(function (firstResult) {
20635
- var _exit2 = false;
20636
- var _temp8 = function () {
20637
- if (firstResult.messages.length === 50) {
20638
- messageQuery.limit = MESSAGES_MAX_LENGTH - 50;
20639
- return Promise.resolve(messageQuery.loadPreviousMessageId(firstResult.messages[0].id)).then(function (secondResult) {
20640
- messageQuery.reverse = false;
20641
- return Promise.resolve(messageQuery.loadNextMessageId(firstResult.messages[firstResult.messages.length - 1].id)).then(function (thirdResult) {
20642
- messageQuery.reverse = true;
20643
- var _messages$hasNext$sec = {
20644
- messages: [].concat(secondResult.messages, firstResult.messages, thirdResult.messages),
20645
- hasNext: secondResult.hasNext,
20646
- secondResultHasNext: secondResult.hasNext
20647
- };
20648
- _exit2 = true;
20649
- return _messages$hasNext$sec;
20650
- });
20651
- });
20652
- }
20653
- }();
20654
- return _temp8 && _temp8.then ? _temp8.then(function (_result2) {
20655
- return _exit2 ? _result2 : firstResult;
20656
- }) : _exit2 ? _temp8 : firstResult;
20657
- });
20658
- } catch (e) {
20659
- return Promise.reject(e);
20660
- }
20661
- });
20662
- case 19:
20663
- queueResult = _context10.v;
20664
- result = queueResult;
20665
- if (!(result.messages.length === 50 && result.secondResultHasNext !== undefined)) {
20666
- _context10.n = 21;
20493
+ _context10.n = 26;
20494
+ return effects.call(messageQuery.loadNearMessageId, loadWithMessageId);
20495
+ case 26:
20496
+ _t11 = _context10.v;
20497
+ _context10.n = 28;
20498
+ break;
20499
+ case 27:
20500
+ _t11 = {
20501
+ messages: [],
20502
+ hasNext: false
20503
+ };
20504
+ case 28:
20505
+ result = _t11;
20506
+ _context10.n = 29;
20507
+ return effects.put(setMessagesAC(JSON.parse(JSON.stringify(result.messages))));
20508
+ case 29:
20509
+ if (!(result.messages.length === 50)) {
20510
+ _context10.n = 47;
20667
20511
  break;
20668
20512
  }
20669
- _context10.n = 20;
20670
- return effects.put(setMessagesHasPrevAC(result.secondResultHasNext));
20671
- case 20:
20672
- result = {
20673
- messages: result.messages,
20674
- hasNext: result.hasNext
20513
+ messageQuery.limit = (MESSAGES_MAX_PAGE_COUNT - 50) / 2;
20514
+ if (!(connectionState === CONNECTION_STATUS.CONNECTED)) {
20515
+ _context10.n = 31;
20516
+ break;
20517
+ }
20518
+ _context10.n = 30;
20519
+ return effects.call(messageQuery.loadPreviousMessageId, result.messages[0].id);
20520
+ case 30:
20521
+ _t12 = _context10.v;
20522
+ _context10.n = 32;
20523
+ break;
20524
+ case 31:
20525
+ _t12 = {
20526
+ messages: [],
20527
+ hasNext: false
20675
20528
  };
20676
- case 21:
20677
- _context10.n = 23;
20529
+ case 32:
20530
+ secondResult = _t12;
20531
+ result.messages = [].concat(secondResult.messages, result.messages);
20532
+ _context10.n = 33;
20533
+ return effects.put(addMessagesAC(JSON.parse(JSON.stringify(secondResult.messages)), MESSAGE_LOAD_DIRECTION.PREV));
20534
+ case 33:
20535
+ messageQuery.limit = MESSAGES_MAX_PAGE_COUNT - 50 - secondResult.messages.length;
20536
+ messageQuery.reverse = false;
20537
+ if (!(connectionState === CONNECTION_STATUS.CONNECTED)) {
20538
+ _context10.n = 35;
20539
+ break;
20540
+ }
20541
+ _context10.n = 34;
20542
+ return effects.call(messageQuery.loadNextMessageId, result.messages[result.messages.length - 1].id);
20543
+ case 34:
20544
+ _t13 = _context10.v;
20545
+ _context10.n = 36;
20678
20546
  break;
20679
- case 22:
20680
- result = {
20547
+ case 35:
20548
+ _t13 = {
20681
20549
  messages: [],
20682
20550
  hasNext: false
20683
20551
  };
20684
- case 23:
20685
- _context10.n = 24;
20686
- return effects.put(setMessagesAC(JSON.parse(JSON.stringify(result.messages))));
20687
- case 24:
20688
- setMessagesToMap(channel.id, result.messages);
20552
+ case 36:
20553
+ thirdResult = _t13;
20554
+ result.messages = [].concat(result.messages, thirdResult.messages);
20555
+ _context10.n = 37;
20556
+ return effects.put(addMessagesAC(JSON.parse(JSON.stringify(thirdResult.messages)), MESSAGE_LOAD_DIRECTION.NEXT));
20557
+ case 37:
20558
+ if (!(secondResult.hasNext && !thirdResult.hasNext)) {
20559
+ _context10.n = 42;
20560
+ break;
20561
+ }
20562
+ messageQuery.limit = MESSAGES_MAX_PAGE_COUNT - 50 - secondResult.messages.length - result.messages.length;
20563
+ if (!(connectionState === CONNECTION_STATUS.CONNECTED)) {
20564
+ _context10.n = 39;
20565
+ break;
20566
+ }
20567
+ _context10.n = 38;
20568
+ return effects.call(messageQuery.loadPreviousMessageId, result.messages[0].id);
20569
+ case 38:
20570
+ _t14 = _context10.v;
20571
+ _context10.n = 40;
20572
+ break;
20573
+ case 39:
20574
+ _t14 = {
20575
+ messages: [],
20576
+ hasNext: false
20577
+ };
20578
+ case 40:
20579
+ fourthResult = _t14;
20580
+ result.messages = [].concat(fourthResult.messages, result.messages);
20581
+ _context10.n = 41;
20582
+ return effects.put(addMessagesAC(JSON.parse(JSON.stringify(fourthResult.messages)), MESSAGE_LOAD_DIRECTION.PREV));
20583
+ case 41:
20584
+ _context10.n = 46;
20585
+ break;
20586
+ case 42:
20587
+ if (!(!secondResult.hasNext && thirdResult.hasNext)) {
20588
+ _context10.n = 46;
20589
+ break;
20590
+ }
20591
+ messageQuery.limit = MESSAGES_MAX_PAGE_COUNT - 50 - secondResult.messages.length - result.messages.length;
20592
+ if (!(connectionState === CONNECTION_STATUS.CONNECTED)) {
20593
+ _context10.n = 44;
20594
+ break;
20595
+ }
20596
+ _context10.n = 43;
20597
+ return effects.call(messageQuery.loadNextMessageId, result.messages[result.messages.length - 1].id);
20598
+ case 43:
20599
+ _t15 = _context10.v;
20600
+ _context10.n = 45;
20601
+ break;
20602
+ case 44:
20603
+ _t15 = {
20604
+ messages: [],
20605
+ hasNext: false
20606
+ };
20607
+ case 45:
20608
+ _fourthResult = _t15;
20609
+ result.messages = [].concat(result.messages, _fourthResult.messages);
20610
+ _context10.n = 46;
20611
+ return effects.put(addMessagesAC(JSON.parse(JSON.stringify(_fourthResult.messages)), MESSAGE_LOAD_DIRECTION.NEXT));
20612
+ case 46:
20613
+ messageQuery.reverse = true;
20614
+ case 47:
20615
+ setMessagesToMap(channel.id, result.messages, (_result$messages$2 = result.messages[0]) === null || _result$messages$2 === void 0 ? void 0 : _result$messages$2.id, (_result$messages2 = result.messages[result.messages.length - 1]) === null || _result$messages2 === void 0 ? void 0 : _result$messages2.id);
20689
20616
  setAllMessages([].concat(result.messages));
20690
20617
  setHasPrevCached(false);
20691
20618
  setHasNextCached(false);
20692
- case 25:
20693
- _context10.n = 26;
20619
+ case 48:
20620
+ _context10.n = 49;
20694
20621
  return effects.put(setMessagesHasNextAC(true));
20695
- case 26:
20622
+ case 49:
20696
20623
  if (!scrollToMessage) {
20697
- _context10.n = 27;
20624
+ _context10.n = 50;
20698
20625
  break;
20699
20626
  }
20700
- _context10.n = 27;
20701
- return effects.put(setScrollToMessagesAC(messageId, true, behavior));
20702
- case 27:
20703
- _context10.n = 28;
20627
+ _context10.n = 50;
20628
+ return effects.put(setScrollToMessagesAC(loadWithMessageId, highlight, behavior));
20629
+ case 50:
20630
+ _context10.n = 51;
20704
20631
  return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
20705
- case 28:
20706
- _context10.n = 44;
20632
+ case 51:
20633
+ _context10.n = 77;
20707
20634
  break;
20708
- case 29:
20635
+ case 52:
20709
20636
  if (!(channel.newMessageCount && channel.lastDisplayedMessageId)) {
20710
- _context10.n = 36;
20637
+ _context10.n = 64;
20711
20638
  break;
20712
20639
  }
20713
- setMessagesToMap(channel.id, []);
20714
20640
  setAllMessages([]);
20715
20641
  messageQuery.limit = MESSAGES_MAX_LENGTH;
20642
+ if (!Number(channel.lastDisplayedMessageId)) {
20643
+ _context10.n = 56;
20644
+ break;
20645
+ }
20716
20646
  if (!(connectionState === CONNECTION_STATUS.CONNECTED)) {
20717
- _context10.n = 31;
20647
+ _context10.n = 54;
20718
20648
  break;
20719
20649
  }
20720
- _context10.n = 30;
20721
- return effects.call(queuedChannelCall, channel.id, function () {
20722
- try {
20723
- if (Number(channel.lastDisplayedMessageId)) {
20724
- return Promise.resolve(messageQuery.loadNearMessageId(channel.lastDisplayedMessageId)).then(function (firstResult) {
20725
- var _exit3 = false;
20726
- var _temp9 = function () {
20727
- if (firstResult.messages.length === 50) {
20728
- messageQuery.limit = channel.newMessageCount > 25 ? (MESSAGES_MAX_LENGTH - 50) / 2 : MESSAGES_MAX_LENGTH - 50;
20729
- return Promise.resolve(messageQuery.loadPreviousMessageId(firstResult.messages[0].id)).then(function (secondResult) {
20730
- if (channel.newMessageCount > 25) {
20731
- messageQuery.reverse = false;
20732
- return Promise.resolve(messageQuery.loadNextMessageId(firstResult.messages[firstResult.messages.length - 1].id)).then(function (thirdResult) {
20733
- messageQuery.reverse = true;
20734
- var _messages$hasNext2 = {
20735
- messages: [].concat(secondResult.messages, firstResult.messages, thirdResult.messages),
20736
- hasNext: secondResult.hasNext
20737
- };
20738
- _exit3 = true;
20739
- return _messages$hasNext2;
20740
- });
20741
- } else {
20742
- var _messages$hasNext3 = {
20743
- messages: [].concat(secondResult.messages, firstResult.messages),
20744
- hasNext: secondResult.hasNext
20745
- };
20746
- _exit3 = true;
20747
- return _messages$hasNext3;
20748
- }
20749
- });
20750
- }
20751
- }();
20752
- return _temp9 && _temp9.then ? _temp9.then(function (_result3) {
20753
- return _exit3 ? _result3 : firstResult;
20754
- }) : _exit3 ? _temp9 : firstResult;
20755
- });
20756
- } else {
20757
- return Promise.resolve(messageQuery.loadPrevious()).then(function (firstResult) {
20758
- var _exit4 = false;
20759
- var _temp0 = function () {
20760
- if (firstResult.messages.length === 50) {
20761
- messageQuery.limit = MESSAGES_MAX_LENGTH - 50;
20762
- return Promise.resolve(messageQuery.loadPreviousMessageId(firstResult.messages[0].id)).then(function (secondResult) {
20763
- var _messages$hasNext4 = {
20764
- messages: [].concat(secondResult.messages, firstResult.messages),
20765
- hasNext: secondResult.hasNext
20766
- };
20767
- _exit4 = true;
20768
- return _messages$hasNext4;
20769
- });
20770
- }
20771
- }();
20772
- return _temp0 && _temp0.then ? _temp0.then(function (_result4) {
20773
- return _exit4 ? _result4 : firstResult;
20774
- }) : _exit4 ? _temp0 : firstResult;
20775
- });
20776
- }
20777
- } catch (e) {
20778
- return Promise.reject(e);
20779
- }
20780
- });
20781
- case 30:
20782
- result = _context10.v;
20783
- _context10.n = 32;
20650
+ _context10.n = 53;
20651
+ return effects.call(messageQuery.loadNearMessageId, channel.lastDisplayedMessageId);
20652
+ case 53:
20653
+ _t16 = _context10.v;
20654
+ _context10.n = 55;
20784
20655
  break;
20785
- case 31:
20786
- result = {
20656
+ case 54:
20657
+ _t16 = {
20787
20658
  messages: [],
20788
20659
  hasNext: false
20789
20660
  };
20790
- case 32:
20791
- _context10.n = 33;
20661
+ case 55:
20662
+ result = _t16;
20663
+ _context10.n = 60;
20664
+ break;
20665
+ case 56:
20666
+ if (!(connectionState === CONNECTION_STATUS.CONNECTED)) {
20667
+ _context10.n = 58;
20668
+ break;
20669
+ }
20670
+ _context10.n = 57;
20671
+ return effects.call(messageQuery.loadPrevious);
20672
+ case 57:
20673
+ _t17 = _context10.v;
20674
+ _context10.n = 59;
20675
+ break;
20676
+ case 58:
20677
+ _t17 = {
20678
+ messages: [],
20679
+ hasNext: false
20680
+ };
20681
+ case 59:
20682
+ result = _t17;
20683
+ case 60:
20684
+ _context10.n = 61;
20792
20685
  return effects.put(setMessagesHasPrevAC(true));
20793
- case 33:
20794
- _context10.n = 34;
20686
+ case 61:
20687
+ _context10.n = 62;
20795
20688
  return effects.put(setMessagesHasNextAC(channel.lastMessage && result.messages.length > 0 && channel.lastMessage.id !== result.messages[result.messages.length - 1].id));
20796
- case 34:
20797
- setMessagesToMap(channel.id, result.messages);
20689
+ case 62:
20690
+ setMessagesToMap(channel.id, result.messages, (_result$messages$3 = result.messages[0]) === null || _result$messages$3 === void 0 ? void 0 : _result$messages$3.id, (_result$messages3 = result.messages[result.messages.length - 1]) === null || _result$messages3 === void 0 ? void 0 : _result$messages3.id);
20798
20691
  setAllMessages([].concat(result.messages));
20799
- _context10.n = 35;
20692
+ _context10.n = 63;
20800
20693
  return effects.put(setMessagesAC(JSON.parse(JSON.stringify(result.messages))));
20801
- case 35:
20802
- _context10.n = 44;
20694
+ case 63:
20695
+ _context10.n = 77;
20803
20696
  break;
20804
- case 36:
20805
- setMessagesToMap(channel.id, []);
20806
- setAllMessages([]);
20697
+ case 64:
20807
20698
  if (!(cachedMessages && cachedMessages.length)) {
20808
- _context10.n = 38;
20699
+ _context10.n = 66;
20809
20700
  break;
20810
20701
  }
20811
- parsedMessages = JSON.parse(JSON.stringify(cachedMessages));
20812
- setMessagesToMap(channel.id, parsedMessages);
20813
- setAllMessages(parsedMessages);
20814
- _context10.n = 37;
20815
- return effects.put(setMessagesAC(parsedMessages));
20816
- case 37:
20702
+ parsedMessages = getFromAllMessagesByMessageId('', '', true);
20703
+ setMessagesToMap(channel.id, parsedMessages, (_parsedMessages$ = parsedMessages[0]) === null || _parsedMessages$ === void 0 ? void 0 : _parsedMessages$.id, (_parsedMessages = parsedMessages[parsedMessages.length - 1]) === null || _parsedMessages === void 0 ? void 0 : _parsedMessages.id);
20704
+ _context10.n = 65;
20705
+ return effects.put(setMessagesAC(JSON.parse(JSON.stringify(parsedMessages))));
20706
+ case 65:
20817
20707
  _filteredPendingMessages = getFilteredPendingMessages(parsedMessages);
20818
- _context10.n = 38;
20708
+ _context10.n = 66;
20819
20709
  return effects.put(addMessagesAC(_filteredPendingMessages, MESSAGE_LOAD_DIRECTION.NEXT));
20820
- case 38:
20710
+ case 66:
20821
20711
  log.info('load message from server');
20712
+ result = {
20713
+ messages: [],
20714
+ hasNext: false
20715
+ };
20716
+ if (!((channel === null || channel === void 0 ? void 0 : channel.lastDisplayedMessageId) > (channel === null || channel === void 0 ? void 0 : (_channel$lastMessage4 = channel.lastMessage) === null || _channel$lastMessage4 === void 0 ? void 0 : _channel$lastMessage4.id))) {
20717
+ _context10.n = 70;
20718
+ break;
20719
+ }
20822
20720
  if (!(connectionState === CONNECTION_STATUS.CONNECTED)) {
20823
- _context10.n = 40;
20721
+ _context10.n = 68;
20824
20722
  break;
20825
20723
  }
20826
- _context10.n = 39;
20827
- return effects.call(queuedChannelCall, channel.id, function () {
20828
- try {
20829
- return Promise.resolve(messageQuery.loadPrevious()).then(function (firstResult) {
20830
- var _exit5 = false;
20831
- var _temp1 = function () {
20832
- if (firstResult.messages.length === 50) {
20833
- messageQuery.limit = MESSAGES_MAX_LENGTH - 50;
20834
- return Promise.resolve(messageQuery.loadPreviousMessageId(firstResult.messages[0].id)).then(function (secondResult) {
20835
- var _messages$hasNext5 = {
20836
- messages: [].concat(secondResult.messages, firstResult.messages),
20837
- hasNext: secondResult.hasNext
20838
- };
20839
- _exit5 = true;
20840
- return _messages$hasNext5;
20841
- });
20842
- }
20843
- }();
20844
- return _temp1 && _temp1.then ? _temp1.then(function (_result5) {
20845
- return _exit5 ? _result5 : firstResult;
20846
- }) : _exit5 ? _temp1 : firstResult;
20847
- });
20848
- } catch (e) {
20849
- return Promise.reject(e);
20850
- }
20851
- });
20852
- case 39:
20853
- result = _context10.v;
20854
- _context10.n = 41;
20724
+ _context10.n = 67;
20725
+ return effects.call(messageQuery.loadPreviousMessageId, channel === null || channel === void 0 ? void 0 : channel.lastDisplayedMessageId);
20726
+ case 67:
20727
+ _t18 = _context10.v;
20728
+ _context10.n = 69;
20855
20729
  break;
20856
- case 40:
20857
- result = {
20730
+ case 68:
20731
+ _t18 = {
20858
20732
  messages: [],
20859
20733
  hasNext: false
20860
20734
  };
20861
- case 41:
20735
+ case 69:
20736
+ result = _t18;
20737
+ _context10.n = 74;
20738
+ break;
20739
+ case 70:
20740
+ if (!(connectionState === CONNECTION_STATUS.CONNECTED)) {
20741
+ _context10.n = 72;
20742
+ break;
20743
+ }
20744
+ _context10.n = 71;
20745
+ return effects.call(messageQuery.loadPrevious);
20746
+ case 71:
20747
+ _t19 = _context10.v;
20748
+ _context10.n = 73;
20749
+ break;
20750
+ case 72:
20751
+ _t19 = {
20752
+ messages: [],
20753
+ hasNext: false
20754
+ };
20755
+ case 73:
20756
+ result = _t19;
20757
+ case 74:
20862
20758
  updatedMessages = [];
20863
20759
  result.messages.forEach(function (msg) {
20864
20760
  var updatedMessage = updateMessageOnMap(channel.id, {
@@ -20868,72 +20764,73 @@ function getMessagesQuery(action) {
20868
20764
  updateMessageOnAllMessages(msg.id, updatedMessage || msg);
20869
20765
  updatedMessages.push(updatedMessage || msg);
20870
20766
  });
20871
- _context10.n = 42;
20872
- return effects.call(updateMessages, channel, updatedMessages);
20873
- case 42:
20874
- _context10.n = 43;
20767
+ messageIdForLoad = (channel === null || channel === void 0 ? void 0 : channel.lastDisplayedMessageId) > (channel === null || channel === void 0 ? void 0 : (_channel$lastMessage5 = channel.lastMessage) === null || _channel$lastMessage5 === void 0 ? void 0 : _channel$lastMessage5.id) ? (channel === null || channel === void 0 ? void 0 : channel.lastDisplayedMessageId) || '0' : (channel === null || channel === void 0 ? void 0 : (_channel$lastMessage6 = channel.lastMessage) === null || _channel$lastMessage6 === void 0 ? void 0 : _channel$lastMessage6.id) || '0';
20768
+ _context10.n = 75;
20769
+ return effects.call(updateMessages, channel, updatedMessages, (_updatedMessages$ = updatedMessages[0]) === null || _updatedMessages$ === void 0 ? void 0 : _updatedMessages$.id, messageIdForLoad);
20770
+ case 75:
20771
+ _context10.n = 76;
20875
20772
  return effects.put(setMessagesHasPrevAC(true));
20876
- case 43:
20877
- _context10.n = 44;
20773
+ case 76:
20774
+ _context10.n = 77;
20878
20775
  return effects.put(setMessagesHasNextAC(false));
20879
- case 44:
20776
+ case 77:
20880
20777
  filteredPendingMessages = getFilteredPendingMessages(result.messages);
20881
- _context10.n = 45;
20778
+ _context10.n = 78;
20882
20779
  return effects.put(addMessagesAC(filteredPendingMessages, MESSAGE_LOAD_DIRECTION.NEXT));
20883
- case 45:
20780
+ case 78:
20884
20781
  waitToSendPendingMessages = store.getState().UserReducer.waitToSendPendingMessages;
20885
20782
  if (!(connectionState === CONNECTION_STATUS.CONNECTED && waitToSendPendingMessages)) {
20886
- _context10.n = 47;
20783
+ _context10.n = 80;
20887
20784
  break;
20888
20785
  }
20889
- _context10.n = 46;
20786
+ _context10.n = 79;
20890
20787
  return effects.put(setWaitToSendPendingMessagesAC(false));
20891
- case 46:
20892
- _context10.n = 47;
20788
+ case 79:
20789
+ _context10.n = 80;
20893
20790
  return effects.spawn(sendPendingMessages, connectionState);
20894
- case 47:
20895
- _context10.n = 48;
20896
- return effects.call(queuedChannelCall, channel.id, SceytChatClient.getChannel, channel.id, true);
20897
- case 48:
20791
+ case 80:
20792
+ _context10.n = 81;
20793
+ return effects.call(SceytChatClient.getChannel, channel.id, true);
20794
+ case 81:
20898
20795
  updatedChannel = _context10.v;
20899
20796
  if (!updatedChannel) {
20900
- _context10.n = 50;
20797
+ _context10.n = 83;
20901
20798
  break;
20902
20799
  }
20903
- _context10.n = 49;
20800
+ _context10.n = 82;
20904
20801
  return effects.put(updateChannelLastMessageAC(updatedChannel.lastMessage, updatedChannel));
20905
- case 49:
20802
+ case 82:
20906
20803
  updateChannelLastMessageOnAllChannels(channel.id, updatedChannel.lastMessage);
20907
- case 50:
20908
- _context10.n = 52;
20804
+ case 83:
20805
+ _context10.n = 85;
20909
20806
  break;
20910
- case 51:
20911
- if (!channel.isMockChannel) {
20912
- _context10.n = 52;
20807
+ case 84:
20808
+ if (!(channel !== null && channel !== void 0 && channel.isMockChannel)) {
20809
+ _context10.n = 85;
20913
20810
  break;
20914
20811
  }
20915
- _context10.n = 52;
20812
+ _context10.n = 85;
20916
20813
  return effects.put(setMessagesAC([]));
20917
- case 52:
20918
- _context10.n = 54;
20814
+ case 85:
20815
+ _context10.n = 87;
20919
20816
  break;
20920
- case 53:
20921
- _context10.p = 53;
20922
- _t1 = _context10.v;
20923
- log.error('error in message query', _t1);
20924
- case 54:
20925
- _context10.p = 54;
20926
- _context10.n = 55;
20817
+ case 86:
20818
+ _context10.p = 86;
20819
+ _t20 = _context10.v;
20820
+ log.error('error in message query', _t20);
20821
+ case 87:
20822
+ _context10.p = 87;
20823
+ _context10.n = 88;
20927
20824
  return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
20928
- case 55:
20929
- return _context10.f(54);
20930
- case 56:
20825
+ case 88:
20826
+ return _context10.f(87);
20827
+ case 89:
20931
20828
  return _context10.a(2);
20932
20829
  }
20933
- }, _marked7$1, null, [[0, 53, 54, 56]]);
20830
+ }, _marked7$1, null, [[0, 86, 87, 89]]);
20934
20831
  }
20935
20832
  function getMessageQuery(action) {
20936
- var payload, channelId, messageId, channel, connectionState, messages, fetchedMessage, _t10;
20833
+ var payload, channelId, messageId, channel, connectionState, messages, fetchedMessage, _t21;
20937
20834
  return _regenerator().w(function (_context11) {
20938
20835
  while (1) switch (_context11.p = _context11.n) {
20939
20836
  case 0:
@@ -20983,15 +20880,15 @@ function getMessageQuery(action) {
20983
20880
  break;
20984
20881
  case 7:
20985
20882
  _context11.p = 7;
20986
- _t10 = _context11.v;
20987
- log.error('error in message query', _t10);
20883
+ _t21 = _context11.v;
20884
+ log.error('error in message query', _t21);
20988
20885
  case 8:
20989
20886
  return _context11.a(2);
20990
20887
  }
20991
20888
  }, _marked8$1, null, [[0, 7]]);
20992
20889
  }
20993
20890
  function loadMoreMessages(action) {
20994
- var payload, limit, direction, channelId, messageId, hasNext, SceytChatClient, messageQueryBuilder, messageQuery, result, _t11;
20891
+ var payload, limit, direction, channelId, messageId, hasNext, SceytChatClient, messageQueryBuilder, messageQuery, result, _result$messages$4, _result$messages4, _result$messages$5, _result$messages5, _t22;
20995
20892
  return _regenerator().w(function (_context12) {
20996
20893
  while (1) switch (_context12.p = _context12.n) {
20997
20894
  case 0:
@@ -21030,12 +20927,12 @@ function loadMoreMessages(action) {
21030
20927
  break;
21031
20928
  }
21032
20929
  _context12.n = 4;
21033
- return effects.call(queuedChannelCall, channelId, messageQuery.loadPreviousMessageId, messageId);
20930
+ return effects.call(messageQuery.loadPreviousMessageId, messageId);
21034
20931
  case 4:
21035
20932
  result = _context12.v;
21036
20933
  if (result.messages.length) {
21037
20934
  addAllMessages(result.messages, MESSAGE_LOAD_DIRECTION.PREV);
21038
- setMessagesToMap(channelId, result.messages);
20935
+ setMessagesToMap(channelId, result.messages, (_result$messages$4 = result.messages[0]) === null || _result$messages$4 === void 0 ? void 0 : _result$messages$4.id, (_result$messages4 = result.messages[result.messages.length - 1]) === null || _result$messages4 === void 0 ? void 0 : _result$messages4.id);
21039
20936
  }
21040
20937
  _context12.n = 5;
21041
20938
  return effects.put(setMessagesHasPrevAC(result.hasNext));
@@ -21058,12 +20955,12 @@ function loadMoreMessages(action) {
21058
20955
  log.info('saga load next from server ... ', messageId);
21059
20956
  messageQuery.reverse = false;
21060
20957
  _context12.n = 8;
21061
- return effects.call(queuedChannelCall, channelId, messageQuery.loadNextMessageId, messageId);
20958
+ return effects.call(messageQuery.loadNextMessageId, messageId);
21062
20959
  case 8:
21063
20960
  result = _context12.v;
21064
20961
  if (result.messages.length) {
21065
20962
  addAllMessages(result.messages, MESSAGE_LOAD_DIRECTION.NEXT);
21066
- setMessagesToMap(channelId, result.messages);
20963
+ setMessagesToMap(channelId, result.messages, (_result$messages$5 = result.messages[0]) === null || _result$messages$5 === void 0 ? void 0 : _result$messages$5.id, (_result$messages5 = result.messages[result.messages.length - 1]) === null || _result$messages5 === void 0 ? void 0 : _result$messages5.id);
21067
20964
  }
21068
20965
  _context12.n = 9;
21069
20966
  return effects.put(setMessagesHasNextAC(result.hasNext));
@@ -21104,15 +21001,15 @@ function loadMoreMessages(action) {
21104
21001
  break;
21105
21002
  case 18:
21106
21003
  _context12.p = 18;
21107
- _t11 = _context12.v;
21108
- log.error('error in load more messages', _t11);
21004
+ _t22 = _context12.v;
21005
+ log.error('error in load more messages', _t22);
21109
21006
  case 19:
21110
21007
  return _context12.a(2);
21111
21008
  }
21112
21009
  }, _marked9$1, null, [[0, 18]]);
21113
21010
  }
21114
21011
  function addReaction(action) {
21115
- var payload, channelId, messageId, key, score, reason, enforceUnique, user, channel, _yield$call, message, reaction, channelUpdateParam, _t12;
21012
+ var payload, channelId, messageId, key, score, reason, enforceUnique, user, channel, _yield$call, message, reaction, channelUpdateParam, _t23;
21116
21013
  return _regenerator().w(function (_context13) {
21117
21014
  while (1) switch (_context13.p = _context13.n) {
21118
21015
  case 0:
@@ -21131,7 +21028,7 @@ function addReaction(action) {
21131
21028
  }
21132
21029
  }
21133
21030
  _context13.n = 2;
21134
- return effects.call(queuedChannelCall, channelId, channel.addReaction, messageId, key, score, reason, enforceUnique);
21031
+ return effects.call(channel.addReaction, messageId, key, score, reason, enforceUnique);
21135
21032
  case 2:
21136
21033
  _yield$call = _context13.v;
21137
21034
  message = _yield$call.message;
@@ -21165,15 +21062,15 @@ function addReaction(action) {
21165
21062
  break;
21166
21063
  case 8:
21167
21064
  _context13.p = 8;
21168
- _t12 = _context13.v;
21169
- log.error('ERROR in add reaction', _t12.message);
21065
+ _t23 = _context13.v;
21066
+ log.error('ERROR in add reaction', _t23.message);
21170
21067
  case 9:
21171
21068
  return _context13.a(2);
21172
21069
  }
21173
21070
  }, _marked0$1, null, [[0, 8]]);
21174
21071
  }
21175
21072
  function deleteReaction(action) {
21176
- var payload, channelId, messageId, key, isLastReaction, channel, _yield$call2, message, reaction, channelUpdateParam, _t13;
21073
+ var payload, channelId, messageId, key, isLastReaction, channel, _yield$call2, message, reaction, channelUpdateParam, _t24;
21177
21074
  return _regenerator().w(function (_context14) {
21178
21075
  while (1) switch (_context14.p = _context14.n) {
21179
21076
  case 0:
@@ -21191,7 +21088,7 @@ function deleteReaction(action) {
21191
21088
  }
21192
21089
  }
21193
21090
  _context14.n = 2;
21194
- return effects.call(queuedChannelCall, channelId, channel.deleteReaction, messageId, key);
21091
+ return effects.call(channel.deleteReaction, messageId, key);
21195
21092
  case 2:
21196
21093
  _yield$call2 = _context14.v;
21197
21094
  message = _yield$call2.message;
@@ -21221,15 +21118,15 @@ function deleteReaction(action) {
21221
21118
  break;
21222
21119
  case 7:
21223
21120
  _context14.p = 7;
21224
- _t13 = _context14.v;
21225
- log.error('ERROR in delete reaction', _t13.message);
21121
+ _t24 = _context14.v;
21122
+ log.error('ERROR in delete reaction', _t24.message);
21226
21123
  case 8:
21227
21124
  return _context14.a(2);
21228
21125
  }
21229
21126
  }, _marked1$1, null, [[0, 7]]);
21230
21127
  }
21231
21128
  function getReactions(action) {
21232
- var payload, messageId, key, limit, SceytChatClient, reactionQueryBuilder, reactionQuery, result, _t14;
21129
+ var payload, messageId, key, limit, SceytChatClient, reactionQueryBuilder, reactionQuery, result, _t25;
21233
21130
  return _regenerator().w(function (_context15) {
21234
21131
  while (1) switch (_context15.p = _context15.n) {
21235
21132
  case 0:
@@ -21264,15 +21161,15 @@ function getReactions(action) {
21264
21161
  break;
21265
21162
  case 6:
21266
21163
  _context15.p = 6;
21267
- _t14 = _context15.v;
21268
- log.error('ERROR in get reactions', _t14.message);
21164
+ _t25 = _context15.v;
21165
+ log.error('ERROR in get reactions', _t25.message);
21269
21166
  case 7:
21270
21167
  return _context15.a(2);
21271
21168
  }
21272
21169
  }, _marked10$1, null, [[0, 6]]);
21273
21170
  }
21274
21171
  function loadMoreReactions(action) {
21275
- var payload, limit, ReactionQuery, result, _t15;
21172
+ var payload, limit, ReactionQuery, result, _t26;
21276
21173
  return _regenerator().w(function (_context16) {
21277
21174
  while (1) switch (_context16.p = _context16.n) {
21278
21175
  case 0:
@@ -21300,15 +21197,15 @@ function loadMoreReactions(action) {
21300
21197
  break;
21301
21198
  case 5:
21302
21199
  _context16.p = 5;
21303
- _t15 = _context16.v;
21304
- log.error('ERROR in load more reactions', _t15.message);
21200
+ _t26 = _context16.v;
21201
+ log.error('ERROR in load more reactions', _t26.message);
21305
21202
  case 6:
21306
21203
  return _context16.a(2);
21307
21204
  }
21308
21205
  }, _marked11$1, null, [[0, 5]]);
21309
21206
  }
21310
21207
  function getMessageAttachments(action) {
21311
- var _action$payload2, channelId, attachmentType, limit, direction, attachmentId, forPopup, SceytChatClient, typeList, AttachmentByTypeQueryBuilder, AttachmentByTypeQuery, result, _t16;
21208
+ var _action$payload2, channelId, attachmentType, limit, direction, attachmentId, forPopup, SceytChatClient, typeList, AttachmentByTypeQueryBuilder, AttachmentByTypeQuery, result, _t27;
21312
21209
  return _regenerator().w(function (_context17) {
21313
21210
  while (1) switch (_context17.p = _context17.n) {
21314
21211
  case 0:
@@ -21386,15 +21283,15 @@ function getMessageAttachments(action) {
21386
21283
  break;
21387
21284
  case 13:
21388
21285
  _context17.p = 13;
21389
- _t16 = _context17.v;
21390
- log.error('error in message attachment query', _t16);
21286
+ _t27 = _context17.v;
21287
+ log.error('error in message attachment query', _t27);
21391
21288
  case 14:
21392
21289
  return _context17.a(2);
21393
21290
  }
21394
21291
  }, _marked12$1, null, [[0, 13]]);
21395
21292
  }
21396
21293
  function loadMoreMessageAttachments(action) {
21397
- var _action$payload3, limit, direction, forPopup, AttachmentQuery, _yield$call3, attachments, hasNext, _t17;
21294
+ var _action$payload3, limit, direction, forPopup, AttachmentQuery, _yield$call3, attachments, hasNext, _t28;
21398
21295
  return _regenerator().w(function (_context18) {
21399
21296
  while (1) switch (_context18.p = _context18.n) {
21400
21297
  case 0:
@@ -21438,15 +21335,15 @@ function loadMoreMessageAttachments(action) {
21438
21335
  break;
21439
21336
  case 8:
21440
21337
  _context18.p = 8;
21441
- _t17 = _context18.v;
21442
- log.error('error in message attachment query', _t17);
21338
+ _t28 = _context18.v;
21339
+ log.error('error in message attachment query', _t28);
21443
21340
  case 9:
21444
21341
  return _context18.a(2);
21445
21342
  }
21446
21343
  }, _marked13$1, null, [[0, 8]]);
21447
21344
  }
21448
21345
  function pauseAttachmentUploading(action) {
21449
- var attachmentId, isPaused, _t18;
21346
+ var attachmentId, isPaused, _t29;
21450
21347
  return _regenerator().w(function (_context19) {
21451
21348
  while (1) switch (_context19.p = _context19.n) {
21452
21349
  case 0:
@@ -21468,15 +21365,15 @@ function pauseAttachmentUploading(action) {
21468
21365
  break;
21469
21366
  case 2:
21470
21367
  _context19.p = 2;
21471
- _t18 = _context19.v;
21472
- log.error('error in pause attachment uploading', _t18);
21368
+ _t29 = _context19.v;
21369
+ log.error('error in pause attachment uploading', _t29);
21473
21370
  case 3:
21474
21371
  return _context19.a(2);
21475
21372
  }
21476
21373
  }, _marked14$1, null, [[0, 2]]);
21477
21374
  }
21478
21375
  function resumeAttachmentUploading(action) {
21479
- var attachmentId, isResumed, _t19;
21376
+ var attachmentId, isResumed, _t30;
21480
21377
  return _regenerator().w(function (_context20) {
21481
21378
  while (1) switch (_context20.p = _context20.n) {
21482
21379
  case 0:
@@ -21499,15 +21396,15 @@ function resumeAttachmentUploading(action) {
21499
21396
  break;
21500
21397
  case 2:
21501
21398
  _context20.p = 2;
21502
- _t19 = _context20.v;
21503
- log.error('error in resume attachment uploading', _t19);
21399
+ _t30 = _context20.v;
21400
+ log.error('error in resume attachment uploading', _t30);
21504
21401
  case 3:
21505
21402
  return _context20.a(2);
21506
21403
  }
21507
21404
  }, _marked15$1, null, [[0, 2]]);
21508
21405
  }
21509
21406
  function getMessageMarkers(action) {
21510
- var _action$payload4, messageId, channelId, deliveryStatus, sceytChatClient, messageMarkerListQueryBuilder, messageMarkerListQuery, messageMarkers, _t20;
21407
+ var _action$payload4, messageId, channelId, deliveryStatus, sceytChatClient, messageMarkerListQueryBuilder, messageMarkerListQuery, messageMarkers, _t31;
21511
21408
  return _regenerator().w(function (_context21) {
21512
21409
  while (1) switch (_context21.p = _context21.n) {
21513
21410
  case 0:
@@ -21537,8 +21434,8 @@ function getMessageMarkers(action) {
21537
21434
  break;
21538
21435
  case 5:
21539
21436
  _context21.p = 5;
21540
- _t20 = _context21.v;
21541
- log.error('error in get message markers', _t20);
21437
+ _t31 = _context21.v;
21438
+ log.error('error in get message markers', _t31);
21542
21439
  case 6:
21543
21440
  _context21.p = 6;
21544
21441
  _context21.n = 7;
@@ -21676,7 +21573,7 @@ function updateMessageOptimisticallyForAddPollVote(channelId, message, vote) {
21676
21573
  }, _marked18$1);
21677
21574
  }
21678
21575
  function addPollVote(action) {
21679
- var payload, channelId, pollId, optionId, message, isResend, sceytChatClient, _user$presence2, connectionState, user, vote, pendingAction, conflictCheck, channel, _Object$values, _store$getState$Messa, _currentMessage$pollD, _currentMessage$pollD2, _currentMessage$pollD3, currentMessage, hasNext, obj, _t21;
21576
+ var payload, channelId, pollId, optionId, message, isResend, sceytChatClient, _user$presence2, connectionState, user, vote, pendingAction, conflictCheck, channel, _Object$values, _store$getState$Messa, _currentMessage$pollD, _currentMessage$pollD2, _currentMessage$pollD3, currentMessage, hasNext, obj, _t32;
21680
21577
  return _regenerator().w(function (_context24) {
21681
21578
  while (1) switch (_context24.p = _context24.n) {
21682
21579
  case 0:
@@ -21775,8 +21672,8 @@ function addPollVote(action) {
21775
21672
  break;
21776
21673
  case 8:
21777
21674
  _context24.p = 8;
21778
- _t21 = _context24.v;
21779
- log.error('error in add poll vote', _t21);
21675
+ _t32 = _context24.v;
21676
+ log.error('error in add poll vote', _t32);
21780
21677
  case 9:
21781
21678
  return _context24.a(2);
21782
21679
  }
@@ -21877,7 +21774,7 @@ function updateMessageOptimisticallyForDeletePollVote(channelId, message, vote)
21877
21774
  }, _marked21$1);
21878
21775
  }
21879
21776
  function deletePollVote(action) {
21880
- var payload, channelId, pollId, optionId, message, isResend, sceytChatClient, _message$pollDetails1, _message$pollDetails10, _message$pollDetails11, connectionState, vote, pendingAction, conflictCheck, channel, _Object$values2, _currentMessage$pollD4, _currentMessage$pollD5, _currentMessage$pollD6, currentMessage, obj, _t22;
21777
+ var payload, channelId, pollId, optionId, message, isResend, sceytChatClient, _message$pollDetails1, _message$pollDetails10, _message$pollDetails11, connectionState, vote, pendingAction, conflictCheck, channel, _Object$values2, _currentMessage$pollD4, _currentMessage$pollD5, _currentMessage$pollD6, currentMessage, obj, _t33;
21881
21778
  return _regenerator().w(function (_context27) {
21882
21779
  while (1) switch (_context27.p = _context27.n) {
21883
21780
  case 0:
@@ -21962,8 +21859,8 @@ function deletePollVote(action) {
21962
21859
  break;
21963
21860
  case 9:
21964
21861
  _context27.p = 9;
21965
- _t22 = _context27.v;
21966
- log.error('error in delete poll vote', _t22);
21862
+ _t33 = _context27.v;
21863
+ log.error('error in delete poll vote', _t33);
21967
21864
  case 10:
21968
21865
  return _context27.a(2);
21969
21866
  }
@@ -22041,7 +21938,7 @@ function updateMessageOptimisticallyForClosePoll(channelId, message) {
22041
21938
  }, _marked24$1);
22042
21939
  }
22043
21940
  function closePoll(action) {
22044
- var payload, channelId, pollId, message, sceytChatClient, connectionState, _t23;
21941
+ var payload, channelId, pollId, message, sceytChatClient, connectionState, _t34;
22045
21942
  return _regenerator().w(function (_context30) {
22046
21943
  while (1) switch (_context30.p = _context30.n) {
22047
21944
  case 0:
@@ -22074,8 +21971,8 @@ function closePoll(action) {
22074
21971
  break;
22075
21972
  case 4:
22076
21973
  _context30.p = 4;
22077
- _t23 = _context30.v;
22078
- log.error('error in close poll', _t23);
21974
+ _t34 = _context30.v;
21975
+ log.error('error in close poll', _t34);
22079
21976
  case 5:
22080
21977
  return _context30.a(2);
22081
21978
  }
@@ -22164,7 +22061,7 @@ function updateMessageOptimisticallyForRetractPollVote(channelId, message, objs)
22164
22061
  }, _marked27$1);
22165
22062
  }
22166
22063
  function retractPollVote(action) {
22167
- var payload, channelId, pollId, message, isResend, sceytChatClient, connectionState, objs, _iterator5, _step5, _message$pollDetails12, _message$pollDetails13, vote, _t24;
22064
+ var payload, channelId, pollId, message, isResend, sceytChatClient, connectionState, objs, _iterator5, _step5, _message$pollDetails12, _message$pollDetails13, vote, _t35;
22168
22065
  return _regenerator().w(function (_context33) {
22169
22066
  while (1) switch (_context33.p = _context33.n) {
22170
22067
  case 0:
@@ -22206,15 +22103,15 @@ function retractPollVote(action) {
22206
22103
  break;
22207
22104
  case 4:
22208
22105
  _context33.p = 4;
22209
- _t24 = _context33.v;
22210
- log.error('error in retract poll vote', _t24);
22106
+ _t35 = _context33.v;
22107
+ log.error('error in retract poll vote', _t35);
22211
22108
  case 5:
22212
22109
  return _context33.a(2);
22213
22110
  }
22214
22111
  }, _marked28$1, null, [[0, 4]]);
22215
22112
  }
22216
22113
  function resendPendingPollActions(action) {
22217
- var payload, connectionState, sceytChatClient, pendingPollActionsMap, pendingPollActionsMapCopy, _t25;
22114
+ var payload, connectionState, sceytChatClient, pendingPollActionsMap, pendingPollActionsMapCopy, _t36;
22218
22115
  return _regenerator().w(function (_context34) {
22219
22116
  while (1) switch (_context34.p = _context34.n) {
22220
22117
  case 0:
@@ -22230,13 +22127,6 @@ function resendPendingPollActions(action) {
22230
22127
  case 1:
22231
22128
  pendingPollActionsMap = store.getState().MessageReducer.pendingPollActions;
22232
22129
  pendingPollActionsMapCopy = JSON.parse(JSON.stringify(pendingPollActionsMap));
22233
- _context34.n = 2;
22234
- return effects.call(function () {
22235
- return new Promise(function (resolve) {
22236
- return setTimeout(resolve, 1000);
22237
- });
22238
- });
22239
- case 2:
22240
22130
  Object.keys(pendingPollActionsMapCopy).forEach(function (messageId) {
22241
22131
  pendingPollActionsMapCopy[messageId].forEach(function (pendingAction) {
22242
22132
  var type = pendingAction.type,
@@ -22266,19 +22156,19 @@ function resendPendingPollActions(action) {
22266
22156
  }
22267
22157
  });
22268
22158
  });
22269
- _context34.n = 4;
22159
+ _context34.n = 3;
22270
22160
  break;
22161
+ case 2:
22162
+ _context34.p = 2;
22163
+ _t36 = _context34.v;
22164
+ log.error('error in resend pending poll actions', _t36);
22271
22165
  case 3:
22272
- _context34.p = 3;
22273
- _t25 = _context34.v;
22274
- log.error('error in resend pending poll actions', _t25);
22275
- case 4:
22276
22166
  return _context34.a(2);
22277
22167
  }
22278
- }, _marked29$1, null, [[0, 3]]);
22168
+ }, _marked29$1, null, [[0, 2]]);
22279
22169
  }
22280
22170
  function getPollVotes(action) {
22281
- var payload, messageId, pollId, optionId, limit, key, SceytChatClient, queryBuilder, pollVotesQuery, result, formattedVotes, _t26;
22171
+ var payload, messageId, pollId, optionId, limit, key, SceytChatClient, queryBuilder, pollVotesQuery, result, formattedVotes, _t37;
22282
22172
  return _regenerator().w(function (_context35) {
22283
22173
  while (1) switch (_context35.p = _context35.n) {
22284
22174
  case 0:
@@ -22344,8 +22234,8 @@ function getPollVotes(action) {
22344
22234
  break;
22345
22235
  case 7:
22346
22236
  _context35.p = 7;
22347
- _t26 = _context35.v;
22348
- log.error('ERROR in get poll votes', _t26);
22237
+ _t37 = _context35.v;
22238
+ log.error('ERROR in get poll votes', _t37);
22349
22239
  _context35.n = 8;
22350
22240
  return effects.put(setPollVotesLoadingStateAC(action.payload.pollId, action.payload.optionId, LOADING_STATE.LOADED));
22351
22241
  case 8:
@@ -22354,7 +22244,7 @@ function getPollVotes(action) {
22354
22244
  }, _marked30$1, null, [[0, 7]]);
22355
22245
  }
22356
22246
  function loadMorePollVotes(action) {
22357
- var payload, pollId, optionId, limit, key, pollVotesQuery, result, formattedVotes, _t27;
22247
+ var payload, pollId, optionId, limit, key, pollVotesQuery, result, formattedVotes, _t38;
22358
22248
  return _regenerator().w(function (_context36) {
22359
22249
  while (1) switch (_context36.p = _context36.n) {
22360
22250
  case 0:
@@ -22412,8 +22302,8 @@ function loadMorePollVotes(action) {
22412
22302
  break;
22413
22303
  case 6:
22414
22304
  _context36.p = 6;
22415
- _t27 = _context36.v;
22416
- log.error('ERROR in load more poll votes', _t27);
22305
+ _t38 = _context36.v;
22306
+ log.error('ERROR in load more poll votes', _t38);
22417
22307
  _context36.n = 7;
22418
22308
  return effects.put(setPollVotesLoadingStateAC(action.payload.pollId, action.payload.optionId, LOADING_STATE.LOADED));
22419
22309
  case 7:
@@ -22934,6 +22824,10 @@ function getContacts() {
22934
22824
  case 0:
22935
22825
  _context.p = 0;
22936
22826
  SceytChatClient = getClient();
22827
+ if (!(SceytChatClient.connectionStatus === CONNECTION_STATUS.CONNECTED)) {
22828
+ _context.n = 3;
22829
+ break;
22830
+ }
22937
22831
  _context.n = 1;
22938
22832
  return effects.call(SceytChatClient.getAllContacts);
22939
22833
  case 1:
@@ -23144,6 +23038,12 @@ function getUsers(action) {
23144
23038
  payload = action.payload;
23145
23039
  params = payload.params;
23146
23040
  SceytChatClient = getClient();
23041
+ if (!(SceytChatClient.connectionState !== CONNECTION_STATUS.CONNECTED)) {
23042
+ _context5.n = 1;
23043
+ break;
23044
+ }
23045
+ return _context5.a(2);
23046
+ case 1:
23147
23047
  usersQueryBuilder = new SceytChatClient.UserListQueryBuilder();
23148
23048
  if (params.query) {
23149
23049
  usersQueryBuilder.query(params.query);
@@ -23173,35 +23073,35 @@ function getUsers(action) {
23173
23073
  usersQueryBuilder.filterByUsername();
23174
23074
  }
23175
23075
  log.info('user query params ..... ', params);
23176
- _context5.n = 1;
23076
+ _context5.n = 2;
23177
23077
  return effects.call(usersQueryBuilder.build);
23178
- case 1:
23078
+ case 2:
23179
23079
  usersQuery = _context5.v;
23180
23080
  query.usersQuery = usersQuery;
23181
- _context5.n = 2;
23182
- return effects.put(setUsersLoadingStateAC(LOADING_STATE.LOADING));
23183
- case 2:
23184
23081
  _context5.n = 3;
23185
- return effects.call(usersQuery.loadNextPage);
23082
+ return effects.put(setUsersLoadingStateAC(LOADING_STATE.LOADING));
23186
23083
  case 3:
23187
- _yield$call = _context5.v;
23188
- users = _yield$call.users;
23189
23084
  _context5.n = 4;
23190
- return effects.put(setUsersAC(JSON.parse(JSON.stringify(users))));
23085
+ return effects.call(usersQuery.loadNextPage);
23191
23086
  case 4:
23087
+ _yield$call = _context5.v;
23088
+ users = _yield$call.users;
23192
23089
  _context5.n = 5;
23193
- return effects.put(setUsersLoadingStateAC(LOADING_STATE.LOADED));
23090
+ return effects.put(setUsersAC(JSON.parse(JSON.stringify(users))));
23194
23091
  case 5:
23195
- _context5.n = 7;
23196
- break;
23092
+ _context5.n = 6;
23093
+ return effects.put(setUsersLoadingStateAC(LOADING_STATE.LOADED));
23197
23094
  case 6:
23198
- _context5.p = 6;
23095
+ _context5.n = 8;
23096
+ break;
23097
+ case 7:
23098
+ _context5.p = 7;
23199
23099
  _t5 = _context5.v;
23200
23100
  log.error('ERROR on get users', _t5.message);
23201
- case 7:
23101
+ case 8:
23202
23102
  return _context5.a(2);
23203
23103
  }
23204
- }, _marked5$3, null, [[0, 6]]);
23104
+ }, _marked5$3, null, [[0, 7]]);
23205
23105
  }
23206
23106
  function loadMoreUsers(action) {
23207
23107
  var payload, limit, usersQuery, _yield$call2, users, _t6;
@@ -38608,7 +38508,8 @@ var MessageList = function MessageList(_ref2) {
38608
38508
  var handleMessagesListScroll = React.useCallback(function () {
38609
38509
  try {
38610
38510
  var target = scrollRef.current;
38611
- if (!target) return Promise.resolve();
38511
+ var messageBox = document.getElementById('messageBox');
38512
+ if (!target || !messageBox) return Promise.resolve();
38612
38513
  if (scrollToMentionedMessage) {
38613
38514
  if (target.scrollTop <= -50 || channel.lastMessage.id !== messages[messages.length - 1].id) {
38614
38515
  dispatch(showScrollToNewMessageButtonAC(true));
@@ -38621,9 +38522,12 @@ var MessageList = function MessageList(_ref2) {
38621
38522
  clearTimeout(hideTopDateTimeout.current);
38622
38523
  renderTopDate();
38623
38524
  var forceLoadPrevMessages = false;
38624
- if (-target.scrollTop + target.offsetHeight + 30 > target.scrollHeight) {
38525
+ if (-target.scrollTop + target.offsetHeight + 100 > messageBox.scrollHeight) {
38625
38526
  forceLoadPrevMessages = true;
38626
38527
  }
38528
+ if (unreadScrollTo) {
38529
+ return Promise.resolve();
38530
+ }
38627
38531
  if (target.scrollTop === 0 && scrollToNewMessage.scrollToBottom && scrollToNewMessage.updateMessageList && messagesLoading !== LOADING_STATE.LOADING) {
38628
38532
  dispatch(getMessagesAC(channel, true));
38629
38533
  }
@@ -38638,7 +38542,7 @@ var MessageList = function MessageList(_ref2) {
38638
38542
  }
38639
38543
  var currentIndex = messagesIndexMapRef.current[lastVisibleMessageId];
38640
38544
  var hasIndex = typeof currentIndex === 'number';
38641
- if (hasIndex && currentIndex < 15 || forceLoadPrevMessages) {
38545
+ if (hasIndex && currentIndex < 10 || forceLoadPrevMessages) {
38642
38546
  if (connectionStatus === CONNECTION_STATUS.CONNECTED && !scrollToNewMessage.scrollToBottom && hasPrevMessages) {
38643
38547
  if (loadingRef.current || messagesLoading === LOADING_STATE.LOADING || prevDisableRef.current) {
38644
38548
  shouldLoadMessagesRef.current = 'prev';
@@ -38655,7 +38559,7 @@ var MessageList = function MessageList(_ref2) {
38655
38559
  }
38656
38560
  }
38657
38561
  }
38658
- if (hasIndex && currentIndex >= messages.length - 15 || target.scrollTop === 0) {
38562
+ if (hasIndex && currentIndex >= messages.length - 10 || target.scrollTop > -100) {
38659
38563
  if (connectionStatus === CONNECTION_STATUS.CONNECTED && !scrollToNewMessage.scrollToBottom && (hasNextMessages || getHasNextCached())) {
38660
38564
  if (loadingRef.current || messagesLoading === LOADING_STATE.LOADING || nextDisableRef.current) {
38661
38565
  shouldLoadMessagesRef.current = 'next';
@@ -38714,7 +38618,7 @@ var MessageList = function MessageList(_ref2) {
38714
38618
  }, 1000 + positiveValue * 0.1);
38715
38619
  }
38716
38620
  } else {
38717
- dispatch(getMessagesAC(channel, undefined, messageId));
38621
+ dispatch(getMessagesAC(channel, undefined, messageId, undefined, true, 'smooth', true));
38718
38622
  }
38719
38623
  return Promise.resolve();
38720
38624
  } catch (e) {
@@ -38722,7 +38626,7 @@ var MessageList = function MessageList(_ref2) {
38722
38626
  }
38723
38627
  };
38724
38628
  var handleLoadMoreMessages = function handleLoadMoreMessages(direction, limit) {
38725
- if (scrollToMentionedMessage) {
38629
+ if (scrollToMentionedMessage || scrollToNewMessage.scrollToBottom) {
38726
38630
  return;
38727
38631
  }
38728
38632
  var lastMessageId = messages.length && messages[messages.length - 1].id;
@@ -38866,9 +38770,6 @@ var MessageList = function MessageList(_ref2) {
38866
38770
  behavior: 'smooth'
38867
38771
  });
38868
38772
  }
38869
- setTimeout(function () {
38870
- dispatch(scrollToNewMessageAC(false, false, false));
38871
- }, 800);
38872
38773
  } else {
38873
38774
  nextDisableRef.current = true;
38874
38775
  prevDisableRef.current = true;
@@ -38877,10 +38778,6 @@ var MessageList = function MessageList(_ref2) {
38877
38778
  behavior: 'smooth'
38878
38779
  });
38879
38780
  dispatch(showScrollToNewMessageButtonAC(false));
38880
- setTimeout(function () {
38881
- prevDisableRef.current = false;
38882
- dispatch(scrollToNewMessageAC(false, false, false));
38883
- }, 800);
38884
38781
  }
38885
38782
  }
38886
38783
  }, [scrollToNewMessage]);
@@ -38908,7 +38805,7 @@ var MessageList = function MessageList(_ref2) {
38908
38805
  var visibleMessages = getVisibleMessagesMap();
38909
38806
  var visibleMessagesIds = Object.keys(visibleMessages);
38910
38807
  var messageId = visibleMessagesIds[visibleMessagesIds.length - 1];
38911
- dispatch(getMessagesAC(channel, undefined, messageId, undefined, undefined, undefined, 'instant'));
38808
+ dispatch(getMessagesAC(channel, undefined, messageId, undefined, undefined, 'instant'));
38912
38809
  setUnreadMessageId(messageId);
38913
38810
  } else {
38914
38811
  if (!channel.isLinkedChannel) {
@@ -39065,13 +38962,13 @@ var MessageList = function MessageList(_ref2) {
39065
38962
  }, [messagesLoading, messages, lastVisibleMessageId]);
39066
38963
  React.useEffect(function () {
39067
38964
  log.info('connection status is changed.. .... ', connectionStatus, 'channel ... ', channel);
39068
- if (connectionStatus === CONNECTION_STATUS.CONNECTED) {
38965
+ if (connectionStatus === CONNECTION_STATUS.CONNECTED && channel !== null && channel !== void 0 && channel.id) {
39069
38966
  loadingRef.current = false;
39070
38967
  prevDisableRef.current = false;
39071
38968
  nextDisableRef.current = false;
39072
38969
  clearMessagesMap();
39073
38970
  removeAllMessages();
39074
- dispatch(getMessagesAC(channel, false, lastVisibleMessageId, 0, false, false, 'instant', false));
38971
+ dispatch(getMessagesAC(channel, false, lastVisibleMessageId, 0, false, 'instant', false, true));
39075
38972
  }
39076
38973
  }, [connectionStatus]);
39077
38974
  React.useEffect(function () {
@@ -39177,7 +39074,8 @@ var MessageList = function MessageList(_ref2) {
39177
39074
  enableResetScrollToCoords: false,
39178
39075
  replyMessage: messageForReply && messageForReply.id,
39179
39076
  attachmentsSelected: attachmentsSelected,
39180
- className: 'messageBox'
39077
+ className: 'messageBox',
39078
+ id: 'messageBox'
39181
39079
  }, messages.map(function (message, index) {
39182
39080
  var prevMessage = messages[index - 1];
39183
39081
  var nextMessage = messages[index + 1];
@@ -48404,7 +48302,7 @@ var MessagesScrollToBottomButton = function MessagesScrollToBottomButton(_ref) {
48404
48302
  }
48405
48303
  }
48406
48304
  } else {
48407
- dispatch(getMessagesAC(channel, true, messageId, undefined, undefined, false));
48305
+ dispatch(getMessagesAC(channel, true, messageId, undefined, false, 'smooth', true));
48408
48306
  }
48409
48307
  return Promise.resolve();
48410
48308
  } catch (e) {