stream-chat-react 11.18.1 → 11.19.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 (43) hide show
  1. package/dist/{Window-5802024e.js → Window-8c5139ab.js} +45 -50
  2. package/dist/browser.full-bundle.js +54 -55
  3. package/dist/browser.full-bundle.js.map +1 -1
  4. package/dist/browser.full-bundle.min.js +2 -2
  5. package/dist/browser.full-bundle.min.js.map +1 -1
  6. package/dist/components/Channel/Channel.js +1 -1
  7. package/dist/components/Emojis/index.cjs.js +1 -1
  8. package/dist/components/Message/Message.d.ts.map +1 -1
  9. package/dist/components/Message/Message.js +2 -2
  10. package/dist/components/Message/hooks/useReactionsFetcher.d.ts +4 -3
  11. package/dist/components/Message/hooks/useReactionsFetcher.d.ts.map +1 -1
  12. package/dist/components/Message/hooks/useReactionsFetcher.js +14 -21
  13. package/dist/components/Message/types.d.ts +7 -3
  14. package/dist/components/Message/types.d.ts.map +1 -1
  15. package/dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.d.ts.map +1 -1
  16. package/dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.js +3 -1
  17. package/dist/components/MessageInput/MessageInputFlat.js +3 -1
  18. package/dist/components/MessageList/MessageList.d.ts +1 -1
  19. package/dist/components/MessageList/MessageList.d.ts.map +1 -1
  20. package/dist/components/MessageList/MessageList.js +4 -1
  21. package/dist/components/MessageList/VirtualizedMessageList.d.ts +2 -2
  22. package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
  23. package/dist/components/MessageList/VirtualizedMessageList.js +2 -1
  24. package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts.map +1 -1
  25. package/dist/components/MessageList/VirtualizedMessageListComponents.js +2 -2
  26. package/dist/components/Reactions/ReactionsList.d.ts +5 -3
  27. package/dist/components/Reactions/ReactionsList.d.ts.map +1 -1
  28. package/dist/components/Reactions/ReactionsList.js +2 -2
  29. package/dist/components/Reactions/ReactionsListModal.d.ts +9 -6
  30. package/dist/components/Reactions/ReactionsListModal.d.ts.map +1 -1
  31. package/dist/components/Reactions/ReactionsListModal.js +19 -21
  32. package/dist/components/Reactions/hooks/useFetchReactions.d.ts +6 -3
  33. package/dist/components/Reactions/hooks/useFetchReactions.d.ts.map +1 -1
  34. package/dist/components/Reactions/hooks/useFetchReactions.js +3 -3
  35. package/dist/components/Reactions/types.d.ts +4 -2
  36. package/dist/components/Reactions/types.d.ts.map +1 -1
  37. package/dist/context/MessageContext.d.ts +9 -5
  38. package/dist/context/MessageContext.d.ts.map +1 -1
  39. package/dist/i18n/pt.json +18 -18
  40. package/dist/index.cjs.js +10 -6
  41. package/dist/version.d.ts +1 -1
  42. package/dist/version.js +1 -1
  43. package/package.json +1 -1
