stream-chat-react-native-core 4.0.0-beta.1 → 4.0.0-beta.5

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 (866) hide show
  1. package/lib/commonjs/components/Attachment/Attachment.js +2 -2
  2. package/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
  3. package/lib/commonjs/components/Attachment/AttachmentActions.js.map +1 -1
  4. package/lib/commonjs/components/Attachment/Card.js +15 -15
  5. package/lib/commonjs/components/Attachment/Card.js.map +1 -1
  6. package/lib/commonjs/components/Attachment/FileAttachment.js +8 -8
  7. package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
  8. package/lib/commonjs/components/Attachment/FileIcon.js.map +1 -1
  9. package/lib/commonjs/components/Attachment/Gallery.js +97 -106
  10. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  11. package/lib/commonjs/components/Attachment/Giphy.js +112 -148
  12. package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
  13. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGallery.js +46 -0
  14. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGallery.js.map +1 -0
  15. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js +88 -0
  16. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js.map +1 -0
  17. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js +75 -0
  18. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js.map +1 -0
  19. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js +43 -0
  20. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js.map +1 -0
  21. package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnail.js +30 -0
  22. package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnail.js.map +1 -0
  23. package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnailGrid.js +49 -0
  24. package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnailGrid.js.map +1 -0
  25. package/lib/commonjs/components/Attachment/utils/buildGallery/types.js +4 -0
  26. package/lib/commonjs/components/Attachment/utils/buildGallery/types.js.map +1 -0
  27. package/lib/commonjs/components/Attachment/utils/getAspectRatio.js +14 -0
  28. package/lib/commonjs/components/Attachment/utils/getAspectRatio.js.map +1 -0
  29. package/lib/commonjs/components/Attachment/utils/getGalleryImageBorderRadius.js +36 -0
  30. package/lib/commonjs/components/Attachment/utils/getGalleryImageBorderRadius.js.map +1 -0
  31. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +9 -8
  32. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  33. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +2 -2
  34. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  35. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -1
  36. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -1
  37. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +16 -16
  38. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
  39. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +11 -11
  40. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
  41. package/lib/commonjs/components/Avatar/Avatar.js +13 -7
  42. package/lib/commonjs/components/Avatar/Avatar.js.map +1 -1
  43. package/lib/commonjs/components/Avatar/GroupAvatar.js +10 -4
  44. package/lib/commonjs/components/Avatar/GroupAvatar.js.map +1 -1
  45. package/lib/commonjs/components/Channel/Channel.js +64 -64
  46. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  47. package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
  48. package/lib/commonjs/components/ChannelList/ChannelList.js +6 -6
  49. package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
  50. package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js +4 -4
  51. package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
  52. package/lib/commonjs/components/ChannelList/ChannelListHeaderErrorIndicator.js +6 -7
  53. package/lib/commonjs/components/ChannelList/ChannelListHeaderErrorIndicator.js.map +1 -1
  54. package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +2 -2
  55. package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
  56. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js +17 -17
  57. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js.map +1 -1
  58. package/lib/commonjs/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js +2 -2
  59. package/lib/commonjs/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
  60. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
  61. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
  62. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
  63. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
  64. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelVisible.js +2 -2
  65. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
  66. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js +2 -2
  67. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  68. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js +3 -3
  69. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
  70. package/lib/commonjs/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
  71. package/lib/commonjs/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
  72. package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js +2 -2
  73. package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
  74. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +83 -70
  75. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  76. package/lib/commonjs/components/ChannelList/utils.js +1 -1
  77. package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js +2 -2
  78. package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js.map +1 -1
  79. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +2 -2
  80. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
  81. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  82. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +48 -20
  83. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  84. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js +51 -0
  85. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js.map +1 -0
  86. package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js +4 -4
  87. package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
  88. package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
  89. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js +2 -2
  90. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
  91. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
  92. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  93. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
  94. package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  95. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  96. package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
  97. package/lib/commonjs/components/ImageGallery/ImageGallery.js +89 -56
  98. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  99. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +2 -2
  100. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  101. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +12 -12
  102. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  103. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +28 -11
  104. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  105. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +7 -7
  106. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
  107. package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js +5 -5
  108. package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
  109. package/lib/commonjs/components/Indicators/LoadingIndicator.js +9 -9
  110. package/lib/commonjs/components/Indicators/LoadingIndicator.js.map +1 -1
  111. package/lib/commonjs/components/Message/Message.js +13 -9
  112. package/lib/commonjs/components/Message/Message.js.map +1 -1
  113. package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js +6 -6
  114. package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
  115. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +19 -19
  116. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
  117. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js +5 -5
  118. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
  119. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +20 -16
  120. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  121. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js +2 -2
  122. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -1
  123. package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js +5 -5
  124. package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
  125. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +9 -7
  126. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js.map +1 -1
  127. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +46 -46
  128. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js.map +1 -1
  129. package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js +89 -0
  130. package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js.map +1 -0
  131. package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.test.js +46 -0
  132. package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.test.js.map +1 -0
  133. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +151 -72
  134. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  135. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js +240 -0
  136. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js.map +1 -0
  137. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  138. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js +16 -3
  139. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
  140. package/lib/commonjs/components/Message/hooks/useMessageActions.js +18 -14
  141. package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
  142. package/lib/commonjs/components/Message/utils/messageActions.js.map +1 -1
  143. package/lib/commonjs/components/Message/utils/removeReservedFields.js.map +1 -1
  144. package/lib/commonjs/components/MessageInput/AttachButton.js +3 -3
  145. package/lib/commonjs/components/MessageInput/AttachButton.js.map +1 -1
  146. package/lib/commonjs/components/MessageInput/CommandsButton.js +3 -3
  147. package/lib/commonjs/components/MessageInput/CommandsButton.js.map +1 -1
  148. package/lib/commonjs/components/MessageInput/CooldownTimer.js +2 -2
  149. package/lib/commonjs/components/MessageInput/CooldownTimer.js.map +1 -1
  150. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +2 -2
  151. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  152. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +7 -7
  153. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  154. package/lib/commonjs/components/MessageInput/InputButtons.js +3 -3
  155. package/lib/commonjs/components/MessageInput/InputButtons.js.map +1 -1
  156. package/lib/commonjs/components/MessageInput/MessageInput.js +40 -40
  157. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  158. package/lib/commonjs/components/MessageInput/MoreOptionsButton.js +3 -3
  159. package/lib/commonjs/components/MessageInput/MoreOptionsButton.js.map +1 -1
  160. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js +2 -2
  161. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -1
  162. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js +3 -3
  163. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
  164. package/lib/commonjs/components/MessageInput/hooks/useCooldown.js.map +1 -1
  165. package/lib/commonjs/components/MessageInput/hooks/useCountdown.js.map +1 -1
  166. package/lib/commonjs/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
  167. package/lib/commonjs/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
  168. package/lib/commonjs/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
  169. package/lib/commonjs/components/MessageList/MessageList.js +2 -2
  170. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  171. package/lib/commonjs/components/MessageList/MessageSystem.js.map +1 -1
  172. package/lib/commonjs/components/MessageList/TypingIndicator.js +5 -5
  173. package/lib/commonjs/components/MessageList/TypingIndicator.js.map +1 -1
  174. package/lib/commonjs/components/MessageList/hooks/useMessageList.js +7 -7
  175. package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
  176. package/lib/commonjs/components/MessageList/hooks/useTypingString.js +2 -2
  177. package/lib/commonjs/components/MessageList/hooks/useTypingString.js.map +1 -1
  178. package/lib/commonjs/components/MessageList/utils/getGroupStyles.js.map +1 -1
  179. package/lib/commonjs/components/MessageList/utils/getLastReceivedMessage.js +3 -1
  180. package/lib/commonjs/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
  181. package/lib/commonjs/components/MessageOverlay/MessageActionList.js +2 -2
  182. package/lib/commonjs/components/MessageOverlay/MessageActionList.js.map +1 -1
  183. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +7 -7
  184. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -1
  185. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +38 -32
  186. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
  187. package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js +1 -1
  188. package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js.map +1 -1
  189. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js +11 -11
  190. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js.map +1 -1
  191. package/lib/commonjs/components/MessageOverlay/OverlayReactions.js +31 -34
  192. package/lib/commonjs/components/MessageOverlay/OverlayReactions.js.map +1 -1
  193. package/lib/commonjs/components/MessageOverlay/OverlayReactionsAvatar.js +41 -0
  194. package/lib/commonjs/components/MessageOverlay/OverlayReactionsAvatar.js.map +1 -0
  195. package/lib/commonjs/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -1
  196. package/lib/commonjs/components/Reply/Reply.js +25 -19
  197. package/lib/commonjs/components/Reply/Reply.js.map +1 -1
  198. package/lib/commonjs/components/Thread/Thread.js +6 -6
  199. package/lib/commonjs/components/Thread/Thread.js.map +1 -1
  200. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +12 -12
  201. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  202. package/lib/commonjs/components/docs/data.js +1 -1
  203. package/lib/commonjs/components/index.js +26 -0
  204. package/lib/commonjs/components/index.js.map +1 -1
  205. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +2 -2
  206. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -1
  207. package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js +2 -2
  208. package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
  209. package/lib/commonjs/contexts/channelContext/ChannelContext.js +2 -2
  210. package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
  211. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js +2 -2
  212. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
  213. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js +3 -3
  214. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
  215. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -1
  216. package/lib/commonjs/contexts/chatContext/ChatContext.js +2 -2
  217. package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
  218. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js +2 -2
  219. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  220. package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js +2 -2
  221. package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js.map +1 -1
  222. package/lib/commonjs/contexts/messageContext/MessageContext.js +2 -2
  223. package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
  224. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +18 -14
  225. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  226. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  227. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +10 -3
  228. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  229. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js +5 -19
  230. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  231. package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.js +36 -0
  232. package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.js.map +1 -0
  233. package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js +105 -0
  234. package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js.map +1 -0
  235. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  236. package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -1
  237. package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
  238. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +33 -31
  239. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
  240. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +1 -1
  241. package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +2 -2
  242. package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
  243. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +3 -3
  244. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  245. package/lib/commonjs/contexts/themeContext/ThemeContext.js +2 -2
  246. package/lib/commonjs/contexts/themeContext/ThemeContext.js.map +1 -1
  247. package/lib/commonjs/contexts/themeContext/utils/theme.js +20 -11
  248. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  249. package/lib/commonjs/contexts/threadContext/ThreadContext.js +2 -2
  250. package/lib/commonjs/contexts/threadContext/ThreadContext.js.map +1 -1
  251. package/lib/commonjs/contexts/translationContext/TranslationContext.js +1 -1
  252. package/lib/commonjs/contexts/translationContext/TranslationContext.js.map +1 -1
  253. package/lib/commonjs/contexts/typingContext/TypingContext.js +2 -2
  254. package/lib/commonjs/contexts/typingContext/TypingContext.js.map +1 -1
  255. package/lib/commonjs/contexts/utils/getDisplayName.js.map +1 -1
  256. package/lib/commonjs/emoji-data/index.js +2 -2
  257. package/lib/commonjs/emoji-data/index.js.map +1 -1
  258. package/lib/commonjs/hooks/useStreami18n.js.map +1 -1
  259. package/lib/commonjs/icons/index.js +0 -26
  260. package/lib/commonjs/icons/index.js.map +1 -1
  261. package/lib/commonjs/icons/utils/base.js +1 -1
  262. package/lib/commonjs/index.js +6 -6
  263. package/lib/commonjs/mock-builders/api/error.js +1 -1
  264. package/lib/commonjs/mock-builders/api/sendMessage.js.map +1 -1
  265. package/lib/commonjs/mock-builders/generator/attachment.js +1 -3
  266. package/lib/commonjs/mock-builders/generator/attachment.js.map +1 -1
  267. package/lib/commonjs/mock-builders/generator/channel.js +101 -51
  268. package/lib/commonjs/mock-builders/generator/channel.js.map +1 -1
  269. package/lib/commonjs/mock-builders/generator/user.js +32 -33
  270. package/lib/commonjs/mock-builders/generator/user.js.map +1 -1
  271. package/lib/commonjs/mock-builders/mock.js +1 -1
  272. package/lib/commonjs/native.js +1 -1
  273. package/lib/commonjs/native.js.map +1 -1
  274. package/lib/commonjs/styleguideComponents/ArgumentsRenderer.js +7 -7
  275. package/lib/commonjs/styleguideComponents/ArgumentsRenderer.js.map +1 -1
  276. package/lib/commonjs/styleguideComponents/JsDoc.js +4 -4
  277. package/lib/commonjs/styleguideComponents/JsDoc.js.map +1 -1
  278. package/lib/commonjs/styleguideComponents/PathlineRenderer.js +7 -7
  279. package/lib/commonjs/styleguideComponents/PathlineRenderer.js.map +1 -1
  280. package/lib/commonjs/styleguideComponents/PropsRenderer.js +25 -25
  281. package/lib/commonjs/styleguideComponents/PropsRenderer.js.map +1 -1
  282. package/lib/commonjs/styleguideComponents/Wrapper.js +1 -1
  283. package/lib/commonjs/styleguideComponents/Wrapper.js.map +1 -1
  284. package/lib/commonjs/utils/Streami18n.js.map +1 -1
  285. package/lib/commonjs/utils/getResizedImageUrl.js +26 -0
  286. package/lib/commonjs/utils/getResizedImageUrl.js.map +1 -0
  287. package/lib/commonjs/utils/getUrlOfImageAttachment.js +9 -0
  288. package/lib/commonjs/utils/getUrlOfImageAttachment.js.map +1 -0
  289. package/lib/commonjs/utils/utils.js +9 -3
  290. package/lib/commonjs/utils/utils.js.map +1 -1
  291. package/lib/commonjs/version.json +1 -1
  292. package/lib/module/components/Attachment/Attachment.js +2 -2
  293. package/lib/module/components/Attachment/Attachment.js.map +1 -1
  294. package/lib/module/components/Attachment/AttachmentActions.js.map +1 -1
  295. package/lib/module/components/Attachment/Card.js +15 -15
  296. package/lib/module/components/Attachment/Card.js.map +1 -1
  297. package/lib/module/components/Attachment/FileAttachment.js +8 -8
  298. package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
  299. package/lib/module/components/Attachment/FileIcon.js.map +1 -1
  300. package/lib/module/components/Attachment/Gallery.js +97 -106
  301. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  302. package/lib/module/components/Attachment/Giphy.js +112 -148
  303. package/lib/module/components/Attachment/Giphy.js.map +1 -1
  304. package/lib/module/components/Attachment/utils/buildGallery/buildGallery.js +46 -0
  305. package/lib/module/components/Attachment/utils/buildGallery/buildGallery.js.map +1 -0
  306. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js +88 -0
  307. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js.map +1 -0
  308. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js +75 -0
  309. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js.map +1 -0
  310. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js +43 -0
  311. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js.map +1 -0
  312. package/lib/module/components/Attachment/utils/buildGallery/buildThumbnail.js +30 -0
  313. package/lib/module/components/Attachment/utils/buildGallery/buildThumbnail.js.map +1 -0
  314. package/lib/module/components/Attachment/utils/buildGallery/buildThumbnailGrid.js +49 -0
  315. package/lib/module/components/Attachment/utils/buildGallery/buildThumbnailGrid.js.map +1 -0
  316. package/lib/module/components/Attachment/utils/buildGallery/types.js +4 -0
  317. package/lib/module/components/Attachment/utils/buildGallery/types.js.map +1 -0
  318. package/lib/module/components/Attachment/utils/getAspectRatio.js +14 -0
  319. package/lib/module/components/Attachment/utils/getAspectRatio.js.map +1 -0
  320. package/lib/module/components/Attachment/utils/getGalleryImageBorderRadius.js +36 -0
  321. package/lib/module/components/Attachment/utils/getGalleryImageBorderRadius.js.map +1 -0
  322. package/lib/module/components/AttachmentPicker/AttachmentPicker.js +9 -8
  323. package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  324. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +2 -2
  325. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  326. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -1
  327. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -1
  328. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +16 -16
  329. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
  330. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +11 -11
  331. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
  332. package/lib/module/components/Avatar/Avatar.js +13 -7
  333. package/lib/module/components/Avatar/Avatar.js.map +1 -1
  334. package/lib/module/components/Avatar/GroupAvatar.js +10 -4
  335. package/lib/module/components/Avatar/GroupAvatar.js.map +1 -1
  336. package/lib/module/components/Channel/Channel.js +64 -64
  337. package/lib/module/components/Channel/Channel.js.map +1 -1
  338. package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
  339. package/lib/module/components/ChannelList/ChannelList.js +6 -6
  340. package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
  341. package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js +4 -4
  342. package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
  343. package/lib/module/components/ChannelList/ChannelListHeaderErrorIndicator.js +6 -7
  344. package/lib/module/components/ChannelList/ChannelListHeaderErrorIndicator.js.map +1 -1
  345. package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +2 -2
  346. package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
  347. package/lib/module/components/ChannelList/ChannelListMessenger.js +17 -17
  348. package/lib/module/components/ChannelList/ChannelListMessenger.js.map +1 -1
  349. package/lib/module/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js +2 -2
  350. package/lib/module/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
  351. package/lib/module/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
  352. package/lib/module/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
  353. package/lib/module/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
  354. package/lib/module/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
  355. package/lib/module/components/ChannelList/hooks/listeners/useChannelVisible.js +2 -2
  356. package/lib/module/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
  357. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js +2 -2
  358. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  359. package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js +3 -3
  360. package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
  361. package/lib/module/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
  362. package/lib/module/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
  363. package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js +2 -2
  364. package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
  365. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +83 -70
  366. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  367. package/lib/module/components/ChannelList/utils.js +1 -1
  368. package/lib/module/components/ChannelPreview/ChannelAvatar.js +2 -2
  369. package/lib/module/components/ChannelPreview/ChannelAvatar.js.map +1 -1
  370. package/lib/module/components/ChannelPreview/ChannelPreview.js +2 -2
  371. package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
  372. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  373. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +48 -20
  374. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  375. package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js +51 -0
  376. package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js.map +1 -0
  377. package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js +4 -4
  378. package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
  379. package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
  380. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js +2 -2
  381. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
  382. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
  383. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  384. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
  385. package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  386. package/lib/module/components/Chat/Chat.js.map +1 -1
  387. package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
  388. package/lib/module/components/ImageGallery/ImageGallery.js +89 -56
  389. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  390. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +2 -2
  391. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  392. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +12 -12
  393. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  394. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +28 -11
  395. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  396. package/lib/module/components/ImageGallery/components/ImageGrid.js +7 -7
  397. package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
  398. package/lib/module/components/ImageGallery/components/ImageGridHandle.js +5 -5
  399. package/lib/module/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
  400. package/lib/module/components/Indicators/LoadingIndicator.js +9 -9
  401. package/lib/module/components/Indicators/LoadingIndicator.js.map +1 -1
  402. package/lib/module/components/Message/Message.js +13 -9
  403. package/lib/module/components/Message/Message.js.map +1 -1
  404. package/lib/module/components/Message/MessageSimple/MessageAvatar.js +6 -6
  405. package/lib/module/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
  406. package/lib/module/components/Message/MessageSimple/MessageContent.js +19 -19
  407. package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
  408. package/lib/module/components/Message/MessageSimple/MessageDeleted.js +5 -5
  409. package/lib/module/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
  410. package/lib/module/components/Message/MessageSimple/MessageFooter.js +20 -16
  411. package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  412. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js +2 -2
  413. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -1
  414. package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js +5 -5
  415. package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
  416. package/lib/module/components/Message/MessageSimple/MessageStatus.js +9 -7
  417. package/lib/module/components/Message/MessageSimple/MessageStatus.js.map +1 -1
  418. package/lib/module/components/Message/MessageSimple/ReactionList.js +46 -46
  419. package/lib/module/components/Message/MessageSimple/ReactionList.js.map +1 -1
  420. package/lib/module/components/Message/MessageSimple/utils/parseLinks.js +89 -0
  421. package/lib/module/components/Message/MessageSimple/utils/parseLinks.js.map +1 -0
  422. package/lib/module/components/Message/MessageSimple/utils/parseLinks.test.js +46 -0
  423. package/lib/module/components/Message/MessageSimple/utils/parseLinks.test.js.map +1 -0
  424. package/lib/module/components/Message/MessageSimple/utils/renderText.js +151 -72
  425. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  426. package/lib/module/components/Message/MessageSimple/utils/renderText.test.js +240 -0
  427. package/lib/module/components/Message/MessageSimple/utils/renderText.test.js.map +1 -0
  428. package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  429. package/lib/module/components/Message/hooks/useMessageActionHandlers.js +16 -3
  430. package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
  431. package/lib/module/components/Message/hooks/useMessageActions.js +18 -14
  432. package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
  433. package/lib/module/components/Message/utils/messageActions.js.map +1 -1
  434. package/lib/module/components/Message/utils/removeReservedFields.js.map +1 -1
  435. package/lib/module/components/MessageInput/AttachButton.js +3 -3
  436. package/lib/module/components/MessageInput/AttachButton.js.map +1 -1
  437. package/lib/module/components/MessageInput/CommandsButton.js +3 -3
  438. package/lib/module/components/MessageInput/CommandsButton.js.map +1 -1
  439. package/lib/module/components/MessageInput/CooldownTimer.js +2 -2
  440. package/lib/module/components/MessageInput/CooldownTimer.js.map +1 -1
  441. package/lib/module/components/MessageInput/FileUploadPreview.js +2 -2
  442. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  443. package/lib/module/components/MessageInput/ImageUploadPreview.js +7 -7
  444. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  445. package/lib/module/components/MessageInput/InputButtons.js +3 -3
  446. package/lib/module/components/MessageInput/InputButtons.js.map +1 -1
  447. package/lib/module/components/MessageInput/MessageInput.js +40 -40
  448. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  449. package/lib/module/components/MessageInput/MoreOptionsButton.js +3 -3
  450. package/lib/module/components/MessageInput/MoreOptionsButton.js.map +1 -1
  451. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js +2 -2
  452. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -1
  453. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js +3 -3
  454. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
  455. package/lib/module/components/MessageInput/hooks/useCooldown.js.map +1 -1
  456. package/lib/module/components/MessageInput/hooks/useCountdown.js.map +1 -1
  457. package/lib/module/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
  458. package/lib/module/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
  459. package/lib/module/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
  460. package/lib/module/components/MessageList/MessageList.js +2 -2
  461. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  462. package/lib/module/components/MessageList/MessageSystem.js.map +1 -1
  463. package/lib/module/components/MessageList/TypingIndicator.js +5 -5
  464. package/lib/module/components/MessageList/TypingIndicator.js.map +1 -1
  465. package/lib/module/components/MessageList/hooks/useMessageList.js +7 -7
  466. package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
  467. package/lib/module/components/MessageList/hooks/useTypingString.js +2 -2
  468. package/lib/module/components/MessageList/hooks/useTypingString.js.map +1 -1
  469. package/lib/module/components/MessageList/utils/getGroupStyles.js.map +1 -1
  470. package/lib/module/components/MessageList/utils/getLastReceivedMessage.js +3 -1
  471. package/lib/module/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
  472. package/lib/module/components/MessageOverlay/MessageActionList.js +2 -2
  473. package/lib/module/components/MessageOverlay/MessageActionList.js.map +1 -1
  474. package/lib/module/components/MessageOverlay/MessageActionListItem.js +7 -7
  475. package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -1
  476. package/lib/module/components/MessageOverlay/MessageOverlay.js +38 -32
  477. package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
  478. package/lib/module/components/MessageOverlay/OverlayBackdrop.js +1 -1
  479. package/lib/module/components/MessageOverlay/OverlayBackdrop.js.map +1 -1
  480. package/lib/module/components/MessageOverlay/OverlayReactionList.js +11 -11
  481. package/lib/module/components/MessageOverlay/OverlayReactionList.js.map +1 -1
  482. package/lib/module/components/MessageOverlay/OverlayReactions.js +31 -34
  483. package/lib/module/components/MessageOverlay/OverlayReactions.js.map +1 -1
  484. package/lib/module/components/MessageOverlay/OverlayReactionsAvatar.js +41 -0
  485. package/lib/module/components/MessageOverlay/OverlayReactionsAvatar.js.map +1 -0
  486. package/lib/module/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -1
  487. package/lib/module/components/Reply/Reply.js +25 -19
  488. package/lib/module/components/Reply/Reply.js.map +1 -1
  489. package/lib/module/components/Thread/Thread.js +6 -6
  490. package/lib/module/components/Thread/Thread.js.map +1 -1
  491. package/lib/module/components/Thread/components/ThreadFooterComponent.js +12 -12
  492. package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  493. package/lib/module/components/docs/data.js +1 -1
  494. package/lib/module/components/index.js +26 -0
  495. package/lib/module/components/index.js.map +1 -1
  496. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +2 -2
  497. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -1
  498. package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js +2 -2
  499. package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
  500. package/lib/module/contexts/channelContext/ChannelContext.js +2 -2
  501. package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
  502. package/lib/module/contexts/channelsContext/ChannelsContext.js +2 -2
  503. package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
  504. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js +3 -3
  505. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
  506. package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -1
  507. package/lib/module/contexts/chatContext/ChatContext.js +2 -2
  508. package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
  509. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js +2 -2
  510. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  511. package/lib/module/contexts/keyboardContext/KeyboardContext.js +2 -2
  512. package/lib/module/contexts/keyboardContext/KeyboardContext.js.map +1 -1
  513. package/lib/module/contexts/messageContext/MessageContext.js +2 -2
  514. package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
  515. package/lib/module/contexts/messageInputContext/MessageInputContext.js +18 -14
  516. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  517. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  518. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +10 -3
  519. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  520. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js +5 -19
  521. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  522. package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.js +36 -0
  523. package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.js.map +1 -0
  524. package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js +105 -0
  525. package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js.map +1 -0
  526. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  527. package/lib/module/contexts/overlayContext/OverlayContext.js +1 -1
  528. package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
  529. package/lib/module/contexts/overlayContext/OverlayProvider.js +33 -31
  530. package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
  531. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +1 -1
  532. package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +2 -2
  533. package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
  534. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +3 -3
  535. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  536. package/lib/module/contexts/themeContext/ThemeContext.js +2 -2
  537. package/lib/module/contexts/themeContext/ThemeContext.js.map +1 -1
  538. package/lib/module/contexts/themeContext/utils/theme.js +20 -11
  539. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  540. package/lib/module/contexts/threadContext/ThreadContext.js +2 -2
  541. package/lib/module/contexts/threadContext/ThreadContext.js.map +1 -1
  542. package/lib/module/contexts/translationContext/TranslationContext.js +1 -1
  543. package/lib/module/contexts/translationContext/TranslationContext.js.map +1 -1
  544. package/lib/module/contexts/typingContext/TypingContext.js +2 -2
  545. package/lib/module/contexts/typingContext/TypingContext.js.map +1 -1
  546. package/lib/module/contexts/utils/getDisplayName.js.map +1 -1
  547. package/lib/module/emoji-data/index.js +2 -2
  548. package/lib/module/emoji-data/index.js.map +1 -1
  549. package/lib/module/hooks/useStreami18n.js.map +1 -1
  550. package/lib/module/icons/index.js +0 -26
  551. package/lib/module/icons/index.js.map +1 -1
  552. package/lib/module/icons/utils/base.js +1 -1
  553. package/lib/module/index.js +6 -6
  554. package/lib/module/mock-builders/api/error.js +1 -1
  555. package/lib/module/mock-builders/api/sendMessage.js.map +1 -1
  556. package/lib/module/mock-builders/generator/attachment.js +1 -3
  557. package/lib/module/mock-builders/generator/attachment.js.map +1 -1
  558. package/lib/module/mock-builders/generator/channel.js +101 -51
  559. package/lib/module/mock-builders/generator/channel.js.map +1 -1
  560. package/lib/module/mock-builders/generator/user.js +32 -33
  561. package/lib/module/mock-builders/generator/user.js.map +1 -1
  562. package/lib/module/mock-builders/mock.js +1 -1
  563. package/lib/module/native.js +1 -1
  564. package/lib/module/native.js.map +1 -1
  565. package/lib/module/styleguideComponents/ArgumentsRenderer.js +7 -7
  566. package/lib/module/styleguideComponents/ArgumentsRenderer.js.map +1 -1
  567. package/lib/module/styleguideComponents/JsDoc.js +4 -4
  568. package/lib/module/styleguideComponents/JsDoc.js.map +1 -1
  569. package/lib/module/styleguideComponents/PathlineRenderer.js +7 -7
  570. package/lib/module/styleguideComponents/PathlineRenderer.js.map +1 -1
  571. package/lib/module/styleguideComponents/PropsRenderer.js +25 -25
  572. package/lib/module/styleguideComponents/PropsRenderer.js.map +1 -1
  573. package/lib/module/styleguideComponents/Wrapper.js +1 -1
  574. package/lib/module/styleguideComponents/Wrapper.js.map +1 -1
  575. package/lib/module/utils/Streami18n.js.map +1 -1
  576. package/lib/module/utils/getResizedImageUrl.js +26 -0
  577. package/lib/module/utils/getResizedImageUrl.js.map +1 -0
  578. package/lib/module/utils/getUrlOfImageAttachment.js +9 -0
  579. package/lib/module/utils/getUrlOfImageAttachment.js.map +1 -0
  580. package/lib/module/utils/utils.js +9 -3
  581. package/lib/module/utils/utils.js.map +1 -1
  582. package/lib/module/version.json +1 -1
  583. package/lib/typescript/components/Attachment/Attachment.d.ts +1 -1
  584. package/lib/typescript/components/Attachment/AttachmentActions.d.ts +1 -1
  585. package/lib/typescript/components/Attachment/Card.d.ts +1 -1
  586. package/lib/typescript/components/Attachment/FileAttachment.d.ts +1 -1
  587. package/lib/typescript/components/Attachment/Gallery.d.ts +1 -4
  588. package/lib/typescript/components/Attachment/Giphy.d.ts +1 -1
  589. package/lib/typescript/components/Attachment/utils/buildGallery/buildGallery.d.ts +23 -0
  590. package/lib/typescript/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.d.ts +7 -0
  591. package/lib/typescript/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.d.ts +7 -0
  592. package/lib/typescript/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.d.ts +7 -0
  593. package/lib/typescript/components/Attachment/utils/buildGallery/buildThumbnail.d.ts +10 -0
  594. package/lib/typescript/components/Attachment/utils/buildGallery/buildThumbnailGrid.d.ts +137 -0
  595. package/lib/typescript/components/Attachment/utils/buildGallery/types.d.ts +23 -0
  596. package/lib/typescript/components/Attachment/utils/getAspectRatio.d.ts +9 -0
  597. package/lib/typescript/components/Attachment/utils/getGalleryImageBorderRadius.d.ts +22 -0
  598. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionHeader.d.ts +1 -1
  599. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionItem.d.ts +1 -1
  600. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts +2 -3
  601. package/lib/typescript/components/Avatar/Avatar.d.ts +1 -1
  602. package/lib/typescript/components/Channel/Channel.d.ts +4 -4
  603. package/lib/typescript/components/Channel/hooks/useCreateOwnCapabilitiesContext.d.ts +1 -1
  604. package/lib/typescript/components/ChannelList/ChannelList.d.ts +1 -1
  605. package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +4 -2
  606. package/lib/typescript/components/ChannelPreview/ChannelPreview.d.ts +2 -2
  607. package/lib/typescript/components/ChannelPreview/ChannelPreviewMessenger.d.ts +2 -2
  608. package/lib/typescript/components/ChannelPreview/ChannelPreviewMutedStatus.d.ts +9 -0
  609. package/lib/typescript/components/Chat/Chat.d.ts +1 -1
  610. package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +3 -1
  611. package/lib/typescript/components/ImageGallery/components/AnimatedGalleryImage.d.ts +1 -1
  612. package/lib/typescript/components/ImageGallery/components/ImageGalleryFooter.d.ts +1 -1
  613. package/lib/typescript/components/ImageGallery/components/ImageGalleryHeader.d.ts +1 -1
  614. package/lib/typescript/components/ImageGallery/components/ImageGrid.d.ts +1 -1
  615. package/lib/typescript/components/ImageGallery/components/__tests__/ImageGalleryHeader.test.d.ts +1 -0
  616. package/lib/typescript/components/Message/Message.d.ts +1 -1
  617. package/lib/typescript/components/Message/MessageSimple/MessageAvatar.d.ts +1 -1
  618. package/lib/typescript/components/Message/MessageSimple/MessageDeleted.d.ts +2 -2
  619. package/lib/typescript/components/Message/MessageSimple/MessageFooter.d.ts +2 -2
  620. package/lib/typescript/components/Message/MessageSimple/utils/parseLinks.d.ts +7 -0
  621. package/lib/typescript/components/Message/MessageSimple/utils/parseLinks.test.d.ts +1 -0
  622. package/lib/typescript/components/Message/MessageSimple/utils/renderText.d.ts +17 -3
  623. package/lib/typescript/components/Message/MessageSimple/utils/renderText.test.d.ts +1 -0
  624. package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +1 -1
  625. package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +3 -3
  626. package/lib/typescript/components/Message/utils/messageActions.d.ts +2 -2
  627. package/lib/typescript/components/Message/utils/removeReservedFields.d.ts +1 -1
  628. package/lib/typescript/components/MessageInput/AttachButton.d.ts +1 -1
  629. package/lib/typescript/components/MessageInput/CommandsButton.d.ts +1 -1
  630. package/lib/typescript/components/MessageInput/MoreOptionsButton.d.ts +1 -1
  631. package/lib/typescript/components/MessageList/MessageSystem.d.ts +1 -1
  632. package/lib/typescript/components/MessageList/utils/getGroupStyles.d.ts +1 -1
  633. package/lib/typescript/components/MessageOverlay/MessageOverlay.d.ts +1 -1
  634. package/lib/typescript/components/MessageOverlay/OverlayReactions.d.ts +3 -1
  635. package/lib/typescript/components/MessageOverlay/OverlayReactionsAvatar.d.ts +7 -0
  636. package/lib/typescript/components/Reply/Reply.d.ts +1 -1
  637. package/lib/typescript/components/Thread/Thread.d.ts +2 -2
  638. package/lib/typescript/components/index.d.ts +2 -0
  639. package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +13 -5
  640. package/lib/typescript/contexts/channelsStateContext/ChannelsStateContext.d.ts +1 -1
  641. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +1 -1
  642. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +6 -4
  643. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +2 -2
  644. package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts +1 -1
  645. package/lib/typescript/contexts/messageOverlayContext/MessageOverlayContext.d.ts +6 -4
  646. package/lib/typescript/contexts/messageOverlayContext/hooks/useResettableState.d.ts +12 -0
  647. package/lib/typescript/contexts/messageOverlayContext/hooks/useResettableState.test.d.ts +1 -0
  648. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +10 -10
  649. package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts +5 -5
  650. package/lib/typescript/contexts/suggestionsContext/SuggestionsContext.d.ts +2 -2
  651. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +17 -8
  652. package/lib/typescript/hooks/useStreami18n.d.ts +1 -1
  653. package/lib/typescript/icons/index.d.ts +0 -2
  654. package/lib/typescript/utils/Streami18n.d.ts +2 -2
  655. package/lib/typescript/utils/getResizedImageUrl.d.ts +19 -0
  656. package/lib/typescript/utils/getUrlOfImageAttachment.d.ts +7 -0
  657. package/lib/typescript/utils/utils.d.ts +6 -1
  658. package/package.json +9 -13
  659. package/src/components/Attachment/Attachment.tsx +3 -3
  660. package/src/components/Attachment/AttachmentActions.tsx +2 -2
  661. package/src/components/Attachment/Card.tsx +3 -4
  662. package/src/components/Attachment/FileAttachment.tsx +3 -4
  663. package/src/components/Attachment/FileIcon.tsx +2 -2
  664. package/src/components/Attachment/Gallery.tsx +160 -184
  665. package/src/components/Attachment/Giphy.tsx +67 -70
  666. package/src/components/Attachment/__tests__/Attachment.test.js +11 -10
  667. package/src/components/Attachment/__tests__/Gallery.test.js +233 -0
  668. package/src/components/Attachment/__tests__/buildGallery.test.js +131 -0
  669. package/src/components/Attachment/utils/buildGallery/buildGallery.ts +75 -0
  670. package/src/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.ts +95 -0
  671. package/src/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.ts +99 -0
  672. package/src/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.ts +64 -0
  673. package/src/components/Attachment/utils/buildGallery/buildThumbnail.ts +46 -0
  674. package/src/components/Attachment/utils/buildGallery/buildThumbnailGrid.ts +186 -0
  675. package/src/components/Attachment/utils/buildGallery/types.ts +27 -0
  676. package/src/components/Attachment/utils/getAspectRatio.ts +21 -0
  677. package/src/components/Attachment/utils/getGalleryImageBorderRadius.ts +71 -0
  678. package/src/components/AttachmentPicker/AttachmentPicker.tsx +4 -2
  679. package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +4 -3
  680. package/src/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.tsx +1 -1
  681. package/src/components/AutoCompleteInput/AutoCompleteSuggestionHeader.tsx +2 -2
  682. package/src/components/AutoCompleteInput/AutoCompleteSuggestionItem.tsx +7 -5
  683. package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +5 -6
  684. package/src/components/AutoCompleteInput/__tests__/AutoCompleteInput.test.js +6 -8
  685. package/src/components/Avatar/Avatar.tsx +8 -11
  686. package/src/components/Avatar/GroupAvatar.tsx +7 -2
  687. package/src/components/Avatar/__tests__/Avatar.test.js +2 -2
  688. package/src/components/Channel/Channel.tsx +75 -68
  689. package/src/components/Channel/__tests__/Channel.test.js +10 -10
  690. package/src/components/Channel/__tests__/ownCapabilities.test.js +8 -8
  691. package/src/components/Channel/hooks/useCreateOwnCapabilitiesContext.ts +2 -1
  692. package/src/components/ChannelList/ChannelList.tsx +8 -9
  693. package/src/components/ChannelList/ChannelListFooterLoadingIndicator.tsx +1 -2
  694. package/src/components/ChannelList/ChannelListHeaderErrorIndicator.tsx +3 -7
  695. package/src/components/ChannelList/ChannelListHeaderNetworkDownIndicator.tsx +2 -2
  696. package/src/components/ChannelList/ChannelListMessenger.tsx +3 -4
  697. package/src/components/ChannelList/__tests__/ChannelList.test.js +73 -13
  698. package/src/components/ChannelList/__tests__/ChannelListMessenger.test.js +11 -12
  699. package/src/components/ChannelList/hooks/listeners/useAddedToChannelNotification.ts +3 -3
  700. package/src/components/ChannelList/hooks/listeners/useChannelDeleted.ts +2 -2
  701. package/src/components/ChannelList/hooks/listeners/useChannelHidden.ts +2 -2
  702. package/src/components/ChannelList/hooks/listeners/useChannelTruncated.ts +2 -2
  703. package/src/components/ChannelList/hooks/listeners/useChannelUpdated.ts +2 -2
  704. package/src/components/ChannelList/hooks/listeners/useChannelVisible.ts +3 -3
  705. package/src/components/ChannelList/hooks/listeners/useNewMessage.ts +2 -3
  706. package/src/components/ChannelList/hooks/listeners/useNewMessageNotification.ts +4 -4
  707. package/src/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.ts +2 -2
  708. package/src/components/ChannelList/hooks/listeners/useUserPresence.ts +2 -2
  709. package/src/components/ChannelList/hooks/useCreateChannelsContext.ts +1 -2
  710. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +78 -48
  711. package/src/components/ChannelPreview/ChannelAvatar.tsx +3 -5
  712. package/src/components/ChannelPreview/ChannelPreview.tsx +3 -3
  713. package/src/components/ChannelPreview/ChannelPreviewMessage.tsx +2 -2
  714. package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +23 -10
  715. package/src/components/ChannelPreview/ChannelPreviewMutedStatus.tsx +71 -0
  716. package/src/components/ChannelPreview/ChannelPreviewStatus.tsx +4 -3
  717. package/src/components/ChannelPreview/ChannelPreviewTitle.tsx +2 -2
  718. package/src/components/ChannelPreview/ChannelPreviewUnreadCount.tsx +2 -1
  719. package/src/components/ChannelPreview/__tests__/ChannelPreview.test.js +8 -9
  720. package/src/components/ChannelPreview/__tests__/ChannelPreviewMessenger.test.js +8 -9
  721. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.ts +2 -2
  722. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayName.ts +3 -4
  723. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.ts +2 -2
  724. package/src/components/ChannelPreview/hooks/useLatestMessagePreview.ts +2 -2
  725. package/src/components/Chat/Chat.tsx +6 -6
  726. package/src/components/Chat/__tests__/Chat.test.js +5 -5
  727. package/src/components/Chat/hooks/useIsOnline.ts +4 -3
  728. package/src/components/ImageGallery/ImageGallery.tsx +82 -49
  729. package/src/components/ImageGallery/components/AnimatedGalleryImage.tsx +1 -2
  730. package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +2 -5
  731. package/src/components/ImageGallery/components/ImageGalleryHeader.tsx +24 -11
  732. package/src/components/ImageGallery/components/ImageGrid.tsx +4 -5
  733. package/src/components/ImageGallery/components/ImageGridHandle.tsx +1 -0
  734. package/src/components/ImageGallery/components/__tests__/ImageGalleryHeader.test.tsx +31 -0
  735. package/src/components/Indicators/LoadingIndicator.tsx +1 -2
  736. package/src/components/Message/Message.tsx +20 -20
  737. package/src/components/Message/MessageSimple/MessageAvatar.tsx +1 -2
  738. package/src/components/Message/MessageSimple/MessageContent.tsx +2 -3
  739. package/src/components/Message/MessageSimple/MessageDeleted.tsx +3 -4
  740. package/src/components/Message/MessageSimple/MessageFooter.tsx +11 -12
  741. package/src/components/Message/MessageSimple/MessagePinnedHeader.tsx +2 -2
  742. package/src/components/Message/MessageSimple/MessageRepliesAvatars.tsx +2 -3
  743. package/src/components/Message/MessageSimple/MessageStatus.tsx +9 -5
  744. package/src/components/Message/MessageSimple/ReactionList.tsx +31 -31
  745. package/src/components/Message/MessageSimple/__tests__/Message.test.js +9 -9
  746. package/src/components/Message/MessageSimple/__tests__/MessageAvatar.test.js +2 -2
  747. package/src/components/Message/MessageSimple/__tests__/MessageContent.test.js +9 -26
  748. package/src/components/Message/MessageSimple/__tests__/MessagePinnedHeader.test.js +2 -2
  749. package/src/components/Message/MessageSimple/__tests__/MessageReplies.test.js +2 -2
  750. package/src/components/Message/MessageSimple/__tests__/MessageStatus.test.js +4 -5
  751. package/src/components/Message/MessageSimple/__tests__/MessageTextContainer.test.js +2 -2
  752. package/src/components/Message/MessageSimple/__tests__/__snapshots__/MessageAvatar.test.js.snap +1 -1
  753. package/src/components/Message/MessageSimple/utils/parseLinks.test.ts +100 -0
  754. package/src/components/Message/MessageSimple/utils/parseLinks.ts +95 -0
  755. package/src/components/Message/MessageSimple/utils/renderText.test.tsx +70 -0
  756. package/src/components/Message/MessageSimple/utils/renderText.tsx +93 -58
  757. package/src/components/Message/hooks/useCreateMessageContext.ts +1 -2
  758. package/src/components/Message/hooks/useMessageActionHandlers.ts +13 -4
  759. package/src/components/Message/hooks/useMessageActions.tsx +14 -9
  760. package/src/components/Message/utils/messageActions.ts +2 -2
  761. package/src/components/Message/utils/removeReservedFields.ts +1 -1
  762. package/src/components/MessageInput/AttachButton.tsx +1 -2
  763. package/src/components/MessageInput/CommandsButton.tsx +1 -2
  764. package/src/components/MessageInput/CooldownTimer.tsx +1 -0
  765. package/src/components/MessageInput/FileUploadPreview.tsx +3 -3
  766. package/src/components/MessageInput/ImageUploadPreview.tsx +1 -2
  767. package/src/components/MessageInput/InputButtons.tsx +1 -1
  768. package/src/components/MessageInput/MessageInput.tsx +5 -6
  769. package/src/components/MessageInput/MoreOptionsButton.tsx +1 -2
  770. package/src/components/MessageInput/SendMessageDisallowedIndicator.tsx +1 -1
  771. package/src/components/MessageInput/ShowThreadMessageInChannelButton.tsx +1 -1
  772. package/src/components/MessageInput/__tests__/AttachButton.test.js +2 -2
  773. package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +15 -17
  774. package/src/components/MessageInput/__tests__/ImageUploadPreview.test.js +3 -3
  775. package/src/components/MessageInput/__tests__/MessageInput.test.js +8 -8
  776. package/src/components/MessageInput/__tests__/SendButton.test.js +2 -2
  777. package/src/components/MessageInput/__tests__/UploadProgressIndicator.test.js +2 -2
  778. package/src/components/MessageInput/__tests__/__snapshots__/FileUploadPreview.test.js.snap +1604 -4172
  779. package/src/components/MessageInput/__tests__/__snapshots__/MessageInput.test.js.snap +1 -643
  780. package/src/components/MessageInput/hooks/useCooldown.ts +2 -0
  781. package/src/components/MessageInput/hooks/useCountdown.ts +1 -0
  782. package/src/components/MessageList/MessageList.tsx +3 -3
  783. package/src/components/MessageList/MessageSystem.tsx +2 -2
  784. package/src/components/MessageList/TypingIndicator.tsx +1 -2
  785. package/src/components/MessageList/__tests__/MessageList.test.js +17 -17
  786. package/src/components/MessageList/__tests__/MessageSystem.test.js +3 -3
  787. package/src/components/MessageList/__tests__/ScrollToBottomButton.test.js +3 -3
  788. package/src/components/MessageList/__tests__/TypingIndicator.test.js +5 -6
  789. package/src/components/MessageList/__tests__/__snapshots__/TypingIndicator.test.js.snap +1 -1
  790. package/src/components/MessageList/hooks/useMessageList.ts +5 -7
  791. package/src/components/MessageList/hooks/useTypingString.ts +1 -2
  792. package/src/components/MessageList/utils/getGroupStyles.ts +1 -2
  793. package/src/components/MessageList/utils/getLastReceivedMessage.ts +6 -1
  794. package/src/components/MessageOverlay/MessageActionList.tsx +3 -3
  795. package/src/components/MessageOverlay/MessageActionListItem.tsx +3 -1
  796. package/src/components/MessageOverlay/MessageOverlay.tsx +20 -16
  797. package/src/components/MessageOverlay/OverlayBackdrop.tsx +1 -0
  798. package/src/components/MessageOverlay/OverlayReactionList.tsx +2 -4
  799. package/src/components/MessageOverlay/OverlayReactions.tsx +27 -8
  800. package/src/components/MessageOverlay/OverlayReactionsAvatar.tsx +27 -0
  801. package/src/components/MessageOverlay/hooks/useMessageActionAnimation.tsx +1 -0
  802. package/src/components/Reply/Reply.tsx +25 -15
  803. package/src/components/Thread/Thread.tsx +5 -6
  804. package/src/components/Thread/__tests__/Thread.test.js +12 -14
  805. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +13 -13
  806. package/src/components/Thread/components/ThreadFooterComponent.tsx +1 -2
  807. package/src/components/index.ts +2 -0
  808. package/src/contexts/activeChannelsRefContext/ActiveChannelsRefContext.tsx +1 -2
  809. package/src/contexts/attachmentPickerContext/AttachmentPickerContext.tsx +1 -2
  810. package/src/contexts/channelContext/ChannelContext.tsx +1 -2
  811. package/src/contexts/channelsContext/ChannelsContext.tsx +18 -7
  812. package/src/contexts/channelsStateContext/ChannelsStateContext.tsx +7 -8
  813. package/src/contexts/channelsStateContext/useChannelState.ts +1 -0
  814. package/src/contexts/chatContext/ChatContext.tsx +1 -2
  815. package/src/contexts/imageGalleryContext/ImageGalleryContext.tsx +1 -2
  816. package/src/contexts/keyboardContext/KeyboardContext.tsx +1 -2
  817. package/src/contexts/messageContext/MessageContext.tsx +1 -2
  818. package/src/contexts/messageInputContext/MessageInputContext.tsx +27 -24
  819. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +2 -4
  820. package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +15 -10
  821. package/src/contexts/messageOverlayContext/MessageOverlayContext.tsx +10 -19
  822. package/src/contexts/messageOverlayContext/hooks/useResettableState.test.tsx +46 -0
  823. package/src/contexts/messageOverlayContext/hooks/useResettableState.ts +22 -0
  824. package/src/contexts/messagesContext/MessagesContext.tsx +13 -13
  825. package/src/contexts/overlayContext/OverlayContext.tsx +10 -8
  826. package/src/contexts/overlayContext/OverlayProvider.tsx +30 -25
  827. package/src/contexts/paginatedMessageListContext/PaginatedMessageListContext.tsx +1 -2
  828. package/src/contexts/suggestionsContext/SuggestionsContext.tsx +4 -3
  829. package/src/contexts/suggestionsContext/__tests__/Suggestions.test.js +1 -0
  830. package/src/contexts/themeContext/ThemeContext.tsx +1 -0
  831. package/src/contexts/themeContext/utils/theme.ts +36 -19
  832. package/src/contexts/threadContext/ThreadContext.tsx +1 -2
  833. package/src/contexts/translationContext/TranslationContext.tsx +2 -2
  834. package/src/contexts/typingContext/TypingContext.tsx +1 -2
  835. package/src/contexts/utils/getDisplayName.ts +1 -0
  836. package/src/emoji-data/index.js +1 -1
  837. package/src/hooks/useStreami18n.ts +1 -1
  838. package/src/icons/index.ts +0 -2
  839. package/src/mock-builders/api/sendMessage.js +1 -0
  840. package/src/mock-builders/generator/attachment.js +0 -2
  841. package/src/mock-builders/generator/channel.js +101 -64
  842. package/src/mock-builders/generator/user.js +33 -26
  843. package/src/native.ts +1 -0
  844. package/src/styleguideComponents/ArgumentsRenderer.tsx +2 -1
  845. package/src/styleguideComponents/JsDoc.tsx +3 -1
  846. package/src/styleguideComponents/PathlineRenderer.tsx +2 -1
  847. package/src/styleguideComponents/PropsRenderer.tsx +7 -4
  848. package/src/styleguideComponents/Wrapper.tsx +1 -0
  849. package/src/utils/Streami18n.ts +3 -3
  850. package/src/utils/__tests__/Streami18n.test.js +1 -2
  851. package/src/utils/getResizedImageUrl.ts +43 -0
  852. package/src/utils/getUrlOfImageAttachment.ts +10 -0
  853. package/src/utils/utils.ts +9 -4
  854. package/src/version.json +1 -1
  855. package/lib/commonjs/icons/Left.js +0 -38
  856. package/lib/commonjs/icons/Left.js.map +0 -1
  857. package/lib/commonjs/icons/Right.js +0 -38
  858. package/lib/commonjs/icons/Right.js.map +0 -1
  859. package/lib/module/icons/Left.js +0 -38
  860. package/lib/module/icons/Left.js.map +0 -1
  861. package/lib/module/icons/Right.js +0 -38
  862. package/lib/module/icons/Right.js.map +0 -1
  863. package/lib/typescript/icons/Left.d.ts +0 -3
  864. package/lib/typescript/icons/Right.d.ts +0 -3
  865. package/src/icons/Left.tsx +0 -12
  866. package/src/icons/Right.tsx +0 -12
