stream-chat-react 9.1.2 → 9.1.5

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 (37) hide show
  1. package/dist/browser.full-bundle.js +225 -162
  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/Channel/Channel.d.ts +1 -1
  6. package/dist/components/Channel/Channel.d.ts.map +1 -1
  7. package/dist/components/Channel/Channel.js +3 -6
  8. package/dist/components/Message/Message.d.ts.map +1 -1
  9. package/dist/components/Message/Message.js +2 -5
  10. package/dist/components/Message/hooks/useUserRole.d.ts.map +1 -1
  11. package/dist/components/Message/hooks/useUserRole.js +17 -3
  12. package/dist/components/Message/utils.d.ts +1 -2
  13. package/dist/components/Message/utils.d.ts.map +1 -1
  14. package/dist/components/Message/utils.js +18 -23
  15. package/dist/components/MessageActions/MessageActionsBox.js +1 -1
  16. package/dist/components/MessageList/VirtualizedMessageList.d.ts +0 -2
  17. package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
  18. package/dist/components/MessageList/VirtualizedMessageList.js +11 -8
  19. package/dist/components/MessageList/hooks/usePrependMessagesCount.d.ts +1 -1
  20. package/dist/components/MessageList/hooks/usePrependMessagesCount.d.ts.map +1 -1
  21. package/dist/components/MessageList/hooks/usePrependMessagesCount.js +3 -2
  22. package/dist/components/Thread/Thread.d.ts +6 -5
  23. package/dist/components/Thread/Thread.d.ts.map +1 -1
  24. package/dist/components/Thread/Thread.js +9 -16
  25. package/dist/css/index.css +1 -1
  26. package/dist/index.cjs.js +60 -50
  27. package/dist/index.cjs.js.map +1 -1
  28. package/dist/scss/Message.scss +1 -1
  29. package/dist/stories/hello.stories.d.ts +1 -0
  30. package/dist/stories/hello.stories.d.ts.map +1 -1
  31. package/dist/stories/hello.stories.js +10 -1
  32. package/dist/stories/toggle-message-actions.stories.d.ts +3 -0
  33. package/dist/stories/toggle-message-actions.stories.d.ts.map +1 -0
  34. package/dist/stories/toggle-message-actions.stories.js +36 -0
  35. package/dist/version.d.ts +1 -1
  36. package/dist/version.js +1 -1
  37. package/package.json +6 -6
package/dist/index.cjs.js CHANGED
@@ -2866,12 +2866,26 @@ var useUserRole = function (message, onlySenderCanEdit, disableQuotedMessages) {
2866
2866
  var _a, _b, _c;
2867
2867
  var _d = useChannelStateContext('useUserRole'), channel = _d.channel, _e = _d.channelCapabilities, channelCapabilities = _e === void 0 ? {} : _e, channelConfig = _d.channelConfig;
2868
2868
  var client = useChatContext('useUserRole').client;
2869
+ /**
2870
+ * @deprecated as it relies on `membership.role` check which is already deprecated and shouldn't be used anymore.
2871
+ * `isAdmin` will be removed in future release. See `channelCapabilities`.
2872
+ */
2869
2873
  var isAdmin = ((_a = client.user) === null || _a === void 0 ? void 0 : _a.role) === 'admin' || channel.state.membership.role === 'admin';
2870
- var isMyMessage = client.userID === ((_b = message.user) === null || _b === void 0 ? void 0 : _b.id);
2874
+ /**
2875
+ * @deprecated as it relies on `membership.role` check which is already deprecated and shouldn't be used anymore.
2876
+ * `isOwner` will be removed in future release. See `channelCapabilities`.
2877
+ */
2871
2878
  var isOwner = channel.state.membership.role === 'owner';
2872
- var isModerator = ((_c = client.user) === null || _c === void 0 ? void 0 : _c.role) === 'channel_moderator' ||
2879
+ /**
2880
+ * @deprecated as it relies on `membership.role` check which is already deprecated and shouldn't be used anymore.
2881
+ * `isModerator` will be removed in future release. See `channelCapabilities`.
2882
+ */
2883
+ var isModerator = ((_b = client.user) === null || _b === void 0 ? void 0 : _b.role) === 'channel_moderator' ||
2873
2884
  channel.state.membership.role === 'channel_moderator' ||
2874
- channel.state.membership.role === 'moderator';
2885
+ channel.state.membership.role === 'moderator' ||
2886
+ channel.state.membership.is_moderator === true ||
2887
+ channel.state.membership.channel_role === 'channel_moderator';
2888
+ var isMyMessage = client.userID === ((_c = message.user) === null || _c === void 0 ? void 0 : _c.id);
2875
2889
  var canEdit = (!onlySenderCanEdit && channelCapabilities['update-any-message']) ||
2876
2890
  (isMyMessage && channelCapabilities['update-own-message']);
2877
2891
  var canDelete = channelCapabilities['delete-any-message'] ||
@@ -3092,18 +3106,9 @@ var showMessageActionsBox = function (actions, inThread) {
3092
3106
  }
3093
3107
  return true;
3094
3108
  };
