stream-chat-react 13.12.0 → 13.13.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.
@@ -28957,6 +28957,7 @@ function defaultRenderMessages({
28957
28957
  const {
28958
28958
  DateSeparator: DateSeparator2 = DateSeparator,
28959
28959
  HeaderComponent,
28960
+ MessageListItem = "li",
28960
28961
  MessageSystem = EventComponent,
28961
28962
  UnreadMessagesSeparator: UnreadMessagesSeparator2 = UnreadMessagesSeparator
28962
28963
  } = components;
@@ -28967,7 +28968,7 @@ function defaultRenderMessages({
28967
28968
  const message = messages[index2];
28968
28969
  if (isDateSeparatorMessage(message)) {
28969
28970
  renderedMessages.push(
28970
- /* @__PURE__ */ import_react182.default.createElement("li", { key: `${message.date.toISOString()}-i` }, /* @__PURE__ */ import_react182.default.createElement(
28971
+ /* @__PURE__ */ import_react182.default.createElement(MessageListItem, { "data-index": index2, key: `${message.date.toISOString()}-i` }, /* @__PURE__ */ import_react182.default.createElement(
28971
28972
  DateSeparator2,
28972
28973
  {
28973
28974
  date: message.date,
@@ -28979,14 +28980,15 @@ function defaultRenderMessages({
28979
28980
  } else if (isIntroMessage(message)) {
28980
28981
  if (HeaderComponent) {
28981
28982
  renderedMessages.push(
28982
- /* @__PURE__ */ import_react182.default.createElement("li", { key: "intro" }, /* @__PURE__ */ import_react182.default.createElement(HeaderComponent, null))
28983
+ /* @__PURE__ */ import_react182.default.createElement(MessageListItem, { "data-index": index2, key: "intro" }, /* @__PURE__ */ import_react182.default.createElement(HeaderComponent, null))
28983
28984
  );
28984
28985
  }
28985
28986
  } else if (message.type === "system") {
28986
28987
  renderedMessages.push(
28987
28988
  /* @__PURE__ */ import_react182.default.createElement(
28988
- "li",
28989
+ MessageListItem,
28989
28990
  {
28991
+ "data-index": index2,
28990
28992
  "data-message-id": message.id,
28991
28993
  key: message.id || message.created_at.toISOString()
28992
28994
  },
@@ -29009,15 +29011,16 @@ function defaultRenderMessages({
29009
29011
  unreadMessageCount: channelUnreadUiState?.unread_messages
29010
29012
  });
29011
29013
  renderedMessages.push(
29012
- /* @__PURE__ */ import_react182.default.createElement(import_react182.Fragment, { key: message.id || message.created_at.toISOString() }, isFirstUnreadMessage && UnreadMessagesSeparator2 && /* @__PURE__ */ import_react182.default.createElement("li", { className: "str-chat__li str-chat__unread-messages-separator-wrapper" }, /* @__PURE__ */ import_react182.default.createElement(
29014
+ /* @__PURE__ */ import_react182.default.createElement(import_react182.Fragment, { key: message.id || message.created_at.toISOString() }, isFirstUnreadMessage && UnreadMessagesSeparator2 && /* @__PURE__ */ import_react182.default.createElement(MessageListItem, { className: "str-chat__li str-chat__unread-messages-separator-wrapper" }, /* @__PURE__ */ import_react182.default.createElement(
29013
29015
  UnreadMessagesSeparator2,
29014
29016
  {
29015
29017
  unreadCount: channelUnreadUiState?.unread_messages
29016
29018
  }
29017
29019
  )), /* @__PURE__ */ import_react182.default.createElement(
29018
- "li",
29020
+ MessageListItem,
29019
29021
  {
29020
29022
  className: messageClass,
29023
+ "data-index": index2,
29021
29024
  "data-message-id": message.id,
29022
29025
  "data-testid": messageClass
29023
29026
  },
@@ -29110,13 +29113,13 @@ var MessageListWithContext = (props) => {
29110
29113
  unsafeHTML = false
29111
29114
  } = props;
29112
29115
  const [listElement, setListElement] = import_react185.default.useState(null);
29113
- const [ulElement, setUlElement] = import_react185.default.useState(null);
29114
29116
  const { customClasses } = useChatContext("MessageList");
29115
29117
  const {
29116
29118
  EmptyStateIndicator: EmptyStateIndicator2 = EmptyStateIndicator,
29117
29119
  LoadingIndicator: LoadingIndicator2 = LoadingIndicator,
29118
29120
  MessageListMainPanel: MessageListMainPanel2 = MessageListMainPanel,
29119
29121
  MessageListNotifications: MessageListNotifications2 = MessageListNotifications,
29122
+ MessageListWrapper = "ul",
29120
29123
  MessageNotification: MessageNotification2 = MessageNotification,
29121
29124
  TypingIndicator: TypingIndicator2 = TypingIndicator,
29122
29125
  UnreadMessagesNotification: UnreadMessagesNotification2 = UnreadMessagesNotification
@@ -29223,7 +29226,7 @@ var MessageListWithContext = (props) => {
29223
29226
  }, [scrollToBottom, hasMoreNewer]);
29224
29227
  import_react185.default.useLayoutEffect(() => {
29225
29228
  if (highlightedMessageId) {
29226
- const element4 = ulElement?.querySelector(
29229
+ const element4 = listElement?.querySelector(
29227
29230
  `[data-message-id='${highlightedMessageId}']`
29228
29231
  );
29229
29232
  element4?.scrollIntoView({ block: "center" });
@@ -29232,51 +29235,62 @@ var MessageListWithContext = (props) => {
29232
29235
  const id = useStableId();
29233
29236
  const showEmptyStateIndicator = elements.length === 0 && !threadList;
29234
29237
  const dialogManagerId = threadList ? `message-list-dialog-manager-thread-${id}` : `message-list-dialog-manager-${id}`;
29235
- return /* @__PURE__ */ import_react185.default.createElement(MessageListContextProvider, { value: { listElement, scrollToBottom } }, /* @__PURE__ */ import_react185.default.createElement(MessageListMainPanel2, null, /* @__PURE__ */ import_react185.default.createElement(DialogManagerProvider, { id: dialogManagerId }, !threadList && showUnreadMessagesNotification && /* @__PURE__ */ import_react185.default.createElement(
29236
- UnreadMessagesNotification2,
29237
- {
29238
- unreadCount: channelUnreadUiState?.unread_messages
29239
- }
29240
- ), /* @__PURE__ */ import_react185.default.createElement(
29241
- "div",
29238
+ return /* @__PURE__ */ import_react185.default.createElement(
29239
+ MessageListContextProvider,
29242
29240
  {
29243
- className: (0, import_clsx46.default)(messageListClass, customClasses?.threadList),
29244
- onScroll,
29245
- ref: setListElement,
29246
- tabIndex: 0
29241
+ value: {
29242
+ listElement,
29243
+ processedMessages: enrichedMessages,
29244
+ scrollToBottom
29245
+ }
29247
29246
  },
29248
- showEmptyStateIndicator ? /* @__PURE__ */ import_react185.default.createElement(EmptyStateIndicator2, { listType: threadList ? "thread" : "message" }) : /* @__PURE__ */ import_react185.default.createElement(
29249
- InfiniteScroll,
29247
+ /* @__PURE__ */ import_react185.default.createElement(MessageListMainPanel2, null, /* @__PURE__ */ import_react185.default.createElement(DialogManagerProvider, { id: dialogManagerId }, !threadList && showUnreadMessagesNotification && /* @__PURE__ */ import_react185.default.createElement(
29248
+ UnreadMessagesNotification2,
29250
29249
  {
29251
- className: "str-chat__message-list-scroll",
29252
- "data-testid": "reverse-infinite-scroll",
29253
- hasNextPage: props.hasMoreNewer,
29254
- hasPreviousPage: props.hasMore,
29255
- head: props.head,
29256
- isLoading: props.loadingMore,
29257
- loader: /* @__PURE__ */ import_react185.default.createElement("div", { className: "str-chat__list__loading", key: "loading-indicator" }, props.loadingMore && /* @__PURE__ */ import_react185.default.createElement(LoadingIndicator2, { size: 20 })),
29258
- loadNextPage: loadMoreNewer,
29259
- loadPreviousPage: loadMore,
29260
- threshold: loadMoreScrollThreshold,
29261
- ...restInternalInfiniteScrollProps
29250
+ unreadCount: channelUnreadUiState?.unread_messages
29251
+ }
29252
+ ), /* @__PURE__ */ import_react185.default.createElement(
29253
+ "div",
29254
+ {
29255
+ className: (0, import_clsx46.default)(messageListClass, customClasses?.threadList),
29256
+ onScroll,
29257
+ ref: setListElement,
29258
+ tabIndex: 0
29262
29259
  },
29263
- /* @__PURE__ */ import_react185.default.createElement("ul", { className: "str-chat__ul", ref: setUlElement }, elements),
29264
- /* @__PURE__ */ import_react185.default.createElement(TypingIndicator2, { threadList }),
29265
- /* @__PURE__ */ import_react185.default.createElement("div", { key: "bottom" })
29260
+ showEmptyStateIndicator ? /* @__PURE__ */ import_react185.default.createElement(EmptyStateIndicator2, { listType: threadList ? "thread" : "message" }) : /* @__PURE__ */ import_react185.default.createElement(
29261
+ InfiniteScroll,
29262
+ {
29263
+ className: "str-chat__message-list-scroll",
29264
+ "data-testid": "reverse-infinite-scroll",
29265
+ hasNextPage: props.hasMoreNewer,
29266
+ hasPreviousPage: props.hasMore,
29267
+ head: props.head,
29268
+ isLoading: props.loadingMore,
29269
+ loader: /* @__PURE__ */ import_react185.default.createElement("div", { className: "str-chat__list__loading", key: "loading-indicator" }, props.loadingMore && /* @__PURE__ */ import_react185.default.createElement(LoadingIndicator2, { size: 20 })),
29270
+ loadNextPage: loadMoreNewer,
29271
+ loadPreviousPage: loadMore,
29272
+ threshold: loadMoreScrollThreshold,
29273
+ ...restInternalInfiniteScrollProps
29274
+ },
29275
+ /* @__PURE__ */ import_react185.default.createElement(MessageListWrapper, { className: "str-chat__ul" }, elements),
29276
+ /* @__PURE__ */ import_react185.default.createElement(TypingIndicator2, { threadList }),
29277
+ /* @__PURE__ */ import_react185.default.createElement("div", { key: "bottom" })
29278
+ )
29279
+ ))),
29280
+ /* @__PURE__ */ import_react185.default.createElement(
29281
+ MessageListNotifications2,
29282
+ {
29283
+ hasNewMessages,
29284
+ isMessageListScrolledToBottom,
29285
+ isNotAtLatestMessageSet: hasMoreNewer,
29286
+ MessageNotification: MessageNotification2,
29287
+ notifications,
29288
+ scrollToBottom: scrollToBottomFromNotification,
29289
+ threadList,
29290
+ unreadCount: threadList ? void 0 : channelUnreadUiState?.unread_messages
29291
+ }
29266
29292
  )
29267
- ))), /* @__PURE__ */ import_react185.default.createElement(
29268
- MessageListNotifications2,
29269
- {
29270
- hasNewMessages,
29271
- isMessageListScrolledToBottom,
29272
- isNotAtLatestMessageSet: hasMoreNewer,
29273
- MessageNotification: MessageNotification2,
29274
- notifications,
29275
- scrollToBottom: scrollToBottomFromNotification,
29276
- threadList,
29277
- unreadCount: threadList ? void 0 : channelUnreadUiState?.unread_messages
29278
- }
29279
- ));
29293
+ );
29280
29294
  };
29281
29295
  var MessageList = (props) => {
29282
29296
  const { jumpToLatestMessage, loadMore, loadMoreNewer } = useChannelActionContext("MessageList");
@@ -37296,7 +37310,7 @@ var useChat = ({
37296
37310
  };
37297
37311
  (0, import_react288.useEffect)(() => {
37298
37312
  if (!client) return;
37299
- const version = "13.12.0";
37313
+ const version = "13.13.0";
37300
37314
  const userAgent = client.getUserAgent();
37301
37315
  if (!userAgent.includes("stream-chat-react")) {
37302
37316
  client.setUserAgent(`stream-chat-react-${version}-${userAgent}`);