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.modern.js CHANGED
@@ -10319,6 +10319,7 @@ var initialState$1 = {
10319
10319
  attachmentsUploadingState: {},
10320
10320
  scrollToMessage: null,
10321
10321
  scrollToMessageHighlight: true,
10322
+ scrollToMessageBehavior: 'smooth',
10322
10323
  scrollToMentionedMessage: false,
10323
10324
  reactionsList: [],
10324
10325
  reactionsHasNext: true,
@@ -10345,6 +10346,7 @@ var messageSlice = createSlice({
10345
10346
  setScrollToMessage: function setScrollToMessage(state, action) {
10346
10347
  state.scrollToMessage = action.payload.messageId;
10347
10348
  state.scrollToMessageHighlight = action.payload.highlight;
10349
+ state.scrollToMessageBehavior = action.payload.behavior || 'smooth';
10348
10350
  },
10349
10351
  setScrollToMentionedMessage: function setScrollToMentionedMessage(state, action) {
10350
10352
  state.scrollToMentionedMessage = action.payload.isScrollToMentionedMessage;
@@ -11596,7 +11598,7 @@ function setMessageToEditAC(message) {
11596
11598
  message: message
11597
11599
  });
11598
11600
  }
11599
- function getMessagesAC(channel, loadWithLastMessage, messageId, limit, withDeliveredMessages, highlight) {
11601
+ function getMessagesAC(channel, loadWithLastMessage, messageId, limit, withDeliveredMessages, highlight, behavior) {
11600
11602
  if (highlight === void 0) {
11601
11603
  highlight = true;
11602
11604
  }
@@ -11608,7 +11610,8 @@ function getMessagesAC(channel, loadWithLastMessage, messageId, limit, withDeliv
11608
11610
  messageId: messageId,
11609
11611
  limit: limit,
11610
11612
  withDeliveredMessages: withDeliveredMessages,
11611
- highlight: highlight
11613
+ highlight: highlight,
11614
+ behavior: behavior
11612
11615
  }
11613
11616
  };
11614
11617
  }
@@ -11622,13 +11625,14 @@ function getMessageAC(channelId, messageId, limit) {
11622
11625
  }
11623
11626
  };
11624
11627
  }
