stream-chat-react 10.14.0 → 10.15.0

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 (117) hide show
  1. package/dist/browser.full-bundle.js +6528 -6421
  2. package/dist/browser.full-bundle.js.map +1 -1
  3. package/dist/browser.full-bundle.min.js +5 -5
  4. package/dist/browser.full-bundle.min.js.map +1 -1
  5. package/dist/components/AutoCompleteTextarea/List.js +1 -1
  6. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  7. package/dist/components/Avatar/Avatar.js +1 -1
  8. package/dist/components/DateSeparator/DateSeparator.js +1 -1
  9. package/dist/components/EventComponent/EventComponent.js +1 -1
  10. package/dist/components/Message/FixedHeightMessage.js +1 -1
  11. package/dist/components/Message/MessageText.js +2 -2
  12. package/dist/components/Message/index.d.ts +1 -0
  13. package/dist/components/Message/index.d.ts.map +1 -1
  14. package/dist/components/Message/index.js +1 -0
  15. package/dist/components/Message/renderText/Anchor.d.ts +4 -0
  16. package/dist/components/Message/renderText/Anchor.d.ts.map +1 -0
  17. package/dist/components/Message/renderText/Anchor.js +10 -0
  18. package/dist/components/Message/renderText/Emoji.d.ts +3 -0
  19. package/dist/components/Message/renderText/Emoji.d.ts.map +1 -0
  20. package/dist/components/Message/renderText/Emoji.js +5 -0
  21. package/dist/components/Message/renderText/Mention.d.ts +18 -0
  22. package/dist/components/Message/renderText/Mention.d.ts.map +1 -0
  23. package/dist/components/Message/renderText/Mention.js +5 -0
  24. package/dist/components/Message/renderText/index.d.ts +5 -0
  25. package/dist/components/Message/renderText/index.d.ts.map +1 -0
  26. package/dist/components/Message/renderText/index.js +3 -0
  27. package/dist/components/Message/renderText/regex.d.ts +5 -0
  28. package/dist/components/Message/renderText/regex.d.ts.map +1 -0
  29. package/dist/components/Message/renderText/regex.js +21 -0
  30. package/dist/components/Message/renderText/rehypePlugins.d.ts +7 -0
  31. package/dist/components/Message/renderText/rehypePlugins.d.ts.map +1 -0
  32. package/dist/components/Message/renderText/rehypePlugins.js +60 -0
  33. package/dist/components/Message/renderText/renderText.d.ts +21 -0
  34. package/dist/components/Message/renderText/renderText.d.ts.map +1 -0
  35. package/dist/components/Message/renderText/renderText.js +126 -0
  36. package/dist/components/Message/types.d.ts +1 -1
  37. package/dist/components/Message/types.d.ts.map +1 -1
  38. package/dist/components/Message/utils.d.ts +1 -0
  39. package/dist/components/Message/utils.d.ts.map +1 -1
  40. package/dist/components/Message/utils.js +8 -0
  41. package/dist/components/MessageList/MessageList.d.ts.map +1 -1
  42. package/dist/components/MessageList/MessageList.js +1 -3
  43. package/dist/components/MessageList/VirtualizedMessageList.d.ts +36 -6
  44. package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
  45. package/dist/components/MessageList/VirtualizedMessageList.js +39 -122
  46. package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts +23 -0
  47. package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts.map +1 -0
  48. package/dist/components/MessageList/VirtualizedMessageListComponents.js +70 -0
  49. package/dist/components/MessageList/hooks/MessageList/index.d.ts +5 -0
  50. package/dist/components/MessageList/hooks/MessageList/index.d.ts.map +1 -0
  51. package/dist/components/MessageList/hooks/MessageList/index.js +4 -0
  52. package/dist/components/MessageList/hooks/{useEnrichedMessages.d.ts → MessageList/useEnrichedMessages.d.ts} +3 -3
  53. package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts.map +1 -0
  54. package/dist/components/MessageList/hooks/{useEnrichedMessages.js → MessageList/useEnrichedMessages.js} +3 -3
  55. package/dist/components/MessageList/hooks/{useMessageListElements.d.ts → MessageList/useMessageListElements.d.ts} +4 -4
  56. package/dist/components/MessageList/hooks/MessageList/useMessageListElements.d.ts.map +1 -0
  57. package/dist/components/MessageList/hooks/{useMessageListElements.js → MessageList/useMessageListElements.js} +9 -9
  58. package/dist/components/MessageList/hooks/{useMessageListScrollManager.d.ts → MessageList/useMessageListScrollManager.d.ts} +2 -2
  59. package/dist/components/MessageList/hooks/MessageList/useMessageListScrollManager.d.ts.map +1 -0
  60. package/dist/components/MessageList/hooks/{useMessageListScrollManager.js → MessageList/useMessageListScrollManager.js} +1 -1
  61. package/dist/components/MessageList/hooks/{useScrollLocationLogic.d.ts → MessageList/useScrollLocationLogic.d.ts} +2 -2
  62. package/dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.d.ts.map +1 -0
  63. package/dist/components/MessageList/hooks/VirtualizedMessageList/index.d.ts +7 -0
  64. package/dist/components/MessageList/hooks/VirtualizedMessageList/index.d.ts.map +1 -0
  65. package/dist/components/MessageList/hooks/VirtualizedMessageList/index.js +6 -0
  66. package/dist/components/MessageList/hooks/{useGiphyPreview.d.ts → VirtualizedMessageList/useGiphyPreview.d.ts} +2 -2
  67. package/dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.d.ts.map +1 -0
  68. package/dist/components/MessageList/hooks/{useGiphyPreview.js → VirtualizedMessageList/useGiphyPreview.js} +1 -1
  69. package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.d.ts +10 -0
  70. package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.d.ts.map +1 -0
  71. package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.js +20 -0
  72. package/dist/components/MessageList/hooks/{useNewMessageNotification.d.ts → VirtualizedMessageList/useNewMessageNotification.d.ts} +2 -2
  73. package/dist/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.d.ts.map +1 -0
  74. package/dist/components/MessageList/hooks/{usePrependMessagesCount.d.ts → VirtualizedMessageList/usePrependMessagesCount.d.ts} +2 -2
  75. package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.d.ts.map +1 -0
  76. package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.d.ts +12 -0
  77. package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.d.ts.map +1 -0
  78. package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.js +28 -0
  79. package/dist/components/MessageList/hooks/{useShouldForceScrollToBottom.d.ts → VirtualizedMessageList/useShouldForceScrollToBottom.d.ts} +2 -2
  80. package/dist/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.d.ts.map +1 -0
  81. package/dist/components/MessageList/hooks/index.d.ts +7 -7
  82. package/dist/components/MessageList/hooks/index.d.ts.map +1 -1
  83. package/dist/components/MessageList/hooks/index.js +7 -7
  84. package/dist/context/MessageContext.d.ts +1 -1
  85. package/dist/context/MessageContext.d.ts.map +1 -1
  86. package/dist/index.cjs.js +627 -584
  87. package/dist/index.cjs.js.map +1 -1
  88. package/dist/index.d.ts +0 -1
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +0 -2
  91. package/dist/utils/generateRandomId.d.ts +6 -0
  92. package/dist/utils/generateRandomId.d.ts.map +1 -0
  93. package/dist/utils/generateRandomId.js +5 -0
  94. package/dist/utils/getWholeChar.d.ts +2 -0
  95. package/dist/utils/getWholeChar.d.ts.map +1 -0
  96. package/dist/utils/getWholeChar.js +26 -0
  97. package/dist/utils/index.d.ts +4 -0
  98. package/dist/utils/index.d.ts.map +1 -0
  99. package/dist/utils/index.js +3 -0
  100. package/dist/version.d.ts +1 -1
  101. package/dist/version.js +1 -1
  102. package/package.json +2 -2
  103. package/dist/components/MessageList/hooks/useEnrichedMessages.d.ts.map +0 -1
  104. package/dist/components/MessageList/hooks/useGiphyPreview.d.ts.map +0 -1
  105. package/dist/components/MessageList/hooks/useMessageListElements.d.ts.map +0 -1
  106. package/dist/components/MessageList/hooks/useMessageListScrollManager.d.ts.map +0 -1
  107. package/dist/components/MessageList/hooks/useNewMessageNotification.d.ts.map +0 -1
  108. package/dist/components/MessageList/hooks/usePrependMessagesCount.d.ts.map +0 -1
  109. package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts.map +0 -1
  110. package/dist/components/MessageList/hooks/useShouldForceScrollToBottom.d.ts.map +0 -1
  111. package/dist/utils.d.ts +0 -42
  112. package/dist/utils.d.ts.map +0 -1
  113. package/dist/utils.js +0 -253
  114. /package/dist/components/MessageList/hooks/{useScrollLocationLogic.js → MessageList/useScrollLocationLogic.js} +0 -0
  115. /package/dist/components/MessageList/hooks/{useNewMessageNotification.js → VirtualizedMessageList/useNewMessageNotification.js} +0 -0
  116. /package/dist/components/MessageList/hooks/{usePrependMessagesCount.js → VirtualizedMessageList/usePrependMessagesCount.js} +0 -0
  117. /package/dist/components/MessageList/hooks/{useShouldForceScrollToBottom.js → VirtualizedMessageList/useShouldForceScrollToBottom.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualizedMessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/VirtualizedMessageList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VirtualizedMessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/VirtualizedMessageList.tsx"],"names":[],"mappings":"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"}
@@ -1,26 +1,21 @@
1
- import { __assign, __awaiter, __generator } from "tslib";
2
- import clsx from 'clsx';
3
- import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
1
+ import { __assign, __awaiter, __generator, __rest } from "tslib";
2
+ import React, { useCallback, useEffect, useMemo, useRef } from 'react';
4
3
  import { Virtuoso, } from 'react-virtuoso';
5
4
  import { GiphyPreviewMessage as DefaultGiphyPreviewMessage } from './GiphyPreviewMessage';
6
- import { useGiphyPreview } from './hooks/useGiphyPreview';
7
- import { useLastReadData, useNewMessageNotification, usePrependedMessagesCount, useShouldForceScrollToBottom, } from './hooks';
5
+ import { useLastReadData } from './hooks';
6
+ import { useGiphyPreview, useMessageSetKey, useNewMessageNotification, usePrependedMessagesCount, useScrollToBottomOnNewMessage, useShouldForceScrollToBottom, } from './hooks/VirtualizedMessageList';
8
7
  import { MessageNotification as DefaultMessageNotification } from './MessageNotification';
9
8
  import { MessageListNotifications as DefaultMessageListNotifications } from './MessageListNotifications';
10
9
  import { MessageListMainPanel } from './MessageListMainPanel';
11
10
  import { getGroupStyles, getLastReceived, processMessages } from './utils';
12
- import { CUSTOM_MESSAGE_TYPE } from '../../constants/messageTypes';
13
- import { DateSeparator as DefaultDateSeparator } from '../DateSeparator/DateSeparator';
14
- import { EmptyStateIndicator as DefaultEmptyStateIndicator } from '../EmptyStateIndicator/EmptyStateIndicator';
15
- import { EventComponent } from '../EventComponent/EventComponent';
16
- import { LoadingIndicator as DefaultLoadingIndicator } from '../Loading/LoadingIndicator';
17
- import { Message, MessageSimple } from '../Message';
11
+ import { MessageSimple } from '../Message';
12
+ import { DateSeparator as DefaultDateSeparator } from '../DateSeparator';
13
+ import { EventComponent } from '../EventComponent';
14
+ import { calculateFirstItemIndex, calculateItemIndex, EmptyPlaceholder, Footer, Header, Item, messageRenderer, } from './VirtualizedMessageListComponents';
18
15
  import { useChannelActionContext, } from '../../context/ChannelActionContext';
19
16
  import { useChannelStateContext, } from '../../context/ChannelStateContext';
20
17
  import { useChatContext } from '../../context/ChatContext';
21
18
  import { useComponentContext } from '../../context/ComponentContext';
22
- import { isDate } from '../../context/TranslationContext';
23
- var PREPEND_OFFSET = Math.pow(10, 7);
24
19
  function captureResizeObserverExceededError(e) {
25
20
  if (e.message === 'ResizeObserver loop completed with undelivered notifications.' ||
26
21
  e.message === 'ResizeObserver loop limit exceeded') {
@@ -51,19 +46,21 @@ function calculateInitialTopMostItemIndex(messages, highlightedMessageId) {
51
46
  return messages.length - 1;
52
47
  }
53
48
  var VirtualizedMessageListWithContext = function (props) {
54
- var additionalVirtuosoProps = props.additionalVirtuosoProps, channel = props.channel, closeReactionSelectorOnClick = props.closeReactionSelectorOnClick, customMessageRenderer = props.customMessageRenderer, defaultItemHeight = props.defaultItemHeight, _a = props.disableDateSeparator, disableDateSeparator = _a === void 0 ? true : _a, groupStyles = props.groupStyles, hasMore = props.hasMore, hasMoreNewer = props.hasMoreNewer, head = props.head, _b = props.hideDeletedMessages, hideDeletedMessages = _b === void 0 ? false : _b, _c = props.hideNewMessageSeparator, hideNewMessageSeparator = _c === void 0 ? false : _c, highlightedMessageId = props.highlightedMessageId, jumpToLatestMessage = props.jumpToLatestMessage, loadingMore = props.loadingMore, loadMore = props.loadMore, loadMoreNewer = props.loadMoreNewer, propMessage = props.Message, _d = props.messageLimit, messageLimit = _d === void 0 ? 100 : _d, messages = props.messages, notifications = props.notifications,
49
+ var additionalMessageInputProps = props.additionalMessageInputProps, _a = props.additionalVirtuosoProps, additionalVirtuosoProps = _a === void 0 ? {} : _a, channel = props.channel, closeReactionSelectorOnClick = props.closeReactionSelectorOnClick, customMessageActions = props.customMessageActions, customMessageRenderer = props.customMessageRenderer, defaultItemHeight = props.defaultItemHeight, _b = props.disableDateSeparator, disableDateSeparator = _b === void 0 ? true : _b, groupStyles = props.groupStyles, hasMore = props.hasMore, hasMoreNewer = props.hasMoreNewer, head = props.head, _c = props.hideDeletedMessages, hideDeletedMessages = _c === void 0 ? false : _c, _d = props.hideNewMessageSeparator, hideNewMessageSeparator = _d === void 0 ? false : _d, highlightedMessageId = props.highlightedMessageId, jumpToLatestMessage = props.jumpToLatestMessage, loadingMore = props.loadingMore, loadMore = props.loadMore, loadMoreNewer = props.loadMoreNewer, MessageUIComponentFromProps = props.Message, messageActions = props.messageActions, _e = props.messageLimit, messageLimit = _e === void 0 ? 100 : _e, messages = props.messages, notifications = props.notifications,
55
50
  // TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
56
- _e = props.overscan,
51
+ _f = props.overscan,
57
52
  // TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
58
- overscan = _e === void 0 ? 0 : _e, read = props.read, _f = props.returnAllReadData, returnAllReadData = _f === void 0 ? false : _f, scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _g = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _g === void 0 ? false : _g, _h = props.separateGiphyPreview, separateGiphyPreview = _h === void 0 ? false : _h, _j = props.shouldGroupByUser, shouldGroupByUser = _j === void 0 ? false : _j, _k = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _k === void 0 ? 'smooth' : _k, suppressAutoscroll = props.suppressAutoscroll, threadList = props.threadList;
53
+ overscan = _f === void 0 ? 0 : _f, read = props.read, _g = props.returnAllReadData, returnAllReadData = _g === void 0 ? false : _g, scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _h = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _h === void 0 ? false : _h, _j = props.separateGiphyPreview, separateGiphyPreview = _j === void 0 ? false : _j, _k = props.shouldGroupByUser, shouldGroupByUser = _k === void 0 ? false : _k, _l = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _l === void 0 ? 'smooth' : _l, suppressAutoscroll = props.suppressAutoscroll, threadList = props.threadList;
54
+ var virtuosoComponentsFromProps = additionalVirtuosoProps.components, overridingVirtuosoProps = __rest(additionalVirtuosoProps, ["components"]);
59
55
  // Stops errors generated from react-virtuoso to bubble up
60
56
  // to Sentry or other tracking tools.
61
57
  useCaptureResizeObserverExceededError();
62
- var _l = useComponentContext('VirtualizedMessageList'), _m = _l.DateSeparator, DateSeparator = _m === void 0 ? DefaultDateSeparator : _m, _o = _l.EmptyStateIndicator, EmptyStateIndicator = _o === void 0 ? DefaultEmptyStateIndicator : _o, _p = _l.GiphyPreviewMessage, GiphyPreviewMessage = _p === void 0 ? DefaultGiphyPreviewMessage : _p, _q = _l.LoadingIndicator, LoadingIndicator = _q === void 0 ? DefaultLoadingIndicator : _q, _r = _l.MessageListNotifications, MessageListNotifications = _r === void 0 ? DefaultMessageListNotifications : _r, _s = _l.MessageNotification, MessageNotification = _s === void 0 ? DefaultMessageNotification : _s, _t = _l.MessageSystem, MessageSystem = _t === void 0 ? EventComponent : _t, _u = _l.TypingIndicator, TypingIndicator = _u === void 0 ? null : _u, _v = _l.VirtualMessage, contextMessage = _v === void 0 ? MessageSimple : _v;
63
- var _w = useChatContext('VirtualizedMessageList'), client = _w.client, customClasses = _w.customClasses;
58
+ var _m = useComponentContext('VirtualizedMessageList'), _o = _m.DateSeparator, DateSeparator = _o === void 0 ? DefaultDateSeparator : _o, _p = _m.GiphyPreviewMessage, GiphyPreviewMessage = _p === void 0 ? DefaultGiphyPreviewMessage : _p, _q = _m.MessageListNotifications, MessageListNotifications = _q === void 0 ? DefaultMessageListNotifications : _q, _r = _m.MessageNotification, MessageNotification = _r === void 0 ? DefaultMessageNotification : _r, _s = _m.MessageSystem, MessageSystem = _s === void 0 ? EventComponent : _s, _t = _m.VirtualMessage, MessageUIComponentFromContext = _t === void 0 ? MessageSimple : _t;
59
+ var MessageUIComponent = MessageUIComponentFromProps || MessageUIComponentFromContext;
60
+ var _u = useChatContext('VirtualizedMessageList'), client = _u.client, customClasses = _u.customClasses;
61
+ var virtuoso = useRef(null);
64
62
  var lastRead = useMemo(function () { var _a; return (_a = channel.lastRead) === null || _a === void 0 ? void 0 : _a.call(channel); }, [channel]);
65
- var MessageUIComponent = propMessage || contextMessage;
66
- var _x = useGiphyPreview(separateGiphyPreview), giphyPreviewMessage = _x.giphyPreviewMessage, setGiphyPreviewMessage = _x.setGiphyPreviewMessage;
63
+ var _v = useGiphyPreview(separateGiphyPreview), giphyPreviewMessage = _v.giphyPreviewMessage, setGiphyPreviewMessage = _v.setGiphyPreviewMessage;
67
64
  var processedMessages = useMemo(function () {
68
65
  if (typeof messages === 'undefined') {
69
66
  return [];
@@ -112,9 +109,8 @@ var VirtualizedMessageListWithContext = function (props) {
112
109
  }, {});
113
110
  },
114
111
  // processedMessages were incorrectly rebuilt with a new object identity at some point, hence the .length usage
115
- [processedMessages.length, shouldGroupByUser]);
116
- var virtuoso = useRef(null);
117
- var _y = useNewMessageNotification(processedMessages, client.userID, hasMoreNewer), atBottom = _y.atBottom, isMessageListScrolledToBottom = _y.isMessageListScrolledToBottom, newMessagesNotification = _y.newMessagesNotification, setIsMessageListScrolledToBottom = _y.setIsMessageListScrolledToBottom, setNewMessagesNotification = _y.setNewMessagesNotification;
112
+ [processedMessages.length, shouldGroupByUser, groupStylesFn]);
113
+ var _w = useNewMessageNotification(processedMessages, client.userID, hasMoreNewer), atBottom = _w.atBottom, isMessageListScrolledToBottom = _w.isMessageListScrolledToBottom, newMessagesNotification = _w.newMessagesNotification, setIsMessageListScrolledToBottom = _w.setIsMessageListScrolledToBottom, setNewMessagesNotification = _w.setNewMessagesNotification;
118
114
  var scrollToBottom = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
119
115
  return __generator(this, function (_a) {
120
116
  switch (_a.label) {
@@ -141,44 +137,9 @@ var VirtualizedMessageListWithContext = function (props) {
141
137
  hasMoreNewer,
142
138
  jumpToLatestMessage,
143
139
  ]);
144
- var _z = React.useState(false), newMessagesReceivedInBackground = _z[0], setNewMessagesReceivedInBackground = _z[1];
145
- var resetNewMessagesReceivedInBackground = useCallback(function () {
146
- setNewMessagesReceivedInBackground(false);
147
- }, []);
148
- useEffect(function () {
149
- setNewMessagesReceivedInBackground(true);
150
- }, [messages]);
151
- var scrollToBottomIfConfigured = useCallback(function (event) {
152
- if (scrollToLatestMessageOnFocus && event.target === window) {
153
- if (newMessagesReceivedInBackground) {
154
- setTimeout(scrollToBottom, 100);
155
- }
156
- }
157
- }, [scrollToLatestMessageOnFocus, scrollToBottom, newMessagesReceivedInBackground]);
158
- useEffect(function () {
159
- if (typeof window !== 'undefined') {
160
- window.addEventListener('focus', scrollToBottomIfConfigured);
161
- window.addEventListener('blur', resetNewMessagesReceivedInBackground);
162
- }
163
- return function () {
164
- window.removeEventListener('focus', scrollToBottomIfConfigured);
165
- window.removeEventListener('blur', resetNewMessagesReceivedInBackground);
166
- };
167
- }, [scrollToBottomIfConfigured]);
140
+ useScrollToBottomOnNewMessage({ messages: messages, scrollToBottom: scrollToBottom, scrollToLatestMessageOnFocus: scrollToLatestMessageOnFocus });
168
141
  var numItemsPrepended = usePrependedMessagesCount(processedMessages, !disableDateSeparator);
169
- /**
170
- * Logic to update the key of the virtuoso component when the list jumps to a new location.
171
- */
172
- var _0 = useState(+new Date()), messageSetKey = _0[0], setMessageSetKey = _0[1];
173
- var firstMessageId = useRef();
174
- useEffect(function () {
175
- var _a;
176
- var continuousSet = messages === null || messages === void 0 ? void 0 : messages.find(function (message) { return message.id === firstMessageId.current; });
177
- if (!continuousSet) {
178
- setMessageSetKey(+new Date());
179
- }
180
- firstMessageId.current = (_a = messages === null || messages === void 0 ? void 0 : messages[0]) === null || _a === void 0 ? void 0 : _a.id;
181
- }, [messages]);
142
+ var messageSetKey = useMessageSetKey({ messages: messages }).messageSetKey;
182
143
  var shouldForceScrollToBottom = useShouldForceScrollToBottom(processedMessages, client.userID);
183
144
  var followOutput = function (isAtBottom) {
184
145
  if (hasMoreNewer || suppressAutoscroll) {
@@ -190,63 +151,10 @@ var VirtualizedMessageListWithContext = function (props) {
190
151
  // a message from another user has been received - don't scroll to bottom unless already there
191
152
  return isAtBottom ? stickToBottomScrollBehavior : false;
192
153
  };
193
- var messageRenderer = useCallback(function (messageList, virtuosoIndex, virtuosoContext) {
194
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
195
- var lastReceivedMessageId = virtuosoContext.lastReceivedMessageId, ownMessagesReadByOthers = virtuosoContext.ownMessagesReadByOthers;
196
- var streamMessageIndex = virtuosoIndex + numItemsPrepended - PREPEND_OFFSET;
197
- // use custom renderer supplied by client if present and skip the rest
198
- if (customMessageRenderer) {
199
- return customMessageRenderer(messageList, streamMessageIndex);
200
- }
201
- var message = messageList[streamMessageIndex];
202
- if (message.customType === CUSTOM_MESSAGE_TYPE.date && message.date && isDate(message.date)) {
203
- return React.createElement(DateSeparator, { date: message.date, unread: message.unread });
204
- }
205
- if (!message)
206
- return React.createElement("div", { style: { height: '1px' } }); // returning null or zero height breaks the virtuoso
207
- if (message.type === 'system') {
208
- return React.createElement(MessageSystem, { message: message });
209
- }
210
- var groupedByUser = shouldGroupByUser &&
211
- streamMessageIndex > 0 &&
212
- ((_a = message.user) === null || _a === void 0 ? void 0 : _a.id) === ((_b = messageList[streamMessageIndex - 1].user) === null || _b === void 0 ? void 0 : _b.id);
213
- var firstOfGroup = shouldGroupByUser && ((_c = message.user) === null || _c === void 0 ? void 0 : _c.id) !== ((_e = (_d = messageList[streamMessageIndex - 1]) === null || _d === void 0 ? void 0 : _d.user) === null || _e === void 0 ? void 0 : _e.id);
214
- var endOfGroup = shouldGroupByUser && ((_f = message.user) === null || _f === void 0 ? void 0 : _f.id) !== ((_h = (_g = messageList[streamMessageIndex + 1]) === null || _g === void 0 ? void 0 : _g.user) === null || _h === void 0 ? void 0 : _h.id);
215
- return (React.createElement(Message, { additionalMessageInputProps: props.additionalMessageInputProps, autoscrollToBottom: (_j = virtuoso.current) === null || _j === void 0 ? void 0 : _j.autoscrollToBottom, closeReactionSelectorOnClick: closeReactionSelectorOnClick, customMessageActions: props.customMessageActions, endOfGroup: endOfGroup, firstOfGroup: firstOfGroup, groupedByUser: groupedByUser, lastReceivedId: lastReceivedMessageId, message: message, Message: MessageUIComponent, messageActions: props.messageActions, readBy: ownMessagesReadByOthers[message.id] || [] }));
216
- }, [customMessageRenderer, shouldGroupByUser, numItemsPrepended]);
217
- var Item = useMemo(function () {
218
- // using 'display: inline-block'
219
- // traps CSS margins of the item elements, preventing incorrect item measurements
220
- var Item = function (props) {
221
- var _a;
222
- var _b;
223
- var context = props.context;
224
- var streamMessageIndex = props['data-item-index'] + context.numItemsPrepended - PREPEND_OFFSET;
225
- var message = context.processedMessages[streamMessageIndex];
226
- var groupStyles = context.messageGroupStyles[message.id] || '';
227
- return (React.createElement("div", __assign({}, props, { className: ((_b = context === null || context === void 0 ? void 0 : context.customClasses) === null || _b === void 0 ? void 0 : _b.virtualMessage) ||
228
- clsx('str-chat__virtual-list-message-wrapper str-chat__li', (_a = {},
229
- _a["str-chat__li--".concat(groupStyles)] = groupStyles,
230
- _a)) })));
231
- };
232
- return Item;
154
+ var computeItemKey = useCallback(function (index, _, _a) {
155
+ var numItemsPrepended = _a.numItemsPrepended, processedMessages = _a.processedMessages;
156
+ return processedMessages[calculateItemIndex(index, numItemsPrepended)].id;
233
157
  }, []);
234
- var virtuosoComponents = useMemo(function () {
235
- var EmptyPlaceholder = function () { return (React.createElement(React.Fragment, null, EmptyStateIndicator && (React.createElement(EmptyStateIndicator, { listType: threadList ? 'thread' : 'message' })))); };
236
- var Header = function () {
237
- return loadingMore ? (React.createElement("div", { className: 'str-chat__virtual-list__loading' },
238
- React.createElement(LoadingIndicator, { size: 20 }))) : (head || null);
239
- };
240
- var Footer = function () {
241
- return TypingIndicator ? React.createElement(TypingIndicator, { avatarSize: 24 }) : React.createElement(React.Fragment, null);
242
- };
243
- return {
244
- EmptyPlaceholder: EmptyPlaceholder,
245
- Footer: Footer,
246
- Header: Header,
247
- Item: Item,
248
- };
249
- }, [loadingMore, head, Item]);
250
158
  var atBottomStateChange = function (isAtBottom) {
251
159
  atBottom.current = isAtBottom;
252
160
  setIsMessageListScrolledToBottom(isAtBottom);
@@ -278,18 +186,27 @@ var VirtualizedMessageListWithContext = function (props) {
278
186
  return (React.createElement(React.Fragment, null,
279
187
  React.createElement(MessageListMainPanel, null,
280
188
  React.createElement("div", { className: (customClasses === null || customClasses === void 0 ? void 0 : customClasses.virtualizedMessageList) || 'str-chat__virtual-list' },
281
- React.createElement(Virtuoso, __assign({ atBottomStateChange: atBottomStateChange, atBottomThreshold: 200, className: 'str-chat__message-list-scroll', components: virtuosoComponents, computeItemKey: function (index) {
282
- return processedMessages[numItemsPrepended + index - PREPEND_OFFSET].id;
283
- }, context: {
189
+ React.createElement(Virtuoso, __assign({ atBottomStateChange: atBottomStateChange, atBottomThreshold: 200, className: 'str-chat__message-list-scroll', components: __assign({ EmptyPlaceholder: EmptyPlaceholder, Footer: Footer, Header: Header, Item: Item }, virtuosoComponentsFromProps), computeItemKey: computeItemKey, context: {
190
+ additionalMessageInputProps: additionalMessageInputProps,
191
+ closeReactionSelectorOnClick: closeReactionSelectorOnClick,
284
192
  customClasses: customClasses,
193
+ customMessageActions: customMessageActions,
194
+ customMessageRenderer: customMessageRenderer,
195
+ DateSeparator: DateSeparator,
196
+ head: head,
285
197
  lastReceivedMessageId: lastReceivedMessageId,
198
+ loadingMore: loadingMore,
199
+ Message: MessageUIComponent,
200
+ messageActions: messageActions,
286
201
  messageGroupStyles: messageGroupStyles,
202
+ MessageSystem: MessageSystem,
287
203
  numItemsPrepended: numItemsPrepended,
288
204
  ownMessagesReadByOthers: ownMessagesReadByOthers,
289
205
  processedMessages: processedMessages,
290
- }, endReached: endReached, firstItemIndex: PREPEND_OFFSET - numItemsPrepended, followOutput: followOutput, increaseViewportBy: { bottom: 200, top: 0 }, initialTopMostItemIndex: calculateInitialTopMostItemIndex(processedMessages, highlightedMessageId), itemContent: function (i, _, context) {
291
- return messageRenderer(processedMessages, i, context);
292
- }, itemSize: fractionalItemSize, key: messageSetKey, overscan: overscan, ref: virtuoso, startReached: startReached, style: { overflowX: 'hidden' }, totalCount: processedMessages.length }, additionalVirtuosoProps, (scrollSeekPlaceHolder ? { scrollSeek: scrollSeekPlaceHolder } : {}), (defaultItemHeight ? { defaultItemHeight: defaultItemHeight } : {}))))),
206
+ shouldGroupByUser: shouldGroupByUser,
207
+ threadList: threadList,
208
+ virtuosoRef: virtuoso,
209
+ }, endReached: endReached, firstItemIndex: calculateFirstItemIndex(numItemsPrepended), followOutput: followOutput, increaseViewportBy: { bottom: 200, top: 0 }, initialTopMostItemIndex: calculateInitialTopMostItemIndex(processedMessages, highlightedMessageId), itemContent: messageRenderer, itemSize: fractionalItemSize, key: messageSetKey, overscan: overscan, ref: virtuoso, startReached: startReached, style: { overflowX: 'hidden' }, totalCount: processedMessages.length }, overridingVirtuosoProps, (scrollSeekPlaceHolder ? { scrollSeek: scrollSeekPlaceHolder } : {}), (defaultItemHeight ? { defaultItemHeight: defaultItemHeight } : {}))))),
293
210
  React.createElement(MessageListNotifications, { hasNewMessages: newMessagesNotification, isMessageListScrolledToBottom: isMessageListScrolledToBottom, isNotAtLatestMessageSet: hasMoreNewer, MessageNotification: MessageNotification, notifications: notifications, scrollToBottom: scrollToBottom, threadList: threadList }),
294
211
  giphyPreviewMessage && React.createElement(GiphyPreviewMessage, { message: giphyPreviewMessage })));
295
212
  };
@@ -0,0 +1,23 @@
1
+ import { DefaultStreamChatGenerics, UnknownType } from '../../types/types';
2
+ import React from 'react';
3
+ import { ItemProps } from 'react-virtuoso';
4
+ import { VirtuosoContext } from './VirtualizedMessageList';
5
+ export declare function calculateItemIndex(virtuosoIndex: number, numItemsPrepended: number): number;
6
+ export declare function calculateFirstItemIndex(numItemsPrepended: number): number;
7
+ declare type CommonVirtuosoComponentProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
8
+ context?: VirtuosoContext<StreamChatGenerics>;
9
+ };
10
+ export declare const Item: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, ...props }: Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
11
+ ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
12
+ }, "style" | "children"> & {
13
+ 'data-index': number;
14
+ 'data-item-index': number;
15
+ 'data-item-group-index'?: number | undefined;
16
+ 'data-known-size': number;
17
+ } & CommonVirtuosoComponentProps<StreamChatGenerics>) => JSX.Element;
18
+ export declare const Header: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, }: CommonVirtuosoComponentProps<StreamChatGenerics>) => JSX.Element | null;
19
+ export declare const EmptyPlaceholder: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, }: CommonVirtuosoComponentProps<StreamChatGenerics>) => JSX.Element;
20
+ export declare const Footer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>() => JSX.Element | null;
21
+ export declare const messageRenderer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(virtuosoIndex: number, _data: UnknownType, virtuosoContext: VirtuosoContext<StreamChatGenerics>) => JSX.Element | null;
22
+ export {};
23
+ //# sourceMappingURL=VirtualizedMessageListComponents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualizedMessageListComponents.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/VirtualizedMessageListComponents.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAI3D,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,UAElF;AAED,wBAAgB,uBAAuB,CAAC,iBAAiB,EAAE,MAAM,UAEhE;AAED,aAAK,4BAA4B,CAC/B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,OAAO,CAAC,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;CAC/C,CAAC;AAGF,eAAO,MAAM,IAAI;;;;;;;oEAyBhB,CAAC;AACF,eAAO,MAAM,MAAM,0KAgBlB,CAAC;AACF,eAAO,MAAM,gBAAgB,mKAe5B,CAAC;AACF,eAAO,MAAM,MAAM,4GAKlB,CAAC;AACF,eAAO,MAAM,eAAe,oGAGX,MAAM,SACd,WAAW,6EAgEnB,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { __assign, __rest } from "tslib";
2
+ import { EmptyStateIndicator as DefaultEmptyStateIndicator } from '../EmptyStateIndicator';
3
+ import { isDate, useComponentContext } from '../../context';
4
+ import React from 'react';
5
+ import { LoadingIndicator as DefaultLoadingIndicator } from '../Loading';
6
+ import { CUSTOM_MESSAGE_TYPE } from '../../constants/messageTypes';
7
+ import { Message } from '../Message';
8
+ import clsx from 'clsx';
9
+ var PREPEND_OFFSET = Math.pow(10, 7);
10
+ export function calculateItemIndex(virtuosoIndex, numItemsPrepended) {
11
+ return virtuosoIndex + numItemsPrepended - PREPEND_OFFSET;
12
+ }
13
+ export function calculateFirstItemIndex(numItemsPrepended) {
14
+ return PREPEND_OFFSET - numItemsPrepended;
15
+ }
16
+ // using 'display: inline-block'
17
+ // traps CSS margins of the item elements, preventing incorrect item measurements
18
+ export var Item = function (_a) {
19
+ var _b;
20
+ var _c;
21
+ var context = _a.context, props = __rest(_a, ["context"]);
22
+ if (!context)
23
+ return React.createElement(React.Fragment, null);
24
+ var message = context.processedMessages[calculateItemIndex(props['data-item-index'], context.numItemsPrepended)];
25
+ var groupStyles = context.messageGroupStyles[message.id];
26
+ return (React.createElement("div", __assign({}, props, { className: ((_c = context === null || context === void 0 ? void 0 : context.customClasses) === null || _c === void 0 ? void 0 : _c.virtualMessage) ||
27
+ clsx('str-chat__virtual-list-message-wrapper str-chat__li', (_b = {},
28
+ _b["str-chat__li--".concat(groupStyles)] = groupStyles,
29
+ _b)) })));
30
+ };
31
+ export var Header = function (_a) {
32
+ var context = _a.context;
33
+ var _b = useComponentContext('VirtualizedMessageListHeader').LoadingIndicator, LoadingIndicator = _b === void 0 ? DefaultLoadingIndicator : _b;
34
+ if (!(context === null || context === void 0 ? void 0 : context.loadingMore))
35
+ return null;
36
+ return LoadingIndicator ? (React.createElement("div", { className: 'str-chat__virtual-list__loading' },
37
+ React.createElement(LoadingIndicator, { size: 20 }))) : ((context === null || context === void 0 ? void 0 : context.head) || null);
38
+ };
39
+ export var EmptyPlaceholder = function (_a) {
40
+ var context = _a.context;
41
+ var _b = useComponentContext('VirtualizedMessageList').EmptyStateIndicator, EmptyStateIndicator = _b === void 0 ? DefaultEmptyStateIndicator : _b;
42
+ return (React.createElement(React.Fragment, null, EmptyStateIndicator && (React.createElement(EmptyStateIndicator, { listType: (context === null || context === void 0 ? void 0 : context.threadList) ? 'thread' : 'message' }))));
43
+ };
44
+ export var Footer = function () {
45
+ var TypingIndicator = useComponentContext('VirtualizedMessageList').TypingIndicator;
46
+ return TypingIndicator ? React.createElement(TypingIndicator, { avatarSize: 24 }) : null;
47
+ };
48
+ export var messageRenderer = function (virtuosoIndex, _data, virtuosoContext) {
49
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
50
+ var additionalMessageInputProps = virtuosoContext.additionalMessageInputProps, closeReactionSelectorOnClick = virtuosoContext.closeReactionSelectorOnClick, customMessageActions = virtuosoContext.customMessageActions, customMessageRenderer = virtuosoContext.customMessageRenderer, DateSeparator = virtuosoContext.DateSeparator, lastReceivedMessageId = virtuosoContext.lastReceivedMessageId, MessageUIComponent = virtuosoContext.Message, messageActions = virtuosoContext.messageActions, MessageSystem = virtuosoContext.MessageSystem, numItemsPrepended = virtuosoContext.numItemsPrepended, ownMessagesReadByOthers = virtuosoContext.ownMessagesReadByOthers, messageList = virtuosoContext.processedMessages, shouldGroupByUser = virtuosoContext.shouldGroupByUser, virtuosoRef = virtuosoContext.virtuosoRef;
51
+ var streamMessageIndex = calculateItemIndex(virtuosoIndex, numItemsPrepended);
52
+ if (customMessageRenderer) {
53
+ return customMessageRenderer(messageList, streamMessageIndex);
54
+ }
55
+ var message = messageList[streamMessageIndex];
56
+ if (!message)
57
+ return React.createElement("div", { style: { height: '1px' } }); // returning null or zero height breaks the virtuoso
58
+ if (message.customType === CUSTOM_MESSAGE_TYPE.date && message.date && isDate(message.date)) {
59
+ return DateSeparator ? React.createElement(DateSeparator, { date: message.date, unread: message.unread }) : null;
60
+ }
61
+ if (message.type === 'system') {
62
+ return MessageSystem ? React.createElement(MessageSystem, { message: message }) : null;
63
+ }
64
+ var groupedByUser = shouldGroupByUser &&
65
+ streamMessageIndex > 0 &&
66
+ ((_a = message.user) === null || _a === void 0 ? void 0 : _a.id) === ((_b = messageList[streamMessageIndex - 1].user) === null || _b === void 0 ? void 0 : _b.id);
67
+ var firstOfGroup = shouldGroupByUser && ((_c = message.user) === null || _c === void 0 ? void 0 : _c.id) !== ((_e = (_d = messageList[streamMessageIndex - 1]) === null || _d === void 0 ? void 0 : _d.user) === null || _e === void 0 ? void 0 : _e.id);
68
+ var endOfGroup = shouldGroupByUser && ((_f = message.user) === null || _f === void 0 ? void 0 : _f.id) !== ((_h = (_g = messageList[streamMessageIndex + 1]) === null || _g === void 0 ? void 0 : _g.user) === null || _h === void 0 ? void 0 : _h.id);
69
+ return (React.createElement(Message, { additionalMessageInputProps: additionalMessageInputProps, autoscrollToBottom: (_j = virtuosoRef.current) === null || _j === void 0 ? void 0 : _j.autoscrollToBottom, closeReactionSelectorOnClick: closeReactionSelectorOnClick, customMessageActions: customMessageActions, endOfGroup: endOfGroup, firstOfGroup: firstOfGroup, groupedByUser: groupedByUser, lastReceivedId: lastReceivedMessageId, message: message, Message: MessageUIComponent, messageActions: messageActions, readBy: ownMessagesReadByOthers[message.id] || [] }));
70
+ };
@@ -0,0 +1,5 @@
1
+ export * from './useEnrichedMessages';
2
+ export * from './useMessageListElements';
3
+ export * from './useMessageListScrollManager';
4
+ export * from './useScrollLocationLogic';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './useEnrichedMessages';
2
+ export * from './useMessageListElements';
3
+ export * from './useMessageListScrollManager';
4
+ export * from './useScrollLocationLogic';
@@ -1,7 +1,7 @@
1
- import { GroupStyle } from '../utils';
1
+ import { GroupStyle } from '../../utils';
2
2
  import type { Channel } from 'stream-chat';
