stream-chat-react 10.4.1 → 10.4.3

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 (40) hide show
  1. package/dist/browser.full-bundle.js +46 -32
  2. package/dist/browser.full-bundle.js.map +1 -1
  3. package/dist/browser.full-bundle.min.js +3 -3
  4. package/dist/browser.full-bundle.min.js.map +1 -1
  5. package/dist/components/Chat/Chat.d.ts.map +1 -1
  6. package/dist/components/Chat/Chat.js +6 -3
  7. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts +0 -1
  8. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts.map +1 -1
  9. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.js +9 -7
  10. package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts.map +1 -1
  11. package/dist/components/MessageInput/hooks/useCooldownTimer.js +26 -13
  12. package/dist/components/MessageInput/hooks/useUserTrigger.d.ts.map +1 -1
  13. package/dist/components/MessageInput/hooks/useUserTrigger.js +2 -1
  14. package/dist/components/MessageList/MessageList.d.ts +5 -1
  15. package/dist/components/MessageList/MessageList.d.ts.map +1 -1
  16. package/dist/components/MessageList/MessageList.js +4 -2
  17. package/dist/components/MessageList/hooks/useMessageListScrollManager.d.ts +1 -0
  18. package/dist/components/MessageList/hooks/useMessageListScrollManager.d.ts.map +1 -1
  19. package/dist/components/MessageList/hooks/useMessageListScrollManager.js +6 -5
  20. package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts +1 -1
  21. package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts.map +1 -1
  22. package/dist/components/MessageList/hooks/useScrollLocationLogic.js +2 -1
  23. package/dist/css/index.css +1 -1
  24. package/dist/css/v2/index.css +1 -1
  25. package/dist/css/v2/index.css.map +1 -1
  26. package/dist/css/v2/index.layout.css +1 -1
  27. package/dist/css/v2/index.layout.css.map +1 -1
  28. package/dist/index.cjs.js +45 -31
  29. package/dist/index.cjs.js.map +1 -1
  30. package/dist/scss/Card.scss +1 -1
  31. package/dist/scss/ChannelHeader.scss +1 -1
  32. package/dist/scss/MessageInput.scss +1 -1
  33. package/dist/scss/TypingIndicator.scss +1 -1
  34. package/dist/scss/_variables.scss +1 -1
  35. package/dist/scss/v2/AttachmentList/AttachmentList-layout.scss +11 -13
  36. package/dist/scss/v2/Message/Message-theme.scss +4 -0
  37. package/dist/utils.js +1 -1
  38. package/dist/version.d.ts +1 -1
  39. package/dist/version.js +1 -1
  40. package/package.json +8 -8
@@ -36672,7 +36672,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
36672
36672
  // valid cases: "text @", "@", " @"
36673
36673
  // invalid cases: "text@", "@text",
36674
36674
  /.?\s?@$|^@$/.test(node.value) &&