11625
- function setScrollToMessagesAC(messageId, highlight) {
11628
+ function setScrollToMessagesAC(messageId, highlight, behavior) {
11626
11629
  if (highlight === void 0) {
11627
11630
  highlight = true;
11628
11631
  }
11629
11632
  return setScrollToMessage({
11630
11633
  messageId: messageId || '',
11631
- highlight: highlight
11634
+ highlight: highlight,
11635
+ behavior: behavior
11632
11636
  });
11633
11637
  }
11634
11638
  function setScrollToMentionedMessageAC(isScrollToMentionedMessage) {
@@ -17089,6 +17093,9 @@ var scrollToMessageSelector = function scrollToMessageSelector(store) {
17089
17093
  var scrollToMessageHighlightSelector = function scrollToMessageHighlightSelector(store) {
17090
17094
  return store.MessageReducer.scrollToMessageHighlight;
17091
17095
  };
17096
+ var scrollToMessageBehaviorSelector = function scrollToMessageBehaviorSelector(store) {
17097
+ return store.MessageReducer.scrollToMessageBehavior;
17098
+ };
17092
17099
  var reactionsListSelector = function reactionsListSelector(store) {
17093
17100
  return store.MessageReducer.reactionsList;
17094
17101
  };
@@ -18482,7 +18489,7 @@ function editMessage(action) {
18482
18489
  }, _marked6$1, null, [[0, 5]]);
18483
18490
  }
18484
18491
  function getMessagesQuery(action) {
18485
- 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;
18492
+ 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;
18486
18493
  return _regenerator().w(function (_context9) {
18487
18494
  while (1) switch (_context9.p = _context9.n) {
18488
18495
  case 0:
@@ -18490,7 +18497,7 @@ function getMessagesQuery(action) {
18490
18497
  _context9.n = 1;
18491
18498
  return put(setMessagesLoadingStateAC(LOADING_STATE.LOADING));
18492
18499
  case 1:
18493
- _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;
18500
+ _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;
18494
18501
  if (!(channel.id && !channel.isMockChannel)) {
18495
18502
  _context9.n = 47;
18496
18503
  break;
@@ -18576,7 +18583,7 @@ function getMessagesQuery(action) {
18576
18583
  break;
18577
18584
  }
18578
18585
  _context9.n = 12;
18579
- return put(setScrollToMessagesAC(messageId, highlight));
18586
+ return put(setScrollToMessagesAC(messageId, highlight, behavior));
18580
18587
  case 12:
18581
18588
  _context9.n = 45;
18582
18589
  break;
@@ -18639,7 +18646,7 @@ function getMessagesQuery(action) {
18639
18646
  setHasNextCached(false);
18640
18647
  case 22:
18641
18648
  _context9.n = 23;
18642
- return put(setScrollToMessagesAC(messageId));
18649
+ return put(setScrollToMessagesAC(messageId, true, behavior));
18643
18650
  case 23:
18644
18651
  _context9.n = 24;
18645
18652
  return put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
@@ -18819,44 +18826,50 @@ function getMessageQuery(action) {
18819
18826
  return call(getChannelFromAllChannels, channelId);
18820
18827
  case 1:
18821
18828
  channel = _context0.v;
18822
- _context0.n = 2;
18823
- return call(channel.getMessagesById, [messageId]);
18829
+ if (channel) {
18830
+ _context0.n = 2;
18831
+ break;
18832
+ }
18833
+ return _context0.a(2);
18824
18834
  case 2:
18835
+ _context0.n = 3;
18836
+ return call(channel.getMessagesById, [messageId]);
18837
+ case 3:
18825
18838
  messages = _context0.v;
18826
18839
  fetchedMessage = messages && messages[0] ? JSON.parse(JSON.stringify(messages[0])) : null;
18827
18840
  if (!fetchedMessage) {
18828
- _context0.n = 5;
18841
+ _context0.n = 6;
18829
18842
  break;
18830
18843
  }
18831
- _context0.n = 3;
18844
+ _context0.n = 4;
18832
18845
  return put(updateMessageAC(messageId, fetchedMessage));
18833
- case 3:
18846
+ case 4:
18834
18847
  updateMessageOnMap(channel.id, {
18835
18848
  messageId: messageId,
18836
18849
  params: fetchedMessage
18837
18850
  });
18838
18851
  updateMessageOnAllMessages(messageId, fetchedMessage);
18839
- _context0.n = 4;
18852
+ _context0.n = 5;
18840
18853
  return put(setScrollToMessagesAC(messageId, false));
18841
- case 4:
18854
+ case 5:
18842
18855
  if (!(channel.lastMessage && channel.lastMessage.id === messageId)) {
18843
- _context0.n = 5;
18856
+ _context0.n = 6;
18844
18857
  break;
18845
18858
  }
18846
18859
  updateChannelLastMessageOnAllChannels(channel.id, fetchedMessage);
18847
- _context0.n = 5;
18860
+ _context0.n = 6;
18848
18861
  return put(updateChannelLastMessageAC(fetchedMessage, channel));
18849
- case 5:
18850
- _context0.n = 7;
18851
- break;
18852
18862
  case 6:
18853
- _context0.p = 6;
18863
+ _context0.n = 8;
18864
+ break;
18865
+ case 7:
18866
+ _context0.p = 7;
18854
18867
  _t0 = _context0.v;
18855
18868
  log.error('error in message query', _t0);
18856
- case 7:
18869
+ case 8:
18857
18870
  return _context0.a(2);
18858
18871
  }
18859
- }, _marked8$1, null, [[0, 6]]);
18872
+ }, _marked8$1, null, [[0, 7]]);
18860
18873
  }
18861
18874
  function loadMoreMessages(action) {
18862
18875
  var payload, limit, direction, channelId, messageId, hasNext, SceytChatClient, messageQueryBuilder, messageQuery, result, _t1;
@@ -26115,6 +26128,7 @@ var Message = function Message(_ref) {
26115
26128
  var _useColor = useColors(),
26116
26129
  textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY],
26117
26130
  overlayBackground = _useColor[THEME_COLORS.OVERLAY_BACKGROUND];
26131
+ var scrollToNewMessage = useSelector(scrollToNewMessageSelector);
26118
26132
  var dispatch = useDispatch();
26119
26133
  var ChatClient = getClient();
26120
26134
  var user = ChatClient.user;
@@ -26133,7 +26147,19 @@ var Message = function Message(_ref) {
26133
26147
  };
26134
26148
  useEffect(function () {
26135
26149
  if (isVisible) {
26150
+ var _channel$lastMessage;
26136
26151
  handleSendReadMarker();
26152
+ if (!channel.isLinkedChannel) {
26153
+ setMessageToVisibleMessagesMap(message);
26154
+ }
26155
+ 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))) {
26156
+ dispatch(scrollToNewMessageAC(false, false, false));
26157
+ dispatch(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
26158
+ }
26159
+ } else {
26160
+ if (!channel.isLinkedChannel) {
26161
+ removeMessageFromVisibleMessagesMap(message);
26162
+ }
26137
26163
  }
26138
26164
  }, [isVisible]);
26139
26165
  useDidUpdate(function () {
@@ -31400,53 +31426,50 @@ var OGMetadataContainer = styled.div(_templateObject$A || (_templateObject$A = _
31400
31426
  var showOGMetadata = _ref2.showOGMetadata;
31401
31427
  return showOGMetadata ? '0.8rem' : '0';
31402
31428
  });
31403
- var ImageContainer = styled.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) {
31429
+ var ImageContainer = styled.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) {
31404
31430
  var width = _ref3.width;
31405
- return width + "px";
31431
+ return width ? "\n max-width: " + (width + "px") + ";\n " : "\n max-width: 100%;\n width: 100%;\n ";
31406
31432
  }, function (_ref4) {
31407
- var height = _ref4.height;
31408
- return height + "px";
31433
+ var height = _ref4.height,
31434
+ showOGMetadata = _ref4.showOGMetadata;
31435
+ return height ? "\n max-height: " + (height + "px") + ";\n height: " + (showOGMetadata ? height + "px" : '0') + ";\n " : "\n max-height: 200px;\n height: " + (showOGMetadata ? '200px' : '0') + ";\n ";
31409
31436
  }, function (_ref5) {
31410
31437
  var showOGMetadata = _ref5.showOGMetadata;
31411
31438
  return showOGMetadata ? 1 : 0;
31412
31439
  }, function (_ref6) {
31413
31440
  var showOGMetadata = _ref6.showOGMetadata;
31414
31441
  return showOGMetadata ? '0.3rem' : '0';
31415
- }, function (_ref7) {
31416
- var showOGMetadata = _ref7.showOGMetadata,
31417
- height = _ref7.height;
31418
- return showOGMetadata ? height + "px" : '0';
31419
31442
  });
31420
- var OGText = styled.div(_templateObject3$p || (_templateObject3$p = _taggedTemplateLiteralLoose(["\n width: 80%;\n padding: 0.5rem;\n margin: 0;\n transition: all 0.2s ease;\n"])));
31421
- var Url = styled.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) {
31443
+ var OGText = styled.div(_templateObject3$p || (_templateObject3$p = _taggedTemplateLiteralLoose(["\n padding: 0.5rem;\n margin: 0;\n transition: all 0.2s ease;\n"])));
31444
+ var Url = styled.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) {
31445
+ var maxWidth = _ref7.maxWidth;
31446
+ return maxWidth && "\n max-width: " + (maxWidth + "px") + ";\n ";
31447
+ });
31448
+ var Title = styled.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) {
31422
31449
  var maxWidth = _ref8.maxWidth;
31423
- return maxWidth + "px";
31450
+ return maxWidth && "\n max-width: " + (maxWidth + "px") + ";\n ";
31424
31451
  });
