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.
@@ -30827,6 +30827,7 @@ function defaultRenderMessages({
30827
30827
  const {
30828
30828
  DateSeparator: DateSeparator2 = DateSeparator,
30829
30829
  HeaderComponent,
30830
+ MessageListItem = "li",
30830
30831
  MessageSystem = EventComponent,
30831
30832
  UnreadMessagesSeparator: UnreadMessagesSeparator2 = UnreadMessagesSeparator
30832
30833
  } = components;
@@ -30837,7 +30838,7 @@ function defaultRenderMessages({
30837
30838
  const message = messages[index2];
30838
30839
  if (isDateSeparatorMessage(message)) {
30839
30840
  renderedMessages.push(
30840
- /* @__PURE__ */ import_react182.default.createElement("li", { key: `${message.date.toISOString()}-i` }, /* @__PURE__ */ import_react182.default.createElement(
30841
+ /* @__PURE__ */ import_react182.default.createElement(MessageListItem, { "data-index": index2, key: `${message.date.toISOString()}-i` }, /* @__PURE__ */ import_react182.default.createElement(
30841
30842
  DateSeparator2,
30842
30843
  {
30843
30844
  date: message.date,
@@ -30849,14 +30850,15 @@ function defaultRenderMessages({
30849
30850
  } else if (isIntroMessage(message)) {
30850
30851
  if (HeaderComponent) {
30851
30852
  renderedMessages.push(
30852
- /* @__PURE__ */ import_react182.default.createElement("li", { key: "intro" }, /* @__PURE__ */ import_react182.default.createElement(HeaderComponent, null))
30853
+ /* @__PURE__ */ import_react182.default.createElement(MessageListItem, { "data-index": index2, key: "intro" }, /* @__PURE__ */ import_react182.default.createElement(HeaderComponent, null))
30853
30854
  );
30854
30855
  }
30855
30856
  } else if (message.type === "system") {
30856
30857
  renderedMessages.push(
30857
30858
  /* @__PURE__ */ import_react182.default.createElement(
30858
- "li",
30859
+ MessageListItem,
30859
30860
  {
30861
+ "data-index": index2,
30860
30862
  "data-message-id": message.id,
30861
30863
  key: message.id || message.created_at.toISOString()
30862
30864
  },
@@ -30879,15 +30881,16 @@ function defaultRenderMessages({
30879
30881
  unreadMessageCount: channelUnreadUiState?.unread_messages
30880
30882
  });
30881
30883
  renderedMessages.push(
30882
- /* @__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(
30884
+ /* @__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(
30883
30885
  UnreadMessagesSeparator2,
30884
30886
  {
30885
30887
  unreadCount: channelUnreadUiState?.unread_messages
30886
30888
  }
30887
30889
  )), /* @__PURE__ */ import_react182.default.createElement(
30888
- "li",
30890
+ MessageListItem,
30889
30891
  {
30890
30892
  className: messageClass,
30893
+ "data-index": index2,
30891
30894
  "data-message-id": message.id,
30892
30895
  "data-testid": messageClass
30893
30896
  },
@@ -30980,13 +30983,13 @@ var MessageListWithContext = (props) => {
30980
30983
  unsafeHTML = false
30981
30984
  } = props;
30982
30985
  const [listElement, setListElement] = import_react185.default.useState(null);
30983
- const [ulElement, setUlElement] = import_react185.default.useState(null);
30984
30986
  const { customClasses } = useChatContext("MessageList");
30985
30987
  const {
30986
30988
  EmptyStateIndicator: EmptyStateIndicator2 = EmptyStateIndicator,
30987
30989
  LoadingIndicator: LoadingIndicator2 = LoadingIndicator,
30988
30990
  MessageListMainPanel: MessageListMainPanel2 = MessageListMainPanel,
30989
30991
  MessageListNotifications: MessageListNotifications2 = MessageListNotifications,
30992
+ MessageListWrapper = "ul",
30990
30993
  MessageNotification: MessageNotification2 = MessageNotification,
30991
30994
  TypingIndicator: TypingIndicator2 = TypingIndicator,
30992
30995
  UnreadMessagesNotification: UnreadMessagesNotification2 = UnreadMessagesNotification
@@ -31093,7 +31096,7 @@ var MessageListWithContext = (props) => {
31093
31096
  }, [scrollToBottom, hasMoreNewer]);
31094
31097
  import_react185.default.useLayoutEffect(() => {
31095
31098
  if (highlightedMessageId) {
31096
- const element3 = ulElement?.querySelector(
31099
+ const element3 = listElement?.querySelector(
31097
31100
  `[data-message-id='${highlightedMessageId}']`
31098
31101
  );
31099
31102
  element3?.scrollIntoView({ block: "center" });
@@ -31102,51 +31105,62 @@ var MessageListWithContext = (props) => {
31102
31105
  const id = useStableId();
31103
31106
  const showEmptyStateIndicator = elements.length === 0 && !threadList;
31104
31107
  const dialogManagerId = threadList ? `message-list-dialog-manager-thread-${id}` : `message-list-dialog-manager-${id}`;
31105
- 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(
31106
- UnreadMessagesNotification2,
31107
- {
31108
- unreadCount: channelUnreadUiState?.unread_messages
31109
- }
31110
- ), /* @__PURE__ */ import_react185.default.createElement(
31111
- "div",
31108
+ return /* @__PURE__ */ import_react185.default.createElement(
31109
+ MessageListContextProvider,
31112
31110
  {
31113
- className: (0, import_clsx46.default)(messageListClass, customClasses?.threadList),
31114
- onScroll,
31115
- ref: setListElement,
31116
- tabIndex: 0
31111
+ value: {
31112
+ listElement,
31113
+ processedMessages: enrichedMessages,
31114
+ scrollToBottom
31115
+ }
31117
31116
  },
31118
- showEmptyStateIndicator ? /* @__PURE__ */ import_react185.default.createElement(EmptyStateIndicator2, { listType: threadList ? "thread" : "message" }) : /* @__PURE__ */ import_react185.default.createElement(
31119
- InfiniteScroll,
31117
+ /* @__PURE__ */ import_react185.default.createElement(MessageListMainPanel2, null, /* @__PURE__ */ import_react185.default.createElement(DialogManagerProvider, { id: dialogManagerId }, !threadList && showUnreadMessagesNotification && /* @__PURE__ */ import_react185.default.createElement(
31118
+ UnreadMessagesNotification2,
31120
31119
  {
31121
- className: "str-chat__message-list-scroll",
31122
- "data-testid": "reverse-infinite-scroll",
31123
- hasNextPage: props.hasMoreNewer,
31124
- hasPreviousPage: props.hasMore,
31125
- head: props.head,
31126
- isLoading: props.loadingMore,
31127
- 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 })),
31128
- loadNextPage: loadMoreNewer,
31129
- loadPreviousPage: loadMore,
31130
- threshold: loadMoreScrollThreshold,
31131
- ...restInternalInfiniteScrollProps
31120
+ unreadCount: channelUnreadUiState?.unread_messages
31121
+ }
31122
+ ), /* @__PURE__ */ import_react185.default.createElement(
31123
+ "div",
31124
+ {
31125
+ className: (0, import_clsx46.default)(messageListClass, customClasses?.threadList),
31126
+ onScroll,
31127
+ ref: setListElement,
31128
+ tabIndex: 0
31132
31129
  },
31133
- /* @__PURE__ */ import_react185.default.createElement("ul", { className: "str-chat__ul", ref: setUlElement }, elements),
31134
- /* @__PURE__ */ import_react185.default.createElement(TypingIndicator2, { threadList }),
31135
- /* @__PURE__ */ import_react185.default.createElement("div", { key: "bottom" })
31130
+ showEmptyStateIndicator ? /* @__PURE__ */ import_react185.default.createElement(EmptyStateIndicator2, { listType: threadList ? "thread" : "message" }) : /* @__PURE__ */ import_react185.default.createElement(
31131
+ InfiniteScroll,
31132
+ {
31133
+ className: "str-chat__message-list-scroll",
31134
+ "data-testid": "reverse-infinite-scroll",
31135
+ hasNextPage: props.hasMoreNewer,
31136
+ hasPreviousPage: props.hasMore,
31137
+ head: props.head,
31138
+ isLoading: props.loadingMore,
31139
+ 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 })),
31140
+ loadNextPage: loadMoreNewer,
31141
+ loadPreviousPage: loadMore,
31142
+ threshold: loadMoreScrollThreshold,
31143
+ ...restInternalInfiniteScrollProps
31144
+ },
31145
+ /* @__PURE__ */ import_react185.default.createElement(MessageListWrapper, { className: "str-chat__ul" }, elements),
31146
+ /* @__PURE__ */ import_react185.default.createElement(TypingIndicator2, { threadList }),
31147
+ /* @__PURE__ */ import_react185.default.createElement("div", { key: "bottom" })
31148
+ )
31149
+ ))),
31150
+ /* @__PURE__ */ import_react185.default.createElement(
31151
+ MessageListNotifications2,
31152
+ {
31153
+ hasNewMessages,
31154
+ isMessageListScrolledToBottom,
31155
+ isNotAtLatestMessageSet: hasMoreNewer,
31156
+ MessageNotification: MessageNotification2,
31157
+ notifications,
31158
+ scrollToBottom: scrollToBottomFromNotification,
31159
+ threadList,
31160
+ unreadCount: threadList ? void 0 : channelUnreadUiState?.unread_messages
31161
+ }
31136
31162
  )
31137
- ))), /* @__PURE__ */ import_react185.default.createElement(
31138
- MessageListNotifications2,
31139
- {
31140
- hasNewMessages,
31141
- isMessageListScrolledToBottom,
31142
- isNotAtLatestMessageSet: hasMoreNewer,
31143
- MessageNotification: MessageNotification2,
31144
- notifications,
31145
- scrollToBottom: scrollToBottomFromNotification,
31146
- threadList,
31147
- unreadCount: threadList ? void 0 : channelUnreadUiState?.unread_messages
31148
- }
31149
- ));
31163
+ );
31150
31164
  };
31151
31165
  var MessageList = (props) => {
31152
31166
  const { jumpToLatestMessage, loadMore, loadMoreNewer } = useChannelActionContext("MessageList");
@@ -39166,7 +39180,7 @@ var useChat = ({
39166
39180
  };
39167
39181
  (0, import_react288.useEffect)(() => {
39168
39182
  if (!client) return;
39169
- const version = "13.12.0";
39183
+ const version = "13.13.0";
39170
39184
  const userAgent = client.getUserAgent();
39171
39185
  if (!userAgent.includes("stream-chat-react")) {
39172
39186
  client.setUserAgent(`stream-chat-react-${version}-${userAgent}`);