@@ -5,7 +5,7 @@ export function useFetchReactions(options) {
5
5
  var _this = this;
6
6
  var contextHandleFetchReactions = useMessageContext('useFetchReactions').handleFetchReactions;
7
7
  var _a = useState([]), reactions = _a[0], setReactions = _a[1];
8
- var propHandleFetchReactions = options.handleFetchReactions, shouldFetch = options.shouldFetch;
8
+ var propHandleFetchReactions = options.handleFetchReactions, reactionType = options.reactionType, shouldFetch = options.shouldFetch, sort = options.sort;
9
9
  var _b = useState(shouldFetch), isLoading = _b[0], setIsLoading = _b[1];
10
10
  var handleFetchReactions = propHandleFetchReactions !== null && propHandleFetchReactions !== void 0 ? propHandleFetchReactions : contextHandleFetchReactions;
11
11
  useEffect(function () {
@@ -20,7 +20,7 @@ export function useFetchReactions(options) {
20
20
  case 0:
21
21
  _a.trys.push([0, 2, 3, 4]);
22
22
  setIsLoading(true);
23
- return [4 /*yield*/, handleFetchReactions()];
23
+ return [4 /*yield*/, handleFetchReactions(reactionType, sort)];
24
24
  case 1:
25
25
  reactions_1 = _a.sent();
26
26
  if (!cancel) {
@@ -45,6 +45,6 @@ export function useFetchReactions(options) {
45
45
  return function () {
46
46
  cancel = true;
47
47
  };
48
- }, [handleFetchReactions, shouldFetch]);
48
+ }, [handleFetchReactions, reactionType, shouldFetch, sort]);
49
49
  return { isLoading: isLoading, reactions: reactions };
50
50
  }
@@ -1,5 +1,6 @@
1
1
  import type { ComponentType } from 'react';
2
- import type { ReactionResponse } from 'stream-chat';
2
+ import type { DefaultGenerics, ExtendableGenerics, ReactionResponse } from 'stream-chat';
3
+ import { DefaultStreamChatGenerics } from '../../types';
3
4
  export interface ReactionSummary {
4
5
  EmojiComponent: ComponentType | null;
5
6
  firstReactionAt: Date | null;
@@ -11,5 +12,6 @@ export interface ReactionSummary {
11
12
  unlistedReactedUserCount: number;
12
13
  }
13
14
  export type ReactionsComparator = (a: ReactionSummary, b: ReactionSummary) => number;
14
- export type ReactionDetailsComparator = (a: ReactionResponse, b: ReactionResponse) => number;
15
+ export type ReactionDetailsComparator<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = (a: ReactionResponse<StreamChatGenerics>, b: ReactionResponse<StreamChatGenerics>) => number;
16
+ export type ReactionType<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = ReactionResponse<StreamChatGenerics>['type'];
15
17
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,IAAI,GAAG,IAAI,CAAC;IAC5B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,KAAK,MAAM,CAAC;AAErF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,KAAK,MAAM,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,IAAI,GAAG,IAAI,CAAC;IAC5B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,KAAK,MAAM,CAAC;AAErF,MAAM,MAAM,yBAAyB,CACnC,kBAAkB,SAAS,kBAAkB,GAAG,eAAe,IAC7D,CAAC,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,MAAM,CAAC;AAEjG,MAAM,MAAM,YAAY,CACtB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React, { PropsWithChildren } from 'react';
2
- import type { Mute, ReactionResponse, UserResponse } from 'stream-chat';
2
+ import type { Mute, ReactionResponse, ReactionSort, UserResponse } from 'stream-chat';
3
3
  import type { ChannelActionContextValue } from './ChannelActionContext';
4
4
  import type { StreamMessage } from './ChannelStateContext';
5
5
  import type { ActionHandlerReturnType } from '../components/Message/hooks/useActionHandler';
@@ -8,7 +8,7 @@ import type { ReactEventHandler } from '../components/Message/types';
8
8
  import type { MessageActionsArray } from '../components/Message/utils';
9
9
  import type { MessageInputProps } from '../components/MessageInput/MessageInput';
10
10
  import type { GroupStyle } from '../components/MessageList/utils';
11
- import type { ReactionDetailsComparator, ReactionsComparator } from '../components/Reactions/types';
11
+ import type { ReactionDetailsComparator, ReactionsComparator, ReactionType } from '../components/Reactions/types';
12
12
  import type { RenderTextOptions } from '../components/Message/renderText';
13
13
  import type { DefaultStreamChatGenerics, UnknownType } from '../types/types';
14
14
  export type CustomMessageActions<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
@@ -33,7 +33,7 @@ export type MessageContextValue<StreamChatGenerics extends DefaultStreamChatGene
33
33
  /** Function to edit a message in a Channel */
34
34
  handleEdit: ReactEventHandler;
35
35
  /** Function to fetch the message reactions */
36
- handleFetchReactions: () => Promise<Array<ReactionResponse<StreamChatGenerics>>>;
36
+ handleFetchReactions: (reactionType?: ReactionType<StreamChatGenerics>, sort?: ReactionSort<StreamChatGenerics>) => Promise<Array<ReactionResponse<StreamChatGenerics>>>;
37
37
  /** Function to flag a message in a Channel */
38
38
  handleFlag: ReactEventHandler;
39
39
  /** Function to mark message and the messages that follow it as unread in a Channel */
@@ -102,13 +102,17 @@ export type MessageContextValue<StreamChatGenerics extends DefaultStreamChatGene
102
102
  mutes?: Mute<StreamChatGenerics>[];
103
103
  /** @deprecated in favor of `channelCapabilities - The user roles allowed to pin Messages in various channel types */
104
104
  pinPermissions?: PinPermissions;
105
+ /** Sort options to provide to a reactions query */
106
+ reactionDetailsSort?: ReactionSort<StreamChatGenerics>;
105
107
  /** A list of users that have read this Message */
106
108
  readBy?: UserResponse<StreamChatGenerics>[];
107
109
  /** Custom function to render message text content, defaults to the renderText function: [utils](https://github.com/GetStream/stream-chat-react/blob/master/src/utils.tsx) */
108
110
  renderText?: (text?: string, mentioned_users?: UserResponse<StreamChatGenerics>[], options?: RenderTextOptions) => JSX.Element | null;
109
- /** Comparator function to sort the list of reacted users, defaults to alphabetical order */
111
+ /** Comparator function to sort the list of reacted users
112
+ * @deprecated use `reactionDetailsSort` instead
113
+ */
110
114
  sortReactionDetails?: ReactionDetailsComparator;
111
- /** Comparator function to sort reactions, defaults to alphabetical order */
115
+ /** Comparator function to sort reactions, defaults to chronological order */
112
116
  sortReactions?: ReactionsComparator;
113
117
  /** Whether or not the Message is in a Thread */
114
118
  threadList?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"MessageContext.d.ts","sourceRoot":"","sources":["../../src/context/MessageContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageContext.d.ts","sourceRoot":"","sources":["../../src/context/MessageContext.tsx"],"names":[],"mappings":"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"}
package/dist/i18n/pt.json CHANGED
@@ -91,25 +91,25 @@
91
91
  "Wait until all attachments have uploaded": "Espere até que todos os anexos tenham sido carregados",
92
92
  "You have no channels currently": "Você não tem canais atualmente",
93
93
  "You've reached the maximum number of files": "Você atingiu o número máximo de arquivos",
94
- "aria/Attachment": "Bijlage",
95
- "aria/Cancel Reply": "Antwoord annuleren",
96
- "aria/Cancel upload": "Upload annuleren",
97
- "aria/Channel list": "Kanaallijst",
98
- "aria/Channel search results": "Zoekresultaten voor kanalen",
99
- "aria/Close thread": "Draad sluiten",
100
- "aria/Emoji picker": "Emoji kiezer",
101
- "aria/File input": "Bestandsinvoer",
102
- "aria/File upload": "Bestand uploaden",
103
- "aria/Image input": "Afbeelding invoeren",
104
- "aria/Load More Channels": "Meer kanalen laden",
94
+ "aria/Attachment": "Anexo",
95
+ "aria/Cancel Reply": "Cancelar resposta",
96
+ "aria/Cancel upload": "Cancelar upload",
97
+ "aria/Channel list": "Lista de canais",
98
+ "aria/Channel search results": "Resultados de pesquisa de canais",
99
+ "aria/Close thread": "Fechar tópico",
100
+ "aria/Emoji picker": "Seletor de emojis",
101
+ "aria/File input": "Entrada de arquivo",
102
+ "aria/File upload": "Carregar arquivo",
103
+ "aria/Image input": "Entrada de imagem",
104
+ "aria/Load More Channels": "Carregar mais canais",
105
105
  "aria/Menu": "Menu",
106
- "aria/Message Options": "Berichtopties",
107
- "aria/Open Message Actions Menu": "Menu voor berichtacties openen",
108
- "aria/Open Reaction Selector": "Reactiekiezer openen",
109
- "aria/Open Thread": "Draad openen",
110
- "aria/Reaction list": "Reactielijst",
111
- "aria/Retry upload": "Upload opnieuw proberen",
112
- "aria/Send": "Verzenden",
106
+ "aria/Message Options": "Opções de mensagem",
107
+ "aria/Open Message Actions Menu": "Abrir menu de ações de mensagem",
108
+ "aria/Open Reaction Selector": "Abrir seletor de reações",
109
+ "aria/Open Thread": "Abrir tópico",
110
+ "aria/Reaction list": "Lista de reações",
111
+ "aria/Retry upload": "Tentar upload novamente",
112
+ "aria/Send": "Enviar",
113
113
  "ban-command-args": "[@nomedeusuário] [texto]",
114
114
  "ban-command-description": "Banir um usuário",
115
115
  "giphy-command-args": "[texto]",
package/dist/index.cjs.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Window = require('./Window-5802024e.js');
5
+ var Window = require('./Window-8c5139ab.js');
6
6
  var React = require('react');
7
7
  var streamChat = require('stream-chat');
8
8
  var throttle = require('lodash.throttle');
@@ -653,7 +653,7 @@ var MessageListWithContext = function (props) {
653
653
  var _a;
654
654
  var channel = props.channel, channelUnreadUiState = props.channelUnreadUiState, _b = props.disableDateSeparator, disableDateSeparator = _b === void 0 ? false : _b, groupStyles = props.groupStyles, _c = props.hideDeletedMessages, hideDeletedMessages = _c === void 0 ? false : _c, _d = props.hideNewMessageSeparator, hideNewMessageSeparator = _d === void 0 ? false : _d, _e = props.internalInfiniteScrollProps, _f = _e === void 0 ? {} : _e, _g = _f.threshold, loadMoreScrollThreshold = _g === void 0 ? Window.DEFAULT_LOAD_PAGE_SCROLL_THRESHOLD : _g, restInternalInfiniteScrollProps = Window.__rest(_f, ["threshold"]), _h = props.messageActions, messageActions = _h === void 0 ? Object.keys(Window.MESSAGE_ACTIONS) : _h, _j = props.messages, messages = _j === void 0 ? [] : _j, notifications = props.notifications, _k = props.noGroupByUser, noGroupByUser = _k === void 0 ? false : _k, _l = props.pinPermissions, pinPermissions = _l === void 0 ? Window.defaultPinPermissions : _l, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
655
655
  _m = props.returnAllReadData, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
656
- returnAllReadData = _m === void 0 ? false : _m, _o = props.threadList, threadList = _o === void 0 ? false : _o, _p = props.unsafeHTML, unsafeHTML = _p === void 0 ? false : _p, headerPosition = props.headerPosition, read = props.read, _q = props.renderMessages, renderMessages = _q === void 0 ? defaultRenderMessages : _q, reviewProcessedMessage = props.reviewProcessedMessage, _r = props.messageLimit, messageLimit = _r === void 0 ? Window.DEFAULT_NEXT_CHANNEL_PAGE_SIZE : _r, loadMoreCallback = props.loadMore, loadMoreNewerCallback = props.loadMoreNewer, _s = props.hasMoreNewer, hasMoreNewer = _s === void 0 ? false : _s, showUnreadNotificationAlways = props.showUnreadNotificationAlways, suppressAutoscroll = props.suppressAutoscroll, highlightedMessageId = props.highlightedMessageId, _t = props.jumpToLatestMessage, jumpToLatestMessage = _t === void 0 ? function () { return Promise.resolve(); } : _t;
656
+ returnAllReadData = _m === void 0 ? false : _m, _o = props.threadList, threadList = _o === void 0 ? false : _o, _p = props.unsafeHTML, unsafeHTML = _p === void 0 ? false : _p, headerPosition = props.headerPosition, read = props.read, _q = props.renderMessages, renderMessages = _q === void 0 ? defaultRenderMessages : _q, reviewProcessedMessage = props.reviewProcessedMessage, _r = props.messageLimit, messageLimit = _r === void 0 ? Window.DEFAULT_NEXT_CHANNEL_PAGE_SIZE : _r, loadMoreCallback = props.loadMore, loadMoreNewerCallback = props.loadMoreNewer, _s = props.hasMoreNewer, hasMoreNewer = _s === void 0 ? false : _s, reactionDetailsSort = props.reactionDetailsSort, showUnreadNotificationAlways = props.showUnreadNotificationAlways, sortReactionDetails = props.sortReactionDetails, sortReactions = props.sortReactions, suppressAutoscroll = props.suppressAutoscroll, highlightedMessageId = props.highlightedMessageId, _t = props.jumpToLatestMessage, jumpToLatestMessage = _t === void 0 ? function () { return Promise.resolve(); } : _t;
657
657
  var _u = React__default["default"].useState(null), listElement = _u[0], setListElement = _u[1];
658
658
  var _v = React__default["default"].useState(null), ulElement = _v[0], setUlElement = _v[1];
659
659
  var customClasses = Window.useChatContext('MessageList').customClasses;
@@ -715,8 +715,11 @@ var MessageListWithContext = function (props) {
715
715
  onUserHover: props.onUserHover,
716
716
  openThread: props.openThread,
717
717
  pinPermissions: pinPermissions,
718
+ reactionDetailsSort: reactionDetailsSort,
718
719
  renderText: props.renderText,
719
720
  retrySendMessage: props.retrySendMessage,
721
+ sortReactionDetails: sortReactionDetails,
722
+ sortReactions: sortReactions,
720
723
  unsafeHTML: unsafeHTML,
721
724
  },
722
725
  messageGroupStyles: messageGroupStyles,
@@ -1070,7 +1073,7 @@ var Footer = function () {
1070
1073
  };
1071
1074
  var messageRenderer = function (virtuosoIndex, _data, virtuosoContext) {
1072
1075
  var _a, _b, _c, _d, _e, _f, _g;
1073
- var additionalMessageInputProps = virtuosoContext.additionalMessageInputProps, closeReactionSelectorOnClick = virtuosoContext.closeReactionSelectorOnClick, customMessageActions = virtuosoContext.customMessageActions, customMessageRenderer = virtuosoContext.customMessageRenderer, DateSeparator = virtuosoContext.DateSeparator, firstUnreadMessageId = virtuosoContext.firstUnreadMessageId, lastReadDate = virtuosoContext.lastReadDate, lastReadMessageId = virtuosoContext.lastReadMessageId, lastReceivedMessageId = virtuosoContext.lastReceivedMessageId, MessageUIComponent = virtuosoContext.Message, messageActions = virtuosoContext.messageActions, MessageSystem = virtuosoContext.MessageSystem, numItemsPrepended = virtuosoContext.numItemsPrepended, ownMessagesReadByOthers = virtuosoContext.ownMessagesReadByOthers, messageList = virtuosoContext.processedMessages, shouldGroupByUser = virtuosoContext.shouldGroupByUser, sortReactionDetails = virtuosoContext.sortReactionDetails, sortReactions = virtuosoContext.sortReactions, _h = virtuosoContext.unreadMessageCount, unreadMessageCount = _h === void 0 ? 0 : _h, UnreadMessagesSeparator = virtuosoContext.UnreadMessagesSeparator, virtuosoRef = virtuosoContext.virtuosoRef;
1076
+ var additionalMessageInputProps = virtuosoContext.additionalMessageInputProps, closeReactionSelectorOnClick = virtuosoContext.closeReactionSelectorOnClick, customMessageActions = virtuosoContext.customMessageActions, customMessageRenderer = virtuosoContext.customMessageRenderer, DateSeparator = virtuosoContext.DateSeparator, firstUnreadMessageId = virtuosoContext.firstUnreadMessageId, lastReadDate = virtuosoContext.lastReadDate, lastReadMessageId = virtuosoContext.lastReadMessageId, lastReceivedMessageId = virtuosoContext.lastReceivedMessageId, MessageUIComponent = virtuosoContext.Message, messageActions = virtuosoContext.messageActions, MessageSystem = virtuosoContext.MessageSystem, numItemsPrepended = virtuosoContext.numItemsPrepended, ownMessagesReadByOthers = virtuosoContext.ownMessagesReadByOthers, messageList = virtuosoContext.processedMessages, reactionDetailsSort = virtuosoContext.reactionDetailsSort, shouldGroupByUser = virtuosoContext.shouldGroupByUser, sortReactionDetails = virtuosoContext.sortReactionDetails, sortReactions = virtuosoContext.sortReactions, _h = virtuosoContext.unreadMessageCount, unreadMessageCount = _h === void 0 ? 0 : _h, UnreadMessagesSeparator = virtuosoContext.UnreadMessagesSeparator, virtuosoRef = virtuosoContext.virtuosoRef;
1074
1077
  var streamMessageIndex = calculateItemIndex(virtuosoIndex, numItemsPrepended);
1075
1078
  if (customMessageRenderer) {
1076
1079
  return customMessageRenderer(messageList, streamMessageIndex);
@@ -1111,7 +1114,7 @@ var messageRenderer = function (virtuosoIndex, _data, virtuosoContext) {
1111
1114
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
1112
1115
  showUnreadSeparatorAbove && (React__default["default"].createElement("div", { className: 'str-chat__unread-messages-separator-wrapper' },
1113
1116
  React__default["default"].createElement(UnreadMessagesSeparator, { unreadCount: unreadMessageCount }))),
1114
- React__default["default"].createElement(Window.Message, { additionalMessageInputProps: additionalMessageInputProps, autoscrollToBottom: (_g = virtuosoRef.current) === null || _g === void 0 ? void 0 : _g.autoscrollToBottom, closeReactionSelectorOnClick: closeReactionSelectorOnClick, customMessageActions: customMessageActions, endOfGroup: endOfGroup, firstOfGroup: firstOfGroup, groupedByUser: groupedByUser, lastReceivedId: lastReceivedMessageId, message: message, Message: MessageUIComponent, messageActions: messageActions, readBy: ownMessagesReadByOthers[message.id] || [], sortReactionDetails: sortReactionDetails, sortReactions: sortReactions }),
1117
+ React__default["default"].createElement(Window.Message, { additionalMessageInputProps: additionalMessageInputProps, autoscrollToBottom: (_g = virtuosoRef.current) === null || _g === void 0 ? void 0 : _g.autoscrollToBottom, closeReactionSelectorOnClick: closeReactionSelectorOnClick, customMessageActions: customMessageActions, endOfGroup: endOfGroup, firstOfGroup: firstOfGroup, groupedByUser: groupedByUser, lastReceivedId: lastReceivedMessageId, message: message, Message: MessageUIComponent, messageActions: messageActions, reactionDetailsSort: reactionDetailsSort, readBy: ownMessagesReadByOthers[message.id] || [], sortReactionDetails: sortReactionDetails, sortReactions: sortReactions }),
1115
1118
  showUnreadSeparatorBelow && (React__default["default"].createElement("div", { className: 'str-chat__unread-messages-separator-wrapper' },
1116
1119
  React__default["default"].createElement(UnreadMessagesSeparator, { unreadCount: unreadMessageCount })))));
1117
1120
  };
@@ -1151,7 +1154,7 @@ var VirtualizedMessageListWithContext = function (props) {
1151
1154
  // TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
1152
1155
  _h = props.overscan,
1153
1156
  // TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
1154
- overscan = _h === void 0 ? 0 : _h, read = props.read, _j = props.returnAllReadData, returnAllReadData = _j === void 0 ? false : _j, reviewProcessedMessage = props.reviewProcessedMessage, scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _k = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _k === void 0 ? false : _k, _l = props.separateGiphyPreview, separateGiphyPreview = _l === void 0 ? false : _l, _m = props.shouldGroupByUser, shouldGroupByUser = _m === void 0 ? false : _m, showUnreadNotificationAlways = props.showUnreadNotificationAlways, sortReactionDetails = props.sortReactionDetails, sortReactions = props.sortReactions, _o = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _o === void 0 ? 'smooth' : _o, suppressAutoscroll = props.suppressAutoscroll, threadList = props.threadList;
1157
+ overscan = _h === void 0 ? 0 : _h, read = props.read, _j = props.returnAllReadData, returnAllReadData = _j === void 0 ? false : _j, reviewProcessedMessage = props.reviewProcessedMessage, scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _k = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _k === void 0 ? false : _k, _l = props.separateGiphyPreview, separateGiphyPreview = _l === void 0 ? false : _l, _m = props.shouldGroupByUser, shouldGroupByUser = _m === void 0 ? false : _m, showUnreadNotificationAlways = props.showUnreadNotificationAlways, reactionDetailsSort = props.reactionDetailsSort, sortReactionDetails = props.sortReactionDetails, sortReactions = props.sortReactions, _o = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _o === void 0 ? 'smooth' : _o, suppressAutoscroll = props.suppressAutoscroll, threadList = props.threadList;
1155
1158
  var virtuosoComponentsFromProps = additionalVirtuosoProps.components, overridingVirtuosoProps = Window.__rest(additionalVirtuosoProps, ["components"]);
1156
1159
  // Stops errors generated from react-virtuoso to bubble up
1157
1160
  // to Sentry or other tracking tools.
@@ -1325,6 +1328,7 @@ var VirtualizedMessageListWithContext = function (props) {
1325
1328
  numItemsPrepended: numItemsPrepended,
1326
1329
  ownMessagesReadByOthers: ownMessagesReadByOthers,
1327
1330
  processedMessages: processedMessages,
1331
+ reactionDetailsSort: reactionDetailsSort,
1328
1332
  shouldGroupByUser: shouldGroupByUser,
1329
1333
  sortReactionDetails: sortReactionDetails,
1330
1334
  sortReactions: sortReactions,
@@ -1347,7 +1351,7 @@ function VirtualizedMessageList(props) {
1347
1351
  return (React__default["default"].createElement(VirtualizedMessageListWithContext, Window.__assign({ channel: channel, channelUnreadUiState: channelUnreadUiState, 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)));
1348
1352
  }
1349
1353
 
1350
- var version = '11.18.1';
1354
+ var version = '11.19.0';
1351
1355
 
1352
1356
  var useChat = function (_a) {
1353
1357
  var _b, _c;
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const version = "11.18.1";
1
+ export declare const version = "11.19.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export var version = '11.18.1';
1
+ export var version = '11.19.0';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stream-chat-react",
3
- "version": "11.18.1",
3
+ "version": "11.19.0",
4
4
  "description": "React components to create chat conversations or livestream style chat",
5
5
  "author": "GetStream",
6
6
  "homepage": "https://getstream.io/chat/",