stream-chat-react 10.8.9 → 10.9.1

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.
@@ -46460,7 +46460,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
46460
46460
  var userLastReadMsgId;
46461
46461
  // loop messages sent by current user and add read data for other users in channel
46462
46462
  messages.forEach(function (msg) {
46463
- if (msg.updated_at && msg.updated_at < readState.last_read) {
46463
+ if (msg.created_at && msg.created_at < readState.last_read) {
46464
46464
  userLastReadMsgId = msg.id;
46465
46465
  // if true, save other user's read data for all messages they've read
46466
46466
  if (returnAllReadData) {
@@ -48515,7 +48515,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
48515
48515
 
48516
48516
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
48517
48517
 
48518
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '10.8.9';
48518
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '10.9.1';
48519
48519
 
48520
48520
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChat = function (_a) {
48521
48521
  var _b, _c;
@@ -51418,6 +51418,8 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
51418
51418
  return recheckForNewOwnMessage;
51419
51419
  }
51420
51420
 
51421
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
51422
+
51421
51423
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var PREPEND_OFFSET = Math.pow(10, 7);
51422
51424
  function captureResizeObserverExceededError(e) {
51423
51425
  if (e.message === 'ResizeObserver loop completed with undelivered notifications.' ||
@@ -51453,15 +51455,15 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
51453
51455
  // TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
51454
51456
  _e = props.overscan,
51455
51457
  // TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
51456
- overscan = _e === void 0 ? 0 : _e, scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _f = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _f === void 0 ? false : _f, _g = props.separateGiphyPreview, separateGiphyPreview = _g === void 0 ? false : _g, _h = props.shouldGroupByUser, shouldGroupByUser = _h === void 0 ? false : _h, _j = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _j === void 0 ? 'smooth' : _j, suppressAutoscroll = props.suppressAutoscroll, threadList = props.threadList;
51458
+ 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;
51457
51459
  // Stops errors generated from react-virtuoso to bubble up
51458
51460
  // to Sentry or other tracking tools.
51459
51461
  useCaptureResizeObserverExceededError();
51460
- var _k = useComponentContext('VirtualizedMessageList'), _l = _k.DateSeparator, DateSeparator$1 = _l === void 0 ? DateSeparator : _l, _m = _k.EmptyStateIndicator, EmptyStateIndicator$1 = _m === void 0 ? EmptyStateIndicator : _m, _o = _k.GiphyPreviewMessage, GiphyPreviewMessage$1 = _o === void 0 ? GiphyPreviewMessage : _o, _p = _k.LoadingIndicator, LoadingIndicator$1 = _p === void 0 ? LoadingIndicator : _p, _q = _k.MessageListNotifications, MessageListNotifications$1 = _q === void 0 ? MessageListNotifications : _q, _r = _k.MessageNotification, MessageNotification$1 = _r === void 0 ? MessageNotification : _r, _s = _k.MessageSystem, MessageSystem = _s === void 0 ? EventComponent : _s, _t = _k.TypingIndicator, TypingIndicator = _t === void 0 ? null : _t, _u = _k.VirtualMessage, contextMessage = _u === void 0 ? MessageSimple : _u;
51461
- var _v = useChatContext('VirtualizedMessageList'), client = _v.client, customClasses = _v.customClasses;
51462
+ var _l = useComponentContext('VirtualizedMessageList'), _m = _l.DateSeparator, DateSeparator$1 = _m === void 0 ? DateSeparator : _m, _o = _l.EmptyStateIndicator, EmptyStateIndicator$1 = _o === void 0 ? EmptyStateIndicator : _o, _p = _l.GiphyPreviewMessage, GiphyPreviewMessage$1 = _p === void 0 ? GiphyPreviewMessage : _p, _q = _l.LoadingIndicator, LoadingIndicator$1 = _q === void 0 ? LoadingIndicator : _q, _r = _l.MessageListNotifications, MessageListNotifications$1 = _r === void 0 ? MessageListNotifications : _r, _s = _l.MessageNotification, MessageNotification$1 = _s === void 0 ? MessageNotification : _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;
51463
+ var _w = useChatContext('VirtualizedMessageList'), client = _w.client, customClasses = _w.customClasses;
51462
51464
  var lastRead = React$2.useMemo(function () { var _a; return (_a = channel.lastRead) === null || _a === void 0 ? void 0 : _a.call(channel); }, [channel]);
51463
51465
  var MessageUIComponent = propMessage || contextMessage;
51464
- var _w = useGiphyPreview(separateGiphyPreview), giphyPreviewMessage = _w.giphyPreviewMessage, setGiphyPreviewMessage = _w.setGiphyPreviewMessage;
51466
+ var _x = useGiphyPreview(separateGiphyPreview), giphyPreviewMessage = _x.giphyPreviewMessage, setGiphyPreviewMessage = _x.setGiphyPreviewMessage;
51465
51467
  var processedMessages = React$2.useMemo(function () {
51466
51468
  if (typeof messages === 'undefined') {
51467
51469
  return [];
@@ -51490,6 +51492,16 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
51490
51492
  messages === null || messages === void 0 ? void 0 : messages.length,
51491
51493
  client.userID,
51492
51494
  ]);
51495
+ // get the mapping of own messages to array of users who read them
51496
+ var ownMessagesReadByOthers = useLastReadData({
51497
+ messages: processedMessages,
51498
+ read: read,
51499
+ returnAllReadData: returnAllReadData,
51500
+ userID: client.userID,
51501
+ });
51502
+ var lastReceivedMessageId = React$2.useMemo(function () { return getLastReceived(processedMessages); }, [
51503
+ processedMessages,
51504
+ ]);
51493
51505
  var groupStylesFn = groupStyles || getGroupStyles;
51494
51506
  var messageGroupStyles = React$2.useMemo(function () {
51495
51507
  return processedMessages.reduce(function (acc, message, i) {
@@ -51502,7 +51514,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
51502
51514
  // processedMessages were incorrectly rebuilt with a new object identity at some point, hence the .length usage
51503
51515
  [processedMessages.length, shouldGroupByUser]);
51504
51516
  var virtuoso = React$2.useRef(null);
51505
- var _x = useNewMessageNotification(processedMessages, client.userID, hasMoreNewer), atBottom = _x.atBottom, isMessageListScrolledToBottom = _x.isMessageListScrolledToBottom, newMessagesNotification = _x.newMessagesNotification, setIsMessageListScrolledToBottom = _x.setIsMessageListScrolledToBottom, setNewMessagesNotification = _x.setNewMessagesNotification;
51517
+ var _y = useNewMessageNotification(processedMessages, client.userID, hasMoreNewer), atBottom = _y.atBottom, isMessageListScrolledToBottom = _y.isMessageListScrolledToBottom, newMessagesNotification = _y.newMessagesNotification, setIsMessageListScrolledToBottom = _y.setIsMessageListScrolledToBottom, setNewMessagesNotification = _y.setNewMessagesNotification;
51506
51518
  var scrollToBottom = React$2.useCallback(function () { return __awaiter$1(void 0, void 0, void 0, function () {
51507
51519
  return __generator$1(this, function (_a) {
51508
51520
  switch (_a.label) {
@@ -51529,7 +51541,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
51529
51541
  hasMoreNewer,
51530
51542
  jumpToLatestMessage,
51531
51543
  ]);
51532
- var _y = React__default["default"].useState(false), newMessagesReceivedInBackground = _y[0], setNewMessagesReceivedInBackground = _y[1];
51544
+ var _z = React__default["default"].useState(false), newMessagesReceivedInBackground = _z[0], setNewMessagesReceivedInBackground = _z[1];
51533
51545
  var resetNewMessagesReceivedInBackground = React$2.useCallback(function () {
51534
51546
  setNewMessagesReceivedInBackground(false);
51535
51547
  }, []);
@@ -51557,7 +51569,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
51557
51569
  /**
51558
51570
  * Logic to update the key of the virtuoso component when the list jumps to a new location.
51559
51571
  */
51560
- var _z = React$2.useState(+new Date()), messageSetKey = _z[0], setMessageSetKey = _z[1];
51572
+ var _0 = React$2.useState(+new Date()), messageSetKey = _0[0], setMessageSetKey = _0[1];
51561
51573
  var firstMessageId = React$2.useRef();
51562
51574
  React$2.useEffect(function () {
51563
51575
  var _a;
@@ -51578,8 +51590,9 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
51578
51590
  // a message from another user has been received - don't scroll to bottom unless already there
51579
51591
  return isAtBottom ? stickToBottomScrollBehavior : false;
51580
51592
  };
51581
- var messageRenderer = React$2.useCallback(function (messageList, virtuosoIndex) {
51593
+ var messageRenderer = React$2.useCallback(function (messageList, virtuosoIndex, virtuosoContext) {
51582
51594
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
51595
+ var lastReceivedMessageId = virtuosoContext.lastReceivedMessageId, ownMessagesReadByOthers = virtuosoContext.ownMessagesReadByOthers;
51583
51596
  var streamMessageIndex = virtuosoIndex + numItemsPrepended - PREPEND_OFFSET;
51584
51597
  // use custom renderer supplied by client if present and skip the rest
51585
51598
  if (customMessageRenderer) {
@@ -51599,7 +51612,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
51599
51612
  ((_a = message.user) === null || _a === void 0 ? void 0 : _a.id) === ((_b = messageList[streamMessageIndex - 1].user) === null || _b === void 0 ? void 0 : _b.id);
51600
51613
  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);
51601
51614
  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);
51602
- return (React__default["default"].createElement(Message, { autoscrollToBottom: (_j = virtuoso.current) === null || _j === void 0 ? void 0 : _j.autoscrollToBottom, closeReactionSelectorOnClick: closeReactionSelectorOnClick, customMessageActions: props.customMessageActions, endOfGroup: endOfGroup, firstOfGroup: firstOfGroup, groupedByUser: groupedByUser, message: message, Message: MessageUIComponent, messageActions: props.messageActions }));
51615
+ return (React__default["default"].createElement(Message, { 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] || [] }));
51603
51616
  }, [customMessageRenderer, shouldGroupByUser, numItemsPrepended]);
51604
51617
  var Item = React$2.useMemo(function () {
51605
51618
  // using 'display: inline-block'
@@ -51669,10 +51682,14 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
51669
51682
  return processedMessages[numItemsPrepended + index - PREPEND_OFFSET].id;
51670
51683
  }, context: {
51671
51684
  customClasses: customClasses,
51685
+ lastReceivedMessageId: lastReceivedMessageId,
51672
51686
  messageGroupStyles: messageGroupStyles,
51673
51687
  numItemsPrepended: numItemsPrepended,
51688
+ ownMessagesReadByOthers: ownMessagesReadByOthers,
51674
51689
  processedMessages: processedMessages,
51675
- }, endReached: endReached, firstItemIndex: PREPEND_OFFSET - numItemsPrepended, followOutput: followOutput, increaseViewportBy: { bottom: 200, top: 0 }, initialTopMostItemIndex: calculateInitialTopMostItemIndex(processedMessages, highlightedMessageId), itemContent: function (i) { return messageRenderer(processedMessages, i); }, itemSize: fractionalItemSize, key: messageSetKey, overscan: overscan, ref: virtuoso, startReached: startReached, style: { overflowX: 'hidden' }, totalCount: processedMessages.length }, additionalVirtuosoProps, (scrollSeekPlaceHolder ? { scrollSeek: scrollSeekPlaceHolder } : {}), (defaultItemHeight ? { defaultItemHeight: defaultItemHeight } : {}))))),
51690
+ }, endReached: endReached, firstItemIndex: PREPEND_OFFSET - numItemsPrepended, followOutput: followOutput, increaseViewportBy: { bottom: 200, top: 0 }, initialTopMostItemIndex: calculateInitialTopMostItemIndex(processedMessages, highlightedMessageId), itemContent: function (i, _, context) {
51691
+ return messageRenderer(processedMessages, i, context);
51692
+ }, itemSize: fractionalItemSize, key: messageSetKey, overscan: overscan, ref: virtuoso, startReached: startReached, style: { overflowX: 'hidden' }, totalCount: processedMessages.length }, additionalVirtuosoProps, (scrollSeekPlaceHolder ? { scrollSeek: scrollSeekPlaceHolder } : {}), (defaultItemHeight ? { defaultItemHeight: defaultItemHeight } : {}))))),
51676
51693
  React__default["default"].createElement(MessageListNotifications$1, { hasNewMessages: newMessagesNotification, isMessageListScrolledToBottom: isMessageListScrolledToBottom, isNotAtLatestMessageSet: hasMoreNewer, MessageNotification: MessageNotification$1, notifications: notifications, scrollToBottom: scrollToBottom, threadList: threadList }),
51677
51694
  giphyPreviewMessage && React__default["default"].createElement(GiphyPreviewMessage$1, { message: giphyPreviewMessage })));
51678
51695
  };
@@ -51682,15 +51699,13 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
51682
51699
  */
51683
51700
  function VirtualizedMessageList(props) {
51684
51701
  var _a = useChannelActionContext('VirtualizedMessageList'), jumpToLatestMessage = _a.jumpToLatestMessage, loadMore = _a.loadMore, loadMoreNewer = _a.loadMoreNewer;
51685
- var _b = useChannelStateContext('VirtualizedMessageList'), channel = _b.channel, hasMore = _b.hasMore, hasMoreNewer = _b.hasMoreNewer, highlightedMessageId = _b.highlightedMessageId, loadingMore = _b.loadingMore, loadingMoreNewer = _b.loadingMoreNewer, contextMessages = _b.messages, notifications = _b.notifications, suppressAutoscroll = _b.suppressAutoscroll;
51702
+ var _b = useChannelStateContext('VirtualizedMessageList'), channel = _b.channel, hasMore = _b.hasMore, hasMoreNewer = _b.hasMoreNewer, highlightedMessageId = _b.highlightedMessageId, loadingMore = _b.loadingMore, loadingMoreNewer = _b.loadingMoreNewer, contextMessages = _b.messages, notifications = _b.notifications, read = _b.read, suppressAutoscroll = _b.suppressAutoscroll;
51686
51703
  var messages = props.messages || contextMessages;
51687
- return (React__default["default"].createElement(VirtualizedMessageListWithContext, __assign$8({ channel: channel, hasMore: !!hasMore, hasMoreNewer: !!hasMoreNewer, highlightedMessageId: highlightedMessageId, jumpToLatestMessage: jumpToLatestMessage, loadingMore: !!loadingMore, loadingMoreNewer: !!loadingMoreNewer, loadMore: loadMore, loadMoreNewer: loadMoreNewer, messages: messages, notifications: notifications, suppressAutoscroll: suppressAutoscroll }, props)));
51704
+ return (React__default["default"].createElement(VirtualizedMessageListWithContext, __assign$8({ channel: channel, hasMore: !!hasMore, hasMoreNewer: !!hasMoreNewer, highlightedMessageId: highlightedMessageId, jumpToLatestMessage: jumpToLatestMessage, loadingMore: !!loadingMore, loadingMoreNewer: !!loadingMoreNewer, loadMore: loadMore, loadMoreNewer: loadMoreNewer, messages: messages, notifications: notifications, read: read, suppressAutoscroll: suppressAutoscroll }, props)));
51688
51705
  }
51689
51706
 
51690
51707
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
51691
51708
 
51692
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
51693
-
51694
51709
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var CloseIcon = function (_a) {
51695
51710
  var title = _a.title;
51696
51711
  var t = useTranslationContext('CloseIcon').t;