stream-chat-react 11.0.0-rc.1 → 11.0.0-rc.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.
Files changed (212) hide show
  1. package/dist/browser.full-bundle.js +9308 -12495
  2. package/dist/browser.full-bundle.js.map +1 -1
  3. package/dist/browser.full-bundle.min.js +5 -5
  4. package/dist/browser.full-bundle.min.js.map +1 -1
  5. package/dist/components/AutoCompleteTextarea/Item.d.ts.map +1 -1
  6. package/dist/components/AutoCompleteTextarea/Item.js +4 -3
  7. package/dist/components/AutoCompleteTextarea/List.d.ts.map +1 -1
  8. package/dist/components/AutoCompleteTextarea/List.js +10 -8
  9. package/dist/components/AutoCompleteTextarea/Textarea.d.ts +1 -1
  10. package/dist/components/AutoCompleteTextarea/Textarea.d.ts.map +1 -1
  11. package/dist/components/AutoCompleteTextarea/Textarea.js +34 -24
  12. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  13. package/dist/components/Avatar/Avatar.js +1 -1
  14. package/dist/components/Channel/Channel.d.ts +4 -11
  15. package/dist/components/Channel/Channel.d.ts.map +1 -1
  16. package/dist/components/Channel/Channel.js +13 -28
  17. package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts +8 -8
  18. package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts.map +1 -1
  19. package/dist/components/ChatAutoComplete/ChatAutoComplete.js +24 -14
  20. package/dist/components/DateSeparator/DateSeparator.js +1 -1
  21. package/dist/components/Emojis/EmojiPicker.d.ts +10 -0
  22. package/dist/components/Emojis/EmojiPicker.d.ts.map +1 -0
  23. package/dist/components/Emojis/EmojiPicker.js +57 -0
  24. package/dist/components/Emojis/index.cjs.js +89 -0
  25. package/dist/components/Emojis/index.d.ts +2 -0
  26. package/dist/components/Emojis/index.d.ts.map +1 -0
  27. package/dist/components/Emojis/index.js +1 -0
  28. package/dist/components/EventComponent/EventComponent.js +1 -1
  29. package/dist/components/Message/FixedHeightMessage.js +1 -1
  30. package/dist/components/Message/MessageText.js +2 -2
  31. package/dist/components/Message/index.d.ts +1 -0
  32. package/dist/components/Message/index.d.ts.map +1 -1
  33. package/dist/components/Message/index.js +1 -0
  34. package/dist/components/Message/renderText/Anchor.d.ts +4 -0
  35. package/dist/components/Message/renderText/Anchor.d.ts.map +1 -0
  36. package/dist/components/Message/renderText/Anchor.js +10 -0
  37. package/dist/components/Message/renderText/Emoji.d.ts +3 -0
  38. package/dist/components/Message/renderText/Emoji.d.ts.map +1 -0
  39. package/dist/components/Message/renderText/Emoji.js +5 -0
  40. package/dist/components/Message/renderText/Mention.d.ts +18 -0
  41. package/dist/components/Message/renderText/Mention.d.ts.map +1 -0
  42. package/dist/components/Message/renderText/Mention.js +5 -0
  43. package/dist/components/Message/renderText/index.d.ts +5 -0
  44. package/dist/components/Message/renderText/index.d.ts.map +1 -0
  45. package/dist/components/Message/renderText/index.js +3 -0
  46. package/dist/components/Message/renderText/regex.d.ts +5 -0
  47. package/dist/components/Message/renderText/regex.d.ts.map +1 -0
  48. package/dist/components/Message/renderText/regex.js +21 -0
  49. package/dist/components/Message/renderText/rehypePlugins.d.ts +7 -0
  50. package/dist/components/Message/renderText/rehypePlugins.d.ts.map +1 -0
  51. package/dist/components/Message/renderText/rehypePlugins.js +60 -0
  52. package/dist/components/Message/renderText/renderText.d.ts +21 -0
  53. package/dist/components/Message/renderText/renderText.d.ts.map +1 -0
  54. package/dist/components/Message/renderText/renderText.js +126 -0
  55. package/dist/components/Message/types.d.ts +1 -1
  56. package/dist/components/Message/types.d.ts.map +1 -1
  57. package/dist/components/Message/utils.d.ts +1 -0
  58. package/dist/components/Message/utils.d.ts.map +1 -1
  59. package/dist/components/Message/utils.js +8 -0
  60. package/dist/components/MessageInput/DefaultTriggerProvider.d.ts +2 -3
  61. package/dist/components/MessageInput/DefaultTriggerProvider.d.ts.map +1 -1
  62. package/dist/components/MessageInput/DefaultTriggerProvider.js +1 -1
  63. package/dist/components/MessageInput/EditMessageForm.d.ts.map +1 -1
  64. package/dist/components/MessageInput/EditMessageForm.js +4 -7
  65. package/dist/components/MessageInput/MessageInput.d.ts +17 -5
  66. package/dist/components/MessageInput/MessageInput.d.ts.map +1 -1
  67. package/dist/components/MessageInput/MessageInput.js +3 -1
  68. package/dist/components/MessageInput/MessageInputFlat.d.ts.map +1 -1
  69. package/dist/components/MessageInput/MessageInputFlat.js +12 -27
  70. package/dist/components/MessageInput/MessageInputSmall.d.ts.map +1 -1
  71. package/dist/components/MessageInput/MessageInputSmall.js +8 -11
  72. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts.map +1 -1
  73. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +3 -9
  74. package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts +2 -2
  75. package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts.map +1 -1
  76. package/dist/components/MessageInput/hooks/useEmojiTrigger.js +32 -12
  77. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +1 -19
  78. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
  79. package/dist/components/MessageInput/hooks/useMessageInputState.js +3 -15
  80. package/dist/components/MessageInput/hooks/useMessageInputText.d.ts.map +1 -1
  81. package/dist/components/MessageInput/hooks/useMessageInputText.js +1 -2
  82. package/dist/components/MessageInput/index.d.ts +0 -1
  83. package/dist/components/MessageInput/index.d.ts.map +1 -1
  84. package/dist/components/MessageInput/index.js +0 -1
  85. package/dist/components/MessageList/MessageList.d.ts.map +1 -1
  86. package/dist/components/MessageList/MessageList.js +1 -3
  87. package/dist/components/MessageList/VirtualizedMessageList.d.ts +36 -6
  88. package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
  89. package/dist/components/MessageList/VirtualizedMessageList.js +39 -122
  90. package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts +23 -0
  91. package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts.map +1 -0
  92. package/dist/components/MessageList/VirtualizedMessageListComponents.js +70 -0
  93. package/dist/components/MessageList/hooks/MessageList/index.d.ts +5 -0
  94. package/dist/components/MessageList/hooks/MessageList/index.d.ts.map +1 -0
  95. package/dist/components/MessageList/hooks/MessageList/index.js +4 -0
  96. package/dist/components/MessageList/hooks/{useEnrichedMessages.d.ts → MessageList/useEnrichedMessages.d.ts} +3 -3
  97. package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts.map +1 -0
  98. package/dist/components/MessageList/hooks/{useEnrichedMessages.js → MessageList/useEnrichedMessages.js} +3 -3
  99. package/dist/components/MessageList/hooks/{useMessageListElements.d.ts → MessageList/useMessageListElements.d.ts} +4 -4
  100. package/dist/components/MessageList/hooks/MessageList/useMessageListElements.d.ts.map +1 -0
  101. package/dist/components/MessageList/hooks/{useMessageListElements.js → MessageList/useMessageListElements.js} +9 -9
  102. package/dist/components/MessageList/hooks/{useMessageListScrollManager.d.ts → MessageList/useMessageListScrollManager.d.ts} +2 -2
  103. package/dist/components/MessageList/hooks/MessageList/useMessageListScrollManager.d.ts.map +1 -0
  104. package/dist/components/MessageList/hooks/{useMessageListScrollManager.js → MessageList/useMessageListScrollManager.js} +1 -1
  105. package/dist/components/MessageList/hooks/{useScrollLocationLogic.d.ts → MessageList/useScrollLocationLogic.d.ts} +2 -2
  106. package/dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.d.ts.map +1 -0
  107. package/dist/components/MessageList/hooks/VirtualizedMessageList/index.d.ts +7 -0
  108. package/dist/components/MessageList/hooks/VirtualizedMessageList/index.d.ts.map +1 -0
  109. package/dist/components/MessageList/hooks/VirtualizedMessageList/index.js +6 -0
  110. package/dist/components/MessageList/hooks/{useGiphyPreview.d.ts → VirtualizedMessageList/useGiphyPreview.d.ts} +2 -2
  111. package/dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.d.ts.map +1 -0
  112. package/dist/components/MessageList/hooks/{useGiphyPreview.js → VirtualizedMessageList/useGiphyPreview.js} +1 -1
  113. package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.d.ts +10 -0
  114. package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.d.ts.map +1 -0
  115. package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.js +20 -0
  116. package/dist/components/MessageList/hooks/{useNewMessageNotification.d.ts → VirtualizedMessageList/useNewMessageNotification.d.ts} +2 -2
  117. package/dist/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.d.ts.map +1 -0
  118. package/dist/components/MessageList/hooks/{usePrependMessagesCount.d.ts → VirtualizedMessageList/usePrependMessagesCount.d.ts} +2 -2
  119. package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.d.ts.map +1 -0
  120. package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.d.ts +12 -0
  121. package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.d.ts.map +1 -0
  122. package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.js +28 -0
  123. package/dist/components/MessageList/hooks/{useShouldForceScrollToBottom.d.ts → VirtualizedMessageList/useShouldForceScrollToBottom.d.ts} +2 -2
  124. package/dist/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.d.ts.map +1 -0
  125. package/dist/components/MessageList/hooks/index.d.ts +7 -7
  126. package/dist/components/MessageList/hooks/index.d.ts.map +1 -1
  127. package/dist/components/MessageList/hooks/index.js +7 -7
  128. package/dist/components/Reactions/hooks/useProcessReactions.d.ts +3 -1
  129. package/dist/components/Reactions/hooks/useProcessReactions.d.ts.map +1 -1
  130. package/dist/context/ChannelStateContext.d.ts +1 -1
  131. package/dist/context/ChatContext.d.ts +1 -1
  132. package/dist/context/ComponentContext.d.ts +3 -2
  133. package/dist/context/ComponentContext.d.ts.map +1 -1
  134. package/dist/context/MessageContext.d.ts +1 -1
  135. package/dist/context/MessageContext.d.ts.map +1 -1
  136. package/dist/context/MessageInputContext.d.ts +1 -7
  137. package/dist/context/MessageInputContext.d.ts.map +1 -1
  138. package/dist/context/index.d.ts +0 -1
  139. package/dist/context/index.d.ts.map +1 -1
  140. package/dist/context/index.js +0 -1
  141. package/dist/i18n/Streami18n.d.ts +0 -1
  142. package/dist/i18n/Streami18n.d.ts.map +1 -1
  143. package/dist/i18n/de.json +0 -1
  144. package/dist/i18n/en.json +0 -1
  145. package/dist/i18n/es.json +0 -1
  146. package/dist/i18n/fr.json +0 -1
  147. package/dist/i18n/hi.json +0 -1
  148. package/dist/i18n/it.json +0 -1
  149. package/dist/i18n/ja.json +0 -1
  150. package/dist/i18n/ko.json +0 -1
  151. package/dist/i18n/nl.json +0 -1
  152. package/dist/i18n/pt.json +0 -1
  153. package/dist/i18n/ru.json +0 -1
  154. package/dist/i18n/tr.json +0 -1
  155. package/dist/icons-0801b1e9.js +3133 -0
  156. package/dist/index.cjs.js +1470 -4591
  157. package/dist/index.d.ts +0 -1
  158. package/dist/index.d.ts.map +1 -1
  159. package/dist/index.js +0 -2
  160. package/dist/index_UMD.d.ts +7 -0
  161. package/dist/index_UMD.d.ts.map +1 -0
  162. package/dist/index_UMD.js +8 -0
  163. package/dist/utils/generateRandomId.d.ts +6 -0
  164. package/dist/utils/generateRandomId.d.ts.map +1 -0
  165. package/dist/utils/generateRandomId.js +5 -0
  166. package/dist/utils/getWholeChar.d.ts +2 -0
  167. package/dist/utils/getWholeChar.d.ts.map +1 -0
  168. package/dist/utils/getWholeChar.js +26 -0
  169. package/dist/utils/index.d.ts +4 -0
  170. package/dist/utils/index.d.ts.map +1 -0
  171. package/dist/utils/index.js +3 -0
  172. package/dist/version.d.ts +1 -1
  173. package/dist/version.js +1 -1
  174. package/package.json +35 -8
  175. package/dist/components/Channel/emojiData.d.ts +0 -15
  176. package/dist/components/Channel/emojiData.d.ts.map +0 -1
  177. package/dist/components/Channel/emojiData.js +0 -23
  178. package/dist/components/MessageInput/EmojiPicker.d.ts +0 -6
  179. package/dist/components/MessageInput/EmojiPicker.d.ts.map +0 -1
  180. package/dist/components/MessageInput/EmojiPicker.js +0 -23
  181. package/dist/components/MessageInput/hooks/useEmojiIndex.d.ts +0 -3
  182. package/dist/components/MessageInput/hooks/useEmojiIndex.d.ts.map +0 -1
  183. package/dist/components/MessageInput/hooks/useEmojiIndex.js +0 -13
  184. package/dist/components/MessageInput/hooks/useEmojiPicker.d.ts +0 -11
  185. package/dist/components/MessageInput/hooks/useEmojiPicker.d.ts.map +0 -1
  186. package/dist/components/MessageInput/hooks/useEmojiPicker.js +0 -68
  187. package/dist/components/MessageList/hooks/useEnrichedMessages.d.ts.map +0 -1
  188. package/dist/components/MessageList/hooks/useGiphyPreview.d.ts.map +0 -1
  189. package/dist/components/MessageList/hooks/useMessageListElements.d.ts.map +0 -1
  190. package/dist/components/MessageList/hooks/useMessageListScrollManager.d.ts.map +0 -1
  191. package/dist/components/MessageList/hooks/useNewMessageNotification.d.ts.map +0 -1
  192. package/dist/components/MessageList/hooks/usePrependMessagesCount.d.ts.map +0 -1
  193. package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts.map +0 -1
  194. package/dist/components/MessageList/hooks/useShouldForceScrollToBottom.d.ts.map +0 -1
  195. package/dist/context/DefaultEmoji.d.ts +0 -3
  196. package/dist/context/DefaultEmoji.d.ts.map +0 -1
  197. package/dist/context/DefaultEmoji.js +0 -3
  198. package/dist/context/DefaultEmojiPicker.d.ts +0 -3
  199. package/dist/context/DefaultEmojiPicker.d.ts.map +0 -1
  200. package/dist/context/DefaultEmojiPicker.js +0 -3
  201. package/dist/context/EmojiContext.d.ts +0 -48
  202. package/dist/context/EmojiContext.d.ts.map +0 -1
  203. package/dist/context/EmojiContext.js +0 -39
  204. package/dist/index.cjs.js.map +0 -1
  205. package/dist/stream-emoji.json +0 -1
  206. package/dist/utils.d.ts +0 -42
  207. package/dist/utils.d.ts.map +0 -1
  208. package/dist/utils.js +0 -253
  209. /package/dist/components/MessageList/hooks/{useScrollLocationLogic.js → MessageList/useScrollLocationLogic.js} +0 -0
  210. /package/dist/components/MessageList/hooks/{useNewMessageNotification.js → VirtualizedMessageList/useNewMessageNotification.js} +0 -0
  211. /package/dist/components/MessageList/hooks/{usePrependMessagesCount.js → VirtualizedMessageList/usePrependMessagesCount.js} +0 -0
  212. /package/dist/components/MessageList/hooks/{useShouldForceScrollToBottom.js → VirtualizedMessageList/useShouldForceScrollToBottom.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC"}
@@ -2,7 +2,6 @@ export * from './AttachmentPreviewList';
2
2
  export * from './CooldownTimer';
3
3
  export * from './DefaultTriggerProvider';
4
4
  export * from './EditMessageForm';
5
- export * from './EmojiPicker';
6
5
  export * from './hooks';
7
6
  export * from './icons';
8
7
  export * from './MessageInput';
@@ -1 +1 @@
1
- {"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/MessageList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,EACL,yBAAyB,EAE1B,MAAM,oCAAoC,CAAC;AAQ5C,OAAO,EAAkB,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAMhG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AA0MnE,aAAK,qBAAqB,GACtB,6BAA6B,GAC7B,8BAA8B,GAC9B,sBAAsB,GACtB,uBAAuB,GACvB,YAAY,GACZ,mCAAmC,GACnC,iCAAiC,GACjC,mCAAmC,GACnC,8BAA8B,GAC9B,gCAAgC,GAChC,gCAAgC,GAChC,SAAS,GACT,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,aAAa,GACb,YAAY,GACZ,gBAAgB,GAChB,YAAY,GACZ,kBAAkB,GAClB,YAAY,CAAC;AAEjB,oBAAY,gBAAgB,CAC1B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,qBAAqB,CAAC,CAAC,GAAG;IAC3E,8FAA8F;IAC9F,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,CACZ,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC1C,eAAe,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAClD,WAAW,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC9C,aAAa,EAAE,OAAO,KACnB,UAAU,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iIAAiI;IACjI,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qIAAqI;IACrI,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mLAAmL;IACnL,2BAA2B,CAAC,EAAE,mBAAmB,CAAC;IAClD,iHAAiH;IACjH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,4LAA4L;IAC5L,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,6LAA6L;IAC7L,aAAa,CAAC,EAAE,yBAAyB,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yKAAyK;IACzK,QAAQ,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC/C,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qHAAqH;IACrH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,gJA2BvB,CAAC"}
1
+ {"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/MessageList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,EACL,yBAAyB,EAE1B,MAAM,oCAAoC,CAAC;AAQ5C,OAAO,EAAkB,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAMhG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AA0MnE,aAAK,qBAAqB,GACtB,6BAA6B,GAC7B,8BAA8B,GAC9B,sBAAsB,GACtB,uBAAuB,GACvB,YAAY,GACZ,mCAAmC,GACnC,iCAAiC,GACjC,mCAAmC,GACnC,8BAA8B,GAC9B,gCAAgC,GAChC,gCAAgC,GAChC,SAAS,GACT,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,aAAa,GACb,YAAY,GACZ,gBAAgB,GAChB,YAAY,GACZ,kBAAkB,GAClB,YAAY,CAAC;AAEjB,oBAAY,gBAAgB,CAC1B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,qBAAqB,CAAC,CAAC,GAAG;IAC3E,8FAA8F;IAC9F,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,CACZ,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC1C,eAAe,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAClD,WAAW,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC9C,aAAa,EAAE,OAAO,KACnB,UAAU,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iIAAiI;IACjI,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qIAAqI;IACrI,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mLAAmL;IACnL,2BAA2B,CAAC,EAAE,mBAAmB,CAAC;IAClD,iHAAiH;IACjH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,4LAA4L;IAC5L,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,6LAA6L;IAC7L,aAAa,CAAC,EAAE,yBAAyB,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yKAAyK;IACzK,QAAQ,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC/C,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qHAAqH;IACrH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,gJA2BvB,CAAC"}
@@ -1,8 +1,6 @@
1
1
  import { __assign, __awaiter, __generator, __rest } from "tslib";
2
2
  import React from 'react';
3
- import { useEnrichedMessages } from './hooks/useEnrichedMessages';
4
- import { useMessageListElements } from './hooks/useMessageListElements';
5
- import { useScrollLocationLogic } from './hooks/useScrollLocationLogic';
3
+ import { useEnrichedMessages, useMessageListElements, useScrollLocationLogic, } from './hooks/MessageList';
6
4
  import { MessageNotification as DefaultMessageNotification } from './MessageNotification';
7
5
  import { MessageListNotifications as DefaultMessageListNotifications } from './MessageListNotifications';
8
6
  import { useChannelActionContext, } from '../../context/ChannelActionContext';
@@ -1,19 +1,42 @@
1
- import React from 'react';
2
- import { ScrollSeekConfiguration, ScrollSeekPlaceholderProps, VirtuosoProps } from 'react-virtuoso';
1
+ import React, { RefObject } from 'react';
2
+ import { ScrollSeekConfiguration, ScrollSeekPlaceholderProps, VirtuosoHandle, VirtuosoProps } from 'react-virtuoso';
3
3
  import { GroupStyle } from './utils';
4
4
  import { MessageProps, MessageUIComponentProps } from '../Message';
5
5
  import { ChannelActionContextValue } from '../../context/ChannelActionContext';
6
6
  import { StreamMessage } from '../../context/ChannelStateContext';
7
+ import { ChatContextValue } from '../../context/ChatContext';
8
+ import { ComponentContextValue } from '../../context/ComponentContext';
9
+ import type { UserResponse } from 'stream-chat';
7
10
  import type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';
11
+ declare type VirtualizedMessageListPropsForContext = 'additionalMessageInputProps' | 'closeReactionSelectorOnClick' | 'customMessageActions' | 'customMessageRenderer' | 'head' | 'loadingMore' | 'Message' | 'messageActions' | 'shouldGroupByUser' | 'threadList';
12
+ /**
13
+ * Context object provided to some Virtuoso props that are functions (components rendered by Virtuoso and other functions)
14
+ */
15
+ export declare type VirtuosoContext<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = Required<Pick<ComponentContextValue<StreamChatGenerics>, 'DateSeparator' | 'MessageSystem'>> & Pick<VirtualizedMessageListProps<StreamChatGenerics>, VirtualizedMessageListPropsForContext> & Pick<ChatContextValue<StreamChatGenerics>, 'customClasses'> & {
16
+ /** Latest received message id in the current channel */
17
+ lastReceivedMessageId: string | null | undefined;
18
+ /** Object mapping between the message ID and a string representing the position in the group of a sequence of messages posted by the same user. */
19
+ messageGroupStyles: Record<string, GroupStyle>;
20
+ /** Number of messages prepended before the first page of messages. This is needed to calculate the virtual position in the virtual list. */
21
+ numItemsPrepended: number;
22
+ /** Mapping of message ID of own messages to the array of users, who read the given message */
23
+ ownMessagesReadByOthers: Record<string, UserResponse<StreamChatGenerics>[]>;
24
+ /** The original message list enriched with date separators, omitted deleted messages or giphy previews. */
25
+ processedMessages: StreamMessage<StreamChatGenerics>[];
26
+ /** Instance of VirtuosoHandle object providing the API to navigate in the virtualized list by various scroll actions. */
27
+ virtuosoRef: RefObject<VirtuosoHandle>;
28
+ };
8
29
  declare type PropsDrilledToMessage = 'additionalMessageInputProps' | 'customMessageActions' | 'messageActions';
9
30
  export declare type VirtualizedMessageListProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = Partial<Pick<MessageProps<StreamChatGenerics>, PropsDrilledToMessage>> & {
10
31
  /** Additional props to be passed the underlying [`react-virtuoso` virtualized list dependency](https://virtuoso.dev/virtuoso-api-reference/) */
11
- additionalVirtuosoProps?: VirtuosoProps<UnknownType, unknown>;
32
+ additionalVirtuosoProps?: VirtuosoProps<UnknownType, VirtuosoContext<StreamChatGenerics>>;
12
33
  /** If true, picking a reaction from the `ReactionSelector` component will close the selector */
13
34
  closeReactionSelectorOnClick?: boolean;
14
35
  /** Custom render function, if passed, certain UI props are ignored */
15
36
  customMessageRenderer?: (messageList: StreamMessage<StreamChatGenerics>[], index: number) => React.ReactElement;
16
- /** If set, the default item height is used for the calculation of the total list height. Use if you expect messages with a lot of height variance */
37
+ /** @deprecated Use additionalVirtuosoProps.defaultItemHeight instead. Will be removed with next major release - `v11.0.0`.
38
+ * If set, the default item height is used for the calculation of the total list height. Use if you expect messages with a lot of height variance
39
+ * */
17
40
  defaultItemHeight?: number;
18
41
  /** Disables the injection of date separator components in MessageList, defaults to `true` */
19
42
  disableDateSeparator?: boolean;
@@ -23,7 +46,10 @@ export declare type VirtualizedMessageListProps<StreamChatGenerics extends Defau
23
46
  hasMore?: boolean;
24
47
  /** Whether or not the list has newer items to load */
25
48
  hasMoreNewer?: boolean;
26
- /** Element to be rendered at the top of the thread message list. By default, these are the Message and ThreadStart components */
49
+ /**
50
+ * @deprecated Use additionalVirtuosoProps.components.Header to override default component rendered above the list ove messages.
51
+ * Element to be rendered at the top of the thread message list. By default, these are the Message and ThreadStart components
52
+ */
27
53
  head?: React.ReactElement;
28
54
  /** Hides the `MessageDeleted` components from the list, defaults to `false` */
29
55
  hideDeletedMessages?: boolean;
@@ -45,11 +71,15 @@ export declare type VirtualizedMessageListProps<StreamChatGenerics extends Defau
45
71
  messageLimit?: number;
46
72
  /** Optional prop to override the messages available from [ChannelStateContext](https://getstream.io/chat/docs/sdk/react/contexts/channel_state_context/) */
47
73
  messages?: StreamMessage<StreamChatGenerics>[];
48
- /** The amount of extra content the list should render in addition to what's necessary to fill in the viewport */
74
+ /**
75
+ * @deprecated Use additionalVirtuosoProps.overscan instead. Will be removed with next major release - `v11.0.0`.
76
+ * The amount of extra content the list should render in addition to what's necessary to fill in the viewport
77
+ */
49
78
  overscan?: number;
50
79
  /** Keep track of read receipts for each message sent by the user. When disabled, only the last own message delivery / read status is rendered. */
51
80
  returnAllReadData?: boolean;
52
81
  /**
82
+ * @deprecated Pass additionalVirtuosoProps.scrollSeekConfiguration and specify the placeholder in additionalVirtuosoProps.components.ScrollSeekPlaceholder instead. Will be removed with next major release - `v11.0.0`.
53
83
  * Performance improvement by showing placeholders if user scrolls fast through list.
54
84
  * it can be used like this:
55
85
  * ```
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualizedMessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/VirtualizedMessageList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VirtualizedMessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/VirtualizedMessageList.tsx"],"names":[],"mappings":"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"}
@@ -1,26 +1,21 @@
1
- import { __assign, __awaiter, __generator } from "tslib";
2
- import clsx from 'clsx';
3
- import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
1
+ import { __assign, __awaiter, __generator, __rest } from "tslib";
2
+ import React, { useCallback, useEffect, useMemo, useRef } from 'react';
4
3
  import { Virtuoso, } from 'react-virtuoso';
5
4
  import { GiphyPreviewMessage as DefaultGiphyPreviewMessage } from './GiphyPreviewMessage';
6
- import { useGiphyPreview } from './hooks/useGiphyPreview';
7
- import { useLastReadData, useNewMessageNotification, usePrependedMessagesCount, useShouldForceScrollToBottom, } from './hooks';
5
+ import { useLastReadData } from './hooks';
6
+ import { useGiphyPreview, useMessageSetKey, useNewMessageNotification, usePrependedMessagesCount, useScrollToBottomOnNewMessage, useShouldForceScrollToBottom, } from './hooks/VirtualizedMessageList';
8
7
  import { MessageNotification as DefaultMessageNotification } from './MessageNotification';
9
8
  import { MessageListNotifications as DefaultMessageListNotifications } from './MessageListNotifications';
10
9
  import { MessageListMainPanel } from './MessageListMainPanel';
11
10
  import { getGroupStyles, getLastReceived, processMessages } from './utils';
12
- import { CUSTOM_MESSAGE_TYPE } from '../../constants/messageTypes';
13
- import { DateSeparator as DefaultDateSeparator } from '../DateSeparator/DateSeparator';
14
- import { EmptyStateIndicator as DefaultEmptyStateIndicator } from '../EmptyStateIndicator/EmptyStateIndicator';
15
- import { EventComponent } from '../EventComponent/EventComponent';
16
- import { LoadingIndicator as DefaultLoadingIndicator } from '../Loading/LoadingIndicator';
17
- import { Message, MessageSimple } from '../Message';
11
+ import { MessageSimple } from '../Message';
12
+ import { DateSeparator as DefaultDateSeparator } from '../DateSeparator';
13
+ import { EventComponent } from '../EventComponent';
14
+ import { calculateFirstItemIndex, calculateItemIndex, EmptyPlaceholder, Footer, Header, Item, messageRenderer, } from './VirtualizedMessageListComponents';
18
15
  import { useChannelActionContext, } from '../../context/ChannelActionContext';
19
16
  import { useChannelStateContext, } from '../../context/ChannelStateContext';
20
17
  import { useChatContext } from '../../context/ChatContext';
21
18
  import { useComponentContext } from '../../context/ComponentContext';
22
- import { isDate } from '../../context/TranslationContext';
23
- var PREPEND_OFFSET = Math.pow(10, 7);
24
19
  function captureResizeObserverExceededError(e) {
25
20
  if (e.message === 'ResizeObserver loop completed with undelivered notifications.' ||
26
21
  e.message === 'ResizeObserver loop limit exceeded') {
@@ -51,19 +46,21 @@ function calculateInitialTopMostItemIndex(messages, highlightedMessageId) {
51
46
  return messages.length - 1;
52
47
  }
53
48
  var VirtualizedMessageListWithContext = function (props) {
54
- var additionalVirtuosoProps = props.additionalVirtuosoProps, channel = props.channel, closeReactionSelectorOnClick = props.closeReactionSelectorOnClick, customMessageRenderer = props.customMessageRenderer, defaultItemHeight = props.defaultItemHeight, _a = props.disableDateSeparator, disableDateSeparator = _a === void 0 ? true : _a, groupStyles = props.groupStyles, hasMore = props.hasMore, hasMoreNewer = props.hasMoreNewer, head = props.head, _b = props.hideDeletedMessages, hideDeletedMessages = _b === void 0 ? false : _b, _c = props.hideNewMessageSeparator, hideNewMessageSeparator = _c === void 0 ? false : _c, highlightedMessageId = props.highlightedMessageId, jumpToLatestMessage = props.jumpToLatestMessage, loadingMore = props.loadingMore, loadMore = props.loadMore, loadMoreNewer = props.loadMoreNewer, propMessage = props.Message, _d = props.messageLimit, messageLimit = _d === void 0 ? 100 : _d, messages = props.messages, notifications = props.notifications,
49
+ var additionalMessageInputProps = props.additionalMessageInputProps, _a = props.additionalVirtuosoProps, additionalVirtuosoProps = _a === void 0 ? {} : _a, channel = props.channel, closeReactionSelectorOnClick = props.closeReactionSelectorOnClick, customMessageActions = props.customMessageActions, customMessageRenderer = props.customMessageRenderer, defaultItemHeight = props.defaultItemHeight, _b = props.disableDateSeparator, disableDateSeparator = _b === void 0 ? true : _b, groupStyles = props.groupStyles, hasMore = props.hasMore, hasMoreNewer = props.hasMoreNewer, head = props.head, _c = props.hideDeletedMessages, hideDeletedMessages = _c === void 0 ? false : _c, _d = props.hideNewMessageSeparator, hideNewMessageSeparator = _d === void 0 ? false : _d, highlightedMessageId = props.highlightedMessageId, jumpToLatestMessage = props.jumpToLatestMessage, loadingMore = props.loadingMore, loadMore = props.loadMore, loadMoreNewer = props.loadMoreNewer, MessageUIComponentFromProps = props.Message, messageActions = props.messageActions, _e = props.messageLimit, messageLimit = _e === void 0 ? 100 : _e, messages = props.messages, notifications = props.notifications,
55
50
  // TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
56
- _e = props.overscan,
51
+ _f = props.overscan,
57
52
  // TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
58
- overscan = _e === void 0 ? 0 : _e, read = props.read, _f = props.returnAllReadData, returnAllReadData = _f === void 0 ? false : _f, scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _g = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _g === void 0 ? false : _g, _h = props.separateGiphyPreview, separateGiphyPreview = _h === void 0 ? false : _h, _j = props.shouldGroupByUser, shouldGroupByUser = _j === void 0 ? false : _j, _k = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _k === void 0 ? 'smooth' : _k, suppressAutoscroll = props.suppressAutoscroll, threadList = props.threadList;
53
+ overscan = _f === void 0 ? 0 : _f, read = props.read, _g = props.returnAllReadData, returnAllReadData = _g === void 0 ? false : _g, scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _h = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _h === void 0 ? false : _h, _j = props.separateGiphyPreview, separateGiphyPreview = _j === void 0 ? false : _j, _k = props.shouldGroupByUser, shouldGroupByUser = _k === void 0 ? false : _k, _l = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _l === void 0 ? 'smooth' : _l, suppressAutoscroll = props.suppressAutoscroll, threadList = props.threadList;
54
+ var virtuosoComponentsFromProps = additionalVirtuosoProps.components, overridingVirtuosoProps = __rest(additionalVirtuosoProps, ["components"]);
59
55
  // Stops errors generated from react-virtuoso to bubble up
60
56
  // to Sentry or other tracking tools.
61
57
  useCaptureResizeObserverExceededError();
62
- var _l = useComponentContext('VirtualizedMessageList'), _m = _l.DateSeparator, DateSeparator = _m === void 0 ? DefaultDateSeparator : _m, _o = _l.EmptyStateIndicator, EmptyStateIndicator = _o === void 0 ? DefaultEmptyStateIndicator : _o, _p = _l.GiphyPreviewMessage, GiphyPreviewMessage = _p === void 0 ? DefaultGiphyPreviewMessage : _p, _q = _l.LoadingIndicator, LoadingIndicator = _q === void 0 ? DefaultLoadingIndicator : _q, _r = _l.MessageListNotifications, MessageListNotifications = _r === void 0 ? DefaultMessageListNotifications : _r, _s = _l.MessageNotification, MessageNotification = _s === void 0 ? DefaultMessageNotification : _s, _t = _l.MessageSystem, MessageSystem = _t === void 0 ? EventComponent : _t, _u = _l.TypingIndicator, TypingIndicator = _u === void 0 ? null : _u, _v = _l.VirtualMessage, contextMessage = _v === void 0 ? MessageSimple : _v;
63
- var _w = useChatContext('VirtualizedMessageList'), client = _w.client, customClasses = _w.customClasses;
58
+ var _m = useComponentContext('VirtualizedMessageList'), _o = _m.DateSeparator, DateSeparator = _o === void 0 ? DefaultDateSeparator : _o, _p = _m.GiphyPreviewMessage, GiphyPreviewMessage = _p === void 0 ? DefaultGiphyPreviewMessage : _p, _q = _m.MessageListNotifications, MessageListNotifications = _q === void 0 ? DefaultMessageListNotifications : _q, _r = _m.MessageNotification, MessageNotification = _r === void 0 ? DefaultMessageNotification : _r, _s = _m.MessageSystem, MessageSystem = _s === void 0 ? EventComponent : _s, _t = _m.VirtualMessage, MessageUIComponentFromContext = _t === void 0 ? MessageSimple : _t;
59
+ var MessageUIComponent = MessageUIComponentFromProps || MessageUIComponentFromContext;
60
+ var _u = useChatContext('VirtualizedMessageList'), client = _u.client, customClasses = _u.customClasses;
61
+ var virtuoso = useRef(null);
64
62
  var lastRead = useMemo(function () { var _a; return (_a = channel.lastRead) === null || _a === void 0 ? void 0 : _a.call(channel); }, [channel]);
65
- var MessageUIComponent = propMessage || contextMessage;
66
- var _x = useGiphyPreview(separateGiphyPreview), giphyPreviewMessage = _x.giphyPreviewMessage, setGiphyPreviewMessage = _x.setGiphyPreviewMessage;
63
+ var _v = useGiphyPreview(separateGiphyPreview), giphyPreviewMessage = _v.giphyPreviewMessage, setGiphyPreviewMessage = _v.setGiphyPreviewMessage;
67
64
  var processedMessages = useMemo(function () {
68
65
  if (typeof messages === 'undefined') {
69
66
  return [];
@@ -112,9 +109,8 @@ var VirtualizedMessageListWithContext = function (props) {
112
109
  }, {});
113
110
  },
114
111
  // processedMessages were incorrectly rebuilt with a new object identity at some point, hence the .length usage
115
- [processedMessages.length, shouldGroupByUser]);
116
- var virtuoso = useRef(null);
117
- var _y = useNewMessageNotification(processedMessages, client.userID, hasMoreNewer), atBottom = _y.atBottom, isMessageListScrolledToBottom = _y.isMessageListScrolledToBottom, newMessagesNotification = _y.newMessagesNotification, setIsMessageListScrolledToBottom = _y.setIsMessageListScrolledToBottom, setNewMessagesNotification = _y.setNewMessagesNotification;
112
+ [processedMessages.length, shouldGroupByUser, groupStylesFn]);
113
+ var _w = useNewMessageNotification(processedMessages, client.userID, hasMoreNewer), atBottom = _w.atBottom, isMessageListScrolledToBottom = _w.isMessageListScrolledToBottom, newMessagesNotification = _w.newMessagesNotification, setIsMessageListScrolledToBottom = _w.setIsMessageListScrolledToBottom, setNewMessagesNotification = _w.setNewMessagesNotification;
118
114
  var scrollToBottom = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
119
115
  return __generator(this, function (_a) {
120
116
  switch (_a.label) {
@@ -141,44 +137,9 @@ var VirtualizedMessageListWithContext = function (props) {
141
137
  hasMoreNewer,
142
138
  jumpToLatestMessage,
143
139
  ]);
144
- var _z = React.useState(false), newMessagesReceivedInBackground = _z[0], setNewMessagesReceivedInBackground = _z[1];
145
- var resetNewMessagesReceivedInBackground = useCallback(function () {
146
- setNewMessagesReceivedInBackground(false);
147
- }, []);
148
- useEffect(function () {
149
- setNewMessagesReceivedInBackground(true);
150
- }, [messages]);
151
- var scrollToBottomIfConfigured = useCallback(function (event) {
152
- if (scrollToLatestMessageOnFocus && event.target === window) {
153
- if (newMessagesReceivedInBackground) {
154
- setTimeout(scrollToBottom, 100);
155
- }
156
- }
157
- }, [scrollToLatestMessageOnFocus, scrollToBottom, newMessagesReceivedInBackground]);
158
- useEffect(function () {
159
- if (typeof window !== 'undefined') {
160
- window.addEventListener('focus', scrollToBottomIfConfigured);
161
- window.addEventListener('blur', resetNewMessagesReceivedInBackground);
162
- }
163
- return function () {
164
- window.removeEventListener('focus', scrollToBottomIfConfigured);
165
- window.removeEventListener('blur', resetNewMessagesReceivedInBackground);
166
- };
167
- }, [scrollToBottomIfConfigured]);
140
+ useScrollToBottomOnNewMessage({ messages: messages, scrollToBottom: scrollToBottom, scrollToLatestMessageOnFocus: scrollToLatestMessageOnFocus });
168
141
  var numItemsPrepended = usePrependedMessagesCount(processedMessages, !disableDateSeparator);
169
- /**
170
- * Logic to update the key of the virtuoso component when the list jumps to a new location.
171
- */
172
- var _0 = useState(+new Date()), messageSetKey = _0[0], setMessageSetKey = _0[1];
173
- var firstMessageId = useRef();
174
- useEffect(function () {
175
- var _a;
176
- var continuousSet = messages === null || messages === void 0 ? void 0 : messages.find(function (message) { return message.id === firstMessageId.current; });
177
- if (!continuousSet) {
178
- setMessageSetKey(+new Date());
179
- }
180
- firstMessageId.current = (_a = messages === null || messages === void 0 ? void 0 : messages[0]) === null || _a === void 0 ? void 0 : _a.id;
181
- }, [messages]);
142
+ var messageSetKey = useMessageSetKey({ messages: messages }).messageSetKey;
182
143
  var shouldForceScrollToBottom = useShouldForceScrollToBottom(processedMessages, client.userID);
183
144
  var followOutput = function (isAtBottom) {
184
145
  if (hasMoreNewer || suppressAutoscroll) {
@@ -190,63 +151,10 @@ var VirtualizedMessageListWithContext = function (props) {
190
151
  // a message from another user has been received - don't scroll to bottom unless already there
191
152
  return isAtBottom ? stickToBottomScrollBehavior : false;
192
153
  };
193
- var messageRenderer = useCallback(function (messageList, virtuosoIndex, virtuosoContext) {
194
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
195
- var lastReceivedMessageId = virtuosoContext.lastReceivedMessageId, ownMessagesReadByOthers = virtuosoContext.ownMessagesReadByOthers;
196
- var streamMessageIndex = virtuosoIndex + numItemsPrepended - PREPEND_OFFSET;
197
- // use custom renderer supplied by client if present and skip the rest
198
- if (customMessageRenderer) {
199
- return customMessageRenderer(messageList, streamMessageIndex);
200
- }
201
- var message = messageList[streamMessageIndex];
202
- if (message.customType === CUSTOM_MESSAGE_TYPE.date && message.date && isDate(message.date)) {
203
- return React.createElement(DateSeparator, { date: message.date, unread: message.unread });
204
- }
205
- if (!message)
206
- return React.createElement("div", { style: { height: '1px' } }); // returning null or zero height breaks the virtuoso
207
- if (message.type === 'system') {
208
- return React.createElement(MessageSystem, { message: message });
209
- }
210
- var groupedByUser = shouldGroupByUser &&
211
- streamMessageIndex > 0 &&
212
- ((_a = message.user) === null || _a === void 0 ? void 0 : _a.id) === ((_b = messageList[streamMessageIndex - 1].user) === null || _b === void 0 ? void 0 : _b.id);
213
- var firstOfGroup = shouldGroupByUser && ((_c = message.user) === null || _c === void 0 ? void 0 : _c.id) !== ((_e = (_d = messageList[streamMessageIndex - 1]) === null || _d === void 0 ? void 0 : _d.user) === null || _e === void 0 ? void 0 : _e.id);
214
- var endOfGroup = shouldGroupByUser && ((_f = message.user) === null || _f === void 0 ? void 0 : _f.id) !== ((_h = (_g = messageList[streamMessageIndex + 1]) === null || _g === void 0 ? void 0 : _g.user) === null || _h === void 0 ? void 0 : _h.id);
215
- return (React.createElement(Message, { additionalMessageInputProps: props.additionalMessageInputProps, autoscrollToBottom: (_j = virtuoso.current) === null || _j === void 0 ? void 0 : _j.autoscrollToBottom, closeReactionSelectorOnClick: closeReactionSelectorOnClick, customMessageActions: props.customMessageActions, endOfGroup: endOfGroup, firstOfGroup: firstOfGroup, groupedByUser: groupedByUser, lastReceivedId: lastReceivedMessageId, message: message, Message: MessageUIComponent, messageActions: props.messageActions, readBy: ownMessagesReadByOthers[message.id] || [] }));
216
- }, [customMessageRenderer, shouldGroupByUser, numItemsPrepended]);
217
- var Item = useMemo(function () {
218
- // using 'display: inline-block'
219
- // traps CSS margins of the item elements, preventing incorrect item measurements
220
- var Item = function (props) {
221
- var _a;
222
- var _b;
223
- var context = props.context;
224
- var streamMessageIndex = props['data-item-index'] + context.numItemsPrepended - PREPEND_OFFSET;
225
- var message = context.processedMessages[streamMessageIndex];
226
- var groupStyles = context.messageGroupStyles[message.id] || '';
227
- return (React.createElement("div", __assign({}, props, { className: ((_b = context === null || context === void 0 ? void 0 : context.customClasses) === null || _b === void 0 ? void 0 : _b.virtualMessage) ||
228
- clsx('str-chat__virtual-list-message-wrapper str-chat__li', (_a = {},
229
- _a["str-chat__li--".concat(groupStyles)] = groupStyles,
230
- _a)) })));
231
- };
232
- return Item;
154
+ var computeItemKey = useCallback(function (index, _, _a) {
155
+ var numItemsPrepended = _a.numItemsPrepended, processedMessages = _a.processedMessages;
156
+ return processedMessages[calculateItemIndex(index, numItemsPrepended)].id;
233
157
  }, []);
234
- var virtuosoComponents = useMemo(function () {
235
- var EmptyPlaceholder = function () { return (React.createElement(React.Fragment, null, EmptyStateIndicator && (React.createElement(EmptyStateIndicator, { listType: threadList ? 'thread' : 'message' })))); };
236
- var Header = function () {
237
- return loadingMore ? (React.createElement("div", { className: 'str-chat__virtual-list__loading' },
238
- React.createElement(LoadingIndicator, { size: 20 }))) : (head || null);
239
- };
240
- var Footer = function () {
241
- return TypingIndicator ? React.createElement(TypingIndicator, { avatarSize: 24 }) : React.createElement(React.Fragment, null);
242
- };
243
- return {
244
- EmptyPlaceholder: EmptyPlaceholder,
245
- Footer: Footer,
246
- Header: Header,
247
- Item: Item,
248
- };
249
- }, [loadingMore, head, Item]);
250
158
  var atBottomStateChange = function (isAtBottom) {
251
159
  atBottom.current = isAtBottom;
252
160
  setIsMessageListScrolledToBottom(isAtBottom);
@@ -278,18 +186,27 @@ var VirtualizedMessageListWithContext = function (props) {
278
186
  return (React.createElement(React.Fragment, null,
279
187
  React.createElement(MessageListMainPanel, null,
280
188
  React.createElement("div", { className: (customClasses === null || customClasses === void 0 ? void 0 : customClasses.virtualizedMessageList) || 'str-chat__virtual-list' },
281
- React.createElement(Virtuoso, __assign({ atBottomStateChange: atBottomStateChange, atBottomThreshold: 200, className: 'str-chat__message-list-scroll', components: virtuosoComponents, computeItemKey: function (index) {
282
- return processedMessages[numItemsPrepended + index - PREPEND_OFFSET].id;
283
- }, context: {
189
+ React.createElement(Virtuoso, __assign({ atBottomStateChange: atBottomStateChange, atBottomThreshold: 200, className: 'str-chat__message-list-scroll', components: __assign({ EmptyPlaceholder: EmptyPlaceholder, Footer: Footer, Header: Header, Item: Item }, virtuosoComponentsFromProps), computeItemKey: computeItemKey, context: {
190
+ additionalMessageInputProps: additionalMessageInputProps,
191
+ closeReactionSelectorOnClick: closeReactionSelectorOnClick,
284
192
  customClasses: customClasses,
193
+ customMessageActions: customMessageActions,
194
+ customMessageRenderer: customMessageRenderer,
195
+ DateSeparator: DateSeparator,
196
+ head: head,
285
197
  lastReceivedMessageId: lastReceivedMessageId,
198
+ loadingMore: loadingMore,
199
+ Message: MessageUIComponent,
200
+ messageActions: messageActions,
286
201
  messageGroupStyles: messageGroupStyles,
202
+ MessageSystem: MessageSystem,
287
203
  numItemsPrepended: numItemsPrepended,
288
204
  ownMessagesReadByOthers: ownMessagesReadByOthers,
289
205
  processedMessages: processedMessages,
290
- }, endReached: endReached, firstItemIndex: PREPEND_OFFSET - numItemsPrepended, followOutput: followOutput, increaseViewportBy: { bottom: 200, top: 0 }, initialTopMostItemIndex: calculateInitialTopMostItemIndex(processedMessages, highlightedMessageId), itemContent: function (i, _, context) {
291
- return messageRenderer(processedMessages, i, context);
292
- }, itemSize: fractionalItemSize, key: messageSetKey, overscan: overscan, ref: virtuoso, startReached: startReached, style: { overflowX: 'hidden' }, totalCount: processedMessages.length }, additionalVirtuosoProps, (scrollSeekPlaceHolder ? { scrollSeek: scrollSeekPlaceHolder } : {}), (defaultItemHeight ? { defaultItemHeight: defaultItemHeight } : {}))))),
206
+ shouldGroupByUser: shouldGroupByUser,
207
+ threadList: threadList,
208
+ virtuosoRef: virtuoso,
209
+ }, endReached: endReached, firstItemIndex: calculateFirstItemIndex(numItemsPrepended), followOutput: followOutput, increaseViewportBy: { bottom: 200, top: 0 }, initialTopMostItemIndex: calculateInitialTopMostItemIndex(processedMessages, highlightedMessageId), itemContent: messageRenderer, itemSize: fractionalItemSize, key: messageSetKey, overscan: overscan, ref: virtuoso, startReached: startReached, style: { overflowX: 'hidden' }, totalCount: processedMessages.length }, overridingVirtuosoProps, (scrollSeekPlaceHolder ? { scrollSeek: scrollSeekPlaceHolder } : {}), (defaultItemHeight ? { defaultItemHeight: defaultItemHeight } : {}))))),
293
210
  React.createElement(MessageListNotifications, { hasNewMessages: newMessagesNotification, isMessageListScrolledToBottom: isMessageListScrolledToBottom, isNotAtLatestMessageSet: hasMoreNewer, MessageNotification: MessageNotification, notifications: notifications, scrollToBottom: scrollToBottom, threadList: threadList }),
294
211
  giphyPreviewMessage && React.createElement(GiphyPreviewMessage, { message: giphyPreviewMessage })));
295
212
  };
@@ -0,0 +1,23 @@
1
+ import { DefaultStreamChatGenerics, UnknownType } from '../../types/types';
2
+ import React from 'react';
3
+ import { ItemProps } from 'react-virtuoso';
4
+ import { VirtuosoContext } from './VirtualizedMessageList';
5
+ export declare function calculateItemIndex(virtuosoIndex: number, numItemsPrepended: number): number;
6
+ export declare function calculateFirstItemIndex(numItemsPrepended: number): number;
7
+ declare type CommonVirtuosoComponentProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
8
+ context?: VirtuosoContext<StreamChatGenerics>;
9
+ };
10
+ export declare const Item: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, ...props }: Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
11
+ ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
12
+ }, "style" | "children"> & {
13
+ 'data-index': number;
14
+ 'data-item-index': number;
15
+ 'data-item-group-index'?: number | undefined;
16
+ 'data-known-size': number;
17
+ } & CommonVirtuosoComponentProps<StreamChatGenerics>) => JSX.Element;
18
+ export declare const Header: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, }: CommonVirtuosoComponentProps<StreamChatGenerics>) => JSX.Element | null;
19
+ export declare const EmptyPlaceholder: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, }: CommonVirtuosoComponentProps<StreamChatGenerics>) => JSX.Element;
20
+ export declare const Footer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>() => JSX.Element | null;
21
+ export declare const messageRenderer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(virtuosoIndex: number, _data: UnknownType, virtuosoContext: VirtuosoContext<StreamChatGenerics>) => JSX.Element | null;
22
+ export {};
23
+ //# sourceMappingURL=VirtualizedMessageListComponents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualizedMessageListComponents.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/VirtualizedMessageListComponents.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAI3D,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,UAElF;AAED,wBAAgB,uBAAuB,CAAC,iBAAiB,EAAE,MAAM,UAEhE;AAED,aAAK,4BAA4B,CAC/B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,OAAO,CAAC,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;CAC/C,CAAC;AAGF,eAAO,MAAM,IAAI;;;;;;;oEAyBhB,CAAC;AACF,eAAO,MAAM,MAAM,0KAgBlB,CAAC;AACF,eAAO,MAAM,gBAAgB,mKAe5B,CAAC;AACF,eAAO,MAAM,MAAM,4GAKlB,CAAC;AACF,eAAO,MAAM,eAAe,oGAGX,MAAM,SACd,WAAW,6EAgEnB,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { __assign, __rest } from "tslib";
2
+ import { EmptyStateIndicator as DefaultEmptyStateIndicator } from '../EmptyStateIndicator';
3
+ import { isDate, useComponentContext } from '../../context';
4
+ import React from 'react';
5
+ import { LoadingIndicator as DefaultLoadingIndicator } from '../Loading';
6
+ import { CUSTOM_MESSAGE_TYPE } from '../../constants/messageTypes';
7
+ import { Message } from '../Message';
8
+ import clsx from 'clsx';
9
+ var PREPEND_OFFSET = Math.pow(10, 7);
10
+ export function calculateItemIndex(virtuosoIndex, numItemsPrepended) {
11
+ return virtuosoIndex + numItemsPrepended - PREPEND_OFFSET;
12
+ }
13
+ export function calculateFirstItemIndex(numItemsPrepended) {
14
+ return PREPEND_OFFSET - numItemsPrepended;
15
+ }
16
+ // using 'display: inline-block'
17
+ // traps CSS margins of the item elements, preventing incorrect item measurements
18
+ export var Item = function (_a) {
19
+ var _b;
20
+ var _c;
21
+ var context = _a.context, props = __rest(_a, ["context"]);
22
+ if (!context)
23
+ return React.createElement(React.Fragment, null);
24
+ var message = context.processedMessages[calculateItemIndex(props['data-item-index'], context.numItemsPrepended)];
25
+ var groupStyles = context.messageGroupStyles[message.id];
26
+ return (React.createElement("div", __assign({}, props, { className: ((_c = context === null || context === void 0 ? void 0 : context.customClasses) === null || _c === void 0 ? void 0 : _c.virtualMessage) ||
27
+ clsx('str-chat__virtual-list-message-wrapper str-chat__li', (_b = {},
28
+ _b["str-chat__li--".concat(groupStyles)] = groupStyles,
29
+ _b)) })));
30
+ };
31
+ export var Header = function (_a) {
32
+ var context = _a.context;
33
+ var _b = useComponentContext('VirtualizedMessageListHeader').LoadingIndicator, LoadingIndicator = _b === void 0 ? DefaultLoadingIndicator : _b;
34
+ if (!(context === null || context === void 0 ? void 0 : context.loadingMore))
35
+ return null;
36
+ return LoadingIndicator ? (React.createElement("div", { className: 'str-chat__virtual-list__loading' },
37
+ React.createElement(LoadingIndicator, { size: 20 }))) : ((context === null || context === void 0 ? void 0 : context.head) || null);
38
+ };
39
+ export var EmptyPlaceholder = function (_a) {
40
+ var context = _a.context;
41
+ var _b = useComponentContext('VirtualizedMessageList').EmptyStateIndicator, EmptyStateIndicator = _b === void 0 ? DefaultEmptyStateIndicator : _b;
42
+ return (React.createElement(React.Fragment, null, EmptyStateIndicator && (React.createElement(EmptyStateIndicator, { listType: (context === null || context === void 0 ? void 0 : context.threadList) ? 'thread' : 'message' }))));
43
+ };
44
+ export var Footer = function () {
45
+ var TypingIndicator = useComponentContext('VirtualizedMessageList').TypingIndicator;
46
+ return TypingIndicator ? React.createElement(TypingIndicator, { avatarSize: 24 }) : null;
47
+ };
48
+ export var messageRenderer = function (virtuosoIndex, _data, virtuosoContext) {
49
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
50
+ var additionalMessageInputProps = virtuosoContext.additionalMessageInputProps, closeReactionSelectorOnClick = virtuosoContext.closeReactionSelectorOnClick, customMessageActions = virtuosoContext.customMessageActions, customMessageRenderer = virtuosoContext.customMessageRenderer, DateSeparator = virtuosoContext.DateSeparator, lastReceivedMessageId = virtuosoContext.lastReceivedMessageId, MessageUIComponent = virtuosoContext.Message, messageActions = virtuosoContext.messageActions, MessageSystem = virtuosoContext.MessageSystem, numItemsPrepended = virtuosoContext.numItemsPrepended, ownMessagesReadByOthers = virtuosoContext.ownMessagesReadByOthers, messageList = virtuosoContext.processedMessages, shouldGroupByUser = virtuosoContext.shouldGroupByUser, virtuosoRef = virtuosoContext.virtuosoRef;
51
+ var streamMessageIndex = calculateItemIndex(virtuosoIndex, numItemsPrepended);
52
+ if (customMessageRenderer) {
53
+ return customMessageRenderer(messageList, streamMessageIndex);
54
+ }
55
+ var message = messageList[streamMessageIndex];
56
+ if (!message)
57
+ return React.createElement("div", { style: { height: '1px' } }); // returning null or zero height breaks the virtuoso
58
+ if (message.customType === CUSTOM_MESSAGE_TYPE.date && message.date && isDate(message.date)) {
59
+ return DateSeparator ? React.createElement(DateSeparator, { date: message.date, unread: message.unread }) : null;
60
+ }
61
+ if (message.type === 'system') {
62
+ return MessageSystem ? React.createElement(MessageSystem, { message: message }) : null;
63
+ }
64
+ var groupedByUser = shouldGroupByUser &&
65
+ streamMessageIndex > 0 &&
66
+ ((_a = message.user) === null || _a === void 0 ? void 0 : _a.id) === ((_b = messageList[streamMessageIndex - 1].user) === null || _b === void 0 ? void 0 : _b.id);
67
+ var firstOfGroup = shouldGroupByUser && ((_c = message.user) === null || _c === void 0 ? void 0 : _c.id) !== ((_e = (_d = messageList[streamMessageIndex - 1]) === null || _d === void 0 ? void 0 : _d.user) === null || _e === void 0 ? void 0 : _e.id);
68
+ var endOfGroup = shouldGroupByUser && ((_f = message.user) === null || _f === void 0 ? void 0 : _f.id) !== ((_h = (_g = messageList[streamMessageIndex + 1]) === null || _g === void 0 ? void 0 : _g.user) === null || _h === void 0 ? void 0 : _h.id);
69
+ return (React.createElement(Message, { additionalMessageInputProps: additionalMessageInputProps, autoscrollToBottom: (_j = virtuosoRef.current) === null || _j === void 0 ? void 0 : _j.autoscrollToBottom, closeReactionSelectorOnClick: closeReactionSelectorOnClick, customMessageActions: customMessageActions, endOfGroup: endOfGroup, firstOfGroup: firstOfGroup, groupedByUser: groupedByUser, lastReceivedId: lastReceivedMessageId, message: message, Message: MessageUIComponent, messageActions: messageActions, readBy: ownMessagesReadByOthers[message.id] || [] }));
70
+ };
@@ -0,0 +1,5 @@
1
+ export * from './useEnrichedMessages';
2
+ export * from './useMessageListElements';
3
+ export * from './useMessageListScrollManager';
4
+ export * from './useScrollLocationLogic';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './useEnrichedMessages';
2
+ export * from './useMessageListElements';
3
+ export * from './useMessageListScrollManager';
4
+ export * from './useScrollLocationLogic';
@@ -1,7 +1,7 @@
1
- import { GroupStyle } from '../utils';
1
+ import { GroupStyle } from '../../utils';
2
2
  import type { Channel } from 'stream-chat';
