sceyt-chat-react-uikit 1.7.6-beta.6 → 1.7.6-beta.8

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 +209 -115
  2. package/index.modern.js +209 -115
  3. package/package.json +1 -1
package/index.js CHANGED
@@ -9102,15 +9102,6 @@ var query = {
9102
9102
  ReactionsQuery: null,
9103
9103
  PollVotesQueries: {}
9104
9104
  };
9105
- var unreadScrollTo = {
9106
- isScrolled: true
9107
- };
9108
- function getUnreadScrollTo() {
9109
- return unreadScrollTo.isScrolled;
9110
- }
9111
- function setUnreadScrollTo(state) {
9112
- unreadScrollTo.isScrolled = state;
9113
- }
9114
9105
  function getUploadImageIcon() {
9115
9106
  return UploadImageIcon;
9116
9107
  }
@@ -10315,6 +10306,11 @@ function showScrollToNewMessageButtonAC(state) {
10315
10306
  state: state
10316
10307
  });
10317
10308
  }
10309
+ function setUnreadScrollToAC(state) {
10310
+ return setUnreadScrollTo({
10311
+ state: state
10312
+ });
10313
+ }
10318
10314
  function loadMoreMessagesAC(channelId, limit, direction, messageId, hasNext) {
10319
10315
  return {
10320
10316
  type: LOAD_MORE_MESSAGES,
@@ -10647,6 +10643,51 @@ var MESSAGE_LOAD_DIRECTION = {
10647
10643
  PREV: 'prev',
10648
10644
  NEXT: 'next'
10649
10645
  };
10646
+ var shouldSkipDeliveryStatusUpdate = function shouldSkipDeliveryStatusUpdate(markerName, currentDeliveryStatus) {
10647
+ if (markerName === MESSAGE_DELIVERY_STATUS.SENT && (currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.SENT || currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.DELIVERED || currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.READ || currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.PLAYED)) {
10648
+ return true;
10649
+ }
10650
+ if (markerName === MESSAGE_DELIVERY_STATUS.DELIVERED && (currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.DELIVERED || currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.READ || currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.PLAYED)) {
10651
+ return true;
10652
+ }
10653
+ if (markerName === MESSAGE_DELIVERY_STATUS.READ && (currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.READ || currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.PLAYED)) {
10654
+ return true;
10655
+ }
10656
+ if (markerName === MESSAGE_DELIVERY_STATUS.PLAYED && currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.PLAYED) {
10657
+ return true;
10658
+ }
10659
+ return false;
10660
+ };
10661
+ var updateMessageDeliveryStatusAndMarkers = function updateMessageDeliveryStatusAndMarkers(message, markerName) {
10662
+ var _message$markerTotals;
10663
+ if (shouldSkipDeliveryStatusUpdate(markerName, message.deliveryStatus)) {
10664
+ return {
10665
+ markerTotals: message.markerTotals,
10666
+ deliveryStatus: message.deliveryStatus
10667
+ };
10668
+ }
10669
+ var markerInMarkersTotal = message === null || message === void 0 ? void 0 : (_message$markerTotals = message.markerTotals) === null || _message$markerTotals === void 0 ? void 0 : _message$markerTotals.find(function (marker) {
10670
+ return marker.name === markerName;
10671
+ });
10672
+ if (!markerInMarkersTotal) {
10673
+ return {
10674
+ markerTotals: [].concat(message.markerTotals || [], [{
10675
+ name: markerName,
10676
+ count: 1
10677
+ }]),
10678
+ deliveryStatus: markerName
10679
+ };
10680
+ } else {
10681
+ return {
10682
+ markerTotals: message.markerTotals.map(function (marker) {
10683
+ return marker.name === markerName ? _extends({}, marker, {
10684
+ count: marker.count + 1
10685
+ }) : marker;
10686
+ }),
10687
+ deliveryStatus: markerName
10688
+ };
10689
+ }
10690
+ };
10650
10691
  var sendMessageHandler;
10651
10692
  var setSendMessageHandler = function setSendMessageHandler(handler) {
10652
10693
  sendMessageHandler = handler;
@@ -10678,7 +10719,8 @@ var updateMessageOnAllMessages = function updateMessageOnAllMessages(messageId,
10678
10719
  if (updatedParams.state === MESSAGE_STATUS.DELETE) {
10679
10720
  return _extends({}, updatedParams);
10680
10721
  }
10681
- var updatedMessage = _extends({}, message, updatedParams);
10722
+ var statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(message, updatedParams.deliveryStatus);
10723
+ var updatedMessage = _extends({}, message, updatedParams, statusUpdatedMessage);
10682
10724
  if (voteDetails) {
10683
10725
  updatedMessage = _extends({}, updatedMessage, {
10684
10726
  pollDetails: handleVoteDetails(voteDetails, updatedMessage)
@@ -10689,6 +10731,15 @@ var updateMessageOnAllMessages = function updateMessageOnAllMessages(messageId,
10689
10731
  return message;
10690
10732
  });
10691
10733
  };
10734
+ var updateMessageStatusOnAllMessages = function updateMessageStatusOnAllMessages(name, markersMap) {
10735
+ activeChannelAllMessages = activeChannelAllMessages.map(function (message) {
10736
+ if (markersMap[message.id]) {
10737
+ var statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(message, name);
10738
+ return _extends({}, message, statusUpdatedMessage);
10739
+ }
10740
+ return message;
10741
+ });
10742
+ };
10692
10743
  var removeMessageFromAllMessages = function removeMessageFromAllMessages(messageId) {
10693
10744
  activeChannelAllMessages = [].concat(activeChannelAllMessages).filter(function (msg) {
10694
10745
  return !(msg.id === messageId || msg.tid === messageId);
@@ -10696,12 +10747,11 @@ var removeMessageFromAllMessages = function removeMessageFromAllMessages(message
10696
10747
  };
10697
10748
  var updateMarkersOnAllMessages = function updateMarkersOnAllMessages(markersMap, name) {
10698
10749
  activeChannelAllMessages = activeChannelAllMessages.map(function (message) {
10699
- if (markersMap[message.id] && (message.deliveryStatus === MESSAGE_DELIVERY_STATUS.SENT || name === MESSAGE_DELIVERY_STATUS.READ)) {
10700
- return _extends({}, message, {
10701
- deliveryStatus: name
10702
- });
10750
+ if (!markersMap[message.id]) {
10751
+ return message;
10703
10752
  }
10704
- return message;
10753
+ var statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(message, name);
10754
+ return _extends({}, message, statusUpdatedMessage);
10705
10755
  });
10706
10756
  };
10707
10757
  var getAllMessages = function getAllMessages() {
@@ -10779,7 +10829,8 @@ function updateMessageOnMap(channelId, updatedMessage, voteDetails) {
10779
10829
  var _pendingMessagesMap$c;
10780
10830
  var updatedPendingMessages = (_pendingMessagesMap$c = pendingMessagesMap[channelId]) === null || _pendingMessagesMap$c === void 0 ? void 0 : _pendingMessagesMap$c.map(function (msg) {
10781
10831
  if (msg.tid === updatedMessage.messageId) {
10782
- return _extends({}, msg, updatedMessage.params);
10832
+ var statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(msg, updatedMessage.params.deliveryStatus);
10833
+ return _extends({}, msg, updatedMessage.params, statusUpdatedMessage);
10783
10834
  }
10784
10835
  return msg;
10785
10836
  });
@@ -10801,7 +10852,8 @@ function updateMessageOnMap(channelId, updatedMessage, voteDetails) {
10801
10852
  messagesList.push(_extends({}, mes, updatedMessageData));
10802
10853
  continue;
10803
10854
  } else {
10804
- updatedMessageData = _extends({}, mes, updatedMessage.params);
10855
+ var statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(mes, updatedMessage.params.deliveryStatus);
10856
+ updatedMessageData = _extends({}, mes, updatedMessage.params, statusUpdatedMessage);
10805
10857
  var voteDetailsData = void 0;
10806
10858
  if (voteDetails) {
10807
10859
  voteDetailsData = handleVoteDetails(voteDetails, updatedMessageData);
@@ -10900,12 +10952,11 @@ function updateMessageStatusOnMap(channelId, newMarkers) {
10900
10952
  messagesMap[channelId] = messagesMap[channelId].map(function (mes) {
10901
10953
  var name = newMarkers.name;
10902
10954
  var markersMap = newMarkers.markersMap;
10903
- if (markersMap[mes.id] && (mes.deliveryStatus === MESSAGE_DELIVERY_STATUS.SENT || name === MESSAGE_DELIVERY_STATUS.READ)) {
10904
- return _extends({}, mes, {
10905
- deliveryStatus: name
10906
- });
10955
+ if (!markersMap[mes.id]) {
10956
+ return mes;
10907
10957
  }
10908
- return mes;
10958
+ var statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(mes, name);
10959
+ return _extends({}, mes, statusUpdatedMessage);
10909
10960
  });
10910
10961
  }
10911
10962
  }
@@ -11126,7 +11177,8 @@ var initialState$1 = {
11126
11177
  pollVotesLoadingState: {},
11127
11178
  pollVotesInitialCount: null,
11128
11179
  pendingPollActions: {},
11129
- pendingMessagesMap: {}
11180
+ pendingMessagesMap: {},
11181
+ unreadScrollTo: true
11130
11182
  };
11131
11183
  var messageSlice = createSlice({
11132
11184
  name: 'messages',
@@ -11160,6 +11212,9 @@ var messageSlice = createSlice({
11160
11212
  setShowScrollToNewMessageButton: function setShowScrollToNewMessageButton(state, action) {
11161
11213
  state.showScrollToNewMessageButton = action.payload.state;
11162
11214
  },
11215
+ setUnreadScrollTo: function setUnreadScrollTo(state, action) {
11216
+ state.unreadScrollTo = action.payload.state;
11217
+ },
11163
11218
  setMessages: function setMessages(state, action) {
11164
11219
  state.activeChannelMessages = action.payload.messages;
11165
11220
  },
@@ -11220,17 +11275,18 @@ var messageSlice = createSlice({
11220
11275
  markersMap = _action$payload2.markersMap;
11221
11276
  var markerName = name;
11222
11277
  for (var index = 0; index < state.activeChannelMessages.length; index++) {
11223
- if (markerName === MESSAGE_DELIVERY_STATUS.DELIVERED && (state.activeChannelMessages[index].deliveryStatus === MESSAGE_DELIVERY_STATUS.DELIVERED || state.activeChannelMessages[index].deliveryStatus === MESSAGE_DELIVERY_STATUS.READ || state.activeChannelMessages[index].deliveryStatus === MESSAGE_DELIVERY_STATUS.PLAYED)) {
11224
- continue;
11225
- }
11226
- if (markerName === MESSAGE_DELIVERY_STATUS.READ && (state.activeChannelMessages[index].deliveryStatus === MESSAGE_DELIVERY_STATUS.READ || state.activeChannelMessages[index].deliveryStatus === MESSAGE_DELIVERY_STATUS.PLAYED)) {
11227
- continue;
11228
- }
11229
- if (markerName === MESSAGE_DELIVERY_STATUS.PLAYED && state.activeChannelMessages[index].deliveryStatus === MESSAGE_DELIVERY_STATUS.PLAYED) {
11278
+ if (!markersMap[state.activeChannelMessages[index].id]) {
11230
11279
  continue;
11231
11280
  }
11232
- if (markersMap[state.activeChannelMessages[index].id] && state.activeChannelMessages[index].state !== 'Deleted') {
11233
- state.activeChannelMessages[index].deliveryStatus = markerName;
11281
+ if (state.activeChannelMessages[index].state !== 'Deleted') {
11282
+ var message = state.activeChannelMessages[index];
11283
+ var _updateMessageDeliver = updateMessageDeliveryStatusAndMarkers(message, markerName),
11284
+ markerTotals = _updateMessageDeliver.markerTotals,
11285
+ deliveryStatus = _updateMessageDeliver.deliveryStatus;
11286
+ state.activeChannelMessages[index] = _extends({}, message, {
11287
+ markerTotals: markerTotals,
11288
+ deliveryStatus: deliveryStatus
11289
+ });
11234
11290
  }
11235
11291
  }
11236
11292
  },
@@ -11247,10 +11303,15 @@ var messageSlice = createSlice({
11247
11303
  if (params.state === MESSAGE_STATUS.DELETE) {
11248
11304
  return _extends({}, params);
11249
11305
  } else {
11250
- var messageData = _extends({}, message, params);
11306
+ var statusUpdatedMessage = null;
11307
+ if (params !== null && params !== void 0 && params.deliveryStatus) {
11308
+ statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(message, params.deliveryStatus);
11309
+ }
11310
+ var messageOldData = _extends({}, message, params, statusUpdatedMessage);
11311
+ var messageData = _extends({}, messageOldData);
11251
11312
  if (voteDetails) {
11252
- messageData = _extends({}, messageData, {
11253
- pollDetails: handleVoteDetails(voteDetails, messageData)
11313
+ messageData = _extends({}, messageOldData, {
11314
+ pollDetails: handleVoteDetails(voteDetails, messageOldData)
11254
11315
  });
11255
11316
  }
11256
11317
  if (messageData.deliveryStatus !== MESSAGE_DELIVERY_STATUS.PENDING) {
@@ -11694,6 +11755,7 @@ var _messageSlice$actions = messageSlice.actions,
11694
11755
  setScrollToMentionedMessage = _messageSlice$actions.setScrollToMentionedMessage,
11695
11756
  setScrollToNewMessage = _messageSlice$actions.setScrollToNewMessage,
11696
11757
  setShowScrollToNewMessageButton = _messageSlice$actions.setShowScrollToNewMessageButton,
11758
+ setUnreadScrollTo = _messageSlice$actions.setUnreadScrollTo,
11697
11759
  setMessages = _messageSlice$actions.setMessages,
11698
11760
  addMessages = _messageSlice$actions.addMessages,
11699
11761
  updateMessagesStatus = _messageSlice$actions.updateMessagesStatus,
@@ -14787,9 +14849,7 @@ function watchForEvents() {
14787
14849
  _context2.n = 58;
14788
14850
  return effects.put(scrollToNewMessageAC(true, false, true));
14789
14851
  case 58:
14790
- if (getMessagesFromMap(_channel5.id) && getMessagesFromMap(_channel5.id).length) {
14791
- addMessageToMap(_channel5.id, message);
14792
- }
14852
+ addMessageToMap(_channel5.id, message);
14793
14853
  _context2.n = 59;
14794
14854
  return effects.put(updateChannelDataAC(_channel5.id, {
14795
14855
  messageCount: channelForAdd.messageCount,
@@ -14989,6 +15049,7 @@ function watchForEvents() {
14989
15049
  name: markerList.name,
14990
15050
  markersMap: markersMap
14991
15051
  });
15052
+ updateMessageStatusOnAllMessages(markerList.name, markersMap);
14992
15053
  _context2.n = 77;
14993
15054
  return effects.put(updateMessagesMarkersAC(channelId, markerList.name, markerList));
14994
15055
  case 77:
@@ -16857,7 +16918,7 @@ function switchChannel(action) {
16857
16918
  }
16858
16919
  currentActiveChannel = getChannelFromMap(getActiveChannelId());
16859
16920
  _context10.n = 11;
16860
- return effects.call(setUnreadScrollTo, true);
16921
+ return effects.put(setUnreadScrollToAC(true));
16861
16922
  case 11:
16862
16923
  _context10.n = 12;
16863
16924
  return effects.call(setActiveChannelId, channel && channel.id);
@@ -18501,6 +18562,9 @@ var pendingPollActionsSelector = function pendingPollActionsSelector(store) {
18501
18562
  var pendingMessagesMapSelector = function pendingMessagesMapSelector(store) {
18502
18563
  return store.MessageReducer.pendingMessagesMap;
18503
18564
  };
18565
+ var unreadScrollToSelector = function unreadScrollToSelector(store) {
18566
+ return store.MessageReducer.unreadScrollTo;
18567
+ };
18504
18568
 
18505
18569
  var getFrame = function getFrame(videoSrc, time) {
18506
18570
  try {
@@ -19222,15 +19286,12 @@ function sendTextMessage(action) {
19222
19286
  throw new Error('Connection required to send message');
19223
19287
  case 17:
19224
19288
  _context4.n = 18;
19225
- return effects.put(getMessagesAC(channel, true, channel.lastMessage.id, undefined, undefined, false));
19226
- case 18:
19227
- _context4.n = 19;
19228
19289
  return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
19229
- case 19:
19230
- _context4.n = 22;
19290
+ case 18:
19291
+ _context4.n = 21;
19231
19292
  break;
19232
- case 20:
19233
- _context4.p = 20;
19293
+ case 19:
19294
+ _context4.p = 19;
19234
19295
  _t3 = _context4.v;
19235
19296
  log.error('error on send text message ... ', _t3);
19236
19297
  updateMessageOnMap(channel.id, {
@@ -19240,23 +19301,23 @@ function sendTextMessage(action) {
19240
19301
  }
19241
19302
  });
19242
19303
  if (!(activeChannelId === channel.id)) {
19243
- _context4.n = 21;
19304
+ _context4.n = 20;
19244
19305
  break;
19245
19306
  }
19246
19307
  updateMessageOnAllMessages(sendMessageTid, {
19247
19308
  state: MESSAGE_STATUS.FAILED
19248
19309
  });
19249
- _context4.n = 21;
19310
+ _context4.n = 20;
19250
19311
  return effects.put(updateMessageAC(sendMessageTid, {
19251
19312
  state: MESSAGE_STATUS.FAILED
19252
19313
  }));
19253
- case 21:
19254
- _context4.n = 22;
19314
+ case 20:
19315
+ _context4.n = 21;
19255
19316
  return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
19256
- case 22:
19317
+ case 21:
19257
19318
  return _context4.a(2);
19258
19319
  }
19259
- }, _marked2$2, null, [[3, 20]]);
19320
+ }, _marked2$2, null, [[3, 19]]);
19260
19321
  }
19261
19322
  function forwardMessage(action) {
19262
19323
  var payload, message, channelId, connectionState, isForward, channel, SceytChatClient, mentionedUserIds, attachments, attachmentBuilder, att, messageBuilder, pollDetails, messageToSend, pendingMessage, activeChannelId, isCachedChannel, hasNextMessages, messageResponse, messageUpdateData, messageToUpdate, channelUpdateParam, _t4;
@@ -19928,7 +19989,7 @@ function editMessage(action) {
19928
19989
  }, _marked6$1, null, [[0, 5]]);
19929
19990
  }
19930
19991
  function getMessagesQuery(action) {
19931
- var _action$payload, channel, loadWithLastMessage, messageId, limit, withDeliveredMessages, highlight, behavior, SceytChatClient, messageQueryBuilder, messageQuery, cachedMessages, result, allMessages, havLastMessage, secondResult, sentMessages, messagesMap, filteredSentMessages, _allMessages, messageIndex, maxLengthPart, _secondResult, thirdResult, _secondResult2, _thirdResult, _secondResult3, _secondResult4, updatedMessages, pendingMessages, _messagesMap, filteredPendingMessages, _t9;
19992
+ var _action$payload, channel, loadWithLastMessage, messageId, limit, withDeliveredMessages, highlight, behavior, SceytChatClient, messageQueryBuilder, messageQuery, cachedMessages, result, allMessages, havLastMessage, secondResult, sentMessages, messagesMap, filteredSentMessages, _allMessages, messageIndex, maxLengthPart, _secondResult, thirdResult, _secondResult2, _thirdResult, _secondResult3, _Object$values, previousAllMessages, _secondResult4, updatedMessages, lastMessageId, _allMessages2, setMappedAllMessages, allMessagesAfterLastMessage, pendingMessages, _messagesMap, filteredPendingMessages, _t9;
19932
19993
  return _regenerator().w(function (_context9) {
19933
19994
  while (1) switch (_context9.p = _context9.n) {
19934
19995
  case 0:
@@ -20172,6 +20233,7 @@ function getMessagesQuery(action) {
20172
20233
  _context9.n = 46;
20173
20234
  break;
20174
20235
  case 39:
20236
+ previousAllMessages = getAllMessages();
20175
20237
  setMessagesToMap(channel.id, []);
20176
20238
  setAllMessages([]);
20177
20239
  if (!(cachedMessages && cachedMessages.length)) {
@@ -20209,13 +20271,26 @@ function getMessagesQuery(action) {
20209
20271
  updateMessageOnAllMessages(msg.id, updatedMessage || msg);
20210
20272
  updatedMessages.push(updatedMessage || msg);
20211
20273
  });
20274
+ lastMessageId = updatedMessages[updatedMessages.length - 1].id;
20275
+ _allMessages2 = getAllMessages();
20276
+ setMappedAllMessages = {};
20277
+ previousAllMessages.forEach(function (msg) {
20278
+ setMappedAllMessages[msg.id] = msg;
20279
+ });
20280
+ _allMessages2.forEach(function (msg) {
20281
+ setMappedAllMessages[msg.id] = msg;
20282
+ });
20283
+ allMessagesAfterLastMessage = (_Object$values = Object.values(setMappedAllMessages)) === null || _Object$values === void 0 ? void 0 : _Object$values.filter(function (msg) {
20284
+ return msg.id > lastMessageId;
20285
+ });
20286
+ updatedMessages = [].concat(updatedMessages, allMessagesAfterLastMessage || []);
20212
20287
  setMessagesToMap(channel.id, updatedMessages);
20213
- setAllMessages([].concat(updatedMessages));
20288
+ setAllMessages(updatedMessages);
20214
20289
  _context9.n = 44;
20215
20290
  return effects.put(setMessagesAC(JSON.parse(JSON.stringify(updatedMessages))));
20216
20291
  case 44:
20217
20292
  _context9.n = 45;
20218
- return effects.put(setMessagesHasPrevAC(result.hasNext));
20293
+ return effects.put(setMessagesHasPrevAC(true));
20219
20294
  case 45:
20220
20295
  _context9.n = 46;
20221
20296
  return effects.put(setMessagesHasNextAC(false));
@@ -23898,7 +23973,7 @@ var ChannelMessageText = function ChannelMessageText(_ref2) {
23898
23973
  return mem === user.id ? ' You' : " " + systemMessageUserName(mem, contactsMap && contactsMap[mem], lastMessage.mentionedUsers);
23899
23974
  })) + " " + (lastMessageMetas && lastMessageMetas.m && lastMessageMetas.m.length > 5 ? "and " + (lastMessageMetas.m.length - 5) + " more" : '') : lastMessage.body === 'RM' ? " removed " + (lastMessageMetas && lastMessageMetas.m && lastMessageMetas.m.slice(0, 5).map(function (mem) {
23900
23975
  return mem === user.id ? ' You' : " " + systemMessageUserName(mem, contactsMap && contactsMap[mem], lastMessage.mentionedUsers);
23901
- })) + " " + (lastMessageMetas && lastMessageMetas.m && lastMessageMetas.m.length > 5 ? "and " + (lastMessageMetas.m.length - 5) + " more" : '') : lastMessage.body === 'LG' ? 'Left this group' : lastMessage.body === 'JL' ? 'Joined via invite link' : '') : (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(LastMessageDescription, {
23976
+ })) + " " + (lastMessageMetas && lastMessageMetas.m && lastMessageMetas.m.length > 5 ? "and " + (lastMessageMetas.m.length - 5) + " more" : '') : lastMessage.body === 'LG' ? 'Left this group' : lastMessage.body === 'JL' ? 'joined via invite link' : '') : (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(LastMessageDescription, {
23902
23977
  poll: (lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.pollDetails) && (lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.type) === exports.MESSAGE_TYPE.POLL
23903
23978
  }, channel.lastReactedMessage && (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, "Reacted", /*#__PURE__*/React__default.createElement(ReactionItem, null, channel.newReactions && channel.newReactions[0] && channel.newReactions[0].key), "to", ' "')), LastMessageAttachments({
23904
23979
  lastMessage: lastMessage
@@ -30168,7 +30243,7 @@ var VideoPreview = /*#__PURE__*/React.memo(function VideoPreview(_ref) {
30168
30243
  preload: 'auto',
30169
30244
  id: 'video',
30170
30245
  src: file.attachmentUrl || videoUrl
30171
- }), videoCurrentTime && !isRepliedMessage && (/*#__PURE__*/React__default.createElement(VideoControls, null, !isPreview && !!videoCurrentTime && !isRepliedMessage && !uploading && !isDetailsView && (
30246
+ }), videoCurrentTime && !isRepliedMessage && (!isDetailsView || !loading) && (/*#__PURE__*/React__default.createElement(VideoControls, null, !isPreview && !!videoCurrentTime && !isRepliedMessage && !uploading && !isDetailsView && (
30172
30247
  /*#__PURE__*/
30173
30248
  React__default.createElement(VideoPlayButton, null, /*#__PURE__*/React__default.createElement(SvgPlayVideo, null))), /*#__PURE__*/React__default.createElement(VideoTime, {
30174
30249
  isDetailsView: isDetailsView,
@@ -36454,6 +36529,7 @@ var Message$1 = function Message(_ref) {
36454
36529
  reactionsPopupHorizontalPosition = _useState10[0],
36455
36530
  setReactionsPopupHorizontalPosition = _useState10[1];
36456
36531
  var scrollToNewMessage = useSelector(scrollToNewMessageSelector, reactRedux.shallowEqual);
36532
+ var unreadScrollTo = useSelector(unreadScrollToSelector, reactRedux.shallowEqual);
36457
36533
  var messageItemRef = React.useRef();
36458
36534
  var isVisible = useOnScreen(messageItemRef);
36459
36535
  var reactionsCount = message.reactionTotals && message.reactionTotals.reduce(function (prevValue, currentValue) {
@@ -36612,13 +36688,13 @@ var Message$1 = function Message(_ref) {
36612
36688
  })) {
36613
36689
  if (message.userMarkers && message.userMarkers.length && message.userMarkers.find(function (marker) {
36614
36690
  return marker.name === MESSAGE_DELIVERY_STATUS.READ;
36615
- }) && message.incoming) {
36691
+ }) && message.incoming && !unreadScrollTo) {
36616
36692
  dispatch(markMessagesAsDeliveredAC(channel.id, [message.id]));
36617
36693
  }
36618
36694
  }
36619
36695
  if (isVisible && message.incoming && !(message.userMarkers && message.userMarkers.length && message.userMarkers.find(function (marker) {
36620
36696
  return marker.name === MESSAGE_DELIVERY_STATUS.READ;
36621
- })) && channel.newMessageCount && channel.newMessageCount > 0 && connectionStatus === CONNECTION_STATUS.CONNECTED) {
36697
+ })) && channel.newMessageCount && channel.newMessageCount > 0 && connectionStatus === CONNECTION_STATUS.CONNECTED && !unreadScrollTo) {
36622
36698
  dispatch(markMessagesAsReadAC(channel.id, [message.id]));
36623
36699
  }
36624
36700
  };
@@ -36658,7 +36734,7 @@ var Message$1 = function Message(_ref) {
36658
36734
  }
36659
36735
  };
36660
36736
  React.useEffect(function () {
36661
- if (isVisible) {
36737
+ if (isVisible && !unreadScrollTo) {
36662
36738
  var _channel$lastMessage;
36663
36739
  if (setLastVisibleMessageId) {
36664
36740
  setLastVisibleMessageId(message.id);
@@ -36676,7 +36752,7 @@ var Message$1 = function Message(_ref) {
36676
36752
  removeMessageFromVisibleMessagesMap(message);
36677
36753
  }
36678
36754
  }
36679
- }, [isVisible]);
36755
+ }, [isVisible, unreadScrollTo]);
36680
36756
  useDidUpdate(function () {
36681
36757
  if (tabIsActive) {
36682
36758
  handleSendReadMarker();
@@ -37356,6 +37432,9 @@ var MessageList = function MessageList(_ref2) {
37356
37432
  var dispatch = useDispatch();
37357
37433
  var theme = useSelector(themeSelector);
37358
37434
  var channel = useSelector(activeChannelSelector);
37435
+ var _useState = React.useState(false),
37436
+ scrollIntoView = _useState[0],
37437
+ setScrollIntoView = _useState[1];
37359
37438
  var contactsMap = useSelector(contactsMapSelector, reactRedux.shallowEqual);
37360
37439
  var connectionStatus = useSelector(connectionStatusSelector, reactRedux.shallowEqual);
37361
37440
  var openedMessageMenuId = useSelector(openedMessageMenuSelector, reactRedux.shallowEqual);
@@ -37374,43 +37453,44 @@ var MessageList = function MessageList(_ref2) {
37374
37453
  var pollPendingPollActions = useSelector(pendingPollActionsSelector, reactRedux.shallowEqual);
37375
37454
  var pendingMessagesMap = useSelector(pendingMessagesMapSelector, reactRedux.shallowEqual);
37376
37455
  var showScrollToNewMessageButton = useSelector(showScrollToNewMessageButtonSelector, reactRedux.shallowEqual);
37456
+ var unreadScrollTo = useSelector(unreadScrollToSelector, reactRedux.shallowEqual);
37377
37457
  var messages = useSelector(activeChannelMessagesSelector, reactRedux.shallowEqual) || [];
37378
- var _useState = React.useState(''),
37379
- unreadMessageId = _useState[0],
37380
- setUnreadMessageId = _useState[1];
37381
- var _useState2 = React.useState(null),
37382
- mediaFile = _useState2[0],
37383
- setMediaFile = _useState2[1];
37458
+ var _useState2 = React.useState(''),
37459
+ unreadMessageId = _useState2[0],
37460
+ setUnreadMessageId = _useState2[1];
37384
37461
  var _useState3 = React.useState(null),
37385
- isDragging = _useState3[0],
37386
- setIsDragging = _useState3[1];
37462
+ mediaFile = _useState3[0],
37463
+ setMediaFile = _useState3[1];
37387
37464
  var _useState4 = React.useState(null),
37388
- showTopDate = _useState4[0],
37389
- setShowTopDate = _useState4[1];
37390
- var _useState5 = React.useState(false),
37391
- stopScrolling = _useState5[0],
37392
- setStopScrolling = _useState5[1];
37465
+ isDragging = _useState4[0],
37466
+ setIsDragging = _useState4[1];
37467
+ var _useState5 = React.useState(null),
37468
+ showTopDate = _useState5[0],
37469
+ setShowTopDate = _useState5[1];
37393
37470
  var _useState6 = React.useState(false),
37394
- isScrolling = _useState6[0],
37395
- setIsScrolling = _useState6[1];
37471
+ stopScrolling = _useState6[0],
37472
+ setStopScrolling = _useState6[1];
37473
+ var _useState7 = React.useState(false),
37474
+ isScrolling = _useState7[0],
37475
+ setIsScrolling = _useState7[1];
37396
37476
  var hideTopDateTimeout = React.useRef(null);
37397
- var _useState7 = React.useState(''),
37398
- lastVisibleMessageId = _useState7[0],
37399
- _setLastVisibleMessageId = _useState7[1];
37400
- var _useState8 = React.useState(null),
37401
- scrollToReply = _useState8[0],
37402
- setScrollToReply = _useState8[1];
37403
- var _useState9 = React.useState(0),
37404
- previousScrollTop = _useState9[0],
37405
- setPreviousScrollTop = _useState9[1];
37406
- var _useState0 = React.useState(false),
37407
- shouldPreserveScroll = _useState0[0],
37408
- setShouldPreserveScroll = _useState0[1];
37477
+ var _useState8 = React.useState(''),
37478
+ lastVisibleMessageId = _useState8[0],
37479
+ _setLastVisibleMessageId = _useState8[1];
37480
+ var _useState9 = React.useState(null),
37481
+ scrollToReply = _useState9[0],
37482
+ setScrollToReply = _useState9[1];
37483
+ var _useState0 = React.useState(0),
37484
+ previousScrollTop = _useState0[0],
37485
+ setPreviousScrollTop = _useState0[1];
37486
+ var _useState1 = React.useState(false),
37487
+ shouldPreserveScroll = _useState1[0],
37488
+ setShouldPreserveScroll = _useState1[1];
37409
37489
  var messageForReply = {};
37410
37490
  var attachmentsSelected = false;
37411
- var _useState1 = React.useState(''),
37412
- topDateLabel = _useState1[0],
37413
- setTopDateLabel = _useState1[1];
37491
+ var _useState10 = React.useState(''),
37492
+ topDateLabel = _useState10[0],
37493
+ setTopDateLabel = _useState10[1];
37414
37494
  var scrollRef = React.useRef(null);
37415
37495
  var loadFromServerRef = React.useRef(false);
37416
37496
  var loadDirectionRef = React.useRef('');
@@ -37899,6 +37979,8 @@ var MessageList = function MessageList(_ref2) {
37899
37979
  };
37900
37980
  }, [messagesLoading, messages, lastVisibleMessageId]);
37901
37981
  React.useEffect(function () {
37982
+ var interval = null;
37983
+ log.info('connection status is changed.. .... ', connectionStatus, 'channel ... ', channel);
37902
37984
  if (connectionStatus === CONNECTION_STATUS.CONNECTED) {
37903
37985
  Object.keys(pendingMessagesMap).forEach(function (key) {
37904
37986
  pendingMessagesMap[key].forEach(function (msg) {
@@ -37908,37 +37990,49 @@ var MessageList = function MessageList(_ref2) {
37908
37990
  if (Object.keys(pollPendingPollActions).length > 0) {
37909
37991
  dispatch(resendPendingPollActionsAC(connectionStatus));
37910
37992
  }
37993
+ var count = 0;
37994
+ interval = setInterval(function () {
37995
+ if (count > 20) {
37996
+ clearInterval(interval);
37997
+ }
37998
+ count++;
37999
+ if (channel.id && Object.keys(pollPendingPollActions).length === 0 && Object.keys(pendingMessagesMap).length === 0) {
38000
+ clearInterval(interval);
38001
+ loadingRef.current = false;
38002
+ prevDisableRef.current = false;
38003
+ nextDisableRef.current = false;
38004
+ clearMessagesMap();
38005
+ removeAllMessages();
38006
+ dispatch(getMessagesAC(channel));
38007
+ }
38008
+ }, 100);
37911
38009
  }
37912
- }, [connectionStatus]);
37913
- React.useEffect(function () {
37914
- log.info('connection status is changed.. .... ', connectionStatus, 'channel ... ', channel);
37915
- if (connectionStatus === CONNECTION_STATUS.CONNECTED) {
37916
- if (channel.id && Object.keys(pollPendingPollActions).length === 0 && Object.keys(pendingMessagesMap).length === 0) {
37917
- loadingRef.current = false;
37918
- prevDisableRef.current = false;
37919
- nextDisableRef.current = false;
37920
- clearMessagesMap();
37921
- removeAllMessages();
37922
- dispatch(getMessagesAC(channel));
38010
+ return function () {
38011
+ if (interval) {
38012
+ clearInterval(interval);
37923
38013
  }
37924
- }
37925
- }, [connectionStatus, pollPendingPollActions, pendingMessagesMap]);
38014
+ };
38015
+ }, [connectionStatus]);
37926
38016
  React.useEffect(function () {
37927
- var unreadScrollTo = getUnreadScrollTo();
37928
38017
  if (channel.newMessageCount && channel.newMessageCount > 0 && unreadScrollTo) {
37929
- if (scrollRef.current) {
37930
- scrollRef.current.style.scrollBehavior = 'inherit';
38018
+ var scrollElement = document.getElementById('scrollableDiv');
38019
+ if (scrollElement) {
38020
+ scrollElement.style.scrollBehavior = 'inherit';
37931
38021
  }
38022
+ setScrollIntoView(true);
37932
38023
  var lastReadMessageNode = document.getElementById(channel.lastDisplayedMessageId);
37933
- if (lastReadMessageNode) {
37934
- scrollRef.current.scrollTop = lastReadMessageNode.offsetTop;
37935
- if (scrollRef.current) {
37936
- scrollRef.current.style.scrollBehavior = 'smooth';
37937
- }
37938
- setUnreadScrollTo(false);
38024
+ if (lastReadMessageNode && scrollElement) {
38025
+ scrollElement.scrollTo({
38026
+ top: lastReadMessageNode.offsetTop - 200,
38027
+ behavior: 'auto'
38028
+ });
38029
+ setTimeout(function () {
38030
+ dispatch(setUnreadScrollToAC(false));
38031
+ setScrollIntoView(false);
38032
+ }, 100);
37939
38033
  }
37940
38034
  }
37941
- }, [channel.id, channel.newMessageCount, channel.lastDisplayedMessageId]);
38035
+ }, [channel.id, channel.newMessageCount, scrollRef.current, unreadScrollTo, channel.lastDisplayedMessageId, scrollIntoView, messages.length]);
37942
38036
  React.useEffect(function () {
37943
38037
  return function () {
37944
38038
  if (hideTopDateTimeout.current) {
@@ -44981,7 +45075,7 @@ var Media = function Media(_ref) {
44981
45075
  })));
44982
45076
  };
44983
45077
  var Container$o = styled__default.div(_templateObject$V || (_templateObject$V = _taggedTemplateLiteralLoose(["\n padding: 6px 4px;\n overflow-x: hidden;\n overflow-y: auto;\n list-style: none;\n transition: all 0.2s;\n align-items: flex-start;\n display: flex;\n flex-wrap: wrap;\n"])));
44984
- var MediaItem = styled__default.div(_templateObject2$Q || (_templateObject2$Q = _taggedTemplateLiteralLoose(["\n width: calc(33.3333% - 4px);\n height: 110px;\n box-sizing: border-box;\n //border: 1px solid #ccc;\n border: 0.5px solid rgba(0, 0, 0, 0.1);\n border-radius: 8px;\n overflow: hidden;\n margin: 2px;\n"])));
45078
+ var MediaItem = styled__default.div(_templateObject2$Q || (_templateObject2$Q = _taggedTemplateLiteralLoose(["\n width: calc(33.3333% - 4px);\n aspect-ratio: 1/1;\n box-sizing: border-box;\n //border: 1px solid #ccc;\n border: 0.5px solid rgba(0, 0, 0, 0.1);\n border-radius: 8px;\n overflow: hidden;\n margin: 2px;\n"])));
44985
45079
 
44986
45080
  var _rect$3, _path$1u;
44987
45081
  function _extends$1y() {
package/index.modern.js CHANGED
@@ -9101,15 +9101,6 @@ var query = {
9101
9101
  ReactionsQuery: null,
9102
9102
  PollVotesQueries: {}
9103
9103
  };
9104
- var unreadScrollTo = {
9105
- isScrolled: true
9106
- };
9107
- function getUnreadScrollTo() {
9108
- return unreadScrollTo.isScrolled;
9109
- }
9110
- function setUnreadScrollTo(state) {
9111
- unreadScrollTo.isScrolled = state;
9112
- }
9113
9104
  function getUploadImageIcon() {
9114
9105
  return UploadImageIcon;
9115
9106
  }
@@ -10314,6 +10305,11 @@ function showScrollToNewMessageButtonAC(state) {
10314
10305
  state: state
10315
10306
  });
10316
10307
  }
10308
+ function setUnreadScrollToAC(state) {
10309
+ return setUnreadScrollTo({
10310
+ state: state
10311
+ });
10312
+ }
10317
10313
  function loadMoreMessagesAC(channelId, limit, direction, messageId, hasNext) {
10318
10314
  return {
10319
10315
  type: LOAD_MORE_MESSAGES,
@@ -10646,6 +10642,51 @@ var MESSAGE_LOAD_DIRECTION = {
10646
10642
  PREV: 'prev',
10647
10643
  NEXT: 'next'
10648
10644
  };
10645
+ var shouldSkipDeliveryStatusUpdate = function shouldSkipDeliveryStatusUpdate(markerName, currentDeliveryStatus) {
10646
+ if (markerName === MESSAGE_DELIVERY_STATUS.SENT && (currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.SENT || currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.DELIVERED || currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.READ || currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.PLAYED)) {
10647
+ return true;
10648
+ }
10649
+ if (markerName === MESSAGE_DELIVERY_STATUS.DELIVERED && (currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.DELIVERED || currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.READ || currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.PLAYED)) {
10650
+ return true;
10651
+ }
10652
+ if (markerName === MESSAGE_DELIVERY_STATUS.READ && (currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.READ || currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.PLAYED)) {
10653
+ return true;
10654
+ }
10655
+ if (markerName === MESSAGE_DELIVERY_STATUS.PLAYED && currentDeliveryStatus === MESSAGE_DELIVERY_STATUS.PLAYED) {
10656
+ return true;
10657
+ }
10658
+ return false;
10659
+ };
10660
+ var updateMessageDeliveryStatusAndMarkers = function updateMessageDeliveryStatusAndMarkers(message, markerName) {
10661
+ var _message$markerTotals;
10662
+ if (shouldSkipDeliveryStatusUpdate(markerName, message.deliveryStatus)) {
10663
+ return {
10664
+ markerTotals: message.markerTotals,
10665
+ deliveryStatus: message.deliveryStatus
10666
+ };
10667
+ }
10668
+ var markerInMarkersTotal = message === null || message === void 0 ? void 0 : (_message$markerTotals = message.markerTotals) === null || _message$markerTotals === void 0 ? void 0 : _message$markerTotals.find(function (marker) {
10669
+ return marker.name === markerName;
10670
+ });
10671
+ if (!markerInMarkersTotal) {
10672
+ return {
10673
+ markerTotals: [].concat(message.markerTotals || [], [{
10674
+ name: markerName,
10675
+ count: 1
10676
+ }]),
10677
+ deliveryStatus: markerName
10678
+ };
10679
+ } else {
10680
+ return {
10681
+ markerTotals: message.markerTotals.map(function (marker) {
10682
+ return marker.name === markerName ? _extends({}, marker, {
10683
+ count: marker.count + 1
10684
+ }) : marker;
10685
+ }),
10686
+ deliveryStatus: markerName
10687
+ };
10688
+ }
10689
+ };
10649
10690
  var sendMessageHandler;
10650
10691
  var setSendMessageHandler = function setSendMessageHandler(handler) {
10651
10692
  sendMessageHandler = handler;
@@ -10677,7 +10718,8 @@ var updateMessageOnAllMessages = function updateMessageOnAllMessages(messageId,
10677
10718
  if (updatedParams.state === MESSAGE_STATUS.DELETE) {
10678
10719
  return _extends({}, updatedParams);
10679
10720
  }
10680
- var updatedMessage = _extends({}, message, updatedParams);
10721
+ var statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(message, updatedParams.deliveryStatus);
10722
+ var updatedMessage = _extends({}, message, updatedParams, statusUpdatedMessage);
10681
10723
  if (voteDetails) {
10682
10724
  updatedMessage = _extends({}, updatedMessage, {
10683
10725
  pollDetails: handleVoteDetails(voteDetails, updatedMessage)
@@ -10688,6 +10730,15 @@ var updateMessageOnAllMessages = function updateMessageOnAllMessages(messageId,
10688
10730
  return message;
10689
10731
  });
10690
10732
  };
10733
+ var updateMessageStatusOnAllMessages = function updateMessageStatusOnAllMessages(name, markersMap) {
10734
+ activeChannelAllMessages = activeChannelAllMessages.map(function (message) {
10735
+ if (markersMap[message.id]) {
10736
+ var statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(message, name);
10737
+ return _extends({}, message, statusUpdatedMessage);
10738
+ }
10739
+ return message;
10740
+ });
10741
+ };
10691
10742
  var removeMessageFromAllMessages = function removeMessageFromAllMessages(messageId) {
10692
10743
  activeChannelAllMessages = [].concat(activeChannelAllMessages).filter(function (msg) {
10693
10744
  return !(msg.id === messageId || msg.tid === messageId);
@@ -10695,12 +10746,11 @@ var removeMessageFromAllMessages = function removeMessageFromAllMessages(message
10695
10746
  };
10696
10747
  var updateMarkersOnAllMessages = function updateMarkersOnAllMessages(markersMap, name) {
10697
10748
  activeChannelAllMessages = activeChannelAllMessages.map(function (message) {
10698
- if (markersMap[message.id] && (message.deliveryStatus === MESSAGE_DELIVERY_STATUS.SENT || name === MESSAGE_DELIVERY_STATUS.READ)) {
10699
- return _extends({}, message, {
10700
- deliveryStatus: name
10701
- });
10749
+ if (!markersMap[message.id]) {
10750
+ return message;
10702
10751
  }
10703
- return message;
10752
+ var statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(message, name);
10753
+ return _extends({}, message, statusUpdatedMessage);
10704
10754
  });
10705
10755
  };
10706
10756
  var getAllMessages = function getAllMessages() {
@@ -10778,7 +10828,8 @@ function updateMessageOnMap(channelId, updatedMessage, voteDetails) {
10778
10828
  var _pendingMessagesMap$c;
10779
10829
  var updatedPendingMessages = (_pendingMessagesMap$c = pendingMessagesMap[channelId]) === null || _pendingMessagesMap$c === void 0 ? void 0 : _pendingMessagesMap$c.map(function (msg) {
10780
10830
  if (msg.tid === updatedMessage.messageId) {
10781
- return _extends({}, msg, updatedMessage.params);
10831
+ var statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(msg, updatedMessage.params.deliveryStatus);
10832
+ return _extends({}, msg, updatedMessage.params, statusUpdatedMessage);
10782
10833
  }
10783
10834
  return msg;
10784
10835
  });
@@ -10800,7 +10851,8 @@ function updateMessageOnMap(channelId, updatedMessage, voteDetails) {
10800
10851
  messagesList.push(_extends({}, mes, updatedMessageData));
10801
10852
  continue;
10802
10853
  } else {
10803
- updatedMessageData = _extends({}, mes, updatedMessage.params);
10854
+ var statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(mes, updatedMessage.params.deliveryStatus);
10855
+ updatedMessageData = _extends({}, mes, updatedMessage.params, statusUpdatedMessage);
10804
10856
  var voteDetailsData = void 0;
10805
10857
  if (voteDetails) {
10806
10858
  voteDetailsData = handleVoteDetails(voteDetails, updatedMessageData);
@@ -10899,12 +10951,11 @@ function updateMessageStatusOnMap(channelId, newMarkers) {
10899
10951
  messagesMap[channelId] = messagesMap[channelId].map(function (mes) {
10900
10952
  var name = newMarkers.name;
10901
10953
  var markersMap = newMarkers.markersMap;
10902
- if (markersMap[mes.id] && (mes.deliveryStatus === MESSAGE_DELIVERY_STATUS.SENT || name === MESSAGE_DELIVERY_STATUS.READ)) {
10903
- return _extends({}, mes, {
10904
- deliveryStatus: name
10905
- });
10954
+ if (!markersMap[mes.id]) {
10955
+ return mes;
10906
10956
  }
10907
- return mes;
10957
+ var statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(mes, name);
10958
+ return _extends({}, mes, statusUpdatedMessage);
10908
10959
  });
10909
10960
  }
10910
10961
  }
@@ -11125,7 +11176,8 @@ var initialState$1 = {
11125
11176
  pollVotesLoadingState: {},
11126
11177
  pollVotesInitialCount: null,
11127
11178
  pendingPollActions: {},
11128
- pendingMessagesMap: {}
11179
+ pendingMessagesMap: {},
11180
+ unreadScrollTo: true
11129
11181
  };
11130
11182
  var messageSlice = createSlice({
11131
11183
  name: 'messages',
@@ -11159,6 +11211,9 @@ var messageSlice = createSlice({
11159
11211
  setShowScrollToNewMessageButton: function setShowScrollToNewMessageButton(state, action) {
11160
11212
  state.showScrollToNewMessageButton = action.payload.state;
11161
11213
  },
11214
+ setUnreadScrollTo: function setUnreadScrollTo(state, action) {
11215
+ state.unreadScrollTo = action.payload.state;
11216
+ },
11162
11217
  setMessages: function setMessages(state, action) {
11163
11218
  state.activeChannelMessages = action.payload.messages;
11164
11219
  },
@@ -11219,17 +11274,18 @@ var messageSlice = createSlice({
11219
11274
  markersMap = _action$payload2.markersMap;
11220
11275
  var markerName = name;
11221
11276
  for (var index = 0; index < state.activeChannelMessages.length; index++) {
11222
- if (markerName === MESSAGE_DELIVERY_STATUS.DELIVERED && (state.activeChannelMessages[index].deliveryStatus === MESSAGE_DELIVERY_STATUS.DELIVERED || state.activeChannelMessages[index].deliveryStatus === MESSAGE_DELIVERY_STATUS.READ || state.activeChannelMessages[index].deliveryStatus === MESSAGE_DELIVERY_STATUS.PLAYED)) {
11223
- continue;
11224
- }
11225
- if (markerName === MESSAGE_DELIVERY_STATUS.READ && (state.activeChannelMessages[index].deliveryStatus === MESSAGE_DELIVERY_STATUS.READ || state.activeChannelMessages[index].deliveryStatus === MESSAGE_DELIVERY_STATUS.PLAYED)) {
11226
- continue;
11227
- }
11228
- if (markerName === MESSAGE_DELIVERY_STATUS.PLAYED && state.activeChannelMessages[index].deliveryStatus === MESSAGE_DELIVERY_STATUS.PLAYED) {
11277
+ if (!markersMap[state.activeChannelMessages[index].id]) {
11229
11278
  continue;
11230
11279
  }
11231
- if (markersMap[state.activeChannelMessages[index].id] && state.activeChannelMessages[index].state !== 'Deleted') {
11232
- state.activeChannelMessages[index].deliveryStatus = markerName;
11280
+ if (state.activeChannelMessages[index].state !== 'Deleted') {
11281
+ var message = state.activeChannelMessages[index];
11282
+ var _updateMessageDeliver = updateMessageDeliveryStatusAndMarkers(message, markerName),
11283
+ markerTotals = _updateMessageDeliver.markerTotals,
11284
+ deliveryStatus = _updateMessageDeliver.deliveryStatus;
11285
+ state.activeChannelMessages[index] = _extends({}, message, {
11286
+ markerTotals: markerTotals,
11287
+ deliveryStatus: deliveryStatus
11288
+ });
11233
11289
  }
11234
11290
  }
11235
11291
  },
@@ -11246,10 +11302,15 @@ var messageSlice = createSlice({
11246
11302
  if (params.state === MESSAGE_STATUS.DELETE) {
11247
11303
  return _extends({}, params);
11248
11304
  } else {
11249
- var messageData = _extends({}, message, params);
11305
+ var statusUpdatedMessage = null;
11306
+ if (params !== null && params !== void 0 && params.deliveryStatus) {
11307
+ statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(message, params.deliveryStatus);
11308
+ }
11309
+ var messageOldData = _extends({}, message, params, statusUpdatedMessage);
11310
+ var messageData = _extends({}, messageOldData);
11250
11311
  if (voteDetails) {
11251
- messageData = _extends({}, messageData, {
11252
- pollDetails: handleVoteDetails(voteDetails, messageData)
11312
+ messageData = _extends({}, messageOldData, {
11313
+ pollDetails: handleVoteDetails(voteDetails, messageOldData)
11253
11314
  });
11254
11315
  }
11255
11316
  if (messageData.deliveryStatus !== MESSAGE_DELIVERY_STATUS.PENDING) {
@@ -11693,6 +11754,7 @@ var _messageSlice$actions = messageSlice.actions,
11693
11754
  setScrollToMentionedMessage = _messageSlice$actions.setScrollToMentionedMessage,
11694
11755
  setScrollToNewMessage = _messageSlice$actions.setScrollToNewMessage,
11695
11756
  setShowScrollToNewMessageButton = _messageSlice$actions.setShowScrollToNewMessageButton,
11757
+ setUnreadScrollTo = _messageSlice$actions.setUnreadScrollTo,
11696
11758
  setMessages = _messageSlice$actions.setMessages,
11697
11759
  addMessages = _messageSlice$actions.addMessages,
11698
11760
  updateMessagesStatus = _messageSlice$actions.updateMessagesStatus,
@@ -14786,9 +14848,7 @@ function watchForEvents() {
14786
14848
  _context2.n = 58;
14787
14849
  return put(scrollToNewMessageAC(true, false, true));
14788
14850
  case 58:
14789
- if (getMessagesFromMap(_channel5.id) && getMessagesFromMap(_channel5.id).length) {
14790
- addMessageToMap(_channel5.id, message);
14791
- }
14851
+ addMessageToMap(_channel5.id, message);
14792
14852
  _context2.n = 59;
14793
14853
  return put(updateChannelDataAC(_channel5.id, {
14794
14854
  messageCount: channelForAdd.messageCount,
@@ -14988,6 +15048,7 @@ function watchForEvents() {
14988
15048
  name: markerList.name,
14989
15049
  markersMap: markersMap
14990
15050
  });
15051
+ updateMessageStatusOnAllMessages(markerList.name, markersMap);
14991
15052
  _context2.n = 77;
14992
15053
  return put(updateMessagesMarkersAC(channelId, markerList.name, markerList));
14993
15054
  case 77:
@@ -16856,7 +16917,7 @@ function switchChannel(action) {
16856
16917
  }
16857
16918
  currentActiveChannel = getChannelFromMap(getActiveChannelId());
16858
16919
  _context10.n = 11;
16859
- return call(setUnreadScrollTo, true);
16920
+ return put(setUnreadScrollToAC(true));
16860
16921
  case 11:
16861
16922
  _context10.n = 12;
16862
16923
  return call(setActiveChannelId, channel && channel.id);
@@ -18500,6 +18561,9 @@ var pendingPollActionsSelector = function pendingPollActionsSelector(store) {
18500
18561
  var pendingMessagesMapSelector = function pendingMessagesMapSelector(store) {
18501
18562
  return store.MessageReducer.pendingMessagesMap;
18502
18563
  };
18564
+ var unreadScrollToSelector = function unreadScrollToSelector(store) {
18565
+ return store.MessageReducer.unreadScrollTo;
18566
+ };
18503
18567
 
18504
18568
  var getFrame = function getFrame(videoSrc, time) {
18505
18569
  try {
@@ -19221,15 +19285,12 @@ function sendTextMessage(action) {
19221
19285
  throw new Error('Connection required to send message');
19222
19286
  case 17:
19223
19287
  _context4.n = 18;
19224
- return put(getMessagesAC(channel, true, channel.lastMessage.id, undefined, undefined, false));
19225
- case 18:
19226
- _context4.n = 19;
19227
19288
  return put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
19228
- case 19:
19229
- _context4.n = 22;
19289
+ case 18:
19290
+ _context4.n = 21;
19230
19291
  break;
19231
- case 20:
19232
- _context4.p = 20;
19292
+ case 19:
19293
+ _context4.p = 19;
19233
19294
  _t3 = _context4.v;
19234
19295
  log.error('error on send text message ... ', _t3);
19235
19296
  updateMessageOnMap(channel.id, {
@@ -19239,23 +19300,23 @@ function sendTextMessage(action) {
19239
19300
  }
19240
19301
  });
19241
19302
  if (!(activeChannelId === channel.id)) {
19242
- _context4.n = 21;
19303
+ _context4.n = 20;
19243
19304
  break;
19244
19305
  }
19245
19306
  updateMessageOnAllMessages(sendMessageTid, {
19246
19307
  state: MESSAGE_STATUS.FAILED
19247
19308
  });
19248
- _context4.n = 21;
19309
+ _context4.n = 20;
19249
19310
  return put(updateMessageAC(sendMessageTid, {
19250
19311
  state: MESSAGE_STATUS.FAILED
19251
19312
  }));
19252
- case 21:
19253
- _context4.n = 22;
19313
+ case 20:
19314
+ _context4.n = 21;
19254
19315
  return put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
19255
- case 22:
19316
+ case 21:
19256
19317
  return _context4.a(2);
19257
19318
  }
19258
- }, _marked2$2, null, [[3, 20]]);
19319
+ }, _marked2$2, null, [[3, 19]]);
19259
19320
  }
19260
19321
  function forwardMessage(action) {
19261
19322
  var payload, message, channelId, connectionState, isForward, channel, SceytChatClient, mentionedUserIds, attachments, attachmentBuilder, att, messageBuilder, pollDetails, messageToSend, pendingMessage, activeChannelId, isCachedChannel, hasNextMessages, messageResponse, messageUpdateData, messageToUpdate, channelUpdateParam, _t4;
@@ -19927,7 +19988,7 @@ function editMessage(action) {
19927
19988
  }, _marked6$1, null, [[0, 5]]);
19928
19989
  }
19929
19990
  function getMessagesQuery(action) {
19930
- var _action$payload, channel, loadWithLastMessage, messageId, limit, withDeliveredMessages, highlight, behavior, SceytChatClient, messageQueryBuilder, messageQuery, cachedMessages, result, allMessages, havLastMessage, secondResult, sentMessages, messagesMap, filteredSentMessages, _allMessages, messageIndex, maxLengthPart, _secondResult, thirdResult, _secondResult2, _thirdResult, _secondResult3, _secondResult4, updatedMessages, pendingMessages, _messagesMap, filteredPendingMessages, _t9;
19991
+ var _action$payload, channel, loadWithLastMessage, messageId, limit, withDeliveredMessages, highlight, behavior, SceytChatClient, messageQueryBuilder, messageQuery, cachedMessages, result, allMessages, havLastMessage, secondResult, sentMessages, messagesMap, filteredSentMessages, _allMessages, messageIndex, maxLengthPart, _secondResult, thirdResult, _secondResult2, _thirdResult, _secondResult3, _Object$values, previousAllMessages, _secondResult4, updatedMessages, lastMessageId, _allMessages2, setMappedAllMessages, allMessagesAfterLastMessage, pendingMessages, _messagesMap, filteredPendingMessages, _t9;
19931
19992
  return _regenerator().w(function (_context9) {
19932
19993
  while (1) switch (_context9.p = _context9.n) {
19933
19994
  case 0:
@@ -20171,6 +20232,7 @@ function getMessagesQuery(action) {
20171
20232
  _context9.n = 46;
20172
20233
  break;
20173
20234
  case 39:
20235
+ previousAllMessages = getAllMessages();
20174
20236
  setMessagesToMap(channel.id, []);
20175
20237
  setAllMessages([]);
20176
20238
  if (!(cachedMessages && cachedMessages.length)) {
@@ -20208,13 +20270,26 @@ function getMessagesQuery(action) {
20208
20270
  updateMessageOnAllMessages(msg.id, updatedMessage || msg);
20209
20271
  updatedMessages.push(updatedMessage || msg);
20210
20272
  });
20273
+ lastMessageId = updatedMessages[updatedMessages.length - 1].id;
20274
+ _allMessages2 = getAllMessages();
20275
+ setMappedAllMessages = {};
20276
+ previousAllMessages.forEach(function (msg) {
20277
+ setMappedAllMessages[msg.id] = msg;
20278
+ });
20279
+ _allMessages2.forEach(function (msg) {
20280
+ setMappedAllMessages[msg.id] = msg;
20281
+ });
20282
+ allMessagesAfterLastMessage = (_Object$values = Object.values(setMappedAllMessages)) === null || _Object$values === void 0 ? void 0 : _Object$values.filter(function (msg) {
20283
+ return msg.id > lastMessageId;
20284
+ });
20285
+ updatedMessages = [].concat(updatedMessages, allMessagesAfterLastMessage || []);
20211
20286
  setMessagesToMap(channel.id, updatedMessages);
20212
- setAllMessages([].concat(updatedMessages));
20287
+ setAllMessages(updatedMessages);
20213
20288
  _context9.n = 44;
20214
20289
  return put(setMessagesAC(JSON.parse(JSON.stringify(updatedMessages))));
20215
20290
  case 44:
20216
20291
  _context9.n = 45;
20217
- return put(setMessagesHasPrevAC(result.hasNext));
20292
+ return put(setMessagesHasPrevAC(true));
20218
20293
  case 45:
20219
20294
  _context9.n = 46;
20220
20295
  return put(setMessagesHasNextAC(false));
@@ -23897,7 +23972,7 @@ var ChannelMessageText = function ChannelMessageText(_ref2) {
23897
23972
  return mem === user.id ? ' You' : " " + systemMessageUserName(mem, contactsMap && contactsMap[mem], lastMessage.mentionedUsers);
23898
23973
  })) + " " + (lastMessageMetas && lastMessageMetas.m && lastMessageMetas.m.length > 5 ? "and " + (lastMessageMetas.m.length - 5) + " more" : '') : lastMessage.body === 'RM' ? " removed " + (lastMessageMetas && lastMessageMetas.m && lastMessageMetas.m.slice(0, 5).map(function (mem) {
23899
23974
  return mem === user.id ? ' You' : " " + systemMessageUserName(mem, contactsMap && contactsMap[mem], lastMessage.mentionedUsers);
23900
- })) + " " + (lastMessageMetas && lastMessageMetas.m && lastMessageMetas.m.length > 5 ? "and " + (lastMessageMetas.m.length - 5) + " more" : '') : lastMessage.body === 'LG' ? 'Left this group' : lastMessage.body === 'JL' ? 'Joined via invite link' : '') : (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(LastMessageDescription, {
23975
+ })) + " " + (lastMessageMetas && lastMessageMetas.m && lastMessageMetas.m.length > 5 ? "and " + (lastMessageMetas.m.length - 5) + " more" : '') : lastMessage.body === 'LG' ? 'Left this group' : lastMessage.body === 'JL' ? 'joined via invite link' : '') : (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(LastMessageDescription, {
23901
23976
  poll: (lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.pollDetails) && (lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.type) === MESSAGE_TYPE.POLL
23902
23977
  }, channel.lastReactedMessage && (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, "Reacted", /*#__PURE__*/React__default.createElement(ReactionItem, null, channel.newReactions && channel.newReactions[0] && channel.newReactions[0].key), "to", ' "')), LastMessageAttachments({
23903
23978
  lastMessage: lastMessage
@@ -30167,7 +30242,7 @@ var VideoPreview = /*#__PURE__*/memo(function VideoPreview(_ref) {
30167
30242
  preload: 'auto',
30168
30243
  id: 'video',
30169
30244
  src: file.attachmentUrl || videoUrl
30170
- }), videoCurrentTime && !isRepliedMessage && (/*#__PURE__*/React__default.createElement(VideoControls, null, !isPreview && !!videoCurrentTime && !isRepliedMessage && !uploading && !isDetailsView && (
30245
+ }), videoCurrentTime && !isRepliedMessage && (!isDetailsView || !loading) && (/*#__PURE__*/React__default.createElement(VideoControls, null, !isPreview && !!videoCurrentTime && !isRepliedMessage && !uploading && !isDetailsView && (
30171
30246
  /*#__PURE__*/
30172
30247
  React__default.createElement(VideoPlayButton, null, /*#__PURE__*/React__default.createElement(SvgPlayVideo, null))), /*#__PURE__*/React__default.createElement(VideoTime, {
30173
30248
  isDetailsView: isDetailsView,
@@ -36453,6 +36528,7 @@ var Message$1 = function Message(_ref) {
36453
36528
  reactionsPopupHorizontalPosition = _useState10[0],
36454
36529
  setReactionsPopupHorizontalPosition = _useState10[1];
36455
36530
  var scrollToNewMessage = useSelector(scrollToNewMessageSelector, shallowEqual);
36531
+ var unreadScrollTo = useSelector(unreadScrollToSelector, shallowEqual);
36456
36532
  var messageItemRef = useRef();
36457
36533
  var isVisible = useOnScreen(messageItemRef);
36458
36534
  var reactionsCount = message.reactionTotals && message.reactionTotals.reduce(function (prevValue, currentValue) {
@@ -36611,13 +36687,13 @@ var Message$1 = function Message(_ref) {
36611
36687
  })) {
36612
36688
  if (message.userMarkers && message.userMarkers.length && message.userMarkers.find(function (marker) {
36613
36689
  return marker.name === MESSAGE_DELIVERY_STATUS.READ;
36614
- }) && message.incoming) {
36690
+ }) && message.incoming && !unreadScrollTo) {
36615
36691
  dispatch(markMessagesAsDeliveredAC(channel.id, [message.id]));
36616
36692
  }
36617
36693
  }
36618
36694
  if (isVisible && message.incoming && !(message.userMarkers && message.userMarkers.length && message.userMarkers.find(function (marker) {
36619
36695
  return marker.name === MESSAGE_DELIVERY_STATUS.READ;
36620
- })) && channel.newMessageCount && channel.newMessageCount > 0 && connectionStatus === CONNECTION_STATUS.CONNECTED) {
36696
+ })) && channel.newMessageCount && channel.newMessageCount > 0 && connectionStatus === CONNECTION_STATUS.CONNECTED && !unreadScrollTo) {
36621
36697
  dispatch(markMessagesAsReadAC(channel.id, [message.id]));
36622
36698
  }
36623
36699
  };
@@ -36657,7 +36733,7 @@ var Message$1 = function Message(_ref) {
36657
36733
  }
36658
36734
  };
36659
36735
  useEffect(function () {
36660
- if (isVisible) {
36736
+ if (isVisible && !unreadScrollTo) {
36661
36737
  var _channel$lastMessage;
36662
36738
  if (setLastVisibleMessageId) {
36663
36739
  setLastVisibleMessageId(message.id);
@@ -36675,7 +36751,7 @@ var Message$1 = function Message(_ref) {
36675
36751
  removeMessageFromVisibleMessagesMap(message);
36676
36752
  }
36677
36753
  }
36678
- }, [isVisible]);
36754
+ }, [isVisible, unreadScrollTo]);
36679
36755
  useDidUpdate(function () {
36680
36756
  if (tabIsActive) {
36681
36757
  handleSendReadMarker();
@@ -37355,6 +37431,9 @@ var MessageList = function MessageList(_ref2) {
37355
37431
  var dispatch = useDispatch();
37356
37432
  var theme = useSelector(themeSelector);
37357
37433
  var channel = useSelector(activeChannelSelector);
37434
+ var _useState = useState(false),
37435
+ scrollIntoView = _useState[0],
37436
+ setScrollIntoView = _useState[1];
37358
37437
  var contactsMap = useSelector(contactsMapSelector, shallowEqual);
37359
37438
  var connectionStatus = useSelector(connectionStatusSelector, shallowEqual);
37360
37439
  var openedMessageMenuId = useSelector(openedMessageMenuSelector, shallowEqual);
@@ -37373,43 +37452,44 @@ var MessageList = function MessageList(_ref2) {
37373
37452
  var pollPendingPollActions = useSelector(pendingPollActionsSelector, shallowEqual);
37374
37453
  var pendingMessagesMap = useSelector(pendingMessagesMapSelector, shallowEqual);
37375
37454
  var showScrollToNewMessageButton = useSelector(showScrollToNewMessageButtonSelector, shallowEqual);
37455
+ var unreadScrollTo = useSelector(unreadScrollToSelector, shallowEqual);
37376
37456
  var messages = useSelector(activeChannelMessagesSelector, shallowEqual) || [];
37377
- var _useState = useState(''),
37378
- unreadMessageId = _useState[0],
37379
- setUnreadMessageId = _useState[1];
37380
- var _useState2 = useState(null),
37381
- mediaFile = _useState2[0],
37382
- setMediaFile = _useState2[1];
37457
+ var _useState2 = useState(''),
37458
+ unreadMessageId = _useState2[0],
37459
+ setUnreadMessageId = _useState2[1];
37383
37460
  var _useState3 = useState(null),
37384
- isDragging = _useState3[0],
37385
- setIsDragging = _useState3[1];
37461
+ mediaFile = _useState3[0],
37462
+ setMediaFile = _useState3[1];
37386
37463
  var _useState4 = useState(null),
37387
- showTopDate = _useState4[0],
37388
- setShowTopDate = _useState4[1];
37389
- var _useState5 = useState(false),
37390
- stopScrolling = _useState5[0],
37391
- setStopScrolling = _useState5[1];
37464
+ isDragging = _useState4[0],
37465
+ setIsDragging = _useState4[1];
37466
+ var _useState5 = useState(null),
37467
+ showTopDate = _useState5[0],
37468
+ setShowTopDate = _useState5[1];
37392
37469
  var _useState6 = useState(false),
37393
- isScrolling = _useState6[0],
37394
- setIsScrolling = _useState6[1];
37470
+ stopScrolling = _useState6[0],
37471
+ setStopScrolling = _useState6[1];
37472
+ var _useState7 = useState(false),
37473
+ isScrolling = _useState7[0],
37474
+ setIsScrolling = _useState7[1];
37395
37475
  var hideTopDateTimeout = useRef(null);
37396
- var _useState7 = useState(''),
37397
- lastVisibleMessageId = _useState7[0],
37398
- _setLastVisibleMessageId = _useState7[1];
37399
- var _useState8 = useState(null),
37400
- scrollToReply = _useState8[0],
37401
- setScrollToReply = _useState8[1];
37402
- var _useState9 = useState(0),
37403
- previousScrollTop = _useState9[0],
37404
- setPreviousScrollTop = _useState9[1];
37405
- var _useState0 = useState(false),
37406
- shouldPreserveScroll = _useState0[0],
37407
- setShouldPreserveScroll = _useState0[1];
37476
+ var _useState8 = useState(''),
37477
+ lastVisibleMessageId = _useState8[0],
37478
+ _setLastVisibleMessageId = _useState8[1];
37479
+ var _useState9 = useState(null),
37480
+ scrollToReply = _useState9[0],
37481
+ setScrollToReply = _useState9[1];
37482
+ var _useState0 = useState(0),
37483
+ previousScrollTop = _useState0[0],
37484
+ setPreviousScrollTop = _useState0[1];
37485
+ var _useState1 = useState(false),
37486
+ shouldPreserveScroll = _useState1[0],
37487
+ setShouldPreserveScroll = _useState1[1];
37408
37488
  var messageForReply = {};
37409
37489
  var attachmentsSelected = false;
37410
- var _useState1 = useState(''),
37411
- topDateLabel = _useState1[0],
37412
- setTopDateLabel = _useState1[1];
37490
+ var _useState10 = useState(''),
37491
+ topDateLabel = _useState10[0],
37492
+ setTopDateLabel = _useState10[1];
37413
37493
  var scrollRef = useRef(null);
37414
37494
  var loadFromServerRef = useRef(false);
37415
37495
  var loadDirectionRef = useRef('');
@@ -37898,6 +37978,8 @@ var MessageList = function MessageList(_ref2) {
37898
37978
  };
37899
37979
  }, [messagesLoading, messages, lastVisibleMessageId]);
37900
37980
  useEffect(function () {
37981
+ var interval = null;
37982
+ log.info('connection status is changed.. .... ', connectionStatus, 'channel ... ', channel);
37901
37983
  if (connectionStatus === CONNECTION_STATUS.CONNECTED) {
37902
37984
  Object.keys(pendingMessagesMap).forEach(function (key) {
37903
37985
  pendingMessagesMap[key].forEach(function (msg) {
@@ -37907,37 +37989,49 @@ var MessageList = function MessageList(_ref2) {
37907
37989
  if (Object.keys(pollPendingPollActions).length > 0) {
37908
37990
  dispatch(resendPendingPollActionsAC(connectionStatus));
37909
37991
  }
37992
+ var count = 0;
37993
+ interval = setInterval(function () {
37994
+ if (count > 20) {
37995
+ clearInterval(interval);
37996
+ }
37997
+ count++;
37998
+ if (channel.id && Object.keys(pollPendingPollActions).length === 0 && Object.keys(pendingMessagesMap).length === 0) {
37999
+ clearInterval(interval);
38000
+ loadingRef.current = false;
38001
+ prevDisableRef.current = false;
38002
+ nextDisableRef.current = false;
38003
+ clearMessagesMap();
38004
+ removeAllMessages();
38005
+ dispatch(getMessagesAC(channel));
38006
+ }
38007
+ }, 100);
37910
38008
  }
37911
- }, [connectionStatus]);
37912
- useEffect(function () {
37913
- log.info('connection status is changed.. .... ', connectionStatus, 'channel ... ', channel);
37914
- if (connectionStatus === CONNECTION_STATUS.CONNECTED) {
37915
- if (channel.id && Object.keys(pollPendingPollActions).length === 0 && Object.keys(pendingMessagesMap).length === 0) {
37916
- loadingRef.current = false;
37917
- prevDisableRef.current = false;
37918
- nextDisableRef.current = false;
37919
- clearMessagesMap();
37920
- removeAllMessages();
37921
- dispatch(getMessagesAC(channel));
38009
+ return function () {
38010
+ if (interval) {
38011
+ clearInterval(interval);
37922
38012
  }
37923
- }
37924
- }, [connectionStatus, pollPendingPollActions, pendingMessagesMap]);
38013
+ };
38014
+ }, [connectionStatus]);
37925
38015
  useEffect(function () {
37926
- var unreadScrollTo = getUnreadScrollTo();
37927
38016
  if (channel.newMessageCount && channel.newMessageCount > 0 && unreadScrollTo) {
37928
- if (scrollRef.current) {
37929
- scrollRef.current.style.scrollBehavior = 'inherit';
38017
+ var scrollElement = document.getElementById('scrollableDiv');
38018
+ if (scrollElement) {
38019
+ scrollElement.style.scrollBehavior = 'inherit';
37930
38020
  }
38021
+ setScrollIntoView(true);
37931
38022
  var lastReadMessageNode = document.getElementById(channel.lastDisplayedMessageId);
37932
- if (lastReadMessageNode) {
37933
- scrollRef.current.scrollTop = lastReadMessageNode.offsetTop;
37934
- if (scrollRef.current) {
37935
- scrollRef.current.style.scrollBehavior = 'smooth';
37936
- }
37937
- setUnreadScrollTo(false);
38023
+ if (lastReadMessageNode && scrollElement) {
38024
+ scrollElement.scrollTo({
38025
+ top: lastReadMessageNode.offsetTop - 200,
38026
+ behavior: 'auto'
38027
+ });
38028
+ setTimeout(function () {
38029
+ dispatch(setUnreadScrollToAC(false));
38030
+ setScrollIntoView(false);
38031
+ }, 100);
37938
38032
  }
37939
38033
  }
37940
- }, [channel.id, channel.newMessageCount, channel.lastDisplayedMessageId]);
38034
+ }, [channel.id, channel.newMessageCount, scrollRef.current, unreadScrollTo, channel.lastDisplayedMessageId, scrollIntoView, messages.length]);
37941
38035
  useEffect(function () {
37942
38036
  return function () {
37943
38037
  if (hideTopDateTimeout.current) {
@@ -44980,7 +45074,7 @@ var Media = function Media(_ref) {
44980
45074
  })));
44981
45075
  };
44982
45076
  var Container$o = styled.div(_templateObject$V || (_templateObject$V = _taggedTemplateLiteralLoose(["\n padding: 6px 4px;\n overflow-x: hidden;\n overflow-y: auto;\n list-style: none;\n transition: all 0.2s;\n align-items: flex-start;\n display: flex;\n flex-wrap: wrap;\n"])));
44983
- var MediaItem = styled.div(_templateObject2$Q || (_templateObject2$Q = _taggedTemplateLiteralLoose(["\n width: calc(33.3333% - 4px);\n height: 110px;\n box-sizing: border-box;\n //border: 1px solid #ccc;\n border: 0.5px solid rgba(0, 0, 0, 0.1);\n border-radius: 8px;\n overflow: hidden;\n margin: 2px;\n"])));
45077
+ var MediaItem = styled.div(_templateObject2$Q || (_templateObject2$Q = _taggedTemplateLiteralLoose(["\n width: calc(33.3333% - 4px);\n aspect-ratio: 1/1;\n box-sizing: border-box;\n //border: 1px solid #ccc;\n border: 0.5px solid rgba(0, 0, 0, 0.1);\n border-radius: 8px;\n overflow: hidden;\n margin: 2px;\n"])));
44984
45078
 
44985
45079
  var _rect$3, _path$1u;
44986
45080
  function _extends$1y() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sceyt-chat-react-uikit",
3
- "version": "1.7.6-beta.6",
3
+ "version": "1.7.6-beta.8",
4
4
  "description": "Interactive React UI Components for Sceyt Chat.",
5
5
  "author": "Sceyt",
6
6
  "license": "MIT",