stream-chat-react 13.8.0 → 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 (67) 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/dist/types/defaultDataInterfaces.d.ts +1 -0
  67. package/package.json +4 -4
@@ -16471,46 +16471,52 @@ var useMessageDeliveryStatus = ({
16471
16471
  const { client } = useChatContext();
16472
16472
  const [messageDeliveryStatus, setMessageDeliveryStatus] = (0, import_react34.useState)();
16473
16473
  const isOwnMessage = (0, import_react34.useCallback)(
16474
- (message) => client.user && message?.user?.id === client.user.id,
16474
+ (message) => client.user && message && message.user?.id === client.user.id,
16475
16475
  [client]
16476
16476
  );
16477
16477
  (0, import_react34.useEffect)(() => {
16478
+ if (!lastMessage) {
16479
+ setMessageDeliveryStatus(void 0);
16480
+ }
16478
16481
  const lastMessageIsOwn = isOwnMessage(lastMessage);
16479
16482
  if (!lastMessage?.created_at || !lastMessageIsOwn) return;
16480
- const lastMessageCreatedAtDate = typeof lastMessage.created_at === "string" ? new Date(lastMessage.created_at) : lastMessage.created_at;
16481
- const channelReadByOthersAfterLastMessageUpdate = Object.values(
16482
- channel.state.read
16483
- ).some(({ last_read: channelLastMarkedReadDate, user }) => {
16484
- const ignoreOwnReadStatus = client.user && user.id !== client.user.id;
16485
- return ignoreOwnReadStatus && lastMessageCreatedAtDate < channelLastMarkedReadDate;
16486
- });
16483
+ const msgRef = {
16484
+ msgId: lastMessage.id,
16485
+ timestampMs: lastMessage.created_at.getTime()
16486
+ };
16487
16487
  setMessageDeliveryStatus(
16488
- channelReadByOthersAfterLastMessageUpdate ? "read" /* READ */ : "delivered" /* DELIVERED */
16488
+ channel.messageReceiptsTracker.readersForMessage(msgRef).length > 0 ? "read" /* READ */ : channel.messageReceiptsTracker.deliveredForMessage(msgRef).length > 0 ? "delivered" /* DELIVERED */ : "sent" /* SENT */
16489
16489
  );
16490
- }, [channel.state.read, client, isOwnMessage, lastMessage]);
16490
+ }, [channel, isOwnMessage, lastMessage]);
16491
16491
  (0, import_react34.useEffect)(() => {
16492
16492
  const handleMessageNew = (event) => {
16493
16493
  if (!isOwnMessage(event.message)) {
16494
16494
  return setMessageDeliveryStatus(void 0);
16495
16495
  }
16496
- return setMessageDeliveryStatus("delivered" /* DELIVERED */);
16496
+ return setMessageDeliveryStatus("sent" /* SENT */);
16497
16497
  };
16498
16498
  channel.on("message.new", handleMessageNew);
16499
16499
  return () => {
16500
16500
  channel.off("message.new", handleMessageNew);
16501
16501
  };
16502
- }, [channel, client, isOwnMessage]);
16502
+ }, [channel, isOwnMessage]);
16503
16503
  (0, import_react34.useEffect)(() => {
16504
16504
  if (!isOwnMessage(lastMessage)) return;
16505
+ const handleMessageDelivered = (event) => {
16506
+ if (event.user?.id !== client.user?.id && lastMessage && lastMessage.id === event.last_delivered_message_id)
16507
+ setMessageDeliveryStatus("delivered" /* DELIVERED */);
16508
+ };
16505
16509
  const handleMarkRead = (event) => {
16506
16510
  if (event.user?.id !== client.user?.id)
16507
16511
  setMessageDeliveryStatus("read" /* READ */);
16508
16512
  };
16513
+ channel.on("message.delivered", handleMessageDelivered);
16509
16514
  channel.on("message.read", handleMarkRead);
16510
16515
  return () => {
16516
+ channel.off("message.delivered", handleMessageDelivered);
16511
16517
  channel.off("message.read", handleMarkRead);
16512
16518
  };
16513
- }, [channel, client, lastMessage, isOwnMessage]);
16519
+ }, [channel, client, isOwnMessage, lastMessage]);
16514
16520
  return {
16515
16521
  messageDeliveryStatus
16516
16522
  };