3
- import type { StreamMessage } from '../../../context/ChannelStateContext';
4
- import type { DefaultStreamChatGenerics } from '../../../types/types';
3
+ import type { StreamMessage } from '../../../../context/ChannelStateContext';
4
+ import type { DefaultStreamChatGenerics } from '../../../../types/types';
5
5
  export declare const useEnrichedMessages: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(args: {
6
6
  channel: Channel<StreamChatGenerics>;
7
7
  disableDateSeparator: boolean;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEnrichedMessages.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/useEnrichedMessages.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,UAAU,EAAgC,MAAM,aAAa,CAAC;AAKvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,eAAO,MAAM,mBAAmB;;0BAIR,OAAO;yBACR,OAAO;6BACH,OAAO;;mBAEjB,OAAO;mLAKL,OAAO,KACnB,UAAU;;;;;CAsDhB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { useMemo } from 'react';
2
- import { getGroupStyles, insertIntro, processMessages } from '../utils';
3
- import { useChatContext } from '../../../context/ChatContext';
4
- import { useComponentContext } from '../../../context/ComponentContext';
2
+ import { getGroupStyles, insertIntro, processMessages } from '../../utils';
3
+ import { useChatContext } from '../../../../context/ChatContext';
4
+ import { useComponentContext } from '../../../../context/ComponentContext';
5
5
  export var useEnrichedMessages = function (args) {
6
6
  var channel = args.channel, disableDateSeparator = args.disableDateSeparator, groupStyles = args.groupStyles, headerPosition = args.headerPosition, hideDeletedMessages = args.hideDeletedMessages, hideNewMessageSeparator = args.hideNewMessageSeparator, messages = args.messages, noGroupByUser = args.noGroupByUser;
7
7
  var client = useChatContext('useEnrichedMessages').client;
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
- import { GroupStyle } from '../utils';
2
+ import { GroupStyle } from '../../utils';
3
3
  import type { UserResponse } from 'stream-chat';
4
- import type { MessageProps } from '../../Message/types';
5
- import type { StreamMessage } from '../../../context/ChannelStateContext';
6
- import type { DefaultStreamChatGenerics } from '../../../types/types';
4
+ import type { MessageProps } from '../../../Message/types';
5
+ import type { StreamMessage } from '../../../../context/ChannelStateContext';
6
+ import type { DefaultStreamChatGenerics } from '../../../../types/types';
7
7
  declare type MessagePropsToOmit = 'channel' | 'groupStyles' | 'initialMessage' | 'lastReceivedId' | 'message' | 'readBy' | 'threadList';
8
8
  declare type UseMessageListElementsProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
9
9
  enrichedMessages: StreamMessage<StreamChatGenerics>[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMessageListElements.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/useMessageListElements.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAmB,UAAU,EAAE,MAAM,aAAa,CAAC;AAW1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,aAAK,kBAAkB,GACnB,SAAS,GACT,aAAa,GACb,gBAAgB,GAChB,gBAAgB,GAChB,SAAS,GACT,QAAQ,GACR,YAAY,CAAC;AAEjB,aAAK,2BAA2B,CAC9B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,gBAAgB,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACtD,oBAAoB,EAAE,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACjF,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAA;KAAE,CAAC,CAAC;CACpF,CAAC;AAEF,eAAO,MAAM,sBAAsB,iKAkGlC,CAAC"}
@@ -1,15 +1,15 @@
1
1
  import { __assign } from "tslib";
2
2
  /* eslint-disable no-continue */
3
3
  import React, { useMemo } from 'react';
4
- import { useLastReadData } from './useLastReadData';
5
- import { getLastReceived } from '../utils';
6
- import { CUSTOM_MESSAGE_TYPE } from '../../../constants/messageTypes';
7
- import { DateSeparator as DefaultDateSeparator } from '../../DateSeparator/DateSeparator';
8
- import { EventComponent } from '../../EventComponent/EventComponent';
9
- import { Message } from '../../Message';
10
- import { useChatContext } from '../../../context/ChatContext';
11
- import { useComponentContext } from '../../../context/ComponentContext';
12
- import { isDate } from '../../../context/TranslationContext';
4
+ import { useLastReadData } from '../useLastReadData';
5
+ import { getLastReceived } from '../../utils';
6
+ import { CUSTOM_MESSAGE_TYPE } from '../../../../constants/messageTypes';
7
+ import { DateSeparator as DefaultDateSeparator } from '../../../DateSeparator/DateSeparator';
8
+ import { EventComponent } from '../../../EventComponent/EventComponent';
9
+ import { Message } from '../../../Message';
10
+ import { useChatContext } from '../../../../context/ChatContext';
11
+ import { useComponentContext } from '../../../../context/ComponentContext';
12
+ import { isDate } from '../../../../context/TranslationContext';
13
13
  export var useMessageListElements = function (props) {
14
14
  var enrichedMessages = props.enrichedMessages, internalMessageProps = props.internalMessageProps, messageGroupStyles = props.messageGroupStyles, read = props.read, returnAllReadData = props.returnAllReadData, threadList = props.threadList;
15
15
  var _a = useChatContext('useMessageListElements'), client = _a.client, customClasses = _a.customClasses;
@@ -1,5 +1,5 @@
1
- import type { StreamMessage } from '../../../context/ChannelStateContext';
2
- import type { DefaultStreamChatGenerics } from '../../../types/types';
1
+ import type { StreamMessage } from '../../../../context/ChannelStateContext';
2
+ import type { DefaultStreamChatGenerics } from '../../../../types/types';
3
3
  export declare type ContainerMeasures = {
4
4
  offsetHeight: number;
5
5
  scrollHeight: number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMessageListScrollManager.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/useMessageListScrollManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,oBAAY,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oBAAY,iCAAiC,CAC3C,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,uBAAuB,EAAE,MAAM,CAAC;IAChC,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC9C,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;IACjD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AAGF,wBAAgB,2BAA2B,CACzC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,MAAM,EAAE,iCAAiC,CAAC,kBAAkB,CAAC,oBAmErC,MAAM,UAG/B"}
@@ -1,5 +1,5 @@
1
1
  import { useLayoutEffect, useRef } from 'react';
2
- import { useChatContext } from '../../../context/ChatContext';
2
+ import { useChatContext } from '../../../../context/ChatContext';
3
3
  // FIXME: change this generic name to something like useAdjustScrollPositionToListSize
4
4
  export function useMessageListScrollManager(params) {
5
5
  var loadMoreScrollThreshold = params.loadMoreScrollThreshold, onScrollBy = params.onScrollBy, scrollContainerMeasures = params.scrollContainerMeasures, scrolledUpThreshold = params.scrolledUpThreshold, scrollToBottom = params.scrollToBottom, showNewMessages = params.showNewMessages;