31425
- var Title = styled.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) {
31452
+ var Desc = styled.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) {
31426
31453
  var maxWidth = _ref9.maxWidth;
31427
- return maxWidth + "px";
31428
- });
31429
- var Desc = styled.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) {
31430
- var maxWidth = _ref0.maxWidth;
31431
- return maxWidth + "px";
31454
+ return maxWidth && "\n max-width: " + (maxWidth + "px") + ";\n ";
31432
31455
  });
31433
- var Img = styled.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) {
31456
+ var Img = styled.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) {
31457
+ var width = _ref0.width;
31458
+ return width + "px";
31459
+ }, function (_ref1) {
31434
31460
  var width = _ref1.width;
31435
31461
  return width + "px";
31436
31462
  }, function (_ref10) {
31437
- var width = _ref10.width;
31438
- return width + "px";
31463
+ var height = _ref10.height;
31464
+ return height + "px";
31439
31465
  }, function (_ref11) {
31440
31466
  var height = _ref11.height;
31441
31467
  return height + "px";
31442
31468
  }, function (_ref12) {
31443
- var height = _ref12.height;
31444
- return height + "px";
31445
- }, function (_ref13) {
31446
- var width = _ref13.width;
31469
+ var width = _ref12.width;
31447
31470
  return width + "px";
31448
- }, function (_ref14) {
31449
- var height = _ref14.height;
31471
+ }, function (_ref13) {
31472
+ var height = _ref13.height;
31450
31473
  return height + "px";
31451
31474
  });
31452
31475
  var Favicon = styled.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"])));
@@ -32789,14 +32812,6 @@ var HiddenMessageProperty;
32789
32812
  })(HiddenMessageProperty || (HiddenMessageProperty = {}));
32790
32813
 
32791
32814
  var _templateObject$D, _templateObject2$y, _templateObject3$s, _templateObject4$o, _templateObject5$k, _templateObject6$h, _templateObject7$f, _templateObject8$e, _templateObject9$c, _templateObject0$b, _templateObject1$8;