36675
- nextChildHref.startsWith('mailto:')) {
36675
+ (nextChildHref === null || nextChildHref === void 0 ? void 0 : nextChildHref.startsWith('mailto:'))) {
36676
36676
  var newTextValue = node.value.replace(/@$/, '');
36677
36677
  var username = nextChildHref.replace('mailto:', '');
36678
36678
  parent.children[index] = u$3('text', newTextValue);
@@ -42717,7 +42717,8 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
42717
42717
  _a.label = 1;
42718
42718
  case 1:
42719
42719
  _a.trys.push([1, 3, , 4]);
42720
- return [4 /*yield*/, client.queryUsers(__assign$8({ $or: [{ id: { $autocomplete: query } }, { name: { $autocomplete: query } }], id: { $ne: client.userID } }, mentionQueryParams.filters), __assign$8({ id: 1 }, mentionQueryParams.sort), __assign$8({ limit: 10 }, mentionQueryParams.options))];
42720
+ return [4 /*yield*/, client.queryUsers(__assign$8({ $or: [{ id: { $autocomplete: query } }, { name: { $autocomplete: query } }], id: { $ne: client.userID } }, mentionQueryParams.filters), Array.isArray(mentionQueryParams.sort)
42721
+ ? __spreadArray([{ id: 1 }], mentionQueryParams.sort, true) : __assign$8({ id: 1 }, mentionQueryParams.sort), __assign$8({ limit: 10 }, mentionQueryParams.options))];
42721
42722
  case 2:
42722
42723
  users = (_a.sent()).users;
42723
42724
  if (onReady && users.length) {
@@ -44674,24 +44675,28 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
44674
44675
  };
44675
44676
 
44676
44677
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useCooldownTimer = function () {
44678
+ var _a;
44677
44679
  var latestMessageDatesByChannels = useChatContext('useCooldownTimer').latestMessageDatesByChannels;
44678
- var channel = useChannelStateContext('useCooldownTimer').channel;
44679
- var _a = (channel.data ||
44680
- {}), cooldownInterval = _a.cooldown, own_capabilities = _a.own_capabilities;
44681
- var _b = React$2.useState(), cooldownRemaining = _b[0], setCooldownRemaining = _b[1];
44680
+ var _b = useChannelStateContext('useCooldownTimer'), channel = _b.channel, _c = _b.messages, messages = _c === void 0 ? [] : _c;
44681
+ var client = useChatContext('useCooldownTimer').client;
44682
+ var _d = React$2.useState(), cooldownRemaining = _d[0], setCooldownRemaining = _d[1];
44683
+ var _e = (channel.data ||
44684
+ {}), cooldownInterval = _e.cooldown, own_capabilities = _e.own_capabilities;
44682
44685
  var skipCooldown = !(own_capabilities === null || own_capabilities === void 0 ? void 0 : own_capabilities.includes('slow-mode'));
44686
+ var ownLatestMessageDate = React$2.useMemo(function () {
44687
+ var _a, _b;
44688
+ return (_a = latestMessageDatesByChannels[channel.cid]) !== null && _a !== void 0 ? _a : (_b = __spreadArray([], messages, true).sort(function (a, b) { var _a, _b; return ((_a = b.created_at) === null || _a === void 0 ? void 0 : _a.getTime()) - ((_b = a.created_at) === null || _b === void 0 ? void 0 : _b.getTime()); })
44689
+ .find(function (v) { var _a, _b; return ((_a = v.user) === null || _a === void 0 ? void 0 : _a.id) === ((_b = client.user) === null || _b === void 0 ? void 0 : _b.id); })) === null || _b === void 0 ? void 0 : _b.created_at;
44690
+ }, [messages, (_a = client.user) === null || _a === void 0 ? void 0 : _a.id, latestMessageDatesByChannels, channel.cid]);
44683
44691
  React$2.useEffect(function () {
44684
- var latestMessageDate = latestMessageDatesByChannels[channel.cid];
44685
- if (!cooldownInterval || !latestMessageDate) {
44692
+ if (skipCooldown || !cooldownInterval || !ownLatestMessageDate)
44686
44693
  return;
44687
- }
44688
- var remainingCooldown = Math.round(cooldownInterval - (new Date().getTime() - latestMessageDate.getTime()) / 1000);
44689
- if (remainingCooldown > 0 && !skipCooldown) {
44694
+ var remainingCooldown = Math.round(cooldownInterval - (new Date().getTime() - ownLatestMessageDate.getTime()) / 1000);
44695
+ if (remainingCooldown > 0)
44690
44696
  setCooldownRemaining(remainingCooldown);
44691
- }
44692
- }, [channel.id, cooldownInterval, latestMessageDatesByChannels[channel.cid]]);
44697
+ }, [cooldownInterval, ownLatestMessageDate, skipCooldown]);
44693
44698
  return {
44694
- cooldownInterval: cooldownInterval || 0,
44699
+ cooldownInterval: cooldownInterval !== null && cooldownInterval !== void 0 ? cooldownInterval : 0,
44695
44700
  cooldownRemaining: cooldownRemaining,
44696
44701
  setCooldownRemaining: setCooldownRemaining,
44697
44702
  };