3
- import type { StreamMessage } from '../../../context/ChannelStateContext';
4
- import type { DefaultStreamChatGenerics } from '../../../types/types';
3
+ import type { StreamMessage } from '../../../../context/ChannelStateContext';
4
+ import type { DefaultStreamChatGenerics } from '../../../../types/types';
5
5
  export declare const useEnrichedMessages: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(args: {
6
6
  channel: Channel<StreamChatGenerics>;
7
7
  disableDateSeparator: boolean;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEnrichedMessages.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/useEnrichedMessages.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,UAAU,EAAgC,MAAM,aAAa,CAAC;AAKvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,eAAO,MAAM,mBAAmB;;0BAIR,OAAO;yBACR,OAAO;6BACH,OAAO;;mBAEjB,OAAO;mLAKL,OAAO,KACnB,UAAU;;;;;CAsDhB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { useMemo } from 'react';
2
- import { getGroupStyles, insertIntro, processMessages } from '../utils';
3
- import { useChatContext } from '../../../context/ChatContext';
4
- import { useComponentContext } from '../../../context/ComponentContext';
2
+ import { getGroupStyles, insertIntro, processMessages } from '../../utils';
3
+ import { useChatContext } from '../../../../context/ChatContext';
4
+ import { useComponentContext } from '../../../../context/ComponentContext';
5
5
  export var useEnrichedMessages = function (args) {
6
6
  var channel = args.channel, disableDateSeparator = args.disableDateSeparator, groupStyles = args.groupStyles, headerPosition = args.headerPosition, hideDeletedMessages = args.hideDeletedMessages, hideNewMessageSeparator = args.hideNewMessageSeparator, messages = args.messages, noGroupByUser = args.noGroupByUser;
7
7
  var client = useChatContext('useEnrichedMessages').client;
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
- import { GroupStyle } from '../utils';
2
+ import { GroupStyle } from '../../utils';
3
3
  import type { UserResponse } from 'stream-chat';
4
- import type { MessageProps } from '../../Message/types';
5
- import type { StreamMessage } from '../../../context/ChannelStateContext';
6
- import type { DefaultStreamChatGenerics } from '../../../types/types';
4
+ import type { MessageProps } from '../../../Message/types';
5
+ import type { StreamMessage } from '../../../../context/ChannelStateContext';
6
+ import type { DefaultStreamChatGenerics } from '../../../../types/types';
7
7
  declare type MessagePropsToOmit = 'channel' | 'groupStyles' | 'initialMessage' | 'lastReceivedId' | 'message' | 'readBy' | 'threadList';
8
8
  declare type UseMessageListElementsProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
9
9
  enrichedMessages: StreamMessage<StreamChatGenerics>[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMessageListElements.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/useMessageListElements.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAmB,UAAU,EAAE,MAAM,aAAa,CAAC;AAW1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,aAAK,kBAAkB,GACnB,SAAS,GACT,aAAa,GACb,gBAAgB,GAChB,gBAAgB,GAChB,SAAS,GACT,QAAQ,GACR,YAAY,CAAC;AAEjB,aAAK,2BAA2B,CAC9B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,gBAAgB,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACtD,oBAAoB,EAAE,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACjF,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAA;KAAE,CAAC,CAAC;CACpF,CAAC;AAEF,eAAO,MAAM,sBAAsB,iKAkGlC,CAAC"}
@@ -1,15 +1,15 @@
1
1
  import { __assign } from "tslib";
2
2
  /* eslint-disable no-continue */
3
3
  import React, { useMemo } from 'react';
4
- import { useLastReadData } from './useLastReadData';
5
- import { getLastReceived } from '../utils';
6
- import { CUSTOM_MESSAGE_TYPE } from '../../../constants/messageTypes';
7
- import { DateSeparator as DefaultDateSeparator } from '../../DateSeparator/DateSeparator';
8
- import { EventComponent } from '../../EventComponent/EventComponent';
9
- import { Message } from '../../Message';
10
- import { useChatContext } from '../../../context/ChatContext';
11
- import { useComponentContext } from '../../../context/ComponentContext';
12
- import { isDate } from '../../../context/TranslationContext';
4
+ import { useLastReadData } from '../useLastReadData';
5
+ import { getLastReceived } from '../../utils';
6
+ import { CUSTOM_MESSAGE_TYPE } from '../../../../constants/messageTypes';
7
+ import { DateSeparator as DefaultDateSeparator } from '../../../DateSeparator/DateSeparator';
8
+ import { EventComponent } from '../../../EventComponent/EventComponent';
9
+ import { Message } from '../../../Message';
10
+ import { useChatContext } from '../../../../context/ChatContext';
11
+ import { useComponentContext } from '../../../../context/ComponentContext';
12
+ import { isDate } from '../../../../context/TranslationContext';
13
13
  export var useMessageListElements = function (props) {
14
14
  var enrichedMessages = props.enrichedMessages, internalMessageProps = props.internalMessageProps, messageGroupStyles = props.messageGroupStyles, read = props.read, returnAllReadData = props.returnAllReadData, threadList = props.threadList;
15
15
  var _a = useChatContext('useMessageListElements'), client = _a.client, customClasses = _a.customClasses;
@@ -1,5 +1,5 @@
1
- import type { StreamMessage } from '../../../context/ChannelStateContext';
2
- import type { DefaultStreamChatGenerics } from '../../../types/types';
1
+ import type { StreamMessage } from '../../../../context/ChannelStateContext';
2
+ import type { DefaultStreamChatGenerics } from '../../../../types/types';
3
3
  export declare type ContainerMeasures = {
4
4
  offsetHeight: number;
5
5
  scrollHeight: number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMessageListScrollManager.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/useMessageListScrollManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,oBAAY,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oBAAY,iCAAiC,CAC3C,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,uBAAuB,EAAE,MAAM,CAAC;IAChC,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC9C,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;IACjD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AAGF,wBAAgB,2BAA2B,CACzC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,MAAM,EAAE,iCAAiC,CAAC,kBAAkB,CAAC,oBAmErC,MAAM,UAG/B"}
@@ -1,5 +1,5 @@
1
1
  import { useLayoutEffect, useRef } from 'react';
2
- import { useChatContext } from '../../../context/ChatContext';
2
+ import { useChatContext } from '../../../../context/ChatContext';
3
3
  // FIXME: change this generic name to something like useAdjustScrollPositionToListSize
4
4
  export function useMessageListScrollManager(params) {
5
5
  var loadMoreScrollThreshold = params.loadMoreScrollThreshold, onScrollBy = params.onScrollBy, scrollContainerMeasures = params.scrollContainerMeasures, scrolledUpThreshold = params.scrolledUpThreshold, scrollToBottom = params.scrollToBottom, showNewMessages = params.showNewMessages;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import type { StreamMessage } from '../../../context/ChannelStateContext';
3
- import type { DefaultStreamChatGenerics } from '../../../types/types';
2
+ import type { StreamMessage } from '../../../../context/ChannelStateContext';
3
+ import type { DefaultStreamChatGenerics } from '../../../../types/types';
4
4
  export declare type UseScrollLocationLogicParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
5
5
  hasMoreNewer: boolean;
6
6
  listElement: HTMLDivElement | null;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useScrollLocationLogic.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/useScrollLocationLogic.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAI9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,oBAAY,4BAA4B,CACtC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC/C,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;sBA0DvB,aAAa,CAAC,cAAc,CAAC;;;CAgCxC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './useGiphyPreview';
2
+ export * from './useMessageSetKey';
3
+ export * from './useNewMessageNotification';
4
+ export * from './usePrependMessagesCount';
5
+ export * from './useScrollToBottomOnNewMessage';
6
+ export * from './useShouldForceScrollToBottom';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/VirtualizedMessageList/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './useGiphyPreview';
2
+ export * from './useMessageSetKey';
3
+ export * from './useNewMessageNotification';
4
+ export * from './usePrependMessagesCount';
5
+ export * from './useScrollToBottomOnNewMessage';
6
+ export * from './useShouldForceScrollToBottom';
@@ -1,5 +1,5 @@
1
- import type { StreamMessage } from '../../../context/ChannelStateContext';
2
- import type { DefaultStreamChatGenerics } from '../../../types/types';
1
+ import type { StreamMessage } from '../../../../context/ChannelStateContext';
2
+ import type { DefaultStreamChatGenerics } from '../../../../types/types';
3
3
  export declare const useGiphyPreview: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(separateGiphyPreview: boolean) => {
4
4
  giphyPreviewMessage: StreamMessage<StreamChatGenerics> | undefined;
5
5
  setGiphyPreviewMessage: import("react").Dispatch<import("react").SetStateAction<StreamMessage<StreamChatGenerics> | undefined>>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGiphyPreview.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,eAAO,MAAM,eAAe,2GAGJ,OAAO;;;CAsB9B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useState } from 'react';
2
- import { useChatContext } from '../../../context/ChatContext';
2
+ import { useChatContext } from '../../../../context/ChatContext';
3
3
  export var useGiphyPreview = function (separateGiphyPreview) {
4
4
  var _a = useState(), giphyPreviewMessage = _a[0], setGiphyPreviewMessage = _a[1];
5
5
  var client = useChatContext('useGiphyPreview').client;
@@ -0,0 +1,10 @@
1
+ import { StreamMessage } from '../../../../context';
2
+ import { DefaultStreamChatGenerics } from '../../../../types/types';
3
+ declare type UseMessageSetKeyParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
4
+ messages?: StreamMessage<StreamChatGenerics>[];
5
+ };
6
+ export declare const useMessageSetKey: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ messages, }: UseMessageSetKeyParams<StreamChatGenerics>) => {
7
+ messageSetKey: number;
8
+ };
9
+ export {};
10
+ //# sourceMappingURL=useMessageSetKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMessageSetKey.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,aAAK,sBAAsB,CACzB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,QAAQ,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;CAChD,CAAC;AAEF,eAAO,MAAM,gBAAgB;;CAsB5B,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { useEffect, useRef, useState } from 'react';
2
+ export var useMessageSetKey = function (_a) {
3
+ var messages = _a.messages;
4
+ /**
5
+ * Logic to update the key of the virtuoso component when the list jumps to a new location.
6
+ */
7
+ var _b = useState(+new Date()), messageSetKey = _b[0], setMessageSetKey = _b[1];
8
+ var firstMessageId = useRef();
9
+ useEffect(function () {
10
+ var _a;
11
+ var continuousSet = messages === null || messages === void 0 ? void 0 : messages.find(function (message) { return message.id === firstMessageId.current; });
12
+ if (!continuousSet) {
13
+ setMessageSetKey(+new Date());
14
+ }
15
+ firstMessageId.current = (_a = messages === null || messages === void 0 ? void 0 : messages[0]) === null || _a === void 0 ? void 0 : _a.id;
16
+ }, [messages]);
17
+ return {
18
+ messageSetKey: messageSetKey,
19
+ };
20
+ };
@@ -1,5 +1,5 @@
1
- import type { StreamMessage } from '../../../context/ChannelStateContext';
2
- import type { DefaultStreamChatGenerics } from '../../../types/types';
1
+ import type { StreamMessage } from '../../../../context/ChannelStateContext';
2
+ import type { DefaultStreamChatGenerics } from '../../../../types/types';
3
3
  export declare function useNewMessageNotification<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(messages: StreamMessage<StreamChatGenerics>[], currentUserId: string | undefined, hasMoreNewer?: boolean): {
4
4
  atBottom: import("react").MutableRefObject<boolean>;
5
5
  isMessageListScrolledToBottom: boolean;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNewMessageNotification.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,wBAAgB,yBAAyB,CACvC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAEhF,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,EAC7C,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,CAAC,EAAE,OAAO;;;;;;EA6CvB"}
@@ -1,4 +1,4 @@
1
- import type { StreamMessage } from '../../../context/ChannelStateContext';
2
- import type { DefaultStreamChatGenerics } from '../../../types/types';
1
+ import type { StreamMessage } from '../../../../context/ChannelStateContext';
2
+ import type { DefaultStreamChatGenerics } from '../../../../types/types';
3
3
  export declare function usePrependedMessagesCount<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(messages: StreamMessage<StreamChatGenerics>[], hasDateSeparator: boolean): number;
4
4
  //# sourceMappingURL=usePrependMessagesCount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePrependMessagesCount.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAIzE,wBAAgB,yBAAyB,CACvC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,UA2DzE"}