sceyt-chat-react-uikit 1.7.1-beta.15 → 1.7.1-beta.17

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 +247 -215
  2. package/index.modern.js +247 -215
  3. package/package.json +1 -1
package/index.js CHANGED
@@ -10340,6 +10340,7 @@ var initialState$1 = {
10340
10340
  attachmentsUploadingState: {},
10341
10341
  scrollToMessage: null,
10342
10342
  scrollToMessageHighlight: true,
10343
+ scrollToMessageBehavior: 'smooth',
10343
10344
  scrollToMentionedMessage: false,
10344
10345
  reactionsList: [],
10345
10346
  reactionsHasNext: true,
@@ -10366,6 +10367,7 @@ var messageSlice = createSlice({
10366
10367
  setScrollToMessage: function setScrollToMessage(state, action) {
10367
10368
  state.scrollToMessage = action.payload.messageId;
10368
10369
  state.scrollToMessageHighlight = action.payload.highlight;
10370
+ state.scrollToMessageBehavior = action.payload.behavior || 'smooth';
10369
10371
  },
10370
10372
  setScrollToMentionedMessage: function setScrollToMentionedMessage(state, action) {
10371
10373
  state.scrollToMentionedMessage = action.payload.isScrollToMentionedMessage;
@@ -11617,7 +11619,7 @@ function setMessageToEditAC(message) {
11617
11619
  message: message
11618
11620
  });
11619
11621
  }
11620
- function getMessagesAC(channel, loadWithLastMessage, messageId, limit, withDeliveredMessages, highlight) {
11622
+ function getMessagesAC(channel, loadWithLastMessage, messageId, limit, withDeliveredMessages, highlight, behavior) {
11621
11623
  if (highlight === void 0) {
11622
11624
  highlight = true;
11623
11625
  }
@@ -11629,7 +11631,8 @@ function getMessagesAC(channel, loadWithLastMessage, messageId, limit, withDeliv
11629
11631
  messageId: messageId,
11630
11632
  limit: limit,
11631
11633
  withDeliveredMessages: withDeliveredMessages,
11632
- highlight: highlight
11634
+ highlight: highlight,
11635
+ behavior: behavior
11633
11636
  }
11634
11637
  };
11635
11638
  }
@@ -11643,13 +11646,14 @@ function getMessageAC(channelId, messageId, limit) {
11643
11646
  }
11644
11647
  };
11645
11648
  }