3095
- var areMessagePropsEqual = function (prevProps, nextProps) {
3109
+ var areMessagesEqual = function (prevMessage, nextMessage) {
3096
3110
  var _a, _b, _c, _d, _e, _f;
3097
- var prevMessage = prevProps.message, prevMessageUI = prevProps.Message;
3098
- var nextMessage = nextProps.message, nextMessageUI = nextProps.Message;
3099
- if (prevMessageUI !== nextMessageUI)
3100
- return false;
3101
- if (prevProps.endOfGroup !== nextProps.endOfGroup)
3102
- return false;
3103
- if (nextProps.showDetailedReactions !== prevProps.showDetailedReactions) {
3104
- return false;
3105
- }
3106
- var messagesAreEqual = prevMessage.deleted_at === nextMessage.deleted_at &&
3111
+ return prevMessage.deleted_at === nextMessage.deleted_at &&
3107
3112
  ((_a = prevMessage.latest_reactions) === null || _a === void 0 ? void 0 : _a.length) === ((_b = nextMessage.latest_reactions) === null || _b === void 0 ? void 0 : _b.length) &&
3108
3113
  ((_c = prevMessage.own_reactions) === null || _c === void 0 ? void 0 : _c.length) === ((_d = nextMessage.own_reactions) === null || _d === void 0 ? void 0 : _d.length) &&
3109
3114
  prevMessage.pinned === nextMessage.pinned &&
@@ -3113,9 +3118,22 @@ var areMessagePropsEqual = function (prevProps, nextProps) {
3113
3118
  prevMessage.type === nextMessage.type &&
3114
3119
  prevMessage.updated_at === nextMessage.updated_at &&
3115
3120
  ((_e = prevMessage.user) === null || _e === void 0 ? void 0 : _e.updated_at) === ((_f = nextMessage.user) === null || _f === void 0 ? void 0 : _f.updated_at);
3121
+ };
3122
+ var areMessagePropsEqual = function (prevProps, nextProps) {
3123
+ var prevMessage = prevProps.message, prevMessageUI = prevProps.Message;
3124
+ var nextMessage = nextProps.message, nextMessageUI = nextProps.Message;
3125
+ if (prevMessageUI !== nextMessageUI)
3126
+ return false;
3127
+ if (prevProps.endOfGroup !== nextProps.endOfGroup)
3128
+ return false;
3129
+ if (nextProps.showDetailedReactions !== prevProps.showDetailedReactions) {
3130
+ return false;
3131
+ }
3132
+ var messagesAreEqual = areMessagesEqual(prevMessage, nextMessage);
3116
3133
  if (!messagesAreEqual)
3117
3134
  return false;
3118
- var deepEqualProps = deepequal__default['default'](nextProps.readBy, prevProps.readBy) &&
3135
+ var deepEqualProps = deepequal__default['default'](nextProps.messageActions, prevProps.messageActions) &&
3136
+ deepequal__default['default'](nextProps.readBy, prevProps.readBy) &&
3119
3137
  deepequal__default['default'](nextProps.highlighted, prevProps.highlighted) &&
3120
3138
  deepequal__default['default'](nextProps.groupStyles, prevProps.groupStyles) && // last 3 messages can have different group styles
3121
3139
  deepequal__default['default'](nextProps.mutes, prevProps.mutes) &&
@@ -3126,7 +3144,7 @@ var areMessagePropsEqual = function (prevProps, nextProps) {
3126
3144
  );
3127
3145
  };
3128
3146
  var areMessageUIPropsEqual = function (prevProps, nextProps) {
3129
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
3147
+ var _a, _b, _c, _d;
3130
3148
  var prevLastReceivedId = prevProps.lastReceivedId, prevMessage = prevProps.message;
3131
3149
  var nextLastReceivedId = nextProps.lastReceivedId, nextMessage = nextProps.message;
3132
3150
  if (prevProps.editing !== nextProps.editing)
@@ -3146,16 +3164,7 @@ var areMessageUIPropsEqual = function (prevProps, nextProps) {
3146
3164
  prevLastReceivedId !== nextLastReceivedId) {
3147
3165
  return false;
3148
3166
  }
3149
- return (prevMessage.deleted_at === nextMessage.deleted_at &&
3150
- ((_e = prevMessage.latest_reactions) === null || _e === void 0 ? void 0 : _e.length) === ((_f = nextMessage.latest_reactions) === null || _f === void 0 ? void 0 : _f.length) &&
3151
- ((_g = prevMessage.own_reactions) === null || _g === void 0 ? void 0 : _g.length) === ((_h = nextMessage.own_reactions) === null || _h === void 0 ? void 0 : _h.length) &&
3152
- prevMessage.pinned === nextMessage.pinned &&
3153
- prevMessage.reply_count === nextMessage.reply_count &&
3154
- prevMessage.status === nextMessage.status &&
3155
- prevMessage.text === nextMessage.text &&
3156
- prevMessage.type === nextMessage.type &&
3157
- prevMessage.updated_at === nextMessage.updated_at &&
3158
- ((_j = prevMessage.user) === null || _j === void 0 ? void 0 : _j.updated_at) === ((_k = nextMessage.user) === null || _k === void 0 ? void 0 : _k.updated_at));
3167
+ return areMessagesEqual(prevMessage, nextMessage);
3159
3168
  };
3160
3169
  var messageHasReactions = function (message) { return !!(message === null || message === void 0 ? void 0 : message.latest_reactions) && !!message.latest_reactions.length; };
3161
3170
  var messageHasAttachments = function (message) { return !!(message === null || message === void 0 ? void 0 : message.attachments) && !!message.attachments.length; };
@@ -3315,7 +3324,7 @@ var UnMemoizedMessageActionsBox = function (props) {
3315
3324
  return (React__default['default'].createElement("div", { className: "str-chat__message-actions-box\n " + (open ? 'str-chat__message-actions-box--open' : '') + "\n " + (mine ? 'str-chat__message-actions-box--mine' : '') + "\n " + (reverse ? 'str-chat__message-actions-box--reverse' : '') + "\n ", "data-testid": 'message-actions-box', ref: checkIfReverse },
3316
3325
  React__default['default'].createElement("div", { "aria-label": 'Message Options', className: 'str-chat__message-actions-list', role: 'listbox' },
3317
3326
  customMessageActions && (React__default['default'].createElement(CustomMessageActionsList, { customMessageActions: customMessageActions, message: message })),
3318
- messageActions.indexOf(MESSAGE_ACTIONS.quote) > -1 && !message.quoted_message && (React__default['default'].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', onClick: handleQuote, role: 'option' }, t('Reply'))),
3327
+ messageActions.indexOf(MESSAGE_ACTIONS.quote) > -1 && (React__default['default'].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', onClick: handleQuote, role: 'option' }, t('Reply'))),
3319
3328
  messageActions.indexOf(MESSAGE_ACTIONS.pin) > -1 && !message.parent_id && (React__default['default'].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', onClick: handlePin, role: 'option' }, !message.pinned ? t('Pin') : t('Unpin'))),
3320
3329
  messageActions.indexOf(MESSAGE_ACTIONS.flag) > -1 && (React__default['default'].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', onClick: handleFlag, role: 'option' }, t('Flag'))),
3321
3330
  messageActions.indexOf(MESSAGE_ACTIONS.mute) > -1 && (React__default['default'].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', onClick: handleMute, role: 'option' }, isUserMuted() ? t('Unmute') : t('Mute'))),
@@ -6530,19 +6539,16 @@ var ChannelInner = function (props) {
6530
6539
  }
6531
6540
  });
6532
6541
  }); };
6533
- var createMessagePreview = function (text, attachments, parent, mentioned_users) {
6534
- var clientSideID = client.userID + "-" + nanoid.nanoid();
6535
- return __assign({ __html: text, attachments: attachments, created_at: new Date(), html: text, id: clientSideID, mentioned_users: mentioned_users, reactions: [], status: 'sending', text: text, type: 'regular', user: client.user }, ((parent === null || parent === void 0 ? void 0 : parent.id) ? { parent_id: parent.id } : null));
6536
- };
6537
6542
  var sendMessage = function (_a, customMessageData) {
6538
- var _b = _a.attachments, attachments = _b === void 0 ? [] : _b, _c = _a.mentioned_users, mentioned_users = _c === void 0 ? [] : _c, _d = _a.parent, parent = _d === void 0 ? undefined : _d, _e = _a.text, text = _e === void 0 ? '' : _e;
6543
+ var _b = _a.attachments, attachments = _b === void 0 ? [] : _b, _c = _a.mentioned_users, mentioned_users = _c === void 0 ? [] : _c, parent = _a.parent, _d = _a.text, text = _d === void 0 ? '' : _d;
6539
6544
  return __awaiter(void 0, void 0, void 0, function () {
6540
6545
  var messagePreview;
6546
+ var _e;
6541
6547
  return __generator(this, function (_f) {
6542
6548
  switch (_f.label) {
6543
6549
  case 0:
6544
6550
  channel.state.filterErrorMessages();
6545
- messagePreview = createMessagePreview(text, attachments, parent, mentioned_users);
6551
+ messagePreview = __assign({ __html: text, attachments: attachments, created_at: new Date(), html: text, id: (_e = customMessageData === null || customMessageData === void 0 ? void 0 : customMessageData.id) !== null && _e !== void 0 ? _e : client.userID + "-" + nanoid.nanoid(), mentioned_users: mentioned_users, reactions: [], status: 'sending', text: text, type: 'regular', user: client.user }, ((parent === null || parent === void 0 ? void 0 : parent.id) ? { parent_id: parent.id } : null));
6546
6552
  updateMessage(messagePreview);
6547
6553
  return [4 /*yield*/, doSendMessage(messagePreview, customMessageData)];
6548
6554
  case 1:
@@ -7676,7 +7682,7 @@ var UnMemoizedChannelList = function (props) {
7676
7682
  */
7677
7683
  var ChannelList = React__default['default'].memo(UnMemoizedChannelList);
7678
7684
 
7679
- var version = '9.1.2';
7685
+ var version = '9.1.5';
7680
7686
 
7681
7687
  var useChat = function (_a) {
7682
7688
  var _b, _c;
@@ -8076,7 +8082,7 @@ var MessageWithContext = function (props) {
8076
8082
  canReact: canReact,
8077
8083
  canReply: canReply,
8078
8084
  });
8079
- }, [canDelete, canEdit, canFlag, canMute, canPin, canQuote, canReact, canReply]);
8085
+ }, [messageActions, canDelete, canEdit, canFlag, canMute, canPin, canQuote, canReact, canReply]);
8080
8086
  props.canPin; // eslint-disable-line @typescript-eslint/no-unused-vars
8081
8087
  props.messageActions; // eslint-disable-line @typescript-eslint/no-unused-vars
8082
8088
  props.onlySenderCanEdit; // eslint-disable-line @typescript-eslint/no-unused-vars
@@ -9095,9 +9101,10 @@ function useNewMessageNotification(messages, currentUserId, hasMoreNewer) {
9095
9101
  return { atBottom: atBottom, newMessagesNotification: newMessagesNotification, setNewMessagesNotification: setNewMessagesNotification };
9096
9102
  }
9097
9103
 
9098
- function usePrependedMessagesCount(messages) {
9104
+ function usePrependedMessagesCount(messages, hasDateSeparator) {
9099
9105
  var _a;
9100
- var currentFirstMessageId = (_a = messages === null || messages === void 0 ? void 0 : messages[0]) === null || _a === void 0 ? void 0 : _a.id;
9106
+ var firstRealMessageIndex = hasDateSeparator ? 1 : 0;
9107
+ var currentFirstMessageId = (_a = messages === null || messages === void 0 ? void 0 : messages[firstRealMessageIndex]) === null || _a === void 0 ? void 0 : _a.id;
9101
9108
  var firstMessageId = React.useRef(currentFirstMessageId);
9102
9109
  var earliestMessageId = React.useRef(currentFirstMessageId);
9103
9110
  var previousNumItemsPrepended = React.useRef(0);
@@ -9277,7 +9284,7 @@ var VirtualizedMessageListWithContext = function (props) {
9277
9284
  window.removeEventListener('blur', resetNewMessagesReceivedInBackground);
9278
9285
  };
9279
9286
  }, [scrollToBottomIfConfigured]);
9280
- var numItemsPrepended = usePrependedMessagesCount(processedMessages);
9287
+ var numItemsPrepended = usePrependedMessagesCount(processedMessages, !disableDateSeparator);
9281
9288
  /**
9282
9289
  * Logic to update the key of the virtuoso component when the list jumps to a new location.
9283
9290
  */
@@ -9285,7 +9292,7 @@ var VirtualizedMessageListWithContext = function (props) {
9285
9292
  var firstMessageId = React.useRef();
9286
9293
  React.useEffect(function () {
9287
9294
  var _a;
9288
- var continuousSet = messages && messages.find(function (message) { return message.id === firstMessageId.current; });
9295
+ var continuousSet = messages === null || messages === void 0 ? void 0 : messages.find(function (message) { return message.id === firstMessageId.current; });
9289
9296
  if (!continuousSet) {
9290
9297
  setMessageSetKey(+new Date());
9291
9298
  }
@@ -9325,15 +9332,18 @@ var VirtualizedMessageListWithContext = function (props) {
9325
9332
  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);
9326
9333
  return (React__default['default'].createElement(Message, { closeReactionSelectorOnClick: closeReactionSelectorOnClick, customMessageActions: props.customMessageActions, endOfGroup: endOfGroup, firstOfGroup: firstOfGroup, groupedByUser: groupedByUser, message: message, Message: MessageUIComponent, messageActions: props.messageActions }));
9327
9334
  }, [customMessageRenderer, shouldGroupByUser, numItemsPrepended]);
9335
+ var Item = React.useMemo(function () {
9336
+ // using 'display: inline-block'
9337
+ // traps CSS margins of the item elements, preventing incorrect item measurements
9338
+ var Item = function (props) { return (React__default['default'].createElement("div", __assign({}, props, { className: (customClasses === null || customClasses === void 0 ? void 0 : customClasses.virtualMessage) || 'str-chat__virtual-list-message-wrapper' }))); };
9339
+ return Item;
9340
+ }, [customClasses === null || customClasses === void 0 ? void 0 : customClasses.virtualMessage]);
9328
9341
  var virtuosoComponents = React.useMemo(function () {
9329
9342
  var EmptyPlaceholder = function () { return (React__default['default'].createElement(React__default['default'].Fragment, null, EmptyStateIndicator$1 && React__default['default'].createElement(EmptyStateIndicator$1, { listType: 'message' }))); };
9330
9343
  var Header = function () {
9331
9344
  return loadingMore ? (React__default['default'].createElement("div", { className: 'str-chat__virtual-list__loading' },
9332
9345
  React__default['default'].createElement(LoadingIndicator$1, { size: 20 }))) : (React__default['default'].createElement(React__default['default'].Fragment, null));
9333
9346
  };
9334
- var virtualMessageClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.virtualMessage) || 'str-chat__virtual-list-message-wrapper';
9335
- // using 'display: inline-block' traps CSS margins of the item elements, preventing incorrect item measurements
9336
- var Item = function (props) { return React__default['default'].createElement("div", __assign({}, props, { className: virtualMessageClass })); };
9337
9347
  var Footer = function () {
9338
9348
  return TypingIndicator ? React__default['default'].createElement(TypingIndicator, { avatarSize: 24 }) : React__default['default'].createElement(React__default['default'].Fragment, null);
9339
9349
  };
@@ -9373,15 +9383,15 @@ var VirtualizedMessageListWithContext = function (props) {
9373
9383
  return null;
9374
9384
  return (React__default['default'].createElement(React__default['default'].Fragment, null,
9375
9385
  React__default['default'].createElement("div", { className: (customClasses === null || customClasses === void 0 ? void 0 : customClasses.virtualizedMessageList) || 'str-chat__virtual-list' },
9376
- React__default['default'].createElement(reactVirtuoso.Virtuoso, __assign({ atBottomStateChange: atBottomStateChange, components: virtuosoComponents, 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 } : {})))),
9386
+ React__default['default'].createElement(reactVirtuoso.Virtuoso, __assign({ atBottomStateChange: atBottomStateChange, components: virtuosoComponents, computeItemKey: function (index) {
9387
+ return processedMessages[numItemsPrepended + index - PREPEND_OFFSET].id;
9388
+ }, 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 } : {})))),
9377
9389
  React__default['default'].createElement(MessageListNotifications$1, { hasNewMessages: newMessagesNotification, isNotAtLatestMessageSet: hasMoreNewer, MessageNotification: MessageNotification$1, notifications: notifications, scrollToBottom: scrollToBottom }),
9378
9390
  giphyPreviewMessage && React__default['default'].createElement(GiphyPreviewMessage$1, { message: giphyPreviewMessage })));
9379
9391
  };
9380
9392
  /**
9381
9393
  * The VirtualizedMessageList component renders a list of messages in a virtualized list.
9382
9394
  * It is a consumer of the React contexts set in [Channel](https://github.com/GetStream/stream-chat-react/blob/master/src/components/Channel/Channel.tsx).
9383
- *
9384
- * **Note**: It works well when there are thousands of messages in a channel, it has a shortcoming though - the message UI should have a fixed height.
9385
9395
  */
9386
9396
  function VirtualizedMessageList(props) {
9387
9397
  var _a = useChannelActionContext('VirtualizedMessageList'), jumpToLatestMessage = _a.jumpToLatestMessage, loadMore = _a.loadMore, loadMoreNewer = _a.loadMoreNewer;
@@ -9421,11 +9431,11 @@ var DefaultThreadStart = function () {
9421
9431
  return React__default['default'].createElement("div", { className: 'str-chat__thread-start' }, t('Start of a new thread'));
9422
9432
  };
9423
9433
  var ThreadInner = function (props) {
9424
- var additionalMessageInputProps = props.additionalMessageInputProps, additionalMessageListProps = props.additionalMessageListProps, additionalParentMessageProps = props.additionalParentMessageProps, additionalVirtualizedMessageListProps = props.additionalVirtualizedMessageListProps, _a = props.autoFocus, autoFocus = _a === void 0 ? true : _a, _b = props.enableDateSeparator, enableDateSeparator = _b === void 0 ? false : _b, _c = props.fullWidth, fullWidth = _c === void 0 ? false : _c, PropInput = props.Input, PropMessage = props.Message, virtualized = props.virtualized;
9425
- var _d = useChannelStateContext('Thread'), thread = _d.thread, threadHasMore = _d.threadHasMore, threadLoadingMore = _d.threadLoadingMore, threadMessages = _d.threadMessages;
9426
- var _e = useChannelActionContext('Thread'), closeThread = _e.closeThread, loadMoreThread = _e.loadMoreThread, sendMessage = _e.sendMessage;
9434
+ var additionalMessageInputProps = props.additionalMessageInputProps, additionalMessageListProps = props.additionalMessageListProps, additionalParentMessageProps = props.additionalParentMessageProps, additionalVirtualizedMessageListProps = props.additionalVirtualizedMessageListProps, _a = props.autoFocus, autoFocus = _a === void 0 ? true : _a, _b = props.enableDateSeparator, enableDateSeparator = _b === void 0 ? false : _b, _c = props.fullWidth, fullWidth = _c === void 0 ? false : _c, PropInput = props.Input, PropMessage = props.Message, _d = props.messageActions, messageActions = _d === void 0 ? Object.keys(MESSAGE_ACTIONS) : _d, virtualized = props.virtualized;
9435
+ var _e = useChannelStateContext('Thread'), thread = _e.thread, threadHasMore = _e.threadHasMore, threadLoadingMore = _e.threadLoadingMore, threadMessages = _e.threadMessages;
9436
+ var _f = useChannelActionContext('Thread'), closeThread = _f.closeThread, loadMoreThread = _f.loadMoreThread, sendMessage = _f.sendMessage;
9427
9437
  var customClasses = useChatContext('Thread').customClasses;
9428
- var _f = useComponentContext('Thread'), ContextInput = _f.ThreadInput, ContextMessage = _f.Message, _g = _f.ThreadHeader, ThreadHeader = _g === void 0 ? DefaultThreadHeader : _g, _h = _f.ThreadStart, ThreadStart = _h === void 0 ? DefaultThreadStart : _h, _j = _f.VirtualMessage, VirtualMessage = _j === void 0 ? FixedHeightMessage : _j;
9438
+ var _g = useComponentContext('Thread'), ContextInput = _g.ThreadInput, ContextMessage = _g.Message, _h = _g.ThreadHeader, ThreadHeader = _h === void 0 ? DefaultThreadHeader : _h, _j = _g.ThreadStart, ThreadStart = _j === void 0 ? DefaultThreadStart : _j, _k = _g.VirtualMessage, VirtualMessage = _k === void 0 ? FixedHeightMessage : _k;
9429
9439
  var messageList = React.useRef(null);
9430
9440
  var ThreadInput = PropInput || (additionalMessageInputProps === null || additionalMessageInputProps === void 0 ? void 0 : additionalMessageInputProps.Input) || ContextInput || MessageInputSmall;
9431
9441
  var ThreadMessage = PropMessage || (additionalMessageListProps === null || additionalMessageListProps === void 0 ? void 0 : additionalMessageListProps.Message);
@@ -9457,7 +9467,7 @@ var ThreadInner = function (props) {
9457
9467
  React__default['default'].createElement("div", { className: 'str-chat__thread-list', ref: messageList },
9458
9468
  React__default['default'].createElement(Message, __assign({ initialMessage: true, message: thread, Message: ThreadMessage || FallbackMessage, threadList: true }, additionalParentMessageProps)),
9459
9469
  React__default['default'].createElement(ThreadStart, null),
9460
- React__default['default'].createElement(ThreadMessageList, __assign({ disableDateSeparator: !enableDateSeparator, hasMore: threadHasMore, loadingMore: threadLoadingMore, loadMore: loadMoreThread, Message: ThreadMessage || FallbackMessage, messages: threadMessages || [], threadList: true }, (virtualized ? additionalVirtualizedMessageListProps : additionalMessageListProps)))),
9470
+ React__default['default'].createElement(ThreadMessageList, __assign({ disableDateSeparator: !enableDateSeparator, hasMore: threadHasMore, loadingMore: threadLoadingMore, loadMore: loadMoreThread, Message: ThreadMessage || FallbackMessage, messageActions: messageActions, messages: threadMessages || [], threadList: true }, (virtualized ? additionalVirtualizedMessageListProps : additionalMessageListProps)))),
9461
9471
  React__default['default'].createElement(MessageInput, __assign({ focus: autoFocus, Input: ThreadInput, overrideSubmitHandler: threadSubmitHandler, parent: thread, publishTypingEvent: false }, additionalMessageInputProps))));
9462
9472
  };
9463
9473