stream-chat-react 12.8.1 → 12.8.2
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.
- package/dist/components/Chat/hooks/useChat.js +1 -1
- package/dist/components/MessageList/VirtualizedMessageListComponents.js +12 -19
- package/dist/components/MessageList/hooks/useMarkRead.js +3 -6
- package/dist/components/MessageList/renderMessages.js +14 -21
- package/dist/components/MessageList/utils.d.ts +9 -0
- package/dist/components/MessageList/utils.js +8 -0
- package/dist/index.browser.cjs +44 -25
- package/dist/index.browser.cjs.map +2 -2
- package/dist/index.node.cjs +45 -25
- package/dist/index.node.cjs.map +2 -2
- package/package.json +1 -1
package/dist/index.node.cjs
CHANGED
|
@@ -20327,6 +20327,7 @@ __export(src_exports, {
|
|
|
20327
20327
|
getGroupChannelDisplayInfo: () => getGroupChannelDisplayInfo,
|
|
20328
20328
|
getGroupStyles: () => getGroupStyles,
|
|
20329
20329
|
getImages: () => getImages,
|
|
20330
|
+
getIsFirstUnreadMessage: () => getIsFirstUnreadMessage,
|
|
20330
20331
|
getLastReceived: () => getLastReceived,
|
|
20331
20332
|
getLatestMessagePreview: () => getLatestMessagePreview,
|
|
20332
20333
|
getMessageActions: () => getMessageActions,
|
|
@@ -52386,6 +52387,21 @@ var hasNotMoreMessages = (returnedCountMessages, limit) => returnedCountMessages
|
|
|
52386
52387
|
function isDateSeparatorMessage(message) {
|
|
52387
52388
|
return message.customType === CUSTOM_MESSAGE_TYPE.date && !!message.date && isDate(message.date);
|
|
52388
52389
|
}
|
|
52390
|
+
var getIsFirstUnreadMessage = ({
|
|
52391
|
+
firstUnreadMessageId,
|
|
52392
|
+
isFirstMessage,
|
|
52393
|
+
lastReadDate,
|
|
52394
|
+
lastReadMessageId,
|
|
52395
|
+
message,
|
|
52396
|
+
previousMessage,
|
|
52397
|
+
unreadMessageCount = 0
|
|
52398
|
+
}) => {
|
|
52399
|
+
const createdAtTimestamp = message.created_at && new Date(message.created_at).getTime();
|
|
52400
|
+
const lastReadTimestamp = lastReadDate?.getTime();
|
|
52401
|
+
const messageIsUnread = !!createdAtTimestamp && !!lastReadTimestamp && createdAtTimestamp > lastReadTimestamp;
|
|
52402
|
+
const previousMessageIsLastRead = !!lastReadMessageId && lastReadMessageId === previousMessage?.id;
|
|
52403
|
+
return firstUnreadMessageId === message.id || !!unreadMessageCount && messageIsUnread && (isFirstMessage || previousMessageIsLastRead);
|
|
52404
|
+
};
|
|
52389
52405
|
|
|
52390
52406
|
// src/components/MessageList/hooks/MessageList/useEnrichedMessages.ts
|
|
52391
52407
|
var useEnrichedMessages = (args) => {
|
|
@@ -52742,7 +52758,6 @@ var useMarkRead = ({
|
|
|
52742
52758
|
if (shouldMarkRead(channel.countUnread())) markRead();
|
|
52743
52759
|
};
|
|
52744
52760
|
const handleMessageNew = (event) => {
|
|
52745
|
-
const newMessageToCurrentChannel = event.cid === channel.cid;
|
|
52746
52761
|
const isOwnMessage = event.user?.id && event.user.id === client.user?.id;
|
|
52747
52762
|
const mainChannelUpdated = !event.message?.parent_id || event.message?.show_in_channel;
|
|
52748
52763
|
if (isOwnMessage) return;
|
|
@@ -52760,17 +52775,17 @@ var useMarkRead = ({
|
|
|
52760
52775
|
unread_messages: previousUnreadCount + 1
|
|
52761
52776
|
};
|
|
52762
52777
|
});
|
|
52763
|
-
} else if (
|
|
52778
|
+
} else if (mainChannelUpdated && shouldMarkRead(channel.countUnread())) {
|
|
52764
52779
|
markRead();
|
|
52765
52780
|
}
|
|
52766
52781
|
};
|
|
52767
|
-
|
|
52782
|
+
channel.on("message.new", handleMessageNew);
|
|
52768
52783
|
document.addEventListener("visibilitychange", onVisibilityChange);
|
|
52769
52784
|
const hasScrolledToBottom = previousRenderMessageListScrolledToBottom.current !== isMessageListScrolledToBottom && isMessageListScrolledToBottom;
|
|
52770
52785
|
if (hasScrolledToBottom && shouldMarkRead(channel.countUnread())) markRead();
|
|
52771
52786
|
previousRenderMessageListScrolledToBottom.current = isMessageListScrolledToBottom;
|
|
52772
52787
|
return () => {
|
|
52773
|
-
|
|
52788
|
+
channel.off("message.new", handleMessageNew);
|
|
52774
52789
|
document.removeEventListener("visibilitychange", onVisibilityChange);
|
|
52775
52790
|
};
|
|
52776
52791
|
}, [
|
|
@@ -53205,6 +53220,7 @@ function defaultRenderMessages({
|
|
|
53205
53220
|
} = components;
|
|
53206
53221
|
const renderedMessages = [];
|
|
53207
53222
|
let firstMessage;
|
|
53223
|
+
let previousMessage = void 0;
|
|
53208
53224
|
for (let index3 = 0; index3 < messages.length; index3++) {
|
|
53209
53225
|
const message = messages[index3];
|
|
53210
53226
|
if (isDateSeparatorMessage(message)) {
|
|
@@ -53232,16 +53248,17 @@ function defaultRenderMessages({
|
|
|
53232
53248
|
}
|
|
53233
53249
|
const groupStyles = messageGroupStyles[message.id] || "";
|
|
53234
53250
|
const messageClass = customClasses?.message || `str-chat__li str-chat__li--${groupStyles}`;
|
|
53235
|
-
const
|
|
53236
|
-
|
|
53237
|
-
|
|
53238
|
-
|
|
53239
|
-
|
|
53240
|
-
|
|
53241
|
-
|
|
53242
|
-
|
|
53251
|
+
const isFirstUnreadMessage = getIsFirstUnreadMessage({
|
|
53252
|
+
firstUnreadMessageId: channelUnreadUiState?.first_unread_message_id,
|
|
53253
|
+
isFirstMessage: !!firstMessage?.id && firstMessage.id === message.id,
|
|
53254
|
+
lastReadDate: channelUnreadUiState?.last_read,
|
|
53255
|
+
lastReadMessageId: channelUnreadUiState?.last_read_message_id,
|
|
53256
|
+
message,
|
|
53257
|
+
previousMessage,
|
|
53258
|
+
unreadMessageCount: channelUnreadUiState?.unread_messages
|
|
53259
|
+
});
|
|
53243
53260
|
renderedMessages.push(
|
|
53244
|
-
/* @__PURE__ */ import_react245.default.createElement(import_react245.Fragment, { key: message.id || message.created_at },
|
|
53261
|
+
/* @__PURE__ */ import_react245.default.createElement(import_react245.Fragment, { key: message.id || message.created_at }, isFirstUnreadMessage && UnreadMessagesSeparator2 && /* @__PURE__ */ import_react245.default.createElement("li", { className: "str-chat__li str-chat__unread-messages-separator-wrapper" }, /* @__PURE__ */ import_react245.default.createElement(UnreadMessagesSeparator2, { unreadCount: channelUnreadUiState?.unread_messages })), /* @__PURE__ */ import_react245.default.createElement("li", { className: messageClass, "data-message-id": message.id, "data-testid": messageClass }, /* @__PURE__ */ import_react245.default.createElement(
|
|
53245
53262
|
Message,
|
|
53246
53263
|
{
|
|
53247
53264
|
groupStyles: [groupStyles],
|
|
@@ -53250,8 +53267,9 @@ function defaultRenderMessages({
|
|
|
53250
53267
|
readBy: readData[message.id] || [],
|
|
53251
53268
|
...messageProps
|
|
53252
53269
|
}
|
|
53253
|
-
))
|
|
53270
|
+
)))
|
|
53254
53271
|
);
|
|
53272
|
+
previousMessage = message;
|
|
53255
53273
|
}
|
|
53256
53274
|
}
|
|
53257
53275
|
return renderedMessages;
|
|
@@ -53851,15 +53869,16 @@ var messageRenderer = (virtuosoIndex, _data, virtuosoContext) => {
|
|
|
53851
53869
|
const maybeNextMessage = messageList[streamMessageIndex + 1];
|
|
53852
53870
|
const firstOfGroup = shouldGroupByUser && (message.user?.id !== maybePrevMessage?.user?.id || maybePrevMessage && isMessageEdited(maybePrevMessage));
|
|
53853
53871
|
const endOfGroup = shouldGroupByUser && (message.user?.id !== maybeNextMessage?.user?.id || isMessageEdited(message));
|
|
53854
|
-
const
|
|
53855
|
-
|
|
53856
|
-
|
|
53857
|
-
|
|
53858
|
-
|
|
53859
|
-
|
|
53860
|
-
|
|
53861
|
-
|
|
53862
|
-
|
|
53872
|
+
const isFirstUnreadMessage = getIsFirstUnreadMessage({
|
|
53873
|
+
firstUnreadMessageId,
|
|
53874
|
+
isFirstMessage: streamMessageIndex === 0,
|
|
53875
|
+
lastReadDate,
|
|
53876
|
+
lastReadMessageId,
|
|
53877
|
+
message,
|
|
53878
|
+
previousMessage: streamMessageIndex ? messageList[streamMessageIndex - 1] : void 0,
|
|
53879
|
+
unreadMessageCount
|
|
53880
|
+
});
|
|
53881
|
+
return /* @__PURE__ */ import_react255.default.createElement(import_react255.default.Fragment, null, isFirstUnreadMessage && /* @__PURE__ */ import_react255.default.createElement("div", { className: "str-chat__unread-messages-separator-wrapper" }, /* @__PURE__ */ import_react255.default.createElement(UnreadMessagesSeparator2, { unreadCount: unreadMessageCount })), /* @__PURE__ */ import_react255.default.createElement(
|
|
53863
53882
|
Message,
|
|
53864
53883
|
{
|
|
53865
53884
|
additionalMessageInputProps,
|
|
@@ -53882,7 +53901,7 @@ var messageRenderer = (virtuosoIndex, _data, virtuosoContext) => {
|
|
|
53882
53901
|
sortReactions,
|
|
53883
53902
|
threadList
|
|
53884
53903
|
}
|
|
53885
|
-
)
|
|
53904
|
+
));
|
|
53886
53905
|
};
|
|
53887
53906
|
|
|
53888
53907
|
// src/components/MessageList/VirtualizedMessageList.tsx
|
|
@@ -55359,7 +55378,7 @@ var useChat = ({
|
|
|
55359
55378
|
if (!client) return;
|
|
55360
55379
|
const userAgent = client.getUserAgent();
|
|
55361
55380
|
if (!userAgent.includes("stream-chat-react")) {
|
|
55362
|
-
client.setUserAgent(`stream-chat-react-12.8.
|
|
55381
|
+
client.setUserAgent(`stream-chat-react-12.8.2-${userAgent}`);
|
|
55363
55382
|
}
|
|
55364
55383
|
client.threads.registerSubscriptions();
|
|
55365
55384
|
client.polls.registerSubscriptions();
|
|
@@ -55996,6 +56015,7 @@ var Window = import_react270.default.memo(UnMemoizedWindow);
|
|
|
55996
56015
|
getGroupChannelDisplayInfo,
|
|
55997
56016
|
getGroupStyles,
|
|
55998
56017
|
getImages,
|
|
56018
|
+
getIsFirstUnreadMessage,
|
|
55999
56019
|
getLastReceived,
|
|
56000
56020
|
getLatestMessagePreview,
|
|
56001
56021
|
getMessageActions,
|