stream-chat-react 13.8.1 → 13.9.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 (66) hide show
  1. package/dist/components/Channel/Channel.d.ts +2 -2
  2. package/dist/components/Channel/Channel.js +3 -3
  3. package/dist/components/Channel/hooks/useCreateChannelStateContext.js +3 -1
  4. package/dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.d.ts +1 -0
  5. package/dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.js +26 -14
  6. package/dist/components/Chat/hooks/useChat.js +1 -1
  7. package/dist/components/Message/Message.js +1 -1
  8. package/dist/components/Message/MessageStatus.d.ts +1 -0
  9. package/dist/components/Message/MessageStatus.js +22 -12
  10. package/dist/components/Message/hooks/useDeleteHandler.js +2 -2
  11. package/dist/components/Message/icons.d.ts +1 -0
  12. package/dist/components/Message/icons.js +6 -2
  13. package/dist/components/Message/types.d.ts +2 -0
  14. package/dist/components/Message/utils.d.ts +4 -1
  15. package/dist/components/Message/utils.js +9 -0
  16. package/dist/components/MessageActions/MessageActionsBox.js +3 -1
  17. package/dist/components/MessageList/MessageList.js +2 -2
  18. package/dist/components/MessageList/VirtualizedMessageList.d.ts +2 -0
  19. package/dist/components/MessageList/VirtualizedMessageList.js +10 -4
  20. package/dist/components/MessageList/VirtualizedMessageListComponents.js +2 -2
  21. package/dist/components/MessageList/hooks/MessageList/useMessageListElements.d.ts +2 -2
  22. package/dist/components/MessageList/hooks/MessageList/useMessageListElements.js +13 -5
  23. package/dist/components/MessageList/hooks/useLastDeliveredData.d.ts +8 -0
  24. package/dist/components/MessageList/hooks/useLastDeliveredData.js +13 -0
  25. package/dist/components/MessageList/hooks/useLastReadData.d.ts +3 -8
  26. package/dist/components/MessageList/hooks/useLastReadData.js +10 -7
  27. package/dist/components/MessageList/renderMessages.d.ts +5 -4
  28. package/dist/components/MessageList/renderMessages.js +2 -2
  29. package/dist/components/MessageList/utils.d.ts +1 -5
  30. package/dist/components/MessageList/utils.js +0 -30
  31. package/dist/context/ChannelActionContext.d.ts +2 -2
  32. package/dist/context/MessageContext.d.ts +5 -3
  33. package/dist/css/v2/index.css +1 -1
  34. package/dist/css/v2/index.layout.css +1 -1
  35. package/dist/experimental/index.browser.cjs +19 -13
  36. package/dist/experimental/index.browser.cjs.map +2 -2
  37. package/dist/experimental/index.node.cjs +19 -13
  38. package/dist/experimental/index.node.cjs.map +2 -2
  39. package/dist/i18n/Streami18n.d.ts +2 -0
  40. package/dist/i18n/de.json +2 -0
  41. package/dist/i18n/en.json +2 -0
  42. package/dist/i18n/es.json +2 -0
  43. package/dist/i18n/fr.json +2 -0
  44. package/dist/i18n/hi.json +2 -0
  45. package/dist/i18n/it.json +2 -0
  46. package/dist/i18n/ja.json +2 -0
  47. package/dist/i18n/ko.json +2 -0
  48. package/dist/i18n/nl.json +2 -0
  49. package/dist/i18n/pt.json +2 -0
  50. package/dist/i18n/ru.json +2 -0
  51. package/dist/i18n/tr.json +2 -0
  52. package/dist/index.browser.cjs +984 -885
  53. package/dist/index.browser.cjs.map +4 -4
  54. package/dist/index.node.cjs +986 -886
  55. package/dist/index.node.cjs.map +4 -4
  56. package/dist/plugins/Emojis/index.browser.cjs.map +2 -2
  57. package/dist/plugins/Emojis/index.node.cjs.map +2 -2
  58. package/dist/scss/v2/Dialog/Dialog-layout.scss +12 -3
  59. package/dist/scss/v2/Icon/Icon-layout.scss +6 -0
  60. package/dist/scss/v2/Icon/Icon-theme.scss +4 -0
  61. package/dist/scss/v2/Message/Message-layout.scss +30 -3
  62. package/dist/scss/v2/Message/Message-theme.scss +9 -0
  63. package/dist/scss/v2/MessageInput/MessageInput-layout.scss +8 -0
  64. package/dist/scss/v2/MessageInput/MessageInput-theme.scss +2 -1
  65. package/dist/scss/v2/Poll/Poll-layout.scss +29 -7
  66. package/package.json +4 -4