32792
- var loadFromServer = false;
32793
- var loadDirection = '';
32794
- var nextDisable = false;
32795
- var prevDisable = false;
32796
- var scrollToBottom = false;
32797
- var shouldLoadMessages;
32798
- var loading = false;
32799
- var messagesIndexMap = {};
32800
32815
  var CreateMessageDateDivider = function CreateMessageDateDivider(_ref) {
32801
32816
  var lastIndex = _ref.lastIndex,
32802
32817
  currentMessageDate = _ref.currentMessageDate,
@@ -33006,6 +33021,7 @@ var MessageList = function MessageList(_ref2) {
33006
33021
  var scrollToMentionedMessage = useSelector(scrollToMentionedMessageSelector, shallowEqual);
33007
33022
  var scrollToRepliedMessage = useSelector(scrollToMessageSelector, shallowEqual);
33008
33023
  var scrollToMessageHighlight = useSelector(scrollToMessageHighlightSelector, shallowEqual);
33024
+ var scrollToMessageBehavior = useSelector(scrollToMessageBehaviorSelector, shallowEqual);
33009
33025
  var browserTabIsActive = useSelector(browserTabIsActiveSelector, shallowEqual);
33010
33026
  var hasNextMessages = useSelector(messagesHasNextSelector, shallowEqual);
33011
33027
  var hasPrevMessages = useSelector(messagesHasPrevSelector, shallowEqual);
@@ -33046,35 +33062,39 @@ var MessageList = function MessageList(_ref2) {
33046
33062
  setShouldPreserveScroll = _useState0[1];
33047
33063
  var messageForReply = {};
33048
33064
  var attachmentsSelected = false;
33049
- var messageTopDateRef = useRef(null);
33065
+ var _useState1 = useState(''),
33066
+ topDateLabel = _useState1[0],
33067
+ setTopDateLabel = _useState1[1];
33050
33068
  var scrollRef = useRef(null);
33069
+ var loadFromServerRef = useRef(false);
33070
+ var loadDirectionRef = useRef('');
33071
+ var nextDisableRef = useRef(false);
33072
+ var prevDisableRef = useRef(false);
33073
+ var scrollToBottomRef = useRef(false);
33074
+ var shouldLoadMessagesRef = useRef('');
33075
+ var loadingRef = useRef(false);
33076
+ var messagesIndexMapRef = useRef({});
33077
+ var scrollRafRef = useRef(null);
33051
33078
  var renderTopDate = function renderTopDate() {
33052
- var dateLabels = document.querySelectorAll('.divider');
33053
- var messageTopDate = messageTopDateRef.current;
33079
+ var container = scrollRef.current;
33080
+ if (!container) return;
33081
+ var dateLabels = container.querySelectorAll('.divider');
33054
33082
  var text = '';
33055
33083
  for (var i = dateLabels.length - 1; i >= 0; i--) {
33056
- var _dateLabel$firstChild;
33057
33084
  var dateLabel = dateLabels[i];
33058
- var span = dateLabel === null || dateLabel === void 0 ? void 0 : (_dateLabel$firstChild = dateLabel.firstChild) === null || _dateLabel$firstChild === void 0 ? void 0 : _dateLabel$firstChild.firstChild;
33059
- if (!text && scrollRef.current.scrollTop > dateLabel.offsetTop) {
33060
- text = span && span.innerText;
33061
- span.style.display = 'none';
33062
- } else {
33063
- span.style.display = 'block';
33085
+ if (!text && container.scrollTop > dateLabel.offsetTop) {
33086
+ var span = (dateLabel === null || dateLabel === void 0 ? void 0 : dateLabel.firstChild) && dateLabel.firstChild.firstChild;
33087
+ text = span ? span.innerText || '' : '';
33064
33088
  }
33065
33089
  }
33066
- if (text) {
33067
- messageTopDate.innerText = text;
33068
- messageTopDate.style.display = 'inline';
33069
- } else {
33070
- messageTopDate.style.display = 'none';
33071
- }
33090
+ setTopDateLabel(text);
33072
33091
  };
33073
- var handleMessagesListScroll = useCallback(function (event) {
33092
+ var handleMessagesListScroll = useCallback(function () {
33074
33093
  try {
33094
+ var target = scrollRef.current;
33095
+ if (!target) return Promise.resolve();
33075
33096
  if (scrollToMentionedMessage) {
33076
- var _target = event.target;
33077
- if (_target.scrollTop <= -50 || channel.lastMessage.id !== messages[messages.length - 1].id) {
33097
+ if (target.scrollTop <= -50 || channel.lastMessage.id !== messages[messages.length - 1].id) {
33078
33098
  dispatch(showScrollToNewMessageButtonAC(true));
33079
33099
  } else {
33080
33100
  dispatch(showScrollToNewMessageButtonAC(false));
@@ -33087,7 +33107,6 @@ var MessageList = function MessageList(_ref2) {
33087
33107
  setShowTopDate(false);
33088
33108
  }, 1000);
33089
33109
  renderTopDate();
33090
- var target = event.target;
33091
33110
  var forceLoadPrevMessages = false;
33092
33111
  if (-target.scrollTop + target.offsetHeight + 30 > target.scrollHeight) {
33093
33112
  forceLoadPrevMessages = true;
@@ -33102,51 +33121,68 @@ var MessageList = function MessageList(_ref2) {
33102
33121
  }
33103
33122
  if (scrollToReply) {
33104
33123
  target.scrollTop = scrollToReply;
33105
- } else {
33106
- if (messagesIndexMap[lastVisibleMessageId] < 15 || forceLoadPrevMessages) {
33107
- if (connectionStatus === CONNECTION_STATUS.CONNECTED && !scrollToNewMessage.scrollToBottom && hasPrevMessages) {
33108
- if (loading || messagesLoading === LOADING_STATE.LOADING || prevDisable) {
33109
- shouldLoadMessages = 'prev';
33110
- } else {
33111
- if (shouldLoadMessages === 'prev') {
33112
- shouldLoadMessages = '';
33113
- }
33114
- loadDirection = 'prev';
33115
- handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.PREV, LOAD_MAX_MESSAGE_COUNT);
33116
- if (!getHasPrevCached()) {
33117
- loadFromServer = true;
33118
- }
33119
- nextDisable = true;
33124
+ return Promise.resolve();
33125
+ }
33126
+ var currentIndex = messagesIndexMapRef.current[lastVisibleMessageId];
33127
+ var hasIndex = typeof currentIndex === 'number';
33128
+ if (hasIndex && currentIndex < 15 || forceLoadPrevMessages) {
33129
+ if (connectionStatus === CONNECTION_STATUS.CONNECTED && !scrollToNewMessage.scrollToBottom && hasPrevMessages) {
33130
+ if (loadingRef.current || messagesLoading === LOADING_STATE.LOADING || prevDisableRef.current) {
33131
+ shouldLoadMessagesRef.current = 'prev';
33132
+ } else {
33133
+ if (shouldLoadMessagesRef.current === 'prev') {
33134
+ shouldLoadMessagesRef.current = '';
33120
33135
  }
33136
+ loadDirectionRef.current = 'prev';
33137
+ handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.PREV, LOAD_MAX_MESSAGE_COUNT);
33138
+ if (!getHasPrevCached()) {
33139
+ loadFromServerRef.current = true;
33140
+ }
33141
+ nextDisableRef.current = true;
33121
33142
  }
33122
33143
  }
33123
- if (messagesIndexMap[lastVisibleMessageId] >= messages.length - 15 || target.scrollTop === 0) {
33124
- if (connectionStatus === CONNECTION_STATUS.CONNECTED && !scrollToNewMessage.scrollToBottom && (hasNextMessages || getHasNextCached())) {
33125
- if (loading || messagesLoading === LOADING_STATE.LOADING || nextDisable) {
33126
- shouldLoadMessages = 'next';
33127
- } else {
33128
- if (shouldLoadMessages === 'next') {
33129
- shouldLoadMessages = '';
33130
- }
33131
- loadDirection = 'next';
33132
- prevDisable = true;
33133
- handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.NEXT, LOAD_MAX_MESSAGE_COUNT);
33144
+ }
33145
+ if (hasIndex && currentIndex >= messages.length - 15 || target.scrollTop === 0) {
33146
+ if (connectionStatus === CONNECTION_STATUS.CONNECTED && !scrollToNewMessage.scrollToBottom && (hasNextMessages || getHasNextCached())) {
33147
+ if (loadingRef.current || messagesLoading === LOADING_STATE.LOADING || nextDisableRef.current) {
33148
+ shouldLoadMessagesRef.current = 'next';
33149
+ } else {
33150
+ if (shouldLoadMessagesRef.current === 'next') {
33151
+ shouldLoadMessagesRef.current = '';
33134
33152
  }
33153
+ loadDirectionRef.current = 'next';
33154
+ prevDisableRef.current = true;
33155
+ handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.NEXT, LOAD_MAX_MESSAGE_COUNT);
33135
33156
  }
33136
33157
  }
33137
- if (messagesIndexMap[lastVisibleMessageId] > messages.length - 10) {
33138
- nextDisable = false;
33139
- }
33158
+ }
33159
+ if (hasIndex && currentIndex > messages.length - 10) {
33160
+ nextDisableRef.current = false;
33140
33161
  }
33141
33162
  return Promise.resolve();
33142
33163
  } catch (e) {
33143
33164
  return Promise.reject(e);
33144
33165
  }
33145
- }, [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]);
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, lastVisibleMessageId, connectionStatus, getHasPrevCached, getHasNextCached, scrollToReply]);
33167
+ var onScroll = useCallback(function () {
33168
+ if (scrollRafRef.current !== null) return;
33169
+ scrollRafRef.current = window.requestAnimationFrame(function () {
33170
+ scrollRafRef.current = null;
33171
+ handleMessagesListScroll();
33172
+ });
33173
+ }, [handleMessagesListScroll]);
33174
+ useEffect(function () {
33175
+ return function () {
33176
+ if (scrollRafRef.current !== null) {
33177
+ cancelAnimationFrame(scrollRafRef.current);
33178
+ scrollRafRef.current = null;
33179
+ }
33180
+ };
33181
+ }, []);
33146
33182
  var handleScrollToRepliedMessage = function handleScrollToRepliedMessage(messageId) {
33147
33183
  try {
33148
- prevDisable = true;
33149
- nextDisable = true;
33184
+ prevDisableRef.current = true;
33185
+ nextDisableRef.current = true;
33150
33186
  if (messages.findIndex(function (msg) {
33151
33187
  return msg.id === messageId;
33152
33188
  }) >= 10) {
@@ -33160,8 +33196,8 @@ var MessageList = function MessageList(_ref2) {
33160
33196
  var positiveValue = repliedMessage.offsetTop - scrollRef.current.offsetHeight / 2 < 0 ? repliedMessage.offsetTop - scrollRef.current.offsetHeight * -1 : repliedMessage.offsetTop - scrollRef.current.offsetHeight / 2;
33161
33197
  setTimeout(function () {
33162
33198
  repliedMessage.classList.remove('highlight');
33163
- prevDisable = false;
33164
- nextDisable = false;
33199
+ prevDisableRef.current = false;
33200
+ nextDisableRef.current = false;
33165
33201
  }, 1000 + positiveValue * 0.1);
33166
33202
  }
33167
33203
  } else {
@@ -33182,10 +33218,10 @@ var MessageList = function MessageList(_ref2) {
33182
33218
  var hasNextCached = getHasNextCached();
33183
33219
  if (messagesLoading === LOADING_STATE.LOADED && connectionStatus === CONNECTION_STATUS.CONNECTED) {
33184
33220
  if (direction === MESSAGE_LOAD_DIRECTION.PREV && firstMessageId && (hasPrevMessages || hasPrevCached)) {
33185
- loading = true;
33221
+ loadingRef.current = true;
33186
33222
  dispatch(loadMoreMessagesAC(channel.id, limit, direction, firstMessageId, hasPrevMessages));
33187
33223
  } else if (direction === MESSAGE_LOAD_DIRECTION.NEXT && lastMessageId && (hasNextMessages || hasNextCached)) {
33188
- loading = true;
33224
+ loadingRef.current = true;
33189
33225
  dispatch(loadMoreMessagesAC(channel.id, limit, direction, lastMessageId, hasNextMessages));
33190
33226
  }
33191
33227
  }
@@ -33216,39 +33252,42 @@ var MessageList = function MessageList(_ref2) {
33216
33252
  setIsDragging(false);
33217
33253
  }
33218
33254
  };
33255
+ var readDroppedFiles = function readDroppedFiles(e) {
33256
+ return new Promise(function (resolve) {
33257
+ var fileList = Object.values(e.dataTransfer.files);
33258
+ var attachmentsFiles = [];
33259
+ var readFiles = 0;
33260
+ var errorCount = 0;
33261
+ fileList.forEach(function (attachment) {
33262
+ var fileReader = new FileReader();
33263
+ fileReader.onload = function (event) {
33264
+ var file = event.target.result;
33265
+ attachmentsFiles.push({
33266
+ name: attachment.name,
33267
+ data: file,
33268
+ type: attachment.type
33269
+ });
33270
+ readFiles++;
33271
+ if (readFiles + errorCount === fileList.length) {
33272
+ resolve(attachmentsFiles);
33273
+ }
33274
+ };
33275
+ fileReader.onerror = function () {
33276
+ errorCount++;
33277
+ if (readFiles + errorCount === fileList.length) {
33278
+ resolve(attachmentsFiles);
33279
+ }
33280
+ };
33281
+ fileReader.readAsDataURL(attachment);
33282
+ });
33283
+ });
33284
+ };
33219
33285
  var handleDropFile = function handleDropFile(e) {
33220
33286
  e.preventDefault();
33221
33287
  e.stopPropagation();
33222
33288
  setIsDragging(false);
33223
33289
  if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
33224
- var fileList = Object.values(e.dataTransfer.files);
33225
- new Promise(function (resolve) {
33226
- var attachmentsFiles = [];
33227
- var readFiles = 0;
33228
- var errorCount = 0;
33229
- fileList.forEach(function (attachment) {
33230
- var fileReader = new FileReader();
33231
- fileReader.onload = function (event) {
33232
- var file = event.target.result;
33233
- attachmentsFiles.push({
33234
- name: attachment.name,
33235
- data: file,
33236
- type: attachment.type
33237
- });
33238
- readFiles++;
33239
- if (readFiles + errorCount === fileList.length) {
33240
- resolve(attachmentsFiles);
33241
- }
33242
- };
33243
- fileReader.onerror = function () {
33244
- errorCount++;
33245
- if (readFiles + errorCount === fileList.length) {
33246
- resolve(attachmentsFiles);
33247
- }
33248
- };
33249
- fileReader.readAsDataURL(attachment);
33250
- });
33251
- }).then(function (result) {
33290
+ readDroppedFiles(e).then(function (result) {
33252
33291
  dispatch(setDraggedAttachmentsAC(result, 'file'));
33253
33292
  })["catch"](function (error) {
33254
33293
  console.error('Error in handleDropFile:', error);
@@ -33261,34 +33300,7 @@ var MessageList = function MessageList(_ref2) {
33261
33300
  e.stopPropagation();
33262
33301
  setIsDragging(false);
33263
33302
  if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
33264
- var fileList = Object.values(e.dataTransfer.files);
33265
- new Promise(function (resolve) {
33266
- var attachmentsFiles = [];
33267
- var readFiles = 0;
33268
- var errorCount = 0;
33269
- fileList.forEach(function (attachment) {
33270
- var fileReader = new FileReader();
33271
- fileReader.onload = function (event) {
33272
- var file = event.target.result;
33273
- attachmentsFiles.push({
33274
- name: attachment.name,
33275
- data: file,
33276
- type: attachment.type
33277
- });
33278
- readFiles++;
33279
- if (readFiles + errorCount === fileList.length) {
33280
- resolve(attachmentsFiles);
33281
- }
33282
- };
33283
- fileReader.onerror = function () {
33284
- errorCount++;
33285
- if (readFiles + errorCount === fileList.length) {
33286
- resolve(attachmentsFiles);
33287
- }
33288
- };
33289
- fileReader.readAsDataURL(attachment);
33290
- });
33291
- }).then(function (result) {
33303
+ readDroppedFiles(e).then(function (result) {
33292
33304
  dispatch(setDraggedAttachmentsAC(result, 'media'));
33293
33305
  })["catch"](function (error) {
33294
33306
  console.error('Error in handleDropMedia:', error);
@@ -33300,21 +33312,21 @@ var MessageList = function MessageList(_ref2) {
33300
33312
  var _messages, _channel$lastMessage2;
33301
33313
  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) {
33302
33314
  dispatch(showScrollToNewMessageButtonAC(false));
33303
- prevDisable = false;
33315
+ prevDisableRef.current = false;
33304
33316
  }
33305
33317
  }, [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]);
33306
33318
  useEffect(function () {
33307
33319
  if (scrollToRepliedMessage) {
33308
- loading = false;
33320
+ loadingRef.current = false;
33309
33321
  scrollRef.current.style.scrollBehavior = 'inherit';
33310
33322
  var repliedMessage = document.getElementById(scrollToRepliedMessage);
33311
33323
  if (repliedMessage) {
33312
33324
  setScrollToReply(repliedMessage && repliedMessage.offsetTop - (channel.backToLinkedChannel ? 0 : 200));
33313
33325
  scrollRef.current.scrollTo({
33314
33326
  top: repliedMessage && repliedMessage.offsetTop - (channel.backToLinkedChannel ? 0 : 200),
33315
- behavior: 'smooth'
33327
+ behavior: scrollToMessageBehavior
33316
33328
  });
33317
- scrollRef.current.style.scrollBehavior = 'smooth';
33329
+ scrollRef.current.style.scrollBehavior = scrollToMessageBehavior;
33318
33330
  if (!channel.backToLinkedChannel && scrollToMessageHighlight) {
33319
33331
  repliedMessage && repliedMessage.classList.add('highlight');
33320
33332
  }
@@ -33324,9 +33336,9 @@ var MessageList = function MessageList(_ref2) {
33324
33336
  var _repliedMessage = document.getElementById(scrollToRepliedMessage);
33325
33337
  _repliedMessage && _repliedMessage.classList.remove('highlight');
33326
33338
  }
33327
- prevDisable = false;
33339
+ prevDisableRef.current = false;
33328
33340
  setScrollToReply(null);
33329
- scrollRef.current.style.scrollBehavior = 'smooth';
33341
+ scrollRef.current.style.scrollBehavior = 'instant';
33330
33342
  }, 1000 + positiveValue * 0.1);
33331
33343
  }
33332
33344
  dispatch(setScrollToMessagesAC(null));
@@ -33342,15 +33354,15 @@ var MessageList = function MessageList(_ref2) {
33342
33354
  });
33343
33355
  }
33344
33356
  } else {
33345
- nextDisable = true;
33346
- prevDisable = true;
33357
+ nextDisableRef.current = true;
33358
+ prevDisableRef.current = true;
33347
33359
  scrollRef.current.scrollTo({
33348
33360
  top: 0,
33349
33361
  behavior: 'smooth'
33350
33362
  });
33351
33363
  dispatch(showScrollToNewMessageButtonAC(false));
33352
33364
  setTimeout(function () {
33353
- prevDisable = false;
33365
+ prevDisableRef.current = false;
33354
33366
  }, 800);
33355
33367
  }
33356
33368
  }
@@ -33368,11 +33380,18 @@ var MessageList = function MessageList(_ref2) {
33368
33380
  useEffect(function () {
33369
33381
  setHasNextCached(false);
33370
33382
  setHasPrevCached(false);
33383
+ messagesIndexMapRef.current = {};
33384
+ loadFromServerRef.current = false;
33385
+ loadDirectionRef.current = '';
33386
+ nextDisableRef.current = false;
33387
+ prevDisableRef.current = false;
33388
+ shouldLoadMessagesRef.current = '';
33389
+ loadingRef.current = false;
33371
33390
  if (channel.backToLinkedChannel) {
33372
33391
  var visibleMessages = getVisibleMessagesMap();
33373
33392
  var visibleMessagesIds = Object.keys(visibleMessages);
33374
33393
  var messageId = visibleMessagesIds[visibleMessagesIds.length - 1];
33375
- dispatch(getMessagesAC(channel, undefined, messageId));
33394
+ dispatch(getMessagesAC(channel, undefined, messageId, undefined, undefined, undefined, 'instant'));
33376
33395
  setUnreadMessageId(messageId);
33377
33396
  } else {
33378
33397
  if (!channel.isLinkedChannel) {
@@ -33395,9 +33414,9 @@ var MessageList = function MessageList(_ref2) {
33395
33414
  }
33396
33415
  setPreviousScrollTop(0);
33397
33416
  setShouldPreserveScroll(false);
33398
- nextDisable = false;
33399
- prevDisable = false;
33400
- scrollToBottom = true;
33417
+ nextDisableRef.current = false;
33418
+ prevDisableRef.current = false;
33419
+ scrollToBottomRef.current = true;
33401
33420
  setAllowEditDeleteIncomingMessage(allowEditDeleteIncomingMessage);
33402
33421
  }, [channel.id]);
33403
33422
  useEffect(function () {
@@ -33421,35 +33440,36 @@ var MessageList = function MessageList(_ref2) {
33421
33440
  setShouldPreserveScroll(true);
33422
33441
  }
33423
33442
  }
33424
- if (loading) {
33425
- if (loadDirection !== 'next') {
33443
+ if (loadingRef.current) {
33444
+ if (loadDirectionRef.current !== 'next') {
33426
33445
  var lastVisibleMessage = document.getElementById(lastVisibleMessageId);
33427
33446
  if (lastVisibleMessage) {
33428
33447
  scrollRef.current.style.scrollBehavior = 'inherit';
33429
33448
  scrollRef.current.scrollTop = lastVisibleMessage.offsetTop;
33430
33449
  scrollRef.current.style.scrollBehavior = 'smooth';
33431
33450
  }
33432
- if (loadFromServer) {
33451
+ if (loadFromServerRef.current) {
33433
33452
  setTimeout(function () {
33434
- loading = false;
33435
- loadFromServer = false;
33436
- nextDisable = false;
33437
- if (shouldLoadMessages === 'prev' && messagesIndexMap[lastVisibleMessageId] < 15) {
33453
+ loadingRef.current = false;
33454
+ loadFromServerRef.current = false;
33455
+ nextDisableRef.current = false;
33456
+ var currentIndex = messagesIndexMapRef.current[lastVisibleMessageId];
33457
+ if (shouldLoadMessagesRef.current === 'prev' && typeof currentIndex === 'number' && currentIndex < 15) {
33438
33458
  handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.PREV, LOAD_MAX_MESSAGE_COUNT);
33439
33459
  }
33440
- if (shouldLoadMessages === 'next' && messagesIndexMap[lastVisibleMessageId] > messages.length - 15) {
33460
+ if (shouldLoadMessagesRef.current === 'next' && typeof currentIndex === 'number' && currentIndex > messages.length - 15) {
33441
33461
  handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.NEXT, LOAD_MAX_MESSAGE_COUNT);
33442
33462
  }
33443
33463
  }, 50);
33444
33464
  } else {
33445
- loading = false;
33446
- if (shouldLoadMessages === 'prev') {
33465
+ loadingRef.current = false;
33466
+ if (shouldLoadMessagesRef.current === 'prev') {
33447
33467
  handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.PREV, LOAD_MAX_MESSAGE_COUNT);
33448
- shouldLoadMessages = '';
33468
+ shouldLoadMessagesRef.current = '';
33449
33469
  }
33450
- if (shouldLoadMessages === 'next') {
33470
+ if (shouldLoadMessagesRef.current === 'next') {
33451
33471
  handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.NEXT, LOAD_MAX_MESSAGE_COUNT);
33452
- shouldLoadMessages = '';
33472
+ shouldLoadMessagesRef.current = '';
33453
33473
  }
33454
33474
  }
33455
33475
  } else {
@@ -33459,22 +33479,26 @@ var MessageList = function MessageList(_ref2) {
33459
33479
  scrollRef.current.scrollTop = _lastVisibleMessage.offsetTop - scrollRef.current.offsetHeight + _lastVisibleMessage.offsetHeight;
33460
33480
  scrollRef.current.style.scrollBehavior = 'smooth';
33461
33481
  }
33462
- loading = false;
33463
- prevDisable = false;
33464
- if (shouldLoadMessages === 'prev') {
33482
+ loadingRef.current = false;
33483
+ prevDisableRef.current = false;
33484
+ if (shouldLoadMessagesRef.current === 'prev') {
33465
33485
  handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.PREV, LOAD_MAX_MESSAGE_COUNT);
33466
- shouldLoadMessages = '';
33486
+ shouldLoadMessagesRef.current = '';
33467
33487
  }
33468
- if (shouldLoadMessages === 'next') {
33488
+ if (shouldLoadMessagesRef.current === 'next') {
33469
33489
  handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.NEXT, LOAD_MAX_MESSAGE_COUNT);
33470
- shouldLoadMessages = '';
33490
+ shouldLoadMessagesRef.current = '';
33471
33491
  }
33472
33492
  }
33473
33493
  }
33474
33494
  renderTopDate();
33475
- if (scrollToBottom) {
33476
- dispatch(scrollToNewMessageAC(true));
33477
- scrollToBottom = false;
33495
+ if (scrollToBottomRef.current) {
33496
+ if (channel.backToLinkedChannel) {
33497
+ dispatch(scrollToNewMessageAC(false));
33498
+ } else {
33499
+ dispatch(scrollToNewMessageAC(true));
33500
+ }
33501
+ scrollToBottomRef.current = false;
33478
33502
  }
33479
33503
  if (shouldPreserveScroll && scrollRef.current && previousScrollTop > 0) {
33480
33504
  requestAnimationFrame(function () {
@@ -33491,9 +33515,9 @@ var MessageList = function MessageList(_ref2) {
33491
33515
  useEffect(function () {
33492
33516
  log.info('connection status is changed.. .... ', connectionStatus, 'channel ... ', channel);
33493
33517
  if (connectionStatus === CONNECTION_STATUS.CONNECTED) {
33494
- loading = false;
33495
- prevDisable = false;
33496
- nextDisable = false;
33518
+ loadingRef.current = false;
33519
+ prevDisableRef.current = false;
33520
+ nextDisableRef.current = false;
33497
33521
  clearMessagesMap();
33498
33522
  removeAllMessages();
33499
33523
  if (channel.id) {
@@ -33502,7 +33526,8 @@ var MessageList = function MessageList(_ref2) {
33502
33526
  }
33503
33527
  }, [connectionStatus]);
33504
33528
  useEffect(function () {
33505
- if (channel.newMessageCount && channel.newMessageCount > 0 && getUnreadScrollTo()) {
33529
+ var unreadScrollTo = getUnreadScrollTo();
33530
+ if (channel.newMessageCount && channel.newMessageCount > 0 && unreadScrollTo) {
33506
33531
  if (scrollRef.current) {
33507
33532
  scrollRef.current.style.scrollBehavior = 'inherit';
33508
33533
  }
@@ -33515,7 +33540,14 @@ var MessageList = function MessageList(_ref2) {
33515
33540
  setUnreadScrollTo(false);
33516
33541
  }
33517
33542
  }
33518
- });
33543
+ }, [channel.id, channel.newMessageCount, channel.lastDisplayedMessageId]);
33544
+ useEffect(function () {
33545
+ return function () {
33546
+ if (hideTopDateTimeout.current) {
33547
+ clearTimeout(hideTopDateTimeout.current);
33548
+ }
33549
+ };
33550
+ }, []);
33519
33551
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, isDragging && !(attachmentsPreview !== null && attachmentsPreview !== void 0 && attachmentsPreview.show && mediaFile) && (/*#__PURE__*/React__default.createElement(DragAndDropContainer, {
33520
33552
  id: 'draggingContainer',
33521
33553
  draggable: true,
@@ -33558,14 +33590,12 @@ var MessageList = function MessageList(_ref2) {
33558
33590
  dateDividerBackgroundColor: dateDividerBackgroundColor || overlayBackground,
33559
33591
  dateDividerBorderRadius: dateDividerBorderRadius,
33560
33592
  topOffset: scrollRef && scrollRef.current && scrollRef.current.offsetTop
33561
- }, /*#__PURE__*/React__default.createElement("span", {
33562
- ref: messageTopDateRef
33563
- }))), /*#__PURE__*/React__default.createElement(Container$h, {
33593
+ }, /*#__PURE__*/React__default.createElement("span", null, topDateLabel))), /*#__PURE__*/React__default.createElement(Container$h, {
33564
33594
  id: 'scrollableDiv',
33565
33595
  className: isScrolling ? 'show-scrollbar' : '',
33566
33596
  ref: scrollRef,
33567
33597
  stopScrolling: stopScrolling,
33568
- onScroll: handleMessagesListScroll,
33598
+ onScroll: onScroll,
33569
33599
  onMouseEnter: function onMouseEnter() {
33570
33600
  return setIsScrolling(true);
33571
33601
  },
@@ -33584,8 +33614,10 @@ var MessageList = function MessageList(_ref2) {
33584
33614
  var prevMessage = messages[index - 1];
33585
33615
  var nextMessage = messages[index + 1];
33586
33616
  var isUnreadMessage = !!(unreadMessageId && unreadMessageId === message.id && nextMessage) && !channel.backToLinkedChannel;
33587
- messagesIndexMap[message.id] = index;
33588
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(CreateMessageDateDivider, {
33617
+ messagesIndexMapRef.current[message.id] = index;
33618
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
33619
+ key: message.id || message.tid
33620
+ }, /*#__PURE__*/React__default.createElement(CreateMessageDateDivider, {
33589
33621
  noMargin: !isUnreadMessage && prevMessage && prevMessage.type === 'system' && message.type !== 'system',
33590
33622
  theme: theme,
33591
33623
  lastIndex: false,