@@ -3,7 +3,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.renderText = void 0;
6
+ exports.renderText = exports.ListOutput = void 0;
7
7
 
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
 
@@ -11,14 +11,14 @@ var _react = _interopRequireDefault(require("react"));
11
11
 
12
12
  var _reactNative = require("react-native");
13
13
 
14
- var _anchorme = _interopRequireDefault(require("anchorme"));
14
+ var _reactNativeMarkdownPackage = _interopRequireDefault(require("react-native-markdown-package"));
15
15
 
16
16
  var _truncate = _interopRequireDefault(require("lodash/truncate"));
17
17
 
18
- var _reactNativeMarkdownPackage = _interopRequireDefault(require("react-native-markdown-package"));
19
-
20
18
  var _simpleMarkdown = require("simple-markdown");
21
19
 
20
+ var _parseLinks = require("./parseLinks");
21
+
22
22
  var _this = this,
23
23
  _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Message/MessageSimple/utils/renderText.tsx";
24
24
 
@@ -86,19 +86,17 @@ var renderText = function renderText(params) {
86
86
  text = message.text;
87
87
  if (!text) return null;
88
88
  var newText = text.trim();
89
- var urls = (0, _anchorme["default"])(newText, {
90
- list: true
91
- });
89
+ var urls = (0, _parseLinks.parseLinksFromText)(newText);
92
90
 
93
91
  for (var _iterator = _createForOfIteratorHelperLoose(urls), _step; !(_step = _iterator()).done;) {
94
92
  var _urlInfo = _step.value;
95
93
 
96
- var _displayLink = (0, _truncate["default"])(_urlInfo.encoded.replace(/^(www\.)/, ''), {
94
+ var _displayLink = (0, _truncate["default"])(_urlInfo.encoded, {
97
95
  length: 200,
98
96
  omission: '...'
99
97
  });
100
98
 
101
- var _markdown = "[" + _displayLink + "](" + _urlInfo.protocol + _urlInfo.encoded + ")";
99
+ var _markdown = "[" + _displayLink + "](" + _urlInfo.scheme + _urlInfo.encoded + ")";
102
100
 
103
101
  newText = newText.replace(_urlInfo.raw, _markdown);
104
102
  }
@@ -127,7 +125,7 @@ var renderText = function renderText(params) {
127
125
  });
128
126
  };
129
127
 
130
- var react = function react(node, output, _ref) {
128
+ var link = function link(node, output, _ref) {
131
129
  var state = (0, _extends2["default"])({}, _ref);
132
130
 
133
131
  var onPress = function onPress(event) {
@@ -160,7 +158,7 @@ var renderText = function renderText(params) {
160
158
  __self: _this,
161
159
  __source: {
162
160
  fileName: _jsxFileName,
163
- lineNumber: 196,
161
+ lineNumber: 197,
164
162
  columnNumber: 7
165
163
  }
166
164
  }, output(node.content, (0, _extends2["default"])({}, state, {
@@ -177,7 +175,7 @@ var renderText = function renderText(params) {
177
175
  __self: _this,
178
176
  __source: {
179
177
  fileName: _jsxFileName,
180
- lineNumber: 209,
178
+ lineNumber: 210,
181
179
  columnNumber: 5
182
180
  }
183
181
  }, output(node.content, state));
@@ -227,75 +225,34 @@ var renderText = function renderText(params) {
227
225
  __self: _this,
228
226
  __source: {
229
227
  fileName: _jsxFileName,
230
- lineNumber: 247,
228
+ lineNumber: 248,
231
229
  columnNumber: 7
232
230
  }
233
231
  }, Array.isArray(node.content) ? node.content[0].content || '' : output(node.content, state));
234
232
  };
235
233
 
236
- var listLevels = {
237
- sub: 'sub',
238
- top: 'top'
239
- };
240
-
241
- var customListAtLevel = function customListAtLevel(level) {
242
- return function (node, output, _ref4) {
243
- var state = (0, _extends2["default"])({}, _ref4);
244
- var items = node.items.map(function (item, index) {
245
- var withinList = item.length > 1 && item[1].type === 'list';
246
- var content = output(item, (0, _extends2["default"])({}, state, {
247
- withinList: withinList
248
- }));
249
- var isTopLevelText = ['text', 'paragraph', 'strong'].includes(item[0].type) && withinList === false;
250
- return _react["default"].createElement(_reactNative.View, {
251
- key: index,
252
- style: styles.listRow,
253
- __self: _this,
254
- __source: {
255
- fileName: _jsxFileName,
256
- lineNumber: 276,
257
- columnNumber: 11
258
- }
259
- }, _react["default"].createElement(_reactNative.Text, {
260
- style: styles.listItemNumber,
261
- __self: _this,
262
- __source: {
263
- fileName: _jsxFileName,
264
- lineNumber: 277,
265
- columnNumber: 13
266
- }
267
- }, node.ordered ? node.start + index + ". " : "\u2022"), _react["default"].createElement(_reactNative.Text, {
268
- style: [styles.listItemText, isTopLevelText && {
269
- marginBottom: 0
270
- }],
271
- __self: _this,
272
- __source: {
273
- fileName: _jsxFileName,
274
- lineNumber: 280,
275
- columnNumber: 13
276
- }
277
- }, content));
278
- });
279
- var isSublist = level === 'sub';
280
- return _react["default"].createElement(_reactNative.View, {
281
- key: state.key,
282
- style: [isSublist ? styles.list : styles.sublist],
283
- __self: _this,
284
- __source: {
285
- fileName: _jsxFileName,
286
- lineNumber: 289,
287
- columnNumber: 9
288
- }
289
- }, items);
290
- };
234
+ var list = function list(node, output, state) {
235
+ return _react["default"].createElement(ListOutput, {
236
+ key: "list-" + state.key,
237
+ node: node,
238
+ output: output,
239
+ state: state,
240
+ styles: styles,
241
+ __self: _this,
242
+ __source: {
243
+ fileName: _jsxFileName,
244
+ lineNumber: 255,
245
+ columnNumber: 5
246
+ }
247
+ });
291
248
  };
292
249
 
293
250
  var customRules = (0, _extends2["default"])({
294
251
  link: {
295
- react: react
252
+ link: link
296
253
  },
297
254
  list: {
298
- react: customListAtLevel('top')
255
+ react: list
299
256
  },
300
257
  paragraph: messageTextNumberOfLines ? {
301
258
  react: paragraphText
@@ -306,7 +263,7 @@ var renderText = function renderText(params) {
306
263
  }
307
264
  },
308
265
  sublist: {
309
- react: customListAtLevel('sub')
266
+ react: list
310
267
  }
311
268
  }, mentionedUsers ? {
312
269
  mentions: {
@@ -324,11 +281,133 @@ var renderText = function renderText(params) {
324
281
  __self: _this,
325
282
  __source: {
326
283
  fileName: _jsxFileName,
327
- lineNumber: 316,
284
+ lineNumber: 285,
328
285
  columnNumber: 5
329
286
  }
330
287
  }, newText);
331
288
  };
332
289
 
333
290
  exports.renderText = renderText;
291
+
292
+ var ListOutput = function ListOutput(_ref4) {
293
+ var node = _ref4.node,
294
+ output = _ref4.output,
295
+ state = _ref4.state,
296
+ styles = _ref4.styles;
297
+ var isSublist = state.withinList;
298
+ var parentTypes = ['text', 'paragraph', 'strong'];
299
+ return _react["default"].createElement(_reactNative.View, {
300
+ key: state.key,
301
+ style: isSublist ? styles == null ? void 0 : styles.sublist : styles == null ? void 0 : styles.list,
302
+ __self: _this,
303
+ __source: {
304
+ fileName: _jsxFileName,
305
+ lineNumber: 320,
306
+ columnNumber: 5
307
+ }
308
+ }, node.items.map(function (item, index) {
309
+ var _item$;
310
+
311
+ var indexAfterStart = node.start + index;
312
+
313
+ if (item === null) {
314
+ return _react["default"].createElement(ListRow, {
315
+ key: index,
316
+ style: styles == null ? void 0 : styles.listRow,
317
+ testID: "list-item",
318
+ __self: _this,
319
+ __source: {
320
+ fileName: _jsxFileName,
321
+ lineNumber: 326,
322
+ columnNumber: 13
323
+ }
324
+ }, _react["default"].createElement(Bullet, {
325
+ index: node.ordered && indexAfterStart,
326
+ __self: _this,
327
+ __source: {
328
+ fileName: _jsxFileName,
329
+ lineNumber: 327,
330
+ columnNumber: 15
331
+ }
332
+ }));
333
+ }
334
+
335
+ isSublist = item.length > 1 && item[1].type === 'list';
336
+ var isSublistWithinText = parentTypes.includes(((_item$ = item[0]) != null ? _item$ : {}).type) && isSublist;
337
+ var style = isSublistWithinText ? {
338
+ marginBottom: 0
339
+ } : {};
340
+ return _react["default"].createElement(ListRow, {
341
+ key: index,
342
+ style: styles == null ? void 0 : styles.listRow,
343
+ testID: "list-item",
344
+ __self: _this,
345
+ __source: {
346
+ fileName: _jsxFileName,
347
+ lineNumber: 337,
348
+ columnNumber: 11
349
+ }
350
+ }, _react["default"].createElement(Bullet, {
351
+ index: node.ordered && indexAfterStart,
352
+ __self: _this,
353
+ __source: {
354
+ fileName: _jsxFileName,
355
+ lineNumber: 338,
356
+ columnNumber: 13
357
+ }
358
+ }), _react["default"].createElement(ListItem, {
359
+ key: 1,
360
+ style: [styles == null ? void 0 : styles.listItemText, style],
361
+ __self: _this,
362
+ __source: {
363
+ fileName: _jsxFileName,
364
+ lineNumber: 339,
365
+ columnNumber: 13
366
+ }
367
+ }, output(item, state)));
368
+ }));
369
+ };
370
+
371
+ exports.ListOutput = ListOutput;
372
+
373
+ var Bullet = function Bullet(_ref5) {
374
+ var index = _ref5.index,
375
+ style = _ref5.style;
376
+ return _react["default"].createElement(_reactNative.Text, {
377
+ key: 0,
378
+ style: [style, defaultMarkdownStyles.listItemNumber],
379
+ __self: _this,
380
+ __source: {
381
+ fileName: _jsxFileName,
382
+ lineNumber: 354,
383
+ columnNumber: 3
384
+ }
385
+ }, index ? index + ". " : "\u2022 ");
386
+ };
387
+
388
+ var ListRow = function ListRow(props) {
389
+ return _react["default"].createElement(_reactNative.Text, {
390
+ style: [props.style, defaultMarkdownStyles.listRow],
391
+ __self: _this,
392
+ __source: {
393
+ fileName: _jsxFileName,
394
+ lineNumber: 360,
395
+ columnNumber: 3
396
+ }
397
+ }, props.children);
398
+ };
399
+
400
+ var ListItem = function ListItem(_ref6) {
401
+ var children = _ref6.children,
402
+ style = _ref6.style;
403
+ return _react["default"].createElement(_reactNative.Text, {
404
+ style: style,
405
+ __self: _this,
406
+ __source: {
407
+ fileName: _jsxFileName,
408
+ lineNumber: 364,
409
+ columnNumber: 3
410
+ }
411
+ }, children);
412
+ };
334
413
  //# sourceMappingURL=renderText.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["renderText.tsx"],"names":["defaultMarkdownStyles","inlineCode","fontSize","padding","paddingHorizontal","list","marginBottom","marginTop","listItemNumber","fontWeight","listItemText","flex","listRow","flexDirection","mentions","paragraph","paragraphCenter","paragraphWithImage","parse","capture","state","content","renderText","params","colors","markdownRules","markdownStyles","message","messageOverlay","messageTextNumberOfLines","onLinkParams","onLink","onLongPressParam","onLongPress","onlyEmojis","onPressParam","onPress","preventPress","mentioned_users","text","newText","trim","urls","urlInfo","displayLink","encoded","replace","length","omission","markdown","protocol","raw","styles","autolink","color","accent_blue","backgroundColor","white_smoke","borderColor","grey_gainsboro","accent_red","black","url","Linking","canOpenURL","then","canOpenUrl","openURL","react","node","output","event","defaultHandler","target","emitter","key","withinLink","paragraphText","mentionedUsers","Array","isArray","reduce","acc","cur","userName","name","id","regEx","RegExp","match","source","exec","mentionsReact","listLevels","sub","top","customListAtLevel","level","items","map","item","index","withinList","type","isTopLevelText","includes","ordered","start","isSublist","sublist","customRules","link","reflink","order","defaultRules","JSON","stringify","undefined"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { GestureResponderEvent, Linking, Text, View } from 'react-native';\nimport anchorme from 'anchorme';\nimport truncate from 'lodash/truncate';\n// @ts-expect-error\nimport Markdown from 'react-native-markdown-package';\nimport {\n DefaultRules,\n defaultRules,\n MatchFunction,\n ParseFunction,\n parseInline,\n ReactNodeOutput,\n SingleASTNode,\n} from 'simple-markdown';\n\nimport type { MessageType } from '../../../MessageList/hooks/useMessageList';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../../types/types';\nimport type { MessageContextValue } from '../../../../contexts/messageContext/MessageContext';\nimport type { Colors, MarkdownStyle } from '../../../../contexts/themeContext/utils/theme';\n\nconst defaultMarkdownStyles: MarkdownStyle = {\n inlineCode: {\n fontSize: 13,\n padding: 3,\n paddingHorizontal: 5,\n },\n list: {\n marginBottom: 8,\n marginTop: 8,\n },\n listItemNumber: {\n fontWeight: 'bold',\n },\n listItemText: {\n flex: 0,\n },\n listRow: {\n flexDirection: 'row',\n },\n mentions: {\n fontWeight: '700',\n },\n // unfortunately marginVertical doesn't override the defaults for these within the 3rd party lib\n paragraph: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphCenter: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphWithImage: {\n marginBottom: 8,\n marginTop: 8,\n },\n};\n\nconst parse: ParseFunction = (capture, parse, state) => ({\n content: parseInline(parse, capture[0], state),\n});\n\nexport type MarkdownRules = Partial<DefaultRules>;\n\nexport type RenderTextParams<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Partial<\n Pick<MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'onLongPress' | 'onPress' | 'preventPress'>\n> & {\n colors: typeof Colors;\n message: MessageType<At, Ch, Co, Ev, Me, Re, Us>;\n markdownRules?: MarkdownRules;\n markdownStyles?: MarkdownStyle;\n messageOverlay?: boolean;\n messageTextNumberOfLines?: number;\n onLink?: (url: string) => Promise<void>;\n onlyEmojis?: boolean;\n};\n\nexport const renderText = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n params: RenderTextParams<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n colors,\n markdownRules,\n markdownStyles,\n message,\n messageOverlay,\n messageTextNumberOfLines,\n onLink: onLinkParams,\n onLongPress: onLongPressParam,\n onlyEmojis,\n onPress: onPressParam,\n preventPress,\n } = params;\n\n // take the @ mentions and turn them into markdown?\n // translate links\n const { mentioned_users, text } = message;\n\n if (!text) return null;\n\n let newText = text.trim();\n const urls = anchorme(newText, {\n list: true,\n });\n\n for (const urlInfo of urls) {\n const displayLink = truncate(urlInfo.encoded.replace(/^(www\\.)/, ''), {\n length: 200,\n omission: '...',\n });\n const markdown = `[${displayLink}](${urlInfo.protocol}${urlInfo.encoded})`;\n newText = newText.replace(urlInfo.raw, markdown);\n }\n\n newText = newText.replace(/[<&\"'>]/g, '\\\\$&');\n\n const styles: MarkdownStyle = {\n ...defaultMarkdownStyles,\n ...markdownStyles,\n autolink: {\n ...defaultMarkdownStyles.autolink,\n color: colors.accent_blue,\n ...markdownStyles?.autolink,\n },\n inlineCode: {\n ...defaultMarkdownStyles.inlineCode,\n backgroundColor: colors.white_smoke,\n borderColor: colors.grey_gainsboro,\n color: colors.accent_red,\n ...markdownStyles?.inlineCode,\n },\n mentions: {\n ...defaultMarkdownStyles.mentions,\n color: colors.accent_blue,\n ...markdownStyles?.mentions,\n },\n text: {\n ...defaultMarkdownStyles.text,\n color: colors.black,\n ...markdownStyles?.text,\n },\n };\n\n const onLink = (url: string) =>\n onLinkParams\n ? onLinkParams(url)\n : Linking.canOpenURL(url).then((canOpenUrl) => canOpenUrl && Linking.openURL(url));\n\n const react: ReactNodeOutput = (node, output, { ...state }) => {\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n defaultHandler: () => onLink(node.target),\n emitter: 'textLink',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n emitter: 'textLink',\n event,\n });\n }\n };\n\n return (\n <Text\n key={state.key}\n onLongPress={onLongPress}\n onPress={onPress}\n style={styles.autolink}\n suppressHighlighting={true}\n >\n {output(node.content, { ...state, withinLink: true })}\n </Text>\n );\n };\n\n const paragraphText: ReactNodeOutput = (node, output, { ...state }) => (\n <Text key={state.key} numberOfLines={messageTextNumberOfLines} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n\n const mentionedUsers = Array.isArray(mentioned_users)\n ? mentioned_users.reduce((acc, cur) => {\n const userName = cur.name || cur.id || '';\n if (userName) {\n acc += `${acc.length ? '|' : ''}@${userName}`;\n }\n return acc;\n }, '')\n : '';\n\n const regEx = new RegExp(`^\\\\B(${mentionedUsers})`, 'g');\n const match: MatchFunction = (source) => regEx.exec(source);\n\n const mentionsReact: ReactNodeOutput = (node, output, { ...state }) => {\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n emitter: 'textMention',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n emitter: 'textMention',\n event,\n });\n }\n };\n\n return (\n <Text key={state.key} onLongPress={onLongPress} onPress={onPress} style={styles.mentions}>\n {Array.isArray(node.content) ? node.content[0].content || '' : output(node.content, state)}\n </Text>\n );\n };\n\n const listLevels = {\n sub: 'sub',\n top: 'top',\n };\n\n /**\n * For lists and sublists, the default behavior of the markdown library we use is\n * to always renumber any list, so all ordered lists start from 1.\n *\n * This custom rule overrides this behavior both for top level lists and sublists,\n * in order to start the numbering from the number of the first list item provided.\n * */\n const customListAtLevel =\n (level: keyof typeof listLevels): ReactNodeOutput =>\n (node, output, { ...state }) => {\n const items = node.items.map((item: Array<SingleASTNode>, index: number) => {\n const withinList = item.length > 1 && item[1].type === 'list';\n const content = output(item, { ...state, withinList });\n\n const isTopLevelText =\n ['text', 'paragraph', 'strong'].includes(item[0].type) && withinList === false;\n\n return (\n <View key={index} style={styles.listRow}>\n <Text style={styles.listItemNumber}>\n {node.ordered ? `${node.start + index}. ` : `\\u2022`}\n </Text>\n <Text style={[styles.listItemText, isTopLevelText && { marginBottom: 0 }]}>\n {content}\n </Text>\n </View>\n );\n });\n\n const isSublist = level === 'sub';\n return (\n <View key={state.key} style={[isSublist ? styles.list : styles.sublist]}>\n {items}\n </View>\n );\n };\n\n const customRules = {\n link: { react },\n list: { react: customListAtLevel('top') },\n // Truncate long text content in the message overlay\n paragraph: messageTextNumberOfLines ? { react: paragraphText } : {},\n // we have no react rendering support for reflinks\n reflink: { match: () => null },\n sublist: { react: customListAtLevel('sub') },\n ...(mentionedUsers\n ? {\n mentions: {\n match,\n order: defaultRules.text.order - 0.5,\n parse,\n react: mentionsReact,\n },\n }\n : {}),\n };\n\n return (\n <Markdown\n key={`${JSON.stringify(mentioned_users)}-${onlyEmojis}-${\n messageOverlay ? JSON.stringify(markdownStyles) : undefined\n }-${JSON.stringify(colors)}`}\n onLink={onLink}\n rules={{\n ...customRules,\n ...markdownRules,\n }}\n styles={styles}\n >\n {newText}\n </Markdown>\n );\n};\n"]}
1
+ {"version":3,"sources":["renderText.tsx"],"names":["defaultMarkdownStyles","inlineCode","fontSize","padding","paddingHorizontal","list","marginBottom","marginTop","listItemNumber","fontWeight","listItemText","flex","listRow","flexDirection","mentions","paragraph","paragraphCenter","paragraphWithImage","parse","capture","state","content","renderText","params","colors","markdownRules","markdownStyles","message","messageOverlay","messageTextNumberOfLines","onLinkParams","onLink","onLongPressParam","onLongPress","onlyEmojis","onPressParam","onPress","preventPress","mentioned_users","text","newText","trim","urls","urlInfo","displayLink","encoded","length","omission","markdown","scheme","replace","raw","styles","autolink","color","accent_blue","backgroundColor","white_smoke","borderColor","grey_gainsboro","accent_red","black","url","Linking","canOpenURL","then","canOpenUrl","openURL","link","node","output","event","defaultHandler","target","emitter","key","withinLink","paragraphText","mentionedUsers","Array","isArray","reduce","acc","cur","userName","name","id","regEx","RegExp","match","source","exec","mentionsReact","customRules","react","reflink","sublist","order","defaultRules","JSON","stringify","undefined","ListOutput","isSublist","withinList","parentTypes","items","map","item","index","indexAfterStart","start","ordered","type","isSublistWithinText","includes","style","Bullet","ListRow","props","children","ListItem"],"mappings":"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","sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { GestureResponderEvent, Linking, Text, TextProps, View, ViewProps } from 'react-native';\n\n// @ts-expect-error\nimport Markdown from 'react-native-markdown-package';\n\nimport truncate from 'lodash/truncate';\nimport {\n DefaultRules,\n defaultRules,\n MatchFunction,\n ParseFunction,\n parseInline,\n ReactNodeOutput,\n ReactOutput,\n SingleASTNode,\n State,\n} from 'simple-markdown';\n\nimport { parseLinksFromText } from './parseLinks';\n\nimport type { MessageContextValue } from '../../../../contexts/messageContext/MessageContext';\nimport type { Colors, MarkdownStyle } from '../../../../contexts/themeContext/utils/theme';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../../types/types';\nimport type { MessageType } from '../../../MessageList/hooks/useMessageList';\n\nconst defaultMarkdownStyles: MarkdownStyle = {\n inlineCode: {\n fontSize: 13,\n padding: 3,\n paddingHorizontal: 5,\n },\n list: {\n marginBottom: 8,\n marginTop: 8,\n },\n listItemNumber: {\n fontWeight: 'bold',\n },\n listItemText: {\n flex: 0,\n },\n listRow: {\n flexDirection: 'row',\n },\n mentions: {\n fontWeight: '700',\n },\n paragraph: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphCenter: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphWithImage: {\n marginBottom: 8,\n marginTop: 8,\n },\n};\n\nconst parse: ParseFunction = (capture, parse, state) => ({\n content: parseInline(parse, capture[0], state),\n});\n\nexport type MarkdownRules = Partial<DefaultRules>;\n\nexport type RenderTextParams<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Partial<\n Pick<MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'onLongPress' | 'onPress' | 'preventPress'>\n> & {\n colors: typeof Colors;\n message: MessageType<At, Ch, Co, Ev, Me, Re, Us>;\n markdownRules?: MarkdownRules;\n markdownStyles?: MarkdownStyle;\n messageOverlay?: boolean;\n messageTextNumberOfLines?: number;\n onLink?: (url: string) => Promise<void>;\n onlyEmojis?: boolean;\n};\n\nexport const renderText = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n params: RenderTextParams<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n colors,\n markdownRules,\n markdownStyles,\n message,\n messageOverlay,\n messageTextNumberOfLines,\n onLink: onLinkParams,\n onLongPress: onLongPressParam,\n onlyEmojis,\n onPress: onPressParam,\n preventPress,\n } = params;\n\n // take the @ mentions and turn them into markdown?\n // translate links\n const { mentioned_users, text } = message;\n\n if (!text) return null;\n\n let newText = text.trim();\n const urls = parseLinksFromText(newText);\n\n for (const urlInfo of urls) {\n const displayLink = truncate(urlInfo.encoded, {\n length: 200,\n omission: '...',\n });\n const markdown = `[${displayLink}](${urlInfo.scheme}${urlInfo.encoded})`;\n newText = newText.replace(urlInfo.raw, markdown);\n }\n\n newText = newText.replace(/[<&\"'>]/g, '\\\\$&');\n\n const styles: MarkdownStyle = {\n ...defaultMarkdownStyles,\n ...markdownStyles,\n autolink: {\n ...defaultMarkdownStyles.autolink,\n color: colors.accent_blue,\n ...markdownStyles?.autolink,\n },\n inlineCode: {\n ...defaultMarkdownStyles.inlineCode,\n backgroundColor: colors.white_smoke,\n borderColor: colors.grey_gainsboro,\n color: colors.accent_red,\n ...markdownStyles?.inlineCode,\n },\n mentions: {\n ...defaultMarkdownStyles.mentions,\n color: colors.accent_blue,\n ...markdownStyles?.mentions,\n },\n text: {\n ...defaultMarkdownStyles.text,\n color: colors.black,\n ...markdownStyles?.text,\n },\n };\n\n const onLink = (url: string) =>\n onLinkParams\n ? onLinkParams(url)\n : Linking.canOpenURL(url).then((canOpenUrl) => canOpenUrl && Linking.openURL(url));\n\n const link: ReactNodeOutput = (node, output, { ...state }) => {\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n defaultHandler: () => onLink(node.target),\n emitter: 'textLink',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n emitter: 'textLink',\n event,\n });\n }\n };\n\n return (\n <Text\n key={state.key}\n onLongPress={onLongPress}\n onPress={onPress}\n style={styles.autolink}\n suppressHighlighting={true}\n >\n {output(node.content, { ...state, withinLink: true })}\n </Text>\n );\n };\n\n const paragraphText: ReactNodeOutput = (node, output, { ...state }) => (\n <Text key={state.key} numberOfLines={messageTextNumberOfLines} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n\n const mentionedUsers = Array.isArray(mentioned_users)\n ? mentioned_users.reduce((acc, cur) => {\n const userName = cur.name || cur.id || '';\n if (userName) {\n acc += `${acc.length ? '|' : ''}@${userName}`;\n }\n return acc;\n }, '')\n : '';\n\n const regEx = new RegExp(`^\\\\B(${mentionedUsers})`, 'g');\n const match: MatchFunction = (source) => regEx.exec(source);\n\n const mentionsReact: ReactNodeOutput = (node, output, { ...state }) => {\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n emitter: 'textMention',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n emitter: 'textMention',\n event,\n });\n }\n };\n\n return (\n <Text key={state.key} onLongPress={onLongPress} onPress={onPress} style={styles.mentions}>\n {Array.isArray(node.content) ? node.content[0].content || '' : output(node.content, state)}\n </Text>\n );\n };\n\n const list: ReactNodeOutput = (node, output, state) => (\n <ListOutput\n key={`list-${state.key}`}\n node={node}\n output={output}\n state={state}\n styles={styles}\n />\n );\n\n const customRules = {\n link: { link },\n list: { react: list },\n // Truncate long text content in the message overlay\n paragraph: messageTextNumberOfLines ? { react: paragraphText } : {},\n // we have no react rendering support for reflinks\n reflink: { match: () => null },\n sublist: { react: list },\n ...(mentionedUsers\n ? {\n mentions: {\n match,\n order: defaultRules.text.order - 0.5,\n parse,\n react: mentionsReact,\n },\n }\n : {}),\n };\n\n return (\n <Markdown\n key={`${JSON.stringify(mentioned_users)}-${onlyEmojis}-${\n messageOverlay ? JSON.stringify(markdownStyles) : undefined\n }-${JSON.stringify(colors)}`}\n onLink={onLink}\n rules={{\n ...customRules,\n ...markdownRules,\n }}\n styles={styles}\n >\n {newText}\n </Markdown>\n );\n};\n\nexport interface ListOutputProps {\n node: SingleASTNode;\n output: ReactOutput;\n state: State;\n styles?: Partial<MarkdownStyle>;\n}\n\n/**\n * For lists and sublists, the default behavior of the markdown library we use is\n * to always renumber any list, so all ordered lists start from 1.\n *\n * This custom rule overrides this behavior both for top level lists and sublists,\n * in order to start the numbering from the number of the first list item provided.\n */\nexport const ListOutput = ({ node, output, state, styles }: ListOutputProps) => {\n let isSublist = state.withinList;\n const parentTypes = ['text', 'paragraph', 'strong'];\n\n return (\n <View key={state.key} style={isSublist ? styles?.sublist : styles?.list}>\n {node.items.map((item: SingleASTNode, index: number) => {\n const indexAfterStart = node.start + index;\n\n if (item === null) {\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet index={node.ordered && indexAfterStart} />\n </ListRow>\n );\n }\n\n isSublist = item.length > 1 && item[1].type === 'list';\n const isSublistWithinText = parentTypes.includes((item[0] ?? {}).type) && isSublist;\n const style = isSublistWithinText ? { marginBottom: 0 } : {};\n\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet index={node.ordered && indexAfterStart} />\n <ListItem key={1} style={[styles?.listItemText, style]}>\n {output(item, state)}\n </ListItem>\n </ListRow>\n );\n })}\n </View>\n );\n};\n\ninterface BulletProps extends TextProps {\n index?: number;\n}\n\nconst Bullet = ({ index, style }: BulletProps) => (\n <Text key={0} style={[style, defaultMarkdownStyles.listItemNumber]}>\n {index ? `${index}. ` : '\\u2022 '}\n </Text>\n);\n\nconst ListRow = (props: PropsWithChildren<ViewProps>) => (\n <Text style={[props.style, defaultMarkdownStyles.listRow]}>{props.children}</Text>\n);\n\nconst ListItem = ({ children, style }: PropsWithChildren<TextProps>) => (\n <Text style={style}>{children}</Text>\n);\n"]}
@@ -0,0 +1,240 @@
1
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
+
3
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
4
+
5
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
6
+
7
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
8
+
9
+ var _react = _interopRequireDefault(require("react"));
10
+
11
+ var _reactNative = require("react-native");
12
+
13
+ var _reactNative2 = require("@testing-library/react-native");
14
+
15
+ var _renderText = require("./renderText");
16
+
17
+ var _this = this,
18
+ _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Message/MessageSimple/utils/renderText.test.tsx";
19
+
20
+ describe('list', function () {
21
+ var createNode = function createNode(_ref) {
22
+ var amount = _ref.amount,
23
+ _ref$ordered = _ref.ordered,
24
+ ordered = _ref$ordered === void 0 ? false : _ref$ordered,
25
+ _ref$start = _ref.start,
26
+ start = _ref$start === void 0 ? 1 : _ref$start;
27
+ return {
28
+ items: Array.from(Array(amount).keys()),
29
+ ordered: ordered,
30
+ start: start,
31
+ type: 'text'
32
+ };
33
+ };
34
+
35
+ var mockOutput = function mockOutput(node) {
36
+ return _react["default"].createElement(_reactNative.Text, {
37
+ __self: _this,
38
+ __source: {
39
+ fileName: _jsxFileName,
40
+ lineNumber: 27,
41
+ columnNumber: 41
42
+ }
43
+ }, node);
44
+ };
45
+
46
+ var MockText = function MockText(_ref2) {
47
+ var node = _ref2.node,
48
+ output = _ref2.output,
49
+ state = _ref2.state;
50
+ return _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_renderText.ListOutput, {
51
+ node: node,
52
+ output: output,
53
+ state: state,
54
+ styles: {},
55
+ __self: _this,
56
+ __source: {
57
+ fileName: _jsxFileName,
58
+ lineNumber: 30,
59
+ columnNumber: 7
60
+ }
61
+ }));
62
+ };
63
+
64
+ it('renders numbered items', (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee() {
65
+ var node, _render, getByText;
66
+
67
+ return _regenerator["default"].wrap(function _callee$(_context) {
68
+ while (1) {
69
+ switch (_context.prev = _context.next) {
70
+ case 0:
71
+ node = createNode({
72
+ amount: 3,
73
+ ordered: true,
74
+ start: 1
75
+ });
76
+ _render = (0, _reactNative2.render)(_react["default"].createElement(MockText, {
77
+ node: node,
78
+ output: mockOutput,
79
+ state: {},
80
+ __self: _this,
81
+ __source: {
82
+ fileName: _jsxFileName,
83
+ lineNumber: 36,
84
+ columnNumber: 34
85
+ }
86
+ })), getByText = _render.getByText;
87
+ _context.next = 4;
88
+ return (0, _reactNative2.waitFor)(function () {
89
+ return expect(getByText('1. ')).toBeTruthy();
90
+ });
91
+
92
+ case 4:
93
+ _context.next = 6;
94
+ return (0, _reactNative2.waitFor)(function () {
95
+ return expect(getByText('2. ')).toBeTruthy();
96
+ });
97
+
98
+ case 6:
99
+ _context.next = 8;
100
+ return (0, _reactNative2.waitFor)(function () {
101
+ return expect(getByText('3. ')).toBeTruthy();
102
+ });
103
+
104
+ case 8:
105
+ case "end":
106
+ return _context.stop();
107
+ }
108
+ }
109
+ }, _callee);
110
+ })));
111
+ it('renders numbered items from a start index', (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2() {
112
+ var node, _render2, getByText;
113
+
114
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
115
+ while (1) {
116
+ switch (_context2.prev = _context2.next) {
117
+ case 0:
118
+ node = createNode({
119
+ amount: 3,
120
+ ordered: true,
121
+ start: 3
122
+ });
123
+ _render2 = (0, _reactNative2.render)(_react["default"].createElement(MockText, {
124
+ node: node,
125
+ output: mockOutput,
126
+ state: {},
127
+ __self: _this,
128
+ __source: {
129
+ fileName: _jsxFileName,
130
+ lineNumber: 45,
131
+ columnNumber: 34
132
+ }
133
+ })), getByText = _render2.getByText;
134
+ _context2.next = 4;
135
+ return (0, _reactNative2.waitFor)(function () {
136
+ return expect(getByText('3. ')).toBeTruthy();
137
+ });
138
+
139
+ case 4:
140
+ _context2.next = 6;
141
+ return (0, _reactNative2.waitFor)(function () {
142
+ return expect(getByText('4. ')).toBeTruthy();
143
+ });
144
+
145
+ case 6:
146
+ _context2.next = 8;
147
+ return (0, _reactNative2.waitFor)(function () {
148
+ return expect(getByText('5. ')).toBeTruthy();
149
+ });
150
+
151
+ case 8:
152
+ case "end":
153
+ return _context2.stop();
154
+ }
155
+ }
156
+ }, _callee2);
157
+ })));
158
+ it('does not throw an error if an item is empty', (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3() {
159
+ var node, _render3, getByText;
160
+
161
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
162
+ while (1) {
163
+ switch (_context3.prev = _context3.next) {
164
+ case 0:
165
+ node = (0, _extends2["default"])({}, createNode({
166
+ amount: 3,
167
+ ordered: true
168
+ }), {
169
+ items: ['Not empty', null, 'Not empty']
170
+ });
171
+ _render3 = (0, _reactNative2.render)(_react["default"].createElement(MockText, {
172
+ node: node,
173
+ output: mockOutput,
174
+ state: {},
175
+ __self: _this,
176
+ __source: {
177
+ fileName: _jsxFileName,
178
+ lineNumber: 57,
179
+ columnNumber: 34
180
+ }
181
+ })), getByText = _render3.getByText;
182
+ _context3.next = 4;
183
+ return (0, _reactNative2.waitFor)(function () {
184
+ return expect(getByText('1. ')).toBeTruthy();
185
+ });
186
+
187
+ case 4:
188
+ _context3.next = 6;
189
+ return (0, _reactNative2.waitFor)(function () {
190
+ return expect(getByText('2. ')).toBeTruthy();
191
+ });
192
+
193
+ case 6:
194
+ _context3.next = 8;
195
+ return (0, _reactNative2.waitFor)(function () {
196
+ return expect(getByText('3. ')).toBeTruthy();
197
+ });
198
+
199
+ case 8:
200
+ case "end":
201
+ return _context3.stop();
202
+ }
203
+ }
204
+ }, _callee3);
205
+ })));
206
+ it('renders an unordered list', (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4() {
207
+ var node, _render4, getAllByText;
208
+
209
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
210
+ while (1) {
211
+ switch (_context4.prev = _context4.next) {
212
+ case 0:
213
+ node = createNode({
214
+ amount: 3
215
+ });
216
+ _render4 = (0, _reactNative2.render)(_react["default"].createElement(MockText, {
217
+ node: node,
218
+ output: mockOutput,
219
+ state: {},
220
+ __self: _this,
221
+ __source: {
222
+ fileName: _jsxFileName,
223
+ lineNumber: 66,
224
+ columnNumber: 37
225
+ }
226
+ })), getAllByText = _render4.getAllByText;
227
+ _context4.next = 4;
228
+ return (0, _reactNative2.waitFor)(function () {
229
+ return expect(getAllByText("\u2022 ")).toHaveLength(3);
230
+ });
231
+
232
+ case 4:
233
+ case "end":
234
+ return _context4.stop();
235
+ }
236
+ }
237
+ }, _callee4);
238
+ })));
239
+ });
240
+ //# sourceMappingURL=renderText.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["renderText.test.tsx"],"names":["describe","createNode","amount","ordered","start","items","Array","from","keys","type","mockOutput","node","MockText","output","state","it","getByText","expect","toBeTruthy","getAllByText","toHaveLength"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Text } from 'react-native';\n\nimport { render, waitFor } from '@testing-library/react-native';\n\n// @ts-ignore\nimport { ASTNode, SingleASTNode } from 'simple-markdown';\n\nimport { ListOutput, ListOutputProps } from './renderText';\n\ndescribe('list', () => {\n const createNode = ({\n amount,\n ordered = false,\n start = 1,\n }: {\n amount: number;\n ordered?: boolean;\n start?: number;\n }): SingleASTNode => ({\n items: Array.from(Array(amount).keys()),\n ordered,\n start,\n type: 'text',\n });\n\n const mockOutput = (node: ASTNode) => <Text>{node}</Text>;\n const MockText = ({ node, output, state }: ListOutputProps) => (\n <>\n <ListOutput node={node} output={output} state={state} styles={{}} />\n </>\n );\n\n it('renders numbered items', async () => {\n const node = createNode({ amount: 3, ordered: true, start: 1 });\n const { getByText } = render(<MockText node={node} output={mockOutput} state={{}} />);\n\n await waitFor(() => expect(getByText('1. ')).toBeTruthy());\n await waitFor(() => expect(getByText('2. ')).toBeTruthy());\n await waitFor(() => expect(getByText('3. ')).toBeTruthy());\n });\n\n it('renders numbered items from a start index', async () => {\n const node = createNode({ amount: 3, ordered: true, start: 3 });\n const { getByText } = render(<MockText node={node} output={mockOutput} state={{}} />);\n\n await waitFor(() => expect(getByText('3. ')).toBeTruthy());\n await waitFor(() => expect(getByText('4. ')).toBeTruthy());\n await waitFor(() => expect(getByText('5. ')).toBeTruthy());\n });\n\n it('does not throw an error if an item is empty', async () => {\n const node = {\n ...createNode({ amount: 3, ordered: true }),\n items: ['Not empty', null, 'Not empty'],\n };\n const { getByText } = render(<MockText node={node} output={mockOutput} state={{}} />);\n\n await waitFor(() => expect(getByText('1. ')).toBeTruthy());\n await waitFor(() => expect(getByText('2. ')).toBeTruthy());\n await waitFor(() => expect(getByText('3. ')).toBeTruthy());\n });\n\n it('renders an unordered list', async () => {\n const node = createNode({ amount: 3 });\n const { getAllByText } = render(<MockText node={node} output={mockOutput} state={{}} />);\n\n await waitFor(() => expect(getAllByText('\\u2022 ')).toHaveLength(3));\n });\n});\n"]}