11646
- function setScrollToMessagesAC(messageId, highlight) {
11649
+ function setScrollToMessagesAC(messageId, highlight, behavior) {
11647
11650
  if (highlight === void 0) {
11648
11651
  highlight = true;
11649
11652
  }
11650
11653
  return setScrollToMessage({
11651
11654
  messageId: messageId || '',
11652
- highlight: highlight
11655
+ highlight: highlight,
11656
+ behavior: behavior
11653
11657
  });
11654
11658
  }
11655
11659
  function setScrollToMentionedMessageAC(isScrollToMentionedMessage) {
@@ -17110,6 +17114,9 @@ var scrollToMessageSelector = function scrollToMessageSelector(store) {
17110
17114
  var scrollToMessageHighlightSelector = function scrollToMessageHighlightSelector(store) {
17111
17115
  return store.MessageReducer.scrollToMessageHighlight;
17112
17116
  };
17117
+ var scrollToMessageBehaviorSelector = function scrollToMessageBehaviorSelector(store) {
17118
+ return store.MessageReducer.scrollToMessageBehavior;
17119
+ };
17113
17120
  var reactionsListSelector = function reactionsListSelector(store) {
17114
17121
  return store.MessageReducer.reactionsList;
17115
17122
  };
@@ -18503,7 +18510,7 @@ function editMessage(action) {
18503
18510
  }, _marked6$1, null, [[0, 5]]);
18504
18511
  }
18505
18512
  function getMessagesQuery(action) {
18506
- var _action$payload, channel, loadWithLastMessage, messageId, limit, withDeliveredMessages, highlight, 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;
18513
+ 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;
18507
18514
  return _regenerator().w(function (_context9) {
18508
18515
  while (1) switch (_context9.p = _context9.n) {
18509
18516
  case 0:
@@ -18511,7 +18518,7 @@ function getMessagesQuery(action) {
18511
18518
  _context9.n = 1;
18512
18519
  return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADING));
18513
18520
  case 1:
18514
- _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;
18521
+ _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;
18515
18522
  if (!(channel.id && !channel.isMockChannel)) {
18516
18523
  _context9.n = 47;
18517
18524
  break;
@@ -18597,7 +18604,7 @@ function getMessagesQuery(action) {
18597
18604
  break;
18598
18605
  }
18599
18606
  _context9.n = 12;
18600
- return effects.put(setScrollToMessagesAC(messageId, highlight));
18607
+ return effects.put(setScrollToMessagesAC(messageId, highlight, behavior));
18601
18608
  case 12:
18602
18609
  _context9.n = 45;
18603
18610
  break;
@@ -18660,7 +18667,7 @@ function getMessagesQuery(action) {
18660
18667
  setHasNextCached(false);
18661
18668
  case 22:
18662
18669
  _context9.n = 23;
18663
- return effects.put(setScrollToMessagesAC(messageId));
18670
+ return effects.put(setScrollToMessagesAC(messageId, true, behavior));
18664
18671
  case 23:
18665
18672
  _context9.n = 24;
18666
18673
  return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
@@ -18840,44 +18847,50 @@ function getMessageQuery(action) {
18840
18847
  return effects.call(getChannelFromAllChannels, channelId);
18841
18848
  case 1:
18842
18849
  channel = _context0.v;
18843
- _context0.n = 2;
18844
- return effects.call(channel.getMessagesById, [messageId]);
18850
+ if (channel) {
18851
+ _context0.n = 2;
18852
+ break;
18853
+ }
18854
+ return _context0.a(2);
18845
18855
  case 2:
18856
+ _context0.n = 3;
18857
+ return effects.call(channel.getMessagesById, [messageId]);
18858
+ case 3:
18846
18859
  messages = _context0.v;
18847
18860
  fetchedMessage = messages && messages[0] ? JSON.parse(JSON.stringify(messages[0])) : null;
18848
18861
  if (!fetchedMessage) {
18849
- _context0.n = 5;
18862
+ _context0.n = 6;
18850
18863
  break;
18851
18864
  }
18852
- _context0.n = 3;
18865
+ _context0.n = 4;
18853
18866
  return effects.put(updateMessageAC(messageId, fetchedMessage));
18854
- case 3:
18867
+ case 4:
18855
18868
  updateMessageOnMap(channel.id, {
18856
18869
  messageId: messageId,
18857
18870
  params: fetchedMessage
18858
18871
  });
18859
18872
  updateMessageOnAllMessages(messageId, fetchedMessage);
18860
- _context0.n = 4;
18873
+ _context0.n = 5;
18861
18874
  return effects.put(setScrollToMessagesAC(messageId, false));
18862
- case 4:
18875
+ case 5:
18863
18876
  if (!(channel.lastMessage && channel.lastMessage.id === messageId)) {
18864
- _context0.n = 5;
18877
+ _context0.n = 6;
18865
18878
  break;
18866
18879
  }
18867
18880
  updateChannelLastMessageOnAllChannels(channel.id, fetchedMessage);
18868
- _context0.n = 5;
18881
+ _context0.n = 6;
18869
18882
  return effects.put(updateChannelLastMessageAC(fetchedMessage, channel));
18870
- case 5:
18871
- _context0.n = 7;
18872
- break;
18873
18883
  case 6:
18874
- _context0.p = 6;
18884
+ _context0.n = 8;
18885
+ break;
18886
+ case 7:
18887
+ _context0.p = 7;
18875
18888
  _t0 = _context0.v;
18876
18889
  log.error('error in message query', _t0);
18877
- case 7:
18890
+ case 8:
18878
18891
  return _context0.a(2);
18879
18892
  }
18880
- }, _marked8$1, null, [[0, 6]]);
18893
+ }, _marked8$1, null, [[0, 7]]);
18881
18894
  }
18882
18895
  function loadMoreMessages(action) {
18883
18896
  var payload, limit, direction, channelId, messageId, hasNext, SceytChatClient, messageQueryBuilder, messageQuery, result, _t1;
@@ -26136,6 +26149,7 @@ var Message = function Message(_ref) {
26136
26149
  var _useColor = useColors(),
26137
26150
  textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY],
26138
26151
  overlayBackground = _useColor[THEME_COLORS.OVERLAY_BACKGROUND];
26152
+ var scrollToNewMessage = useSelector(scrollToNewMessageSelector);
26139
26153
  var dispatch = useDispatch();
26140
26154
  var ChatClient = getClient();
26141
26155
  var user = ChatClient.user;
@@ -26154,7 +26168,19 @@ var Message = function Message(_ref) {
26154
26168
  };
26155
26169
  React.useEffect(function () {
26156
26170
  if (isVisible) {
26171
+ var _channel$lastMessage;
26157
26172
  handleSendReadMarker();
26173
+ if (!channel.isLinkedChannel) {
26174
+ setMessageToVisibleMessagesMap(message);
26175
+ }
26176
+ if (scrollToNewMessage.scrollToBottom && ((message === null || message === void 0 ? void 0 : message.id) === ((_channel$lastMessage = channel.lastMessage) === null || _channel$lastMessage === void 0 ? void 0 : _channel$lastMessage.id) || !(message !== null && message !== void 0 && message.id))) {
26177
+ dispatch(scrollToNewMessageAC(false, false, false));
26178
+ dispatch(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
26179
+ }
26180
+ } else {
26181
+ if (!channel.isLinkedChannel) {
26182
+ removeMessageFromVisibleMessagesMap(message);
26183
+ }
26158
26184
  }
26159
26185
  }, [isVisible]);
26160
26186
  useDidUpdate(function () {
@@ -31421,53 +31447,50 @@ var OGMetadataContainer = styled__default.div(_templateObject$A || (_templateObj
31421
31447
  var showOGMetadata = _ref2.showOGMetadata;
31422
31448
  return showOGMetadata ? '0.8rem' : '0';
31423
31449
  });
31424
- var ImageContainer = styled__default.div(_templateObject2$v || (_templateObject2$v = _taggedTemplateLiteralLoose(["\n max-width: ", ";\n max-height: ", ";\n opacity: ", ";\n overflow: hidden;\n width: 100%;\n margin: 0 auto;\n padding: ", ";\n height: ", ";\n transition: height 0.2s ease;\n"])), function (_ref3) {
31450
+ var ImageContainer = styled__default.div(_templateObject2$v || (_templateObject2$v = _taggedTemplateLiteralLoose(["\n ", "\n\n ", "\n\n opacity: ", ";\n overflow: hidden;\n margin: 0 auto;\n padding: ", ";\n transition: height 0.2s ease;\n"])), function (_ref3) {
31425
31451
  var width = _ref3.width;
31426
- return width + "px";
31452
+ return width ? "\n max-width: " + (width + "px") + ";\n " : "\n max-width: 100%;\n width: 100%;\n ";
31427
31453
  }, function (_ref4) {
31428
- var height = _ref4.height;
31429
- return height + "px";
31454
+ var height = _ref4.height,
31455
+ showOGMetadata = _ref4.showOGMetadata;
31456
+ return height ? "\n max-height: " + (height + "px") + ";\n height: " + (showOGMetadata ? height + "px" : '0') + ";\n " : "\n max-height: 200px;\n height: " + (showOGMetadata ? '200px' : '0') + ";\n ";
31430
31457
  }, function (_ref5) {
31431
31458
  var showOGMetadata = _ref5.showOGMetadata;
31432
31459
  return showOGMetadata ? 1 : 0;
31433
31460
  }, function (_ref6) {
31434
31461
  var showOGMetadata = _ref6.showOGMetadata;
31435
31462
  return showOGMetadata ? '0.3rem' : '0';
31436
- }, function (_ref7) {
31437
- var showOGMetadata = _ref7.showOGMetadata,
31438
- height = _ref7.height;
31439
- return showOGMetadata ? height + "px" : '0';
31440
31463
  });
31441
- var OGText = styled__default.div(_templateObject3$p || (_templateObject3$p = _taggedTemplateLiteralLoose(["\n width: 80%;\n padding: 0.5rem;\n margin: 0;\n transition: all 0.2s ease;\n"])));
31442
- var Url = styled__default.p(_templateObject4$l || (_templateObject4$l = _taggedTemplateLiteralLoose(["\n font-weight: normal;\n font-size: 13px;\n padding: 0;\n margin: 0 0 12px 0;\n color: gray;\n max-width: ", ";\n transition: all 0.2s ease;\n"])), function (_ref8) {
31464
+ var OGText = styled__default.div(_templateObject3$p || (_templateObject3$p = _taggedTemplateLiteralLoose(["\n padding: 0.5rem;\n margin: 0;\n transition: all 0.2s ease;\n"])));
31465
+ var Url = styled__default.p(_templateObject4$l || (_templateObject4$l = _taggedTemplateLiteralLoose(["\n font-weight: normal;\n font-size: 13px;\n padding: 0;\n margin: 0 0 12px 0;\n color: gray;\n ", "\n transition: all 0.2s ease;\n"])), function (_ref7) {
31466
+ var maxWidth = _ref7.maxWidth;
31467
+ return maxWidth && "\n max-width: " + (maxWidth + "px") + ";\n ";
31468
+ });
31469
+ var Title = styled__default.p(_templateObject5$h || (_templateObject5$h = _taggedTemplateLiteralLoose(["\n font-weight: bold;\n font-size: 13px;\n padding: 0;\n display: flex;\n align-items: center;\n ", "\n transition: all 0.2s ease;\n"])), function (_ref8) {
31443
31470
  var maxWidth = _ref8.maxWidth;
31444
- return maxWidth + "px";
31471
+ return maxWidth && "\n max-width: " + (maxWidth + "px") + ";\n ";
31445
31472
  });
31446
- var Title = styled__default.p(_templateObject5$h || (_templateObject5$h = _taggedTemplateLiteralLoose(["\n font-weight: bold;\n font-size: 13px;\n padding: 0;\n display: flex;\n align-items: center;\n max-width: ", ";\n transition: all 0.2s ease;\n"])), function (_ref9) {
31473
+ var Desc = styled__default.p(_templateObject6$f || (_templateObject6$f = _taggedTemplateLiteralLoose(["\n font-weight: normal;\n font-size: 13px;\n padding: 0;\n ", "\n transition: all 0.2s ease;\n"])), function (_ref9) {
31447
31474
  var maxWidth = _ref9.maxWidth;
31448
- return maxWidth + "px";
31449
- });
31450
- var Desc = styled__default.p(_templateObject6$f || (_templateObject6$f = _taggedTemplateLiteralLoose(["\n font-weight: normal;\n font-size: 13px;\n padding: 0;\n max-width: ", ";\n transition: all 0.2s ease;\n"])), function (_ref0) {
31451
- var maxWidth = _ref0.maxWidth;
31452
- return maxWidth + "px";
31475
+ return maxWidth && "\n max-width: " + (maxWidth + "px") + ";\n ";
31453
31476
  });
31454
- var Img = styled__default.img(_templateObject7$d || (_templateObject7$d = _taggedTemplateLiteralLoose(["\n max-width: ", ";\n min-width: ", ";\n max-height: ", ";\n min-height: ", ";\n width: ", ";\n height: ", ";\n object-fit: cover;\n transition: height 0.2s ease;\n"])), function (_ref1) {
31477
+ var Img = styled__default.img(_templateObject7$d || (_templateObject7$d = _taggedTemplateLiteralLoose(["\n max-width: ", ";\n min-width: ", ";\n max-height: ", ";\n min-height: ", ";\n width: ", ";\n height: ", ";\n object-fit: cover;\n transition: height 0.2s ease;\n"])), function (_ref0) {
31478
+ var width = _ref0.width;
31479
+ return width + "px";
31480
+ }, function (_ref1) {
31455
31481
  var width = _ref1.width;
31456
31482
  return width + "px";
31457
31483
  }, function (_ref10) {
31458
- var width = _ref10.width;
31459
- return width + "px";
31484
+ var height = _ref10.height;
31485
+ return height + "px";
31460
31486
  }, function (_ref11) {
31461
31487
  var height = _ref11.height;
31462
31488
  return height + "px";
31463
31489
  }, function (_ref12) {
31464
- var height = _ref12.height;
31465
- return height + "px";
31466
- }, function (_ref13) {
31467
- var width = _ref13.width;
31490
+ var width = _ref12.width;
31468
31491
  return width + "px";
31469
- }, function (_ref14) {
31470
- var height = _ref14.height;
31492
+ }, function (_ref13) {
31493
+ var height = _ref13.height;
31471
31494
  return height + "px";
31472
31495
  });
31473
31496
  var Favicon = styled__default.img(_templateObject8$c || (_templateObject8$c = _taggedTemplateLiteralLoose(["\n transition: all 0.2s ease;\n width: 24px;\n height: 24px;\n object-fit: contain;\n margin-right: 4px;\n"])));
@@ -32810,14 +32833,6 @@ var HiddenMessageProperty;
32810
32833
  })(HiddenMessageProperty || (HiddenMessageProperty = {}));
32811
32834
 
32812
32835
  var _templateObject$D, _templateObject2$y, _templateObject3$s, _templateObject4$o, _templateObject5$k, _templateObject6$h, _templateObject7$f, _templateObject8$e, _templateObject9$c, _templateObject0$b, _templateObject1$8;
32813
- var loadFromServer = false;
32814
- var loadDirection = '';
32815
- var nextDisable = false;
32816
- var prevDisable = false;
32817
- var scrollToBottom = false;
32818
- var shouldLoadMessages;
32819
- var loading = false;
32820
- var messagesIndexMap = {};
32821
32836
  var CreateMessageDateDivider = function CreateMessageDateDivider(_ref) {
32822
32837
  var lastIndex = _ref.lastIndex,
32823
32838
  currentMessageDate = _ref.currentMessageDate,
@@ -33027,6 +33042,7 @@ var MessageList = function MessageList(_ref2) {
33027
33042
  var scrollToMentionedMessage = useSelector(scrollToMentionedMessageSelector, reactRedux.shallowEqual);
33028
33043
  var scrollToRepliedMessage = useSelector(scrollToMessageSelector, reactRedux.shallowEqual);
33029
33044
  var scrollToMessageHighlight = useSelector(scrollToMessageHighlightSelector, reactRedux.shallowEqual);
33045
+ var scrollToMessageBehavior = useSelector(scrollToMessageBehaviorSelector, reactRedux.shallowEqual);
33030
33046
  var browserTabIsActive = useSelector(browserTabIsActiveSelector, reactRedux.shallowEqual);
33031
33047
  var hasNextMessages = useSelector(messagesHasNextSelector, reactRedux.shallowEqual);
33032
33048
  var hasPrevMessages = useSelector(messagesHasPrevSelector, reactRedux.shallowEqual);
@@ -33067,35 +33083,39 @@ var MessageList = function MessageList(_ref2) {
33067
33083
  setShouldPreserveScroll = _useState0[1];
33068
33084
  var messageForReply = {};
33069
33085
  var attachmentsSelected = false;
33070
- var messageTopDateRef = React.useRef(null);
33086
+ var _useState1 = React.useState(''),
33087
+ topDateLabel = _useState1[0],
33088
+ setTopDateLabel = _useState1[1];
33071
33089
  var scrollRef = React.useRef(null);
33090
+ var loadFromServerRef = React.useRef(false);
33091
+ var loadDirectionRef = React.useRef('');
33092
+ var nextDisableRef = React.useRef(false);
33093
+ var prevDisableRef = React.useRef(false);
33094
+ var scrollToBottomRef = React.useRef(false);
33095
+ var shouldLoadMessagesRef = React.useRef('');
33096
+ var loadingRef = React.useRef(false);
33097
+ var messagesIndexMapRef = React.useRef({});
33098
+ var scrollRafRef = React.useRef(null);
33072
33099
  var renderTopDate = function renderTopDate() {
33073
- var dateLabels = document.querySelectorAll('.divider');
33074
- var messageTopDate = messageTopDateRef.current;
33100
+ var container = scrollRef.current;
33101
+ if (!container) return;
33102
+ var dateLabels = container.querySelectorAll('.divider');
33075
33103
  var text = '';
33076
33104
  for (var i = dateLabels.length - 1; i >= 0; i--) {
33077
- var _dateLabel$firstChild;
33078
33105
  var dateLabel = dateLabels[i];
33079
- var span = dateLabel === null || dateLabel === void 0 ? void 0 : (_dateLabel$firstChild = dateLabel.firstChild) === null || _dateLabel$firstChild === void 0 ? void 0 : _dateLabel$firstChild.firstChild;
33080
- if (!text && scrollRef.current.scrollTop > dateLabel.offsetTop) {
33081
- text = span && span.innerText;
33082
- span.style.display = 'none';
33083
- } else {
33084
- span.style.display = 'block';
33106
+ if (!text && container.scrollTop > dateLabel.offsetTop) {
33107
+ var span = (dateLabel === null || dateLabel === void 0 ? void 0 : dateLabel.firstChild) && dateLabel.firstChild.firstChild;
33108
+ text = span ? span.innerText || '' : '';
33085
33109
  }
33086
33110
  }
33087
- if (text) {
33088
- messageTopDate.innerText = text;
33089
- messageTopDate.style.display = 'inline';
33090
- } else {
33091
- messageTopDate.style.display = 'none';
33092
- }
33111
+ setTopDateLabel(text);
33093
33112
  };
33094
- var handleMessagesListScroll = React.useCallback(function (event) {
33113
+ var handleMessagesListScroll = React.useCallback(function () {
33095
33114
  try {
33115
+ var target = scrollRef.current;
33116
+ if (!target) return Promise.resolve();
33096
33117
  if (scrollToMentionedMessage) {
33097
- var _target = event.target;
33098
- if (_target.scrollTop <= -50 || channel.lastMessage.id !== messages[messages.length - 1].id) {
33118
+ if (target.scrollTop <= -50 || channel.lastMessage.id !== messages[messages.length - 1].id) {
33099
33119
  dispatch(showScrollToNewMessageButtonAC(true));
33100
33120
  } else {
33101
33121
  dispatch(showScrollToNewMessageButtonAC(false));
@@ -33108,7 +33128,6 @@ var MessageList = function MessageList(_ref2) {
33108
33128
  setShowTopDate(false);
33109
33129
  }, 1000);
33110
33130
  renderTopDate();
33111
- var target = event.target;
33112
33131
  var forceLoadPrevMessages = false;
33113
33132
  if (-target.scrollTop + target.offsetHeight + 30 > target.scrollHeight) {
33114
33133
  forceLoadPrevMessages = true;
@@ -33123,51 +33142,68 @@ var MessageList = function MessageList(_ref2) {
33123
33142
  }
33124
33143
  if (scrollToReply) {
33125
33144
  target.scrollTop = scrollToReply;
33126
- } else {
33127
- if (messagesIndexMap[lastVisibleMessageId] < 15 || forceLoadPrevMessages) {
33128
- if (connectionStatus === CONNECTION_STATUS.CONNECTED && !scrollToNewMessage.scrollToBottom && hasPrevMessages) {
33129
- if (loading || messagesLoading === LOADING_STATE.LOADING || prevDisable) {
33130
- shouldLoadMessages = 'prev';
33131
- } else {
33132
- if (shouldLoadMessages === 'prev') {
33133
- shouldLoadMessages = '';
33134
- }
33135
- loadDirection = 'prev';
33136
- handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.PREV, LOAD_MAX_MESSAGE_COUNT);
33137
- if (!getHasPrevCached()) {
33138
- loadFromServer = true;
33139
- }
33140
- nextDisable = true;
33145
+ return Promise.resolve();
33146
+ }
33147
+ var currentIndex = messagesIndexMapRef.current[lastVisibleMessageId];
33148
+ var hasIndex = typeof currentIndex === 'number';
33149
+ if (hasIndex && currentIndex < 15 || forceLoadPrevMessages) {
33150
+ if (connectionStatus === CONNECTION_STATUS.CONNECTED && !scrollToNewMessage.scrollToBottom && hasPrevMessages) {
33151
+ if (loadingRef.current || messagesLoading === LOADING_STATE.LOADING || prevDisableRef.current) {
33152
+ shouldLoadMessagesRef.current = 'prev';
33153
+ } else {
33154
+ if (shouldLoadMessagesRef.current === 'prev') {
33155
+ shouldLoadMessagesRef.current = '';
33141
33156
  }
33157
+ loadDirectionRef.current = 'prev';
33158
+ handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.PREV, LOAD_MAX_MESSAGE_COUNT);
33159
+ if (!getHasPrevCached()) {
33160
+ loadFromServerRef.current = true;
33161
+ }
33162
+ nextDisableRef.current = true;
33142
33163
  }
33143
33164
  }
33144
- if (messagesIndexMap[lastVisibleMessageId] >= messages.length - 15 || target.scrollTop === 0) {
33145
- if (connectionStatus === CONNECTION_STATUS.CONNECTED && !scrollToNewMessage.scrollToBottom && (hasNextMessages || getHasNextCached())) {
33146
- if (loading || messagesLoading === LOADING_STATE.LOADING || nextDisable) {
33147
- shouldLoadMessages = 'next';
33148
- } else {
33149
- if (shouldLoadMessages === 'next') {
33150
- shouldLoadMessages = '';
33151
- }
33152
- loadDirection = 'next';
33153
- prevDisable = true;
33154
- handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.NEXT, LOAD_MAX_MESSAGE_COUNT);
33165
+ }
33166
+ if (hasIndex && currentIndex >= messages.length - 15 || target.scrollTop === 0) {
33167
+ if (connectionStatus === CONNECTION_STATUS.CONNECTED && !scrollToNewMessage.scrollToBottom && (hasNextMessages || getHasNextCached())) {
33168
+ if (loadingRef.current || messagesLoading === LOADING_STATE.LOADING || nextDisableRef.current) {
33169
+ shouldLoadMessagesRef.current = 'next';
33170
+ } else {
33171
+ if (shouldLoadMessagesRef.current === 'next') {
33172
+ shouldLoadMessagesRef.current = '';
33155
33173
  }
33174
+ loadDirectionRef.current = 'next';
33175
+ prevDisableRef.current = true;
33176
+ handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.NEXT, LOAD_MAX_MESSAGE_COUNT);
33156
33177
  }
33157
33178
  }
33158
- if (messagesIndexMap[lastVisibleMessageId] > messages.length - 10) {
33159
- nextDisable = false;
33160
- }
33179
+ }
33180
+ if (hasIndex && currentIndex > messages.length - 10) {
33181
+ nextDisableRef.current = false;
33161
33182
  }
33162
33183
  return Promise.resolve();
33163
33184
  } catch (e) {
33164
33185
  return Promise.reject(e);
33165
33186
  }
33166
- }, [channel === null || channel === void 0 ? void 0 : (_channel$lastMessage = channel.lastMessage) === null || _channel$lastMessage === void 0 ? void 0 : _channel$lastMessage.id, messages, scrollToMentionedMessage, scrollToNewMessage, messagesLoading, hasPrevMessages, hasNextMessages, messagesIndexMap, lastVisibleMessageId, connectionStatus, shouldLoadMessages, loadDirection, getHasPrevCached, getHasNextCached, scrollToReply, loading, prevDisable, nextDisable]);
33187
+ }, [channel === null || channel === void 0 ? void 0 : (_channel$lastMessage = channel.lastMessage) === null || _channel$lastMessage === void 0 ? void 0 : _channel$lastMessage.id, messages, scrollToMentionedMessage, scrollToNewMessage, messagesLoading, hasPrevMessages, hasNextMessages, lastVisibleMessageId, connectionStatus, getHasPrevCached, getHasNextCached, scrollToReply]);
33188
+ var onScroll = React.useCallback(function () {
33189
+ if (scrollRafRef.current !== null) return;
33190
+ scrollRafRef.current = window.requestAnimationFrame(function () {
33191
+ scrollRafRef.current = null;
33192
+ handleMessagesListScroll();
33193
+ });
33194
+ }, [handleMessagesListScroll]);
33195
+ React.useEffect(function () {
33196
+ return function () {
33197
+ if (scrollRafRef.current !== null) {
33198
+ cancelAnimationFrame(scrollRafRef.current);
33199
+ scrollRafRef.current = null;
33200
+ }
33201
+ };
33202
+ }, []);
33167
33203
  var handleScrollToRepliedMessage = function handleScrollToRepliedMessage(messageId) {
33168
33204
  try {
33169
- prevDisable = true;
33170
- nextDisable = true;
33205
+ prevDisableRef.current = true;
33206
+ nextDisableRef.current = true;
33171
33207
  if (messages.findIndex(function (msg) {
33172
33208
  return msg.id === messageId;
33173
33209
  }) >= 10) {
@@ -33181,8 +33217,8 @@ var MessageList = function MessageList(_ref2) {
33181
33217
  var positiveValue = repliedMessage.offsetTop - scrollRef.current.offsetHeight / 2 < 0 ? repliedMessage.offsetTop - scrollRef.current.offsetHeight * -1 : repliedMessage.offsetTop - scrollRef.current.offsetHeight / 2;
33182
33218
  setTimeout(function () {
33183
33219
  repliedMessage.classList.remove('highlight');
33184
- prevDisable = false;
33185
- nextDisable = false;
33220
+ prevDisableRef.current = false;
33221
+ nextDisableRef.current = false;
33186
33222
  }, 1000 + positiveValue * 0.1);
33187
33223
  }
33188
33224
  } else {
@@ -33203,10 +33239,10 @@ var MessageList = function MessageList(_ref2) {
33203
33239
  var hasNextCached = getHasNextCached();
33204
33240
  if (messagesLoading === LOADING_STATE.LOADED && connectionStatus === CONNECTION_STATUS.CONNECTED) {
33205
33241
  if (direction === MESSAGE_LOAD_DIRECTION.PREV && firstMessageId && (hasPrevMessages || hasPrevCached)) {
33206
- loading = true;
33242
+ loadingRef.current = true;
33207
33243
  dispatch(loadMoreMessagesAC(channel.id, limit, direction, firstMessageId, hasPrevMessages));
33208
33244
  } else if (direction === MESSAGE_LOAD_DIRECTION.NEXT && lastMessageId && (hasNextMessages || hasNextCached)) {
33209
- loading = true;
33245
+ loadingRef.current = true;
33210
33246
  dispatch(loadMoreMessagesAC(channel.id, limit, direction, lastMessageId, hasNextMessages));
33211
33247
  }
33212
33248
  }
@@ -33237,39 +33273,42 @@ var MessageList = function MessageList(_ref2) {
33237
33273
  setIsDragging(false);
33238
33274
  }
33239
33275
  };
33276
+ var readDroppedFiles = function readDroppedFiles(e) {
33277
+ return new Promise(function (resolve) {
33278
+ var fileList = Object.values(e.dataTransfer.files);
33279
+ var attachmentsFiles = [];
33280
+ var readFiles = 0;
33281
+ var errorCount = 0;
33282
+ fileList.forEach(function (attachment) {
33283
+ var fileReader = new FileReader();
33284
+ fileReader.onload = function (event) {
33285
+ var file = event.target.result;
33286
+ attachmentsFiles.push({
33287
+ name: attachment.name,
33288
+ data: file,
33289
+ type: attachment.type
33290
+ });
33291
+ readFiles++;
33292
+ if (readFiles + errorCount === fileList.length) {
33293
+ resolve(attachmentsFiles);
33294
+ }
33295
+ };
33296
+ fileReader.onerror = function () {
33297
+ errorCount++;
33298
+ if (readFiles + errorCount === fileList.length) {
33299
+ resolve(attachmentsFiles);
33300
+ }
33301
+ };
33302
+ fileReader.readAsDataURL(attachment);
33303
+ });
33304
+ });
33305
+ };
33240
33306
  var handleDropFile = function handleDropFile(e) {
33241
33307
  e.preventDefault();
33242
33308
  e.stopPropagation();
33243
33309
  setIsDragging(false);
33244
33310
  if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
33245
- var fileList = Object.values(e.dataTransfer.files);
33246
- new Promise(function (resolve) {
33247
- var attachmentsFiles = [];
33248
- var readFiles = 0;
33249
- var errorCount = 0;
33250
- fileList.forEach(function (attachment) {
33251
- var fileReader = new FileReader();
33252
- fileReader.onload = function (event) {
33253
- var file = event.target.result;
33254
- attachmentsFiles.push({
33255
- name: attachment.name,
33256
- data: file,
33257
- type: attachment.type
33258
- });
33259
- readFiles++;
33260
- if (readFiles + errorCount === fileList.length) {
33261
- resolve(attachmentsFiles);
33262
- }
33263
- };
33264
- fileReader.onerror = function () {
33265
- errorCount++;
33266
- if (readFiles + errorCount === fileList.length) {
33267
- resolve(attachmentsFiles);
33268
- }
33269
- };
33270
- fileReader.readAsDataURL(attachment);
33271
- });
33272
- }).then(function (result) {
33311
+ readDroppedFiles(e).then(function (result) {
33273
33312
  dispatch(setDraggedAttachmentsAC(result, 'file'));
33274
33313
  })["catch"](function (error) {
33275
33314
  console.error('Error in handleDropFile:', error);
@@ -33282,34 +33321,7 @@ var MessageList = function MessageList(_ref2) {
33282
33321
  e.stopPropagation();
33283
33322
  setIsDragging(false);
33284
33323
  if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
33285
- var fileList = Object.values(e.dataTransfer.files);
33286
- new Promise(function (resolve) {
33287
- var attachmentsFiles = [];
33288
- var readFiles = 0;
33289
- var errorCount = 0;
33290
- fileList.forEach(function (attachment) {
33291
- var fileReader = new FileReader();
33292
- fileReader.onload = function (event) {
33293
- var file = event.target.result;
33294
- attachmentsFiles.push({
33295
- name: attachment.name,
33296
- data: file,
33297
- type: attachment.type
33298
- });
33299
- readFiles++;
33300
- if (readFiles + errorCount === fileList.length) {
33301
- resolve(attachmentsFiles);
33302
- }
33303
- };
33304
- fileReader.onerror = function () {
33305
- errorCount++;
33306
- if (readFiles + errorCount === fileList.length) {
33307
- resolve(attachmentsFiles);
33308
- }
33309
- };
33310
- fileReader.readAsDataURL(attachment);
33311
- });
33312
- }).then(function (result) {
33324
+ readDroppedFiles(e).then(function (result) {
33313
33325
  dispatch(setDraggedAttachmentsAC(result, 'media'));
33314
33326
  })["catch"](function (error) {
33315
33327
  console.error('Error in handleDropMedia:', error);
@@ -33321,21 +33333,21 @@ var MessageList = function MessageList(_ref2) {
33321
33333
  var _messages, _channel$lastMessage2;
33322
33334
  if (messages.length > 0 && ((_messages = messages[messages.length - 1]) === null || _messages === void 0 ? void 0 : _messages.id) === ((_channel$lastMessage2 = channel.lastMessage) === null || _channel$lastMessage2 === void 0 ? void 0 : _channel$lastMessage2.id) && scrollRef.current && scrollRef.current.scrollTop > -50 && !showScrollToNewMessageButton) {
33323
33335
  dispatch(showScrollToNewMessageButtonAC(false));
33324
- prevDisable = false;
33336
+ prevDisableRef.current = false;
33325
33337
  }
33326
33338
  }, [messages, channel === null || channel === void 0 ? void 0 : (_channel$lastMessage3 = channel.lastMessage) === null || _channel$lastMessage3 === void 0 ? void 0 : _channel$lastMessage3.id, scrollRef === null || scrollRef === void 0 ? void 0 : (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.scrollTop, showScrollToNewMessageButton]);
33327
33339
  React.useEffect(function () {
33328
33340
  if (scrollToRepliedMessage) {
33329
- loading = false;
33341
+ loadingRef.current = false;
33330
33342
  scrollRef.current.style.scrollBehavior = 'inherit';
33331
33343
  var repliedMessage = document.getElementById(scrollToRepliedMessage);
33332
33344
  if (repliedMessage) {
33333
33345
  setScrollToReply(repliedMessage && repliedMessage.offsetTop - (channel.backToLinkedChannel ? 0 : 200));
33334
33346
  scrollRef.current.scrollTo({
33335
33347
  top: repliedMessage && repliedMessage.offsetTop - (channel.backToLinkedChannel ? 0 : 200),
33336
- behavior: 'smooth'
33348
+ behavior: scrollToMessageBehavior
33337
33349
  });
33338
- scrollRef.current.style.scrollBehavior = 'smooth';
33350
+ scrollRef.current.style.scrollBehavior = scrollToMessageBehavior;
33339
33351
  if (!channel.backToLinkedChannel && scrollToMessageHighlight) {
33340
33352
  repliedMessage && repliedMessage.classList.add('highlight');
33341
33353
  }
@@ -33345,9 +33357,9 @@ var MessageList = function MessageList(_ref2) {
33345
33357
  var _repliedMessage = document.getElementById(scrollToRepliedMessage);
33346
33358
  _repliedMessage && _repliedMessage.classList.remove('highlight');
33347
33359
  }
33348
- prevDisable = false;
33360
+ prevDisableRef.current = false;
33349
33361
  setScrollToReply(null);
33350
- scrollRef.current.style.scrollBehavior = 'smooth';
33362
+ scrollRef.current.style.scrollBehavior = 'instant';
33351
33363
  }, 1000 + positiveValue * 0.1);
33352
33364
  }
33353
33365
  dispatch(setScrollToMessagesAC(null));
@@ -33363,15 +33375,15 @@ var MessageList = function MessageList(_ref2) {
33363
33375
  });
33364
33376
  }
33365
33377
  } else {
33366
- nextDisable = true;
33367
- prevDisable = true;
33378
+ nextDisableRef.current = true;
33379
+ prevDisableRef.current = true;
33368
33380
  scrollRef.current.scrollTo({
33369
33381
  top: 0,
33370
33382
  behavior: 'smooth'
33371
33383
  });
33372
33384
  dispatch(showScrollToNewMessageButtonAC(false));
33373
33385
  setTimeout(function () {
33374
- prevDisable = false;
33386
+ prevDisableRef.current = false;
33375
33387
  }, 800);
33376
33388
  }
33377
33389
  }
@@ -33389,11 +33401,18 @@ var MessageList = function MessageList(_ref2) {
33389
33401
  React.useEffect(function () {
33390
33402
  setHasNextCached(false);
33391
33403
  setHasPrevCached(false);
33404
+ messagesIndexMapRef.current = {};
33405
+ loadFromServerRef.current = false;
33406
+ loadDirectionRef.current = '';
33407
+ nextDisableRef.current = false;
33408
+ prevDisableRef.current = false;
33409
+ shouldLoadMessagesRef.current = '';
33410
+ loadingRef.current = false;
33392
33411
  if (channel.backToLinkedChannel) {
33393
33412
  var visibleMessages = getVisibleMessagesMap();
33394
33413
  var visibleMessagesIds = Object.keys(visibleMessages);
33395
33414
  var messageId = visibleMessagesIds[visibleMessagesIds.length - 1];
33396
- dispatch(getMessagesAC(channel, undefined, messageId));
33415
+ dispatch(getMessagesAC(channel, undefined, messageId, undefined, undefined, undefined, 'instant'));
33397
33416
  setUnreadMessageId(messageId);
33398
33417
  } else {
33399
33418
  if (!channel.isLinkedChannel) {
@@ -33416,9 +33435,9 @@ var MessageList = function MessageList(_ref2) {
33416
33435
  }
33417
33436
  setPreviousScrollTop(0);
33418
33437
  setShouldPreserveScroll(false);
33419
- nextDisable = false;
33420
- prevDisable = false;
33421
- scrollToBottom = true;
33438
+ nextDisableRef.current = false;
33439
+ prevDisableRef.current = false;
33440
+ scrollToBottomRef.current = true;
33422
33441
  setAllowEditDeleteIncomingMessage(allowEditDeleteIncomingMessage);
33423
33442
  }, [channel.id]);
33424
33443
  React.useEffect(function () {
@@ -33442,35 +33461,36 @@ var MessageList = function MessageList(_ref2) {
33442
33461
  setShouldPreserveScroll(true);
33443
33462
  }
33444
33463
  }
33445
- if (loading) {
33446
- if (loadDirection !== 'next') {
33464
+ if (loadingRef.current) {
33465
+ if (loadDirectionRef.current !== 'next') {
33447
33466
  var lastVisibleMessage = document.getElementById(lastVisibleMessageId);
33448
33467
  if (lastVisibleMessage) {
33449
33468
  scrollRef.current.style.scrollBehavior = 'inherit';
33450
33469
  scrollRef.current.scrollTop = lastVisibleMessage.offsetTop;
33451
33470
  scrollRef.current.style.scrollBehavior = 'smooth';
33452
33471
  }
33453
- if (loadFromServer) {
33472
+ if (loadFromServerRef.current) {
33454
33473
  setTimeout(function () {
33455
- loading = false;
33456
- loadFromServer = false;
33457
- nextDisable = false;
33458
- if (shouldLoadMessages === 'prev' && messagesIndexMap[lastVisibleMessageId] < 15) {
33474
+ loadingRef.current = false;
33475
+ loadFromServerRef.current = false;
33476
+ nextDisableRef.current = false;
33477
+ var currentIndex = messagesIndexMapRef.current[lastVisibleMessageId];
33478
+ if (shouldLoadMessagesRef.current === 'prev' && typeof currentIndex === 'number' && currentIndex < 15) {
33459
33479
  handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.PREV, LOAD_MAX_MESSAGE_COUNT);
33460
33480
  }
33461
- if (shouldLoadMessages === 'next' && messagesIndexMap[lastVisibleMessageId] > messages.length - 15) {
33481
+ if (shouldLoadMessagesRef.current === 'next' && typeof currentIndex === 'number' && currentIndex > messages.length - 15) {
33462
33482
  handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.NEXT, LOAD_MAX_MESSAGE_COUNT);
33463
33483
  }
33464
33484
  }, 50);
33465
33485
  } else {
33466
- loading = false;
33467
- if (shouldLoadMessages === 'prev') {
33486
+ loadingRef.current = false;
33487
+ if (shouldLoadMessagesRef.current === 'prev') {
33468
33488
  handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.PREV, LOAD_MAX_MESSAGE_COUNT);
33469
- shouldLoadMessages = '';
33489
+ shouldLoadMessagesRef.current = '';
33470
33490
  }
33471
- if (shouldLoadMessages === 'next') {
33491
+ if (shouldLoadMessagesRef.current === 'next') {
33472
33492
  handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.NEXT, LOAD_MAX_MESSAGE_COUNT);
33473
- shouldLoadMessages = '';
33493
+ shouldLoadMessagesRef.current = '';
33474
33494
  }
33475
33495
  }
33476
33496
  } else {
@@ -33480,22 +33500,26 @@ var MessageList = function MessageList(_ref2) {
33480
33500
  scrollRef.current.scrollTop = _lastVisibleMessage.offsetTop - scrollRef.current.offsetHeight + _lastVisibleMessage.offsetHeight;
33481
33501
  scrollRef.current.style.scrollBehavior = 'smooth';
33482
33502
  }
33483
- loading = false;
33484
- prevDisable = false;
33485
- if (shouldLoadMessages === 'prev') {
33503
+ loadingRef.current = false;
33504
+ prevDisableRef.current = false;
33505
+ if (shouldLoadMessagesRef.current === 'prev') {
33486
33506
  handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.PREV, LOAD_MAX_MESSAGE_COUNT);
33487
- shouldLoadMessages = '';
33507
+ shouldLoadMessagesRef.current = '';
33488
33508
  }
33489
- if (shouldLoadMessages === 'next') {
33509
+ if (shouldLoadMessagesRef.current === 'next') {
33490
33510
  handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.NEXT, LOAD_MAX_MESSAGE_COUNT);
33491
- shouldLoadMessages = '';
33511
+ shouldLoadMessagesRef.current = '';
33492
33512
  }
33493
33513
  }
33494
33514
  }
33495
33515
  renderTopDate();
33496
- if (scrollToBottom) {
33497
- dispatch(scrollToNewMessageAC(true));
33498
- scrollToBottom = false;
33516
+ if (scrollToBottomRef.current) {
33517
+ if (channel.backToLinkedChannel) {
33518
+ dispatch(scrollToNewMessageAC(false));
33519
+ } else {
33520
+ dispatch(scrollToNewMessageAC(true));
33521
+ }
33522
+ scrollToBottomRef.current = false;
33499
33523
  }
33500
33524
  if (shouldPreserveScroll && scrollRef.current && previousScrollTop > 0) {
33501
33525
  requestAnimationFrame(function () {
@@ -33512,9 +33536,9 @@ var MessageList = function MessageList(_ref2) {
33512
33536
  React.useEffect(function () {
33513
33537
  log.info('connection status is changed.. .... ', connectionStatus, 'channel ... ', channel);
33514
33538
  if (connectionStatus === CONNECTION_STATUS.CONNECTED) {
33515
- loading = false;
33516
- prevDisable = false;
33517
- nextDisable = false;
33539
+ loadingRef.current = false;
33540
+ prevDisableRef.current = false;
33541
+ nextDisableRef.current = false;
33518
33542
  clearMessagesMap();
33519
33543
  removeAllMessages();
33520
33544
  if (channel.id) {
@@ -33523,7 +33547,8 @@ var MessageList = function MessageList(_ref2) {
33523
33547
  }
33524
33548
  }, [connectionStatus]);
33525
33549
  React.useEffect(function () {
33526
- if (channel.newMessageCount && channel.newMessageCount > 0 && getUnreadScrollTo()) {
33550
+ var unreadScrollTo = getUnreadScrollTo();
33551
+ if (channel.newMessageCount && channel.newMessageCount > 0 && unreadScrollTo) {
33527
33552
  if (scrollRef.current) {
33528
33553
  scrollRef.current.style.scrollBehavior = 'inherit';
33529
33554
  }
@@ -33536,7 +33561,14 @@ var MessageList = function MessageList(_ref2) {
33536
33561
  setUnreadScrollTo(false);
33537
33562
  }
33538
33563
  }
33539
- });
33564
+ }, [channel.id, channel.newMessageCount, channel.lastDisplayedMessageId]);
33565
+ React.useEffect(function () {
33566
+ return function () {
33567
+ if (hideTopDateTimeout.current) {
33568
+ clearTimeout(hideTopDateTimeout.current);
33569
+ }
33570
+ };
33571
+ }, []);
33540
33572
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, isDragging && !(attachmentsPreview !== null && attachmentsPreview !== void 0 && attachmentsPreview.show && mediaFile) && (/*#__PURE__*/React__default.createElement(DragAndDropContainer, {
33541
33573
  id: 'draggingContainer',
33542
33574
  draggable: true,
@@ -33579,14 +33611,12 @@ var MessageList = function MessageList(_ref2) {
33579
33611
  dateDividerBackgroundColor: dateDividerBackgroundColor || overlayBackground,
33580
33612
  dateDividerBorderRadius: dateDividerBorderRadius,
33581
33613
  topOffset: scrollRef && scrollRef.current && scrollRef.current.offsetTop
33582
- }, /*#__PURE__*/React__default.createElement("span", {
33583
- ref: messageTopDateRef
33584
- }))), /*#__PURE__*/React__default.createElement(Container$h, {
33614
+ }, /*#__PURE__*/React__default.createElement("span", null, topDateLabel))), /*#__PURE__*/React__default.createElement(Container$h, {
33585
33615
  id: 'scrollableDiv',
33586
33616
  className: isScrolling ? 'show-scrollbar' : '',
33587
33617
  ref: scrollRef,
33588
33618
  stopScrolling: stopScrolling,
33589
- onScroll: handleMessagesListScroll,
33619
+ onScroll: onScroll,
33590
33620
  onMouseEnter: function onMouseEnter() {
33591
33621
  return setIsScrolling(true);
33592
33622
  },
@@ -33605,8 +33635,10 @@ var MessageList = function MessageList(_ref2) {
33605
33635
  var prevMessage = messages[index - 1];
33606
33636
  var nextMessage = messages[index + 1];
33607
33637
  var isUnreadMessage = !!(unreadMessageId && unreadMessageId === message.id && nextMessage) && !channel.backToLinkedChannel;
33608
- messagesIndexMap[message.id] = index;
33609
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(CreateMessageDateDivider, {
33638
+ messagesIndexMapRef.current[message.id] = index;
33639
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
33640
+ key: message.id || message.tid
33641
+ }, /*#__PURE__*/React__default.createElement(CreateMessageDateDivider, {
33610
33642
  noMargin: !isUnreadMessage && prevMessage && prevMessage.type === 'system' && message.type !== 'system',
33611
33643
  theme: theme,
33612
33644
  lastIndex: false,