@@ -14601,46 +14601,52 @@ var useMessageDeliveryStatus = ({
14601
14601
  const { client } = useChatContext();
14602
14602
  const [messageDeliveryStatus, setMessageDeliveryStatus] = (0, import_react34.useState)();
14603
14603
  const isOwnMessage = (0, import_react34.useCallback)(
14604
- (message) => client.user && message?.user?.id === client.user.id,
14604
+ (message) => client.user && message && message.user?.id === client.user.id,
14605
14605
  [client]
14606
14606
  );
14607
14607
  (0, import_react34.useEffect)(() => {
14608
+ if (!lastMessage) {
14609
+ setMessageDeliveryStatus(void 0);
14610
+ }
14608
14611
  const lastMessageIsOwn = isOwnMessage(lastMessage);
14609
14612
  if (!lastMessage?.created_at || !lastMessageIsOwn) return;
14610
- const lastMessageCreatedAtDate = typeof lastMessage.created_at === "string" ? new Date(lastMessage.created_at) : lastMessage.created_at;
14611
- const channelReadByOthersAfterLastMessageUpdate = Object.values(
14612
- channel.state.read
14613
- ).some(({ last_read: channelLastMarkedReadDate, user }) => {
14614
- const ignoreOwnReadStatus = client.user && user.id !== client.user.id;
14615
- return ignoreOwnReadStatus && lastMessageCreatedAtDate < channelLastMarkedReadDate;
14616
- });
14613
+ const msgRef = {
14614
+ msgId: lastMessage.id,
14615
+ timestampMs: lastMessage.created_at.getTime()
14616
+ };
14617
14617
  setMessageDeliveryStatus(
14618
- channelReadByOthersAfterLastMessageUpdate ? "read" /* READ */ : "delivered" /* DELIVERED */
14618
+ channel.messageReceiptsTracker.readersForMessage(msgRef).length > 0 ? "read" /* READ */ : channel.messageReceiptsTracker.deliveredForMessage(msgRef).length > 0 ? "delivered" /* DELIVERED */ : "sent" /* SENT */
14619
14619
  );
14620
- }, [channel.state.read, client, isOwnMessage, lastMessage]);
14620
+ }, [channel, isOwnMessage, lastMessage]);
14621
14621
  (0, import_react34.useEffect)(() => {
14622
14622
  const handleMessageNew = (event) => {
14623
14623
  if (!isOwnMessage(event.message)) {
14624
14624
  return setMessageDeliveryStatus(void 0);
14625
14625
  }
14626
- return setMessageDeliveryStatus("delivered" /* DELIVERED */);
14626
+ return setMessageDeliveryStatus("sent" /* SENT */);
14627
14627
  };
14628
14628
  channel.on("message.new", handleMessageNew);
14629
14629
  return () => {
14630
14630
  channel.off("message.new", handleMessageNew);
14631
14631
  };
14632
- }, [channel, client, isOwnMessage]);
14632
+ }, [channel, isOwnMessage]);
14633
14633
  (0, import_react34.useEffect)(() => {
14634
14634
  if (!isOwnMessage(lastMessage)) return;
14635
+ const handleMessageDelivered = (event) => {
14636
+ if (event.user?.id !== client.user?.id && lastMessage && lastMessage.id === event.last_delivered_message_id)
14637
+ setMessageDeliveryStatus("delivered" /* DELIVERED */);
14638
+ };
14635
14639
  const handleMarkRead = (event) => {
14636
14640
  if (event.user?.id !== client.user?.id)
14637
14641
  setMessageDeliveryStatus("read" /* READ */);
14638
14642
  };
14643
+ channel.on("message.delivered", handleMessageDelivered);
14639
14644
  channel.on("message.read", handleMarkRead);
14640
14645
  return () => {
14646
+ channel.off("message.delivered", handleMessageDelivered);
14641
14647
  channel.off("message.read", handleMarkRead);
14642
14648
  };
14643
- }, [channel, client, lastMessage, isOwnMessage]);
14649
+ }, [channel, client, isOwnMessage, lastMessage]);
14644
14650
  return {
14645
14651
  messageDeliveryStatus
14646
14652
  };