@@ -48127,7 +48132,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
48127
48132
 
48128
48133
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
48129
48134
 
48130
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '10.4.1';
48135
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '10.4.3';
48131
48136
 
48132
48137
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChat = function (_a) {
48133
48138
  var _b, _c;
@@ -48313,9 +48318,12 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
48313
48318
  var children = props.children, client = props.client, customClasses = props.customClasses, customStyles = props.customStyles, _a = props.darkMode, darkMode = _a === void 0 ? false : _a, defaultLanguage = props.defaultLanguage, i18nInstance = props.i18nInstance, _b = props.initialNavOpen, initialNavOpen = _b === void 0 ? true : _b, _c = props.theme, theme = _c === void 0 ? 'messaging light' : _c, _d = props.useImageFlagEmojisOnWindows, useImageFlagEmojisOnWindows = _d === void 0 ? false : _d;
48314
48319
  var _e = useChat({ client: client, defaultLanguage: defaultLanguage, i18nInstance: i18nInstance, initialNavOpen: initialNavOpen }), channel = _e.channel, closeMobileNav = _e.closeMobileNav, getAppSettings = _e.getAppSettings, latestMessageDatesByChannels = _e.latestMessageDatesByChannels, mutes = _e.mutes, navOpen = _e.navOpen, openMobileNav = _e.openMobileNav, setActiveChannel = _e.setActiveChannel, translators = _e.translators;
48315
48320
  var channelsQueryState = useChannelsQueryState();
48316
- var themeVersion = (getComputedStyle(document.documentElement)
48317
- .getPropertyValue('--str-chat__theme-version')
48318
- .replace(' ', '') || '1');
48321
+ var themeVersion = typeof window !== 'undefined'
48322
+ ? (window
48323
+ .getComputedStyle(document.documentElement)
48324
+ .getPropertyValue('--str-chat__theme-version')
48325
+ .replace(' ', '') || '1')
48326
+ : '1';
48319
48327
  useCustomStyles(darkMode ? darkModeTheme : customStyles);
48320
48328
  var chatContextValue = useCreateChatContext({
48321
48329
  channel: channel,
@@ -48434,6 +48442,8 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
48434
48442
  if (listenToScroll) {
48435
48443
  listenToScroll(offset, reverseOffset, threshold);
48436
48444
  }
48445
+ if (isLoading)
48446
+ return;
48437
48447
  if (reverseOffset < Number(threshold) &&
48438
48448
  typeof loadPreviousPageFn === 'function' &&
48439
48449
  hasPreviousPageFlag) {
@@ -48445,10 +48455,11 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
48445
48455
  }, [
48446
48456
  hasPreviousPageFlag,
48447
48457
  hasNextPageFlag,
48448
- threshold,
48458
+ isLoading,
48449
48459
  listenToScroll,
48450
48460
  loadPreviousPageFn,
48451
48461
  loadNextPageFn,
48462
+ threshold,
48452
48463
  ]);
48453
48464
  React$2.useEffect(function () {
48454
48465
  deprecationAndReplacementWarning([
@@ -48458,19 +48469,18 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
48458
48469
  [{ loadMore: loadMore }, { loadPreviousPage: loadPreviousPage }],
48459
48470
  ], 'InfiniteScroll');
48460
48471
  }, []);
48461
- React$2.useEffect(function () {
48472
+ React$2.useLayoutEffect(function () {
48462
48473
  var _a;
48463
48474
  var scrollElement = (_a = scrollComponent.current) === null || _a === void 0 ? void 0 : _a.parentNode;
48464
- if (isLoading || !scrollElement) {
48465
- return function () { return undefined; };
48466
- }
48475
+ if (!scrollElement)
48476
+ return;
48467
48477
  scrollElement.addEventListener('scroll', scrollListener, useCapture);
48468
48478
  scrollElement.addEventListener('resize', scrollListener, useCapture);
48469
48479
  return function () {
48470
48480
  scrollElement.removeEventListener('scroll', scrollListener, useCapture);
48471
48481
  scrollElement.removeEventListener('resize', scrollListener, useCapture);
48472
48482
  };
48473
- }, [initialLoad, isLoading, scrollListener, useCapture]);
48483
+ }, [initialLoad, scrollListener, useCapture]);
48474
48484
  React$2.useEffect(function () {
48475
48485
  var _a;
48476
48486
  var scrollElement = (_a = scrollComponent.current) === null || _a === void 0 ? void 0 : _a.parentNode;
@@ -49271,8 +49281,9 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
49271
49281
  return elements;
49272
49282
  };
49273
49283
 
49274
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};function useMessageListScrollManager(params) {
49275
- var onScrollBy = params.onScrollBy, scrollContainerMeasures = params.scrollContainerMeasures, scrolledUpThreshold = params.scrolledUpThreshold, scrollToBottom = params.scrollToBottom, showNewMessages = params.showNewMessages;
49284
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};// FIXME: change this generic name to something like useAdjustScrollPositionToListSize
49285
+ function useMessageListScrollManager(params) {
49286
+ var loadMoreScrollThreshold = params.loadMoreScrollThreshold, onScrollBy = params.onScrollBy, scrollContainerMeasures = params.scrollContainerMeasures, scrolledUpThreshold = params.scrolledUpThreshold, scrollToBottom = params.scrollToBottom, showNewMessages = params.showNewMessages;
49276
49287
  var client = useChatContext('useMessageListScrollManager').client;
49277
49288
  var measures = React$2.useRef({
49278
49289
  offsetHeight: 0,
@@ -49280,7 +49291,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
49280
49291
  });
49281
49292
  var messages = React$2.useRef();
49282
49293
  var scrollTop = React$2.useRef(0);
49283
- React$2.useEffect(function () {
49294
+ React$2.useLayoutEffect(function () {
49284
49295
  var _a, _b, _c;
49285
49296
  var prevMeasures = measures.current;
49286
49297
  var prevMessages = messages.current;
@@ -49294,8 +49305,8 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
49294
49305
  if (prevMessages.length < newMessages.length) {
49295
49306
  // messages added to the top
49296
49307
  if ((lastPrevMessage === null || lastPrevMessage === void 0 ? void 0 : lastPrevMessage.id) === lastNewMessage.id) {
49297
- var listHeightDelta = newMeasures.scrollHeight - prevMeasures.scrollHeight;
49298
- if (scrollTop.current === 0) {
49308
+ if (scrollTop.current < loadMoreScrollThreshold) {
49309
+ var listHeightDelta = newMeasures.scrollHeight - prevMeasures.scrollHeight;
49299
49310
  onScrollBy(listHeightDelta);
49300
49311
  }
49301
49312
  }
@@ -49328,7 +49339,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
49328
49339
  }
49329
49340
 
49330
49341
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useScrollLocationLogic = function (params) {
49331
- var _a = params.messages, messages = _a === void 0 ? [] : _a, _b = params.scrolledUpThreshold, scrolledUpThreshold = _b === void 0 ? 200 : _b, hasMoreNewer = params.hasMoreNewer, suppressAutoscroll = params.suppressAutoscroll, listElement = params.listElement;
49342
+ var loadMoreScrollThreshold = params.loadMoreScrollThreshold, _a = params.messages, messages = _a === void 0 ? [] : _a, _b = params.scrolledUpThreshold, scrolledUpThreshold = _b === void 0 ? 200 : _b, hasMoreNewer = params.hasMoreNewer, suppressAutoscroll = params.suppressAutoscroll, listElement = params.listElement;
49332
49343
  var _c = React$2.useState(false), hasNewMessages = _c[0], setHasNewMessages = _c[1];
49333
49344
  var _d = React$2.useState(), wrapperRect = _d[0], setWrapperRect = _d[1];
49334
49345
  var _e = React$2.useState(true), isMessageListScrolledToBottom = _e[0], setIsMessageListScrolledToBottom = _e[1];
@@ -49352,6 +49363,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
49352
49363
  }
49353
49364
  }, [listElement, hasMoreNewer]);
49354
49365
  var updateScrollTop = useMessageListScrollManager({
49366
+ loadMoreScrollThreshold: loadMoreScrollThreshold,
49355
49367
  messages: messages,
49356
49368
  onScrollBy: function (scrollBy) {
49357
49369
  listElement === null || listElement === void 0 ? void 0 : listElement.scrollBy({ top: scrollBy });
@@ -49502,16 +49514,18 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
49502
49514
  };
49503
49515
 
49504
49516
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var MessageListWithContext = function (props) {
49505
- var channel = props.channel, _a = props.disableDateSeparator, disableDateSeparator = _a === void 0 ? false : _a, groupStyles = props.groupStyles, _b = props.hideDeletedMessages, hideDeletedMessages = _b === void 0 ? false : _b, _c = props.hideNewMessageSeparator, hideNewMessageSeparator = _c === void 0 ? false : _c, _d = props.messageActions, messageActions = _d === void 0 ? Object.keys(MESSAGE_ACTIONS) : _d, _e = props.messages, messages = _e === void 0 ? [] : _e, notifications = props.notifications, _f = props.noGroupByUser, noGroupByUser = _f === void 0 ? false : _f, _g = props.pinPermissions, pinPermissions = _g === void 0 ? defaultPinPermissions : _g, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
49517
+ var channel = props.channel, _a = props.disableDateSeparator, disableDateSeparator = _a === void 0 ? false : _a, groupStyles = props.groupStyles, _b = props.hideDeletedMessages, hideDeletedMessages = _b === void 0 ? false : _b, _c = props.hideNewMessageSeparator, hideNewMessageSeparator = _c === void 0 ? false : _c, internalInfiniteScrollProps = props.internalInfiniteScrollProps, _d = props.messageActions, messageActions = _d === void 0 ? Object.keys(MESSAGE_ACTIONS) : _d, _e = props.messages, messages = _e === void 0 ? [] : _e, notifications = props.notifications, _f = props.noGroupByUser, noGroupByUser = _f === void 0 ? false : _f, _g = props.pinPermissions, pinPermissions = _g === void 0 ? defaultPinPermissions : _g, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
49506
49518
  _h = props.returnAllReadData, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
49507
49519
  returnAllReadData = _h === void 0 ? false : _h, _j = props.threadList, threadList = _j === void 0 ? false : _j, _k = props.unsafeHTML, unsafeHTML = _k === void 0 ? false : _k, headerPosition = props.headerPosition, read = props.read, _l = props.messageLimit, messageLimit = _l === void 0 ? 100 : _l, loadMoreCallback = props.loadMore, loadMoreNewerCallback = props.loadMoreNewer, _m = props.hasMoreNewer, hasMoreNewer = _m === void 0 ? false : _m, suppressAutoscroll = props.suppressAutoscroll, highlightedMessageId = props.highlightedMessageId, _o = props.jumpToLatestMessage, jumpToLatestMessage = _o === void 0 ? function () { return Promise.resolve(); } : _o;
49508
49520
  var _p = React__default["default"].useState(null), listElement = _p[0], setListElement = _p[1];
49509
49521
  var _q = React__default["default"].useState(null), ulElement = _q[0], setUlElement = _q[1];
49510
49522
  var customClasses = useChatContext('MessageList').customClasses;
49511
49523
  var _r = useComponentContext('MessageList'), _s = _r.EmptyStateIndicator, EmptyStateIndicator$1 = _s === void 0 ? EmptyStateIndicator : _s, _t = _r.LoadingIndicator, LoadingIndicator$1 = _t === void 0 ? LoadingIndicator : _t, _u = _r.MessageListNotifications, MessageListNotifications$1 = _u === void 0 ? MessageListNotifications : _u, _v = _r.MessageNotification, MessageNotification$1 = _v === void 0 ? MessageNotification : _v, _w = _r.TypingIndicator, TypingIndicator$1 = _w === void 0 ? TypingIndicator : _w;
49524
+ var loadMoreScrollThreshold = (internalInfiniteScrollProps === null || internalInfiniteScrollProps === void 0 ? void 0 : internalInfiniteScrollProps.threshold) || 250;
49512
49525
  var _x = useScrollLocationLogic({
49513
49526
  hasMoreNewer: hasMoreNewer,
49514
49527
  listElement: listElement,
49528
+ loadMoreScrollThreshold: loadMoreScrollThreshold,
49515
49529
  messages: messages,
49516
49530
  scrolledUpThreshold: props.scrolledUpThreshold,
49517
49531
  suppressAutoscroll: suppressAutoscroll,
@@ -49598,7 +49612,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
49598
49612
  var showEmptyStateIndicator = elements.length === 0 && !threadList;
49599
49613
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
49600
49614
  React__default["default"].createElement(MessageListMainPanel, null,
49601
- React__default["default"].createElement("div", { className: "".concat(messageListClass, " ").concat(threadListClass), onScroll: onScroll, ref: setListElement, tabIndex: 0 }, showEmptyStateIndicator ? (React__default["default"].createElement(EmptyStateIndicator$1, { key: 'empty-state-indicator', listType: threadList ? 'thread' : 'message' })) : (React__default["default"].createElement(InfiniteScroll, __assign$8({ className: 'str-chat__reverse-infinite-scroll str-chat__message-list-scroll', "data-testid": 'reverse-infinite-scroll', hasNextPage: props.hasMoreNewer, hasPreviousPage: props.hasMore, head: props.head, isLoading: props.loadingMore, loader: React__default["default"].createElement("div", { className: 'str-chat__list__loading', key: 'loading-indicator' }, props.loadingMore && React__default["default"].createElement(LoadingIndicator$1, { size: 20 })), loadNextPage: loadMoreNewer, loadPreviousPage: loadMore }, props.internalInfiniteScrollProps),
49615
+ React__default["default"].createElement("div", { className: "".concat(messageListClass, " ").concat(threadListClass), onScroll: onScroll, ref: setListElement, tabIndex: 0 }, showEmptyStateIndicator ? (React__default["default"].createElement(EmptyStateIndicator$1, { key: 'empty-state-indicator', listType: threadList ? 'thread' : 'message' })) : (React__default["default"].createElement(InfiniteScroll, __assign$8({ className: 'str-chat__reverse-infinite-scroll str-chat__message-list-scroll', "data-testid": 'reverse-infinite-scroll', hasNextPage: props.hasMoreNewer, hasPreviousPage: props.hasMore, head: props.head, isLoading: props.loadingMore, loader: React__default["default"].createElement("div", { className: 'str-chat__list__loading', key: 'loading-indicator' }, props.loadingMore && React__default["default"].createElement(LoadingIndicator$1, { size: 20 })), loadNextPage: loadMoreNewer, loadPreviousPage: loadMore }, props.internalInfiniteScrollProps, { threshold: loadMoreScrollThreshold }),
49602
49616
  React__default["default"].createElement("ul", { className: 'str-chat__ul', ref: setUlElement }, elements),
49603
49617
  React__default["default"].createElement(TypingIndicator$1, { threadList: threadList }),
49604
49618
  React__default["default"].createElement("div", { key: 'bottom' }))))),