stream-chat-react-native-core 4.0.0-beta.3 → 4.0.0-beta.7

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 (830) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/components/Attachment/Attachment.js +10 -10
  3. package/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
  4. package/lib/commonjs/components/Attachment/AttachmentActions.js +4 -4
  5. package/lib/commonjs/components/Attachment/AttachmentActions.js.map +1 -1
  6. package/lib/commonjs/components/Attachment/Card.js +15 -15
  7. package/lib/commonjs/components/Attachment/Card.js.map +1 -1
  8. package/lib/commonjs/components/Attachment/FileAttachment.js +8 -8
  9. package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
  10. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +4 -4
  11. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
  12. package/lib/commonjs/components/Attachment/Gallery.js +8 -8
  13. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  14. package/lib/commonjs/components/Attachment/Giphy.js +112 -148
  15. package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
  16. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGallery.js.map +1 -1
  17. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js.map +1 -1
  18. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js.map +1 -1
  19. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js.map +1 -1
  20. package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnail.js.map +1 -1
  21. package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnailGrid.js.map +1 -1
  22. package/lib/commonjs/components/Attachment/utils/getAspectRatio.js.map +1 -1
  23. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +2 -2
  24. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  25. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js +16 -16
  26. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -1
  27. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +7 -7
  28. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -1
  29. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +13 -13
  30. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
  31. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +10 -10
  32. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
  33. package/lib/commonjs/components/Avatar/Avatar.js.map +1 -1
  34. package/lib/commonjs/components/Channel/Channel.js +13 -13
  35. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  36. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  37. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  38. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  39. package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
  40. package/lib/commonjs/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
  41. package/lib/commonjs/components/Channel/hooks/useCreateThreadContext.js.map +1 -1
  42. package/lib/commonjs/components/Channel/hooks/useCreateTypingContext.js.map +1 -1
  43. package/lib/commonjs/components/ChannelList/ChannelList.js +2 -2
  44. package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
  45. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js +14 -14
  46. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js.map +1 -1
  47. package/lib/commonjs/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
  48. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
  49. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
  50. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
  51. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
  52. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
  53. package/lib/commonjs/components/ChannelList/hooks/listeners/useConnectionRecovered.js.map +1 -1
  54. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  55. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
  56. package/lib/commonjs/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
  57. package/lib/commonjs/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
  58. package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
  59. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  60. package/lib/commonjs/components/ChannelList/utils.js.map +1 -1
  61. package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js +2 -2
  62. package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js.map +1 -1
  63. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +2 -2
  64. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
  65. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js +4 -4
  66. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  67. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +12 -12
  68. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  69. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js +1 -1
  70. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js.map +1 -1
  71. package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js +4 -4
  72. package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
  73. package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  74. package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
  75. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js +2 -2
  76. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
  77. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
  78. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  79. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
  80. package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  81. package/lib/commonjs/components/Chat/Chat.js +8 -4
  82. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  83. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  84. package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
  85. package/lib/commonjs/components/Chat/hooks/useMutedUsers.js.map +1 -1
  86. package/lib/commonjs/components/ImageGallery/ImageGallery.js +19 -19
  87. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  88. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +11 -11
  89. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  90. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +28 -11
  91. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  92. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +5 -5
  93. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
  94. package/lib/commonjs/components/Message/Message.js +6 -6
  95. package/lib/commonjs/components/Message/Message.js.map +1 -1
  96. package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js +4 -4
  97. package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
  98. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +18 -18
  99. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
  100. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js +5 -5
  101. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
  102. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +20 -16
  103. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  104. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js +4 -4
  105. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -1
  106. package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js +10 -10
  107. package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js.map +1 -1
  108. package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js +3 -3
  109. package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
  110. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +6 -6
  111. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  112. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +9 -9
  113. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js.map +1 -1
  114. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +3 -3
  115. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  116. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +51 -51
  117. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js.map +1 -1
  118. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +145 -64
  119. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  120. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js +240 -0
  121. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js.map +1 -0
  122. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  123. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
  124. package/lib/commonjs/components/Message/hooks/useMessageActions.js +11 -11
  125. package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
  126. package/lib/commonjs/components/Message/utils/messageActions.js.map +1 -1
  127. package/lib/commonjs/components/Message/utils/removeReservedFields.js.map +1 -1
  128. package/lib/commonjs/components/MessageInput/AttachButton.js +3 -3
  129. package/lib/commonjs/components/MessageInput/AttachButton.js.map +1 -1
  130. package/lib/commonjs/components/MessageInput/CommandsButton.js +3 -3
  131. package/lib/commonjs/components/MessageInput/CommandsButton.js.map +1 -1
  132. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +11 -11
  133. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  134. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +7 -7
  135. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  136. package/lib/commonjs/components/MessageInput/InputButtons.js +6 -6
  137. package/lib/commonjs/components/MessageInput/InputButtons.js.map +1 -1
  138. package/lib/commonjs/components/MessageInput/MessageInput.js +34 -34
  139. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  140. package/lib/commonjs/components/MessageInput/MoreOptionsButton.js +3 -3
  141. package/lib/commonjs/components/MessageInput/MoreOptionsButton.js.map +1 -1
  142. package/lib/commonjs/components/MessageInput/SendButton.js +5 -5
  143. package/lib/commonjs/components/MessageInput/SendButton.js.map +1 -1
  144. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js +7 -7
  145. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
  146. package/lib/commonjs/components/MessageInput/hooks/useCooldown.js.map +1 -1
  147. package/lib/commonjs/components/MessageList/InlineLoadingMoreIndicator.js +3 -3
  148. package/lib/commonjs/components/MessageList/InlineLoadingMoreIndicator.js.map +1 -1
  149. package/lib/commonjs/components/MessageList/InlineLoadingMoreRecentIndicator.js +3 -3
  150. package/lib/commonjs/components/MessageList/InlineLoadingMoreRecentIndicator.js.map +1 -1
  151. package/lib/commonjs/components/MessageList/InlineLoadingMoreThreadIndicator.js +3 -3
  152. package/lib/commonjs/components/MessageList/InlineLoadingMoreThreadIndicator.js.map +1 -1
  153. package/lib/commonjs/components/MessageList/MessageList.js +26 -26
  154. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  155. package/lib/commonjs/components/MessageList/MessageSystem.js +6 -6
  156. package/lib/commonjs/components/MessageList/MessageSystem.js.map +1 -1
  157. package/lib/commonjs/components/MessageList/TypingIndicator.js +3 -3
  158. package/lib/commonjs/components/MessageList/TypingIndicator.js.map +1 -1
  159. package/lib/commonjs/components/MessageList/TypingIndicatorContainer.js +2 -2
  160. package/lib/commonjs/components/MessageList/TypingIndicatorContainer.js.map +1 -1
  161. package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
  162. package/lib/commonjs/components/MessageList/hooks/useTypingString.js.map +1 -1
  163. package/lib/commonjs/components/MessageList/utils/filterTypingUsers.js.map +1 -1
  164. package/lib/commonjs/components/MessageList/utils/getDateSeparators.js.map +1 -1
  165. package/lib/commonjs/components/MessageList/utils/getGroupStyles.js.map +1 -1
  166. package/lib/commonjs/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
  167. package/lib/commonjs/components/MessageList/utils/getReadStates.js.map +1 -1
  168. package/lib/commonjs/components/MessageOverlay/MessageActionList.js +3 -3
  169. package/lib/commonjs/components/MessageOverlay/MessageActionList.js.map +1 -1
  170. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +6 -6
  171. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -1
  172. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +26 -25
  173. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
  174. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js +13 -13
  175. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js.map +1 -1
  176. package/lib/commonjs/components/MessageOverlay/OverlayReactions.js +19 -19
  177. package/lib/commonjs/components/MessageOverlay/OverlayReactions.js.map +1 -1
  178. package/lib/commonjs/components/Reply/Reply.js +8 -8
  179. package/lib/commonjs/components/Reply/Reply.js.map +1 -1
  180. package/lib/commonjs/components/Thread/Thread.js +4 -4
  181. package/lib/commonjs/components/Thread/Thread.js.map +1 -1
  182. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +12 -12
  183. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  184. package/lib/commonjs/components/docs/data.js +44 -44
  185. package/lib/commonjs/components/docs/data.js.map +1 -1
  186. package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js +1 -1
  187. package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
  188. package/lib/commonjs/contexts/channelContext/ChannelContext.js +2 -2
  189. package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
  190. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js +2 -2
  191. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
  192. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js +3 -3
  193. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
  194. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -1
  195. package/lib/commonjs/contexts/chatContext/ChatContext.js +2 -2
  196. package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
  197. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js +2 -2
  198. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  199. package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js +1 -1
  200. package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js.map +1 -1
  201. package/lib/commonjs/contexts/messageContext/MessageContext.js +2 -2
  202. package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
  203. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +2 -2
  204. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  205. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  206. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  207. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js +2 -2
  208. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  209. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
  210. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  211. package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -1
  212. package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
  213. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +12 -12
  214. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
  215. package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +2 -2
  216. package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
  217. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +2 -2
  218. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  219. package/lib/commonjs/contexts/themeContext/utils/theme.js +7 -6
  220. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  221. package/lib/commonjs/contexts/threadContext/ThreadContext.js +2 -2
  222. package/lib/commonjs/contexts/threadContext/ThreadContext.js.map +1 -1
  223. package/lib/commonjs/contexts/translationContext/TranslationContext.js +2 -2
  224. package/lib/commonjs/contexts/translationContext/TranslationContext.js.map +1 -1
  225. package/lib/commonjs/contexts/typingContext/TypingContext.js +2 -2
  226. package/lib/commonjs/contexts/typingContext/TypingContext.js.map +1 -1
  227. package/lib/commonjs/icons/UserAdmin.js +62 -0
  228. package/lib/commonjs/icons/UserAdmin.js.map +1 -0
  229. package/lib/commonjs/icons/index.js +0 -26
  230. package/lib/commonjs/icons/index.js.map +1 -1
  231. package/lib/commonjs/init.js +13 -0
  232. package/lib/commonjs/init.js.map +1 -0
  233. package/lib/commonjs/utils/Streami18n.js.map +1 -1
  234. package/lib/commonjs/utils/getResizedImageUrl.js +8 -5
  235. package/lib/commonjs/utils/getResizedImageUrl.js.map +1 -1
  236. package/lib/commonjs/utils/utils.js.map +1 -1
  237. package/lib/commonjs/version.json +1 -1
  238. package/lib/module/components/Attachment/Attachment.js +10 -10
  239. package/lib/module/components/Attachment/Attachment.js.map +1 -1
  240. package/lib/module/components/Attachment/AttachmentActions.js +4 -4
  241. package/lib/module/components/Attachment/AttachmentActions.js.map +1 -1
  242. package/lib/module/components/Attachment/Card.js +15 -15
  243. package/lib/module/components/Attachment/Card.js.map +1 -1
  244. package/lib/module/components/Attachment/FileAttachment.js +8 -8
  245. package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
  246. package/lib/module/components/Attachment/FileAttachmentGroup.js +4 -4
  247. package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
  248. package/lib/module/components/Attachment/Gallery.js +8 -8
  249. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  250. package/lib/module/components/Attachment/Giphy.js +112 -148
  251. package/lib/module/components/Attachment/Giphy.js.map +1 -1
  252. package/lib/module/components/Attachment/utils/buildGallery/buildGallery.js.map +1 -1
  253. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js.map +1 -1
  254. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js.map +1 -1
  255. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js.map +1 -1
  256. package/lib/module/components/Attachment/utils/buildGallery/buildThumbnail.js.map +1 -1
  257. package/lib/module/components/Attachment/utils/buildGallery/buildThumbnailGrid.js.map +1 -1
  258. package/lib/module/components/Attachment/utils/getAspectRatio.js.map +1 -1
  259. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +2 -2
  260. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  261. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js +16 -16
  262. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -1
  263. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +7 -7
  264. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -1
  265. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +13 -13
  266. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
  267. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +10 -10
  268. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
  269. package/lib/module/components/Avatar/Avatar.js.map +1 -1
  270. package/lib/module/components/Channel/Channel.js +13 -13
  271. package/lib/module/components/Channel/Channel.js.map +1 -1
  272. package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  273. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  274. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  275. package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
  276. package/lib/module/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
  277. package/lib/module/components/Channel/hooks/useCreateThreadContext.js.map +1 -1
  278. package/lib/module/components/Channel/hooks/useCreateTypingContext.js.map +1 -1
  279. package/lib/module/components/ChannelList/ChannelList.js +2 -2
  280. package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
  281. package/lib/module/components/ChannelList/ChannelListMessenger.js +14 -14
  282. package/lib/module/components/ChannelList/ChannelListMessenger.js.map +1 -1
  283. package/lib/module/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
  284. package/lib/module/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
  285. package/lib/module/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
  286. package/lib/module/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
  287. package/lib/module/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
  288. package/lib/module/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
  289. package/lib/module/components/ChannelList/hooks/listeners/useConnectionRecovered.js.map +1 -1
  290. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  291. package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
  292. package/lib/module/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
  293. package/lib/module/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
  294. package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
  295. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  296. package/lib/module/components/ChannelList/utils.js.map +1 -1
  297. package/lib/module/components/ChannelPreview/ChannelAvatar.js +2 -2
  298. package/lib/module/components/ChannelPreview/ChannelAvatar.js.map +1 -1
  299. package/lib/module/components/ChannelPreview/ChannelPreview.js +2 -2
  300. package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
  301. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js +4 -4
  302. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  303. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +12 -12
  304. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  305. package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js +1 -1
  306. package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js.map +1 -1
  307. package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js +4 -4
  308. package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
  309. package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  310. package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
  311. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js +2 -2
  312. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
  313. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
  314. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  315. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
  316. package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  317. package/lib/module/components/Chat/Chat.js +8 -4
  318. package/lib/module/components/Chat/Chat.js.map +1 -1
  319. package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  320. package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
  321. package/lib/module/components/Chat/hooks/useMutedUsers.js.map +1 -1
  322. package/lib/module/components/ImageGallery/ImageGallery.js +19 -19
  323. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  324. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +11 -11
  325. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  326. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +28 -11
  327. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  328. package/lib/module/components/ImageGallery/components/ImageGrid.js +5 -5
  329. package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
  330. package/lib/module/components/Message/Message.js +6 -6
  331. package/lib/module/components/Message/Message.js.map +1 -1
  332. package/lib/module/components/Message/MessageSimple/MessageAvatar.js +4 -4
  333. package/lib/module/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
  334. package/lib/module/components/Message/MessageSimple/MessageContent.js +18 -18
  335. package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
  336. package/lib/module/components/Message/MessageSimple/MessageDeleted.js +5 -5
  337. package/lib/module/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
  338. package/lib/module/components/Message/MessageSimple/MessageFooter.js +20 -16
  339. package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  340. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js +4 -4
  341. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -1
  342. package/lib/module/components/Message/MessageSimple/MessageReplies.js +10 -10
  343. package/lib/module/components/Message/MessageSimple/MessageReplies.js.map +1 -1
  344. package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js +3 -3
  345. package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
  346. package/lib/module/components/Message/MessageSimple/MessageSimple.js +6 -6
  347. package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  348. package/lib/module/components/Message/MessageSimple/MessageStatus.js +9 -9
  349. package/lib/module/components/Message/MessageSimple/MessageStatus.js.map +1 -1
  350. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +3 -3
  351. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  352. package/lib/module/components/Message/MessageSimple/ReactionList.js +51 -51
  353. package/lib/module/components/Message/MessageSimple/ReactionList.js.map +1 -1
  354. package/lib/module/components/Message/MessageSimple/utils/renderText.js +145 -64
  355. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  356. package/lib/module/components/Message/MessageSimple/utils/renderText.test.js +240 -0
  357. package/lib/module/components/Message/MessageSimple/utils/renderText.test.js.map +1 -0
  358. package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  359. package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
  360. package/lib/module/components/Message/hooks/useMessageActions.js +11 -11
  361. package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
  362. package/lib/module/components/Message/utils/messageActions.js.map +1 -1
  363. package/lib/module/components/Message/utils/removeReservedFields.js.map +1 -1
  364. package/lib/module/components/MessageInput/AttachButton.js +3 -3
  365. package/lib/module/components/MessageInput/AttachButton.js.map +1 -1
  366. package/lib/module/components/MessageInput/CommandsButton.js +3 -3
  367. package/lib/module/components/MessageInput/CommandsButton.js.map +1 -1
  368. package/lib/module/components/MessageInput/FileUploadPreview.js +11 -11
  369. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  370. package/lib/module/components/MessageInput/ImageUploadPreview.js +7 -7
  371. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  372. package/lib/module/components/MessageInput/InputButtons.js +6 -6
  373. package/lib/module/components/MessageInput/InputButtons.js.map +1 -1
  374. package/lib/module/components/MessageInput/MessageInput.js +34 -34
  375. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  376. package/lib/module/components/MessageInput/MoreOptionsButton.js +3 -3
  377. package/lib/module/components/MessageInput/MoreOptionsButton.js.map +1 -1
  378. package/lib/module/components/MessageInput/SendButton.js +5 -5
  379. package/lib/module/components/MessageInput/SendButton.js.map +1 -1
  380. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js +7 -7
  381. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
  382. package/lib/module/components/MessageInput/hooks/useCooldown.js.map +1 -1
  383. package/lib/module/components/MessageList/InlineLoadingMoreIndicator.js +3 -3
  384. package/lib/module/components/MessageList/InlineLoadingMoreIndicator.js.map +1 -1
  385. package/lib/module/components/MessageList/InlineLoadingMoreRecentIndicator.js +3 -3
  386. package/lib/module/components/MessageList/InlineLoadingMoreRecentIndicator.js.map +1 -1
  387. package/lib/module/components/MessageList/InlineLoadingMoreThreadIndicator.js +3 -3
  388. package/lib/module/components/MessageList/InlineLoadingMoreThreadIndicator.js.map +1 -1
  389. package/lib/module/components/MessageList/MessageList.js +26 -26
  390. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  391. package/lib/module/components/MessageList/MessageSystem.js +6 -6
  392. package/lib/module/components/MessageList/MessageSystem.js.map +1 -1
  393. package/lib/module/components/MessageList/TypingIndicator.js +3 -3
  394. package/lib/module/components/MessageList/TypingIndicator.js.map +1 -1
  395. package/lib/module/components/MessageList/TypingIndicatorContainer.js +2 -2
  396. package/lib/module/components/MessageList/TypingIndicatorContainer.js.map +1 -1
  397. package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
  398. package/lib/module/components/MessageList/hooks/useTypingString.js.map +1 -1
  399. package/lib/module/components/MessageList/utils/filterTypingUsers.js.map +1 -1
  400. package/lib/module/components/MessageList/utils/getDateSeparators.js.map +1 -1
  401. package/lib/module/components/MessageList/utils/getGroupStyles.js.map +1 -1
  402. package/lib/module/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
  403. package/lib/module/components/MessageList/utils/getReadStates.js.map +1 -1
  404. package/lib/module/components/MessageOverlay/MessageActionList.js +3 -3
  405. package/lib/module/components/MessageOverlay/MessageActionList.js.map +1 -1
  406. package/lib/module/components/MessageOverlay/MessageActionListItem.js +6 -6
  407. package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -1
  408. package/lib/module/components/MessageOverlay/MessageOverlay.js +26 -25
  409. package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
  410. package/lib/module/components/MessageOverlay/OverlayReactionList.js +13 -13
  411. package/lib/module/components/MessageOverlay/OverlayReactionList.js.map +1 -1
  412. package/lib/module/components/MessageOverlay/OverlayReactions.js +19 -19
  413. package/lib/module/components/MessageOverlay/OverlayReactions.js.map +1 -1
  414. package/lib/module/components/Reply/Reply.js +8 -8
  415. package/lib/module/components/Reply/Reply.js.map +1 -1
  416. package/lib/module/components/Thread/Thread.js +4 -4
  417. package/lib/module/components/Thread/Thread.js.map +1 -1
  418. package/lib/module/components/Thread/components/ThreadFooterComponent.js +12 -12
  419. package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  420. package/lib/module/components/docs/data.js +44 -44
  421. package/lib/module/components/docs/data.js.map +1 -1
  422. package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js +1 -1
  423. package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
  424. package/lib/module/contexts/channelContext/ChannelContext.js +2 -2
  425. package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
  426. package/lib/module/contexts/channelsContext/ChannelsContext.js +2 -2
  427. package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
  428. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js +3 -3
  429. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
  430. package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -1
  431. package/lib/module/contexts/chatContext/ChatContext.js +2 -2
  432. package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
  433. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js +2 -2
  434. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  435. package/lib/module/contexts/keyboardContext/KeyboardContext.js +1 -1
  436. package/lib/module/contexts/keyboardContext/KeyboardContext.js.map +1 -1
  437. package/lib/module/contexts/messageContext/MessageContext.js +2 -2
  438. package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
  439. package/lib/module/contexts/messageInputContext/MessageInputContext.js +2 -2
  440. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  441. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  442. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  443. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js +2 -2
  444. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  445. package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
  446. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  447. package/lib/module/contexts/overlayContext/OverlayContext.js +1 -1
  448. package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
  449. package/lib/module/contexts/overlayContext/OverlayProvider.js +12 -12
  450. package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
  451. package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +2 -2
  452. package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
  453. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +2 -2
  454. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  455. package/lib/module/contexts/themeContext/utils/theme.js +7 -6
  456. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  457. package/lib/module/contexts/threadContext/ThreadContext.js +2 -2
  458. package/lib/module/contexts/threadContext/ThreadContext.js.map +1 -1
  459. package/lib/module/contexts/translationContext/TranslationContext.js +2 -2
  460. package/lib/module/contexts/translationContext/TranslationContext.js.map +1 -1
  461. package/lib/module/contexts/typingContext/TypingContext.js +2 -2
  462. package/lib/module/contexts/typingContext/TypingContext.js.map +1 -1
  463. package/lib/module/icons/UserAdmin.js +62 -0
  464. package/lib/module/icons/UserAdmin.js.map +1 -0
  465. package/lib/module/icons/index.js +0 -26
  466. package/lib/module/icons/index.js.map +1 -1
  467. package/lib/module/init.js +13 -0
  468. package/lib/module/init.js.map +1 -0
  469. package/lib/module/utils/Streami18n.js.map +1 -1
  470. package/lib/module/utils/getResizedImageUrl.js +8 -5
  471. package/lib/module/utils/getResizedImageUrl.js.map +1 -1
  472. package/lib/module/utils/utils.js.map +1 -1
  473. package/lib/module/version.json +1 -1
  474. package/lib/typescript/components/Attachment/Attachment.d.ts +5 -5
  475. package/lib/typescript/components/Attachment/AttachmentActions.d.ts +4 -4
  476. package/lib/typescript/components/Attachment/Card.d.ts +4 -4
  477. package/lib/typescript/components/Attachment/FileAttachment.d.ts +5 -5
  478. package/lib/typescript/components/Attachment/FileAttachmentGroup.d.ts +4 -4
  479. package/lib/typescript/components/Attachment/Gallery.d.ts +5 -5
  480. package/lib/typescript/components/Attachment/Giphy.d.ts +6 -6
  481. package/lib/typescript/components/Attachment/utils/buildGallery/buildGallery.d.ts +3 -3
  482. package/lib/typescript/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.d.ts +3 -3
  483. package/lib/typescript/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.d.ts +3 -3
  484. package/lib/typescript/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.d.ts +3 -3
  485. package/lib/typescript/components/Attachment/utils/buildGallery/buildThumbnail.d.ts +3 -3
  486. package/lib/typescript/components/Attachment/utils/buildGallery/buildThumbnailGrid.d.ts +3 -3
  487. package/lib/typescript/components/Attachment/utils/getAspectRatio.d.ts +2 -2
  488. package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts +4 -4
  489. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.d.ts +3 -2
  490. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionHeader.d.ts +4 -4
  491. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionItem.d.ts +5 -5
  492. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts +9 -9
  493. package/lib/typescript/components/Avatar/Avatar.d.ts +1 -1
  494. package/lib/typescript/components/Channel/Channel.d.ts +7 -7
  495. package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +2 -2
  496. package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +3 -3
  497. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +3 -3
  498. package/lib/typescript/components/Channel/hooks/useCreateOwnCapabilitiesContext.d.ts +3 -3
  499. package/lib/typescript/components/Channel/hooks/useCreatePaginatedMessageListContext.d.ts +3 -3
  500. package/lib/typescript/components/Channel/hooks/useCreateThreadContext.d.ts +2 -2
  501. package/lib/typescript/components/Channel/hooks/useCreateTypingContext.d.ts +2 -2
  502. package/lib/typescript/components/ChannelList/ChannelList.d.ts +14 -14
  503. package/lib/typescript/components/ChannelList/ChannelListMessenger.d.ts +4 -4
  504. package/lib/typescript/components/ChannelList/hooks/listeners/useAddedToChannelNotification.d.ts +5 -5
  505. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelDeleted.d.ts +5 -5
  506. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelHidden.d.ts +5 -5
  507. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelTruncated.d.ts +5 -5
  508. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelUpdated.d.ts +5 -5
  509. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelVisible.d.ts +5 -5
  510. package/lib/typescript/components/ChannelList/hooks/listeners/useConnectionRecovered.d.ts +2 -2
  511. package/lib/typescript/components/ChannelList/hooks/listeners/useNewMessage.d.ts +4 -4
  512. package/lib/typescript/components/ChannelList/hooks/listeners/useNewMessageNotification.d.ts +5 -5
  513. package/lib/typescript/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.d.ts +5 -5
  514. package/lib/typescript/components/ChannelList/hooks/listeners/useUserPresence.d.ts +4 -4
  515. package/lib/typescript/components/ChannelList/hooks/useCreateChannelsContext.d.ts +2 -2
  516. package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +7 -7
  517. package/lib/typescript/components/ChannelList/utils.d.ts +7 -7
  518. package/lib/typescript/components/ChannelPreview/ChannelAvatar.d.ts +3 -3
  519. package/lib/typescript/components/ChannelPreview/ChannelPreview.d.ts +5 -5
  520. package/lib/typescript/components/ChannelPreview/ChannelPreviewMessage.d.ts +4 -5
  521. package/lib/typescript/components/ChannelPreview/ChannelPreviewMessenger.d.ts +5 -5
  522. package/lib/typescript/components/ChannelPreview/ChannelPreviewMutedStatus.d.ts +3 -3
  523. package/lib/typescript/components/ChannelPreview/ChannelPreviewStatus.d.ts +3 -3
  524. package/lib/typescript/components/ChannelPreview/ChannelPreviewTitle.d.ts +3 -3
  525. package/lib/typescript/components/ChannelPreview/ChannelPreviewUnreadCount.d.ts +3 -3
  526. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.d.ts +3 -3
  527. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayName.d.ts +4 -4
  528. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.d.ts +2 -2
  529. package/lib/typescript/components/ChannelPreview/hooks/useLatestMessagePreview.d.ts +5 -5
  530. package/lib/typescript/components/Chat/Chat.d.ts +3 -3
  531. package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts +2 -2
  532. package/lib/typescript/components/Chat/hooks/useIsOnline.d.ts +2 -2
  533. package/lib/typescript/components/Chat/hooks/useMutedUsers.d.ts +2 -2
  534. package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +9 -9
  535. package/lib/typescript/components/ImageGallery/components/ImageGalleryFooter.d.ts +10 -10
  536. package/lib/typescript/components/ImageGallery/components/ImageGalleryHeader.d.ts +10 -10
  537. package/lib/typescript/components/ImageGallery/components/ImageGrid.d.ts +10 -10
  538. package/lib/typescript/components/ImageGallery/components/__tests__/ImageGalleryHeader.test.d.ts +1 -0
  539. package/lib/typescript/components/Message/Message.d.ts +11 -11
  540. package/lib/typescript/components/Message/MessageSimple/MessageAvatar.d.ts +4 -4
  541. package/lib/typescript/components/Message/MessageSimple/MessageContent.d.ts +4 -4
  542. package/lib/typescript/components/Message/MessageSimple/MessageDeleted.d.ts +5 -5
  543. package/lib/typescript/components/Message/MessageSimple/MessageFooter.d.ts +6 -6
  544. package/lib/typescript/components/Message/MessageSimple/MessagePinnedHeader.d.ts +4 -4
  545. package/lib/typescript/components/Message/MessageSimple/MessageReplies.d.ts +4 -4
  546. package/lib/typescript/components/Message/MessageSimple/MessageRepliesAvatars.d.ts +3 -3
  547. package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts +4 -4
  548. package/lib/typescript/components/Message/MessageSimple/MessageStatus.d.ts +4 -4
  549. package/lib/typescript/components/Message/MessageSimple/MessageTextContainer.d.ts +6 -6
  550. package/lib/typescript/components/Message/MessageSimple/ReactionList.d.ts +4 -4
  551. package/lib/typescript/components/Message/MessageSimple/utils/renderText.d.ts +19 -5
  552. package/lib/typescript/components/Message/MessageSimple/utils/renderText.test.d.ts +1 -0
  553. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts +2 -2
  554. package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +2 -2
  555. package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +3 -3
  556. package/lib/typescript/components/Message/utils/messageActions.d.ts +5 -5
  557. package/lib/typescript/components/Message/utils/removeReservedFields.d.ts +2 -2
  558. package/lib/typescript/components/MessageInput/AttachButton.d.ts +4 -4
  559. package/lib/typescript/components/MessageInput/CommandsButton.d.ts +4 -4
  560. package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +4 -4
  561. package/lib/typescript/components/MessageInput/ImageUploadPreview.d.ts +4 -4
  562. package/lib/typescript/components/MessageInput/InputButtons.d.ts +5 -5
  563. package/lib/typescript/components/MessageInput/MessageInput.d.ts +4 -4
  564. package/lib/typescript/components/MessageInput/MoreOptionsButton.d.ts +4 -4
  565. package/lib/typescript/components/MessageInput/SendButton.d.ts +4 -4
  566. package/lib/typescript/components/MessageInput/ShowThreadMessageInChannelButton.d.ts +2 -2
  567. package/lib/typescript/components/MessageInput/hooks/useCooldown.d.ts +2 -2
  568. package/lib/typescript/components/MessageList/InlineLoadingMoreIndicator.d.ts +2 -2
  569. package/lib/typescript/components/MessageList/InlineLoadingMoreRecentIndicator.d.ts +2 -2
  570. package/lib/typescript/components/MessageList/InlineLoadingMoreThreadIndicator.d.ts +2 -2
  571. package/lib/typescript/components/MessageList/MessageList.d.ts +7 -7
  572. package/lib/typescript/components/MessageList/MessageSystem.d.ts +4 -4
  573. package/lib/typescript/components/MessageList/TypingIndicator.d.ts +2 -2
  574. package/lib/typescript/components/MessageList/TypingIndicatorContainer.d.ts +4 -4
  575. package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts +5 -5
  576. package/lib/typescript/components/MessageList/hooks/useTypingString.d.ts +2 -2
  577. package/lib/typescript/components/MessageList/utils/filterTypingUsers.d.ts +3 -3
  578. package/lib/typescript/components/MessageList/utils/getDateSeparators.d.ts +4 -4
  579. package/lib/typescript/components/MessageList/utils/getGroupStyles.d.ts +4 -4
  580. package/lib/typescript/components/MessageList/utils/getLastReceivedMessage.d.ts +2 -2
  581. package/lib/typescript/components/MessageList/utils/getReadStates.d.ts +8 -5
  582. package/lib/typescript/components/MessageOverlay/MessageActionList.d.ts +4 -4
  583. package/lib/typescript/components/MessageOverlay/MessageActionListItem.d.ts +4 -3
  584. package/lib/typescript/components/MessageOverlay/MessageOverlay.d.ts +4 -4
  585. package/lib/typescript/components/MessageOverlay/OverlayReactionList.d.ts +6 -6
  586. package/lib/typescript/components/MessageOverlay/OverlayReactions.d.ts +2 -2
  587. package/lib/typescript/components/MessageOverlay/hooks/useMessageActionAnimation.d.ts +1 -1
  588. package/lib/typescript/components/Reply/Reply.d.ts +4 -4
  589. package/lib/typescript/components/Thread/Thread.d.ts +7 -7
  590. package/lib/typescript/components/Thread/components/ThreadFooterComponent.d.ts +2 -2
  591. package/lib/typescript/contexts/attachmentPickerContext/AttachmentPickerContext.d.ts +2 -2
  592. package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +12 -12
  593. package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +18 -18
  594. package/lib/typescript/contexts/channelsStateContext/ChannelsStateContext.d.ts +19 -19
  595. package/lib/typescript/contexts/channelsStateContext/useChannelState.d.ts +17 -17
  596. package/lib/typescript/contexts/chatContext/ChatContext.d.ts +11 -11
  597. package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContext.d.ts +8 -8
  598. package/lib/typescript/contexts/keyboardContext/KeyboardContext.d.ts +2 -2
  599. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +12 -12
  600. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +33 -33
  601. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +2 -2
  602. package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts +3 -3
  603. package/lib/typescript/contexts/messageOverlayContext/MessageOverlayContext.d.ts +21 -21
  604. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +57 -57
  605. package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts +4 -4
  606. package/lib/typescript/contexts/overlayContext/OverlayProvider.d.ts +2 -2
  607. package/lib/typescript/contexts/paginatedMessageListContext/PaginatedMessageListContext.d.ts +8 -8
  608. package/lib/typescript/contexts/suggestionsContext/SuggestionsContext.d.ts +20 -20
  609. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +6 -5
  610. package/lib/typescript/contexts/threadContext/ThreadContext.d.ts +10 -10
  611. package/lib/typescript/contexts/translationContext/TranslationContext.d.ts +2 -2
  612. package/lib/typescript/contexts/typingContext/TypingContext.d.ts +8 -8
  613. package/lib/typescript/icons/{Left.d.ts → UserAdmin.d.ts} +1 -1
  614. package/lib/typescript/icons/index.d.ts +0 -2
  615. package/lib/typescript/init.d.ts +2 -0
  616. package/lib/typescript/types/types.d.ts +16 -13
  617. package/lib/typescript/utils/Streami18n.d.ts +4 -4
  618. package/lib/typescript/utils/getResizedImageUrl.d.ts +2 -1
  619. package/lib/typescript/utils/utils.d.ts +21 -21
  620. package/package.json +3 -5
  621. package/src/components/Attachment/Attachment.tsx +15 -56
  622. package/src/components/Attachment/AttachmentActions.tsx +15 -55
  623. package/src/components/Attachment/Card.tsx +15 -48
  624. package/src/components/Attachment/FileAttachment.tsx +14 -48
  625. package/src/components/Attachment/FileAttachmentGroup.tsx +16 -57
  626. package/src/components/Attachment/Gallery.tsx +18 -59
  627. package/src/components/Attachment/Giphy.tsx +82 -125
  628. package/src/components/Attachment/__tests__/buildGallery.test.js +4 -4
  629. package/src/components/Attachment/utils/buildGallery/buildGallery.ts +5 -3
  630. package/src/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.ts +6 -10
  631. package/src/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.ts +5 -5
  632. package/src/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.ts +5 -3
  633. package/src/components/Attachment/utils/buildGallery/buildThumbnail.ts +5 -3
  634. package/src/components/Attachment/utils/buildGallery/buildThumbnailGrid.ts +5 -3
  635. package/src/components/Attachment/utils/getAspectRatio.ts +4 -4
  636. package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +21 -61
  637. package/src/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.tsx +5 -3
  638. package/src/components/AutoCompleteInput/AutoCompleteSuggestionHeader.tsx +12 -19
  639. package/src/components/AutoCompleteInput/AutoCompleteSuggestionItem.tsx +14 -21
  640. package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +21 -24
  641. package/src/components/Avatar/Avatar.tsx +1 -1
  642. package/src/components/Channel/Channel.tsx +174 -257
  643. package/src/components/Channel/hooks/useCreateChannelContext.ts +4 -19
  644. package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +52 -68
  645. package/src/components/Channel/hooks/useCreateMessagesContext.ts +4 -19
  646. package/src/components/Channel/hooks/useCreateOwnCapabilitiesContext.ts +3 -18
  647. package/src/components/Channel/hooks/useCreatePaginatedMessageListContext.ts +16 -32
  648. package/src/components/Channel/hooks/useCreateThreadContext.ts +4 -19
  649. package/src/components/Channel/hooks/useCreateTypingContext.ts +4 -19
  650. package/src/components/ChannelList/ChannelList.tsx +28 -49
  651. package/src/components/ChannelList/ChannelListMessenger.tsx +19 -70
  652. package/src/components/ChannelList/hooks/listeners/useAddedToChannelNotification.ts +14 -36
  653. package/src/components/ChannelList/hooks/listeners/useChannelDeleted.ts +13 -35
  654. package/src/components/ChannelList/hooks/listeners/useChannelHidden.ts +13 -35
  655. package/src/components/ChannelList/hooks/listeners/useChannelTruncated.ts +15 -37
  656. package/src/components/ChannelList/hooks/listeners/useChannelUpdated.ts +13 -35
  657. package/src/components/ChannelList/hooks/listeners/useChannelVisible.ts +14 -36
  658. package/src/components/ChannelList/hooks/listeners/useConnectionRecovered.ts +3 -18
  659. package/src/components/ChannelList/hooks/listeners/useNewMessage.ts +11 -33
  660. package/src/components/ChannelList/hooks/listeners/useNewMessageNotification.ts +13 -35
  661. package/src/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.ts +13 -35
  662. package/src/components/ChannelList/hooks/listeners/useUserPresence.ts +9 -31
  663. package/src/components/ChannelList/hooks/useCreateChannelsContext.ts +4 -19
  664. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +11 -29
  665. package/src/components/ChannelList/utils.ts +9 -42
  666. package/src/components/ChannelPreview/ChannelAvatar.tsx +5 -26
  667. package/src/components/ChannelPreview/ChannelPreview.tsx +18 -51
  668. package/src/components/ChannelPreview/ChannelPreviewMessage.tsx +11 -21
  669. package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +13 -46
  670. package/src/components/ChannelPreview/ChannelPreviewMutedStatus.tsx +5 -26
  671. package/src/components/ChannelPreview/ChannelPreviewStatus.tsx +6 -27
  672. package/src/components/ChannelPreview/ChannelPreviewTitle.tsx +5 -26
  673. package/src/components/ChannelPreview/ChannelPreviewUnreadCount.tsx +5 -26
  674. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.ts +7 -28
  675. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayName.ts +6 -27
  676. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.ts +7 -28
  677. package/src/components/ChannelPreview/hooks/useLatestMessagePreview.ts +27 -78
  678. package/src/components/Chat/Chat.tsx +15 -40
  679. package/src/components/Chat/hooks/useCreateChatContext.ts +4 -19
  680. package/src/components/Chat/hooks/useIsOnline.ts +4 -19
  681. package/src/components/Chat/hooks/useMutedUsers.ts +5 -20
  682. package/src/components/ImageGallery/ImageGallery.tsx +30 -40
  683. package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +19 -11
  684. package/src/components/ImageGallery/components/ImageGalleryHeader.tsx +42 -20
  685. package/src/components/ImageGallery/components/ImageGrid.tsx +45 -30
  686. package/src/components/ImageGallery/components/__tests__/ImageGalleryHeader.test.tsx +31 -0
  687. package/src/components/Message/Message.tsx +40 -93
  688. package/src/components/Message/MessageSimple/MessageAvatar.tsx +13 -54
  689. package/src/components/Message/MessageSimple/MessageContent.tsx +18 -61
  690. package/src/components/Message/MessageSimple/MessageDeleted.tsx +17 -58
  691. package/src/components/Message/MessageSimple/MessageFooter.tsx +23 -65
  692. package/src/components/Message/MessageSimple/MessagePinnedHeader.tsx +13 -54
  693. package/src/components/Message/MessageSimple/MessageReplies.tsx +15 -56
  694. package/src/components/Message/MessageSimple/MessageRepliesAvatars.tsx +5 -26
  695. package/src/components/Message/MessageSimple/MessageSimple.tsx +16 -57
  696. package/src/components/Message/MessageSimple/MessageStatus.tsx +13 -54
  697. package/src/components/Message/MessageSimple/MessageTextContainer.tsx +19 -66
  698. package/src/components/Message/MessageSimple/ReactionList.tsx +47 -88
  699. package/src/components/Message/MessageSimple/utils/renderText.test.tsx +70 -0
  700. package/src/components/Message/MessageSimple/utils/renderText.tsx +89 -74
  701. package/src/components/Message/hooks/useCreateMessageContext.ts +4 -19
  702. package/src/components/Message/hooks/useMessageActionHandlers.ts +8 -23
  703. package/src/components/Message/hooks/useMessageActions.tsx +8 -23
  704. package/src/components/Message/utils/messageActions.ts +7 -34
  705. package/src/components/Message/utils/removeReservedFields.ts +3 -18
  706. package/src/components/MessageInput/AttachButton.tsx +13 -54
  707. package/src/components/MessageInput/CommandsButton.tsx +15 -56
  708. package/src/components/MessageInput/FileUploadPreview.tsx +15 -57
  709. package/src/components/MessageInput/ImageUploadPreview.tsx +13 -55
  710. package/src/components/MessageInput/InputButtons.tsx +13 -54
  711. package/src/components/MessageInput/MessageInput.tsx +25 -66
  712. package/src/components/MessageInput/MoreOptionsButton.tsx +13 -54
  713. package/src/components/MessageInput/SendButton.tsx +13 -54
  714. package/src/components/MessageInput/ShowThreadMessageInChannelButton.tsx +4 -19
  715. package/src/components/MessageInput/hooks/useCooldown.ts +5 -19
  716. package/src/components/MessageList/InlineLoadingMoreIndicator.tsx +3 -18
  717. package/src/components/MessageList/InlineLoadingMoreRecentIndicator.tsx +3 -18
  718. package/src/components/MessageList/InlineLoadingMoreThreadIndicator.tsx +3 -18
  719. package/src/components/MessageList/MessageList.tsx +34 -76
  720. package/src/components/MessageList/MessageSystem.tsx +5 -26
  721. package/src/components/MessageList/TypingIndicator.tsx +3 -18
  722. package/src/components/MessageList/TypingIndicatorContainer.tsx +14 -47
  723. package/src/components/MessageList/hooks/useMessageList.ts +19 -52
  724. package/src/components/MessageList/hooks/useTypingString.ts +5 -20
  725. package/src/components/MessageList/utils/filterTypingUsers.ts +7 -28
  726. package/src/components/MessageList/utils/getDateSeparators.ts +6 -27
  727. package/src/components/MessageList/utils/getGroupStyles.ts +6 -27
  728. package/src/components/MessageList/utils/getLastReceivedMessage.ts +3 -18
  729. package/src/components/MessageList/utils/getReadStates.ts +5 -20
  730. package/src/components/MessageOverlay/MessageActionList.tsx +15 -56
  731. package/src/components/MessageOverlay/MessageActionListItem.tsx +20 -9
  732. package/src/components/MessageOverlay/MessageOverlay.tsx +38 -81
  733. package/src/components/MessageOverlay/OverlayReactionList.tsx +21 -74
  734. package/src/components/MessageOverlay/OverlayReactions.tsx +3 -18
  735. package/src/components/Reply/Reply.tsx +22 -69
  736. package/src/components/Thread/Thread.tsx +20 -53
  737. package/src/components/Thread/components/ThreadFooterComponent.tsx +12 -47
  738. package/src/components/docs/data.js +38 -37
  739. package/src/contexts/attachmentPickerContext/AttachmentPickerContext.tsx +9 -7
  740. package/src/contexts/channelContext/ChannelContext.tsx +15 -48
  741. package/src/contexts/channelsContext/ChannelsContext.tsx +22 -59
  742. package/src/contexts/channelsStateContext/ChannelsStateContext.tsx +38 -115
  743. package/src/contexts/channelsStateContext/useChannelState.ts +27 -60
  744. package/src/contexts/chatContext/ChatContext.tsx +14 -49
  745. package/src/contexts/imageGalleryContext/ImageGalleryContext.tsx +12 -54
  746. package/src/contexts/keyboardContext/KeyboardContext.tsx +13 -7
  747. package/src/contexts/messageContext/MessageContext.tsx +15 -48
  748. package/src/contexts/messageInputContext/MessageInputContext.tsx +61 -110
  749. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +5 -20
  750. package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +7 -31
  751. package/src/contexts/messageOverlayContext/MessageOverlayContext.tsx +24 -71
  752. package/src/contexts/messagesContext/MessagesContext.tsx +60 -99
  753. package/src/contexts/overlayContext/OverlayContext.tsx +18 -26
  754. package/src/contexts/overlayContext/OverlayProvider.tsx +7 -22
  755. package/src/contexts/paginatedMessageListContext/PaginatedMessageListContext.tsx +13 -53
  756. package/src/contexts/suggestionsContext/SuggestionsContext.tsx +39 -40
  757. package/src/contexts/themeContext/utils/theme.ts +13 -11
  758. package/src/contexts/threadContext/ThreadContext.tsx +13 -46
  759. package/src/contexts/translationContext/TranslationContext.tsx +12 -7
  760. package/src/contexts/typingContext/TypingContext.tsx +11 -44
  761. package/src/icons/UserAdmin.tsx +23 -0
  762. package/src/icons/index.ts +0 -2
  763. package/src/init.ts +5 -0
  764. package/src/types/types.ts +16 -18
  765. package/src/utils/Streami18n.ts +3 -3
  766. package/src/utils/__tests__/getResizedImageUrl.test.js +56 -0
  767. package/src/utils/getResizedImageUrl.ts +15 -13
  768. package/src/utils/utils.ts +63 -128
  769. package/src/version.json +1 -1
  770. package/lib/commonjs/icons/Left.js +0 -38
  771. package/lib/commonjs/icons/Left.js.map +0 -1
  772. package/lib/commonjs/icons/Right.js +0 -38
  773. package/lib/commonjs/icons/Right.js.map +0 -1
  774. package/lib/commonjs/styleguideComponents/ArgumentsRenderer.js +0 -100
  775. package/lib/commonjs/styleguideComponents/ArgumentsRenderer.js.map +0 -1
  776. package/lib/commonjs/styleguideComponents/BottomSheet.js +0 -25
  777. package/lib/commonjs/styleguideComponents/BottomSheet.js.map +0 -1
  778. package/lib/commonjs/styleguideComponents/JsDoc.js +0 -87
  779. package/lib/commonjs/styleguideComponents/JsDoc.js.map +0 -1
  780. package/lib/commonjs/styleguideComponents/Markdown.js +0 -12
  781. package/lib/commonjs/styleguideComponents/Markdown.js.map +0 -1
  782. package/lib/commonjs/styleguideComponents/PathlineRenderer.js +0 -92
  783. package/lib/commonjs/styleguideComponents/PathlineRenderer.js.map +0 -1
  784. package/lib/commonjs/styleguideComponents/PropsRenderer.js +0 -267
  785. package/lib/commonjs/styleguideComponents/PropsRenderer.js.map +0 -1
  786. package/lib/commonjs/styleguideComponents/Reanimated.js +0 -2
  787. package/lib/commonjs/styleguideComponents/Reanimated.js.map +0 -1
  788. package/lib/commonjs/styleguideComponents/Wrapper.js +0 -29
  789. package/lib/commonjs/styleguideComponents/Wrapper.js.map +0 -1
  790. package/lib/commonjs/styleguideComponents/register-react-native-web.js +0 -44
  791. package/lib/commonjs/styleguideComponents/register-react-native-web.js.map +0 -1
  792. package/lib/commonjs/styleguideComponents/resolveAssetSource.js +0 -11
  793. package/lib/commonjs/styleguideComponents/resolveAssetSource.js.map +0 -1
  794. package/lib/module/icons/Left.js +0 -38
  795. package/lib/module/icons/Left.js.map +0 -1
  796. package/lib/module/icons/Right.js +0 -38
  797. package/lib/module/icons/Right.js.map +0 -1
  798. package/lib/module/styleguideComponents/ArgumentsRenderer.js +0 -100
  799. package/lib/module/styleguideComponents/ArgumentsRenderer.js.map +0 -1
  800. package/lib/module/styleguideComponents/BottomSheet.js +0 -25
  801. package/lib/module/styleguideComponents/BottomSheet.js.map +0 -1
  802. package/lib/module/styleguideComponents/JsDoc.js +0 -87
  803. package/lib/module/styleguideComponents/JsDoc.js.map +0 -1
  804. package/lib/module/styleguideComponents/Markdown.js +0 -12
  805. package/lib/module/styleguideComponents/Markdown.js.map +0 -1
  806. package/lib/module/styleguideComponents/PathlineRenderer.js +0 -92
  807. package/lib/module/styleguideComponents/PathlineRenderer.js.map +0 -1
  808. package/lib/module/styleguideComponents/PropsRenderer.js +0 -267
  809. package/lib/module/styleguideComponents/PropsRenderer.js.map +0 -1
  810. package/lib/module/styleguideComponents/Reanimated.js +0 -2
  811. package/lib/module/styleguideComponents/Reanimated.js.map +0 -1
  812. package/lib/module/styleguideComponents/Wrapper.js +0 -29
  813. package/lib/module/styleguideComponents/Wrapper.js.map +0 -1
  814. package/lib/module/styleguideComponents/register-react-native-web.js +0 -44
  815. package/lib/module/styleguideComponents/register-react-native-web.js.map +0 -1
  816. package/lib/module/styleguideComponents/resolveAssetSource.js +0 -11
  817. package/lib/module/styleguideComponents/resolveAssetSource.js.map +0 -1
  818. package/lib/typescript/icons/Right.d.ts +0 -3
  819. package/src/icons/Left.tsx +0 -12
  820. package/src/icons/Right.tsx +0 -12
  821. package/src/styleguideComponents/ArgumentsRenderer.tsx +0 -60
  822. package/src/styleguideComponents/BottomSheet.tsx +0 -3
  823. package/src/styleguideComponents/JsDoc.tsx +0 -45
  824. package/src/styleguideComponents/Markdown.tsx +0 -1
  825. package/src/styleguideComponents/PathlineRenderer.tsx +0 -45
  826. package/src/styleguideComponents/PropsRenderer.tsx +0 -141
  827. package/src/styleguideComponents/Reanimated.tsx +0 -0
  828. package/src/styleguideComponents/Wrapper.tsx +0 -7
  829. package/src/styleguideComponents/register-react-native-web.js +0 -13
  830. package/src/styleguideComponents/resolveAssetSource.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["ChannelPreviewMessenger.tsx"],"names":["styles","StyleSheet","create","container","borderBottomWidth","flex","flexDirection","paddingHorizontal","paddingVertical","contentContainer","row","alignItems","justifyContent","paddingLeft","statusContainer","display","title","fontSize","fontWeight","maxWidth","ChannelPreviewMessengerWithContext","props","channel","formatLatestMessageDate","latestMessagePreview","maxUnreadCount","onSelect","PreviewAvatar","ChannelAvatar","PreviewMessage","ChannelPreviewMessage","PreviewStatus","ChannelPreviewStatus","PreviewTitle","ChannelPreviewTitle","PreviewUnreadCount","ChannelPreviewUnreadCount","PreviewMutedStatus","ChannelPreviewMutedStatus","unread","theme","channelPreview","colors","border","white_snow","displayName","Math","floor","isChannelMuted","muteStatus","muted","backgroundColor","borderBottomColor","id","MemoizedChannelPreviewMessengerWithContext","React","memo","ChannelPreviewMessenger"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { TouchableOpacity } from 'react-native-gesture-handler';\n\nimport { ChannelAvatar } from './ChannelAvatar';\nimport type { ChannelPreviewProps } from './ChannelPreview';\nimport { ChannelPreviewMessage } from './ChannelPreviewMessage';\nimport { ChannelPreviewMutedStatus } from './ChannelPreviewMutedStatus';\nimport { ChannelPreviewStatus } from './ChannelPreviewStatus';\nimport { ChannelPreviewTitle } from './ChannelPreviewTitle';\nimport { ChannelPreviewUnreadCount } from './ChannelPreviewUnreadCount';\nimport { useChannelPreviewDisplayName } from './hooks/useChannelPreviewDisplayName';\n\nimport type { LatestMessagePreview } from './hooks/useLatestMessagePreview';\n\nimport {\n ChannelsContextValue,\n useChannelsContext,\n} from '../../contexts/channelsContext/ChannelsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\nimport { vw } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n container: {\n borderBottomWidth: 1,\n flex: 1,\n flexDirection: 'row',\n paddingHorizontal: 8,\n paddingVertical: 12,\n },\n contentContainer: { flex: 1 },\n row: {\n alignItems: 'center',\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingLeft: 8,\n },\n statusContainer: {\n display: 'flex',\n flexDirection: 'row',\n },\n title: { fontSize: 14, fontWeight: '700' },\n});\n\nconst maxWidth = vw(80) - 16 - 40;\n\nexport type ChannelPreviewMessengerPropsWithContext<\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> = Pick<ChannelPreviewProps<At, Ch, Co, Ev, Me, Re, Us>, 'channel'> &\n Pick<\n ChannelsContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'maxUnreadCount'\n | 'onSelect'\n | 'PreviewAvatar'\n | 'PreviewMessage'\n | 'PreviewMutedStatus'\n | 'PreviewStatus'\n | 'PreviewTitle'\n | 'PreviewUnreadCount'\n > & {\n /**\n * Latest message on a channel, formatted for preview\n *\n * e.g.,\n *\n * ```json\n * {\n * created_at: '' ,\n * messageObject: { ... },\n * previews: {\n * bold: true,\n * text: 'This is the message preview text'\n * },\n * status: 0 | 1 | 2 // read states of latest message.\n * }\n * ```\n *\n * @overrideType object\n */\n latestMessagePreview: LatestMessagePreview<At, Ch, Co, Ev, Me, Re, Us>;\n /**\n * Formatter function for date of latest message.\n * @param date Message date\n * @returns Formatted date string\n *\n * By default today's date is shown in 'HH:mm A' format and other dates\n * are displayed in 'DD/MM/YY' format. props.latestMessage.created_at is the\n * default formatted date. This default logic is part of ChannelPreview component.\n */\n formatLatestMessageDate?: (date: Date) => string;\n /** Number of unread messages on the channel */\n unread?: number;\n };\n\nconst ChannelPreviewMessengerWithContext = <\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 props: ChannelPreviewMessengerPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n channel,\n formatLatestMessageDate,\n latestMessagePreview,\n maxUnreadCount,\n onSelect,\n PreviewAvatar = ChannelAvatar,\n PreviewMessage = ChannelPreviewMessage,\n PreviewStatus = ChannelPreviewStatus,\n PreviewTitle = ChannelPreviewTitle,\n PreviewUnreadCount = ChannelPreviewUnreadCount,\n PreviewMutedStatus = ChannelPreviewMutedStatus,\n unread,\n } = props;\n\n const {\n theme: {\n channelPreview: { container, contentContainer, row, title },\n colors: { border, white_snow },\n },\n } = useTheme();\n\n const displayName = useChannelPreviewDisplayName(\n channel,\n Math.floor(maxWidth / ((title.fontSize || styles.title.fontSize) / 2)),\n );\n\n const isChannelMuted = channel.muteStatus().muted;\n\n return (\n <TouchableOpacity\n onPress={() => {\n if (onSelect) {\n onSelect(channel);\n }\n }}\n style={[\n styles.container,\n { backgroundColor: white_snow, borderBottomColor: border },\n container,\n ]}\n testID='channel-preview-button'\n >\n <PreviewAvatar channel={channel} />\n <View\n style={[styles.contentContainer, contentContainer]}\n testID={`channel-preview-content-${channel.id}`}\n >\n <View style={[styles.row, row]}>\n <PreviewTitle channel={channel} displayName={displayName} />\n <View style={[styles.statusContainer, row]}>\n <PreviewMutedStatus channel={channel} muted={isChannelMuted} />\n <PreviewUnreadCount channel={channel} maxUnreadCount={maxUnreadCount} unread={unread} />\n </View>\n </View>\n <View style={[styles.row, row]}>\n <PreviewMessage latestMessagePreview={latestMessagePreview} />\n <PreviewStatus\n channel={channel}\n formatLatestMessageDate={formatLatestMessageDate}\n latestMessagePreview={latestMessagePreview}\n />\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nexport type ChannelPreviewMessengerProps<\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 Omit<\n ChannelPreviewMessengerPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n 'channel' | 'latestMessagePreview'\n >\n> &\n Pick<\n ChannelPreviewMessengerPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n 'channel' | 'latestMessagePreview'\n >;\n\nconst MemoizedChannelPreviewMessengerWithContext = React.memo(\n ChannelPreviewMessengerWithContext,\n) as typeof ChannelPreviewMessengerWithContext;\n\n/**\n * This UI component displays an individual preview item for each channel in a list. It also receives all props\n * from the ChannelPreview component.\n */\nexport const ChannelPreviewMessenger = <\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 props: ChannelPreviewMessengerProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n maxUnreadCount,\n onSelect,\n PreviewAvatar,\n PreviewMessage,\n PreviewMutedStatus,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n } = useChannelsContext<At, Ch, Co, Ev, Me, Re, Us>();\n return (\n <MemoizedChannelPreviewMessengerWithContext\n {...{\n maxUnreadCount,\n onSelect,\n PreviewAvatar,\n PreviewMessage,\n PreviewMutedStatus,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n }}\n {...props}\n />\n );\n};\n\nChannelPreviewMessenger.displayName = 'ChannelPreviewMessenger{channelPreview}';\n"]}
1
+ {"version":3,"sources":["ChannelPreviewMessenger.tsx"],"names":["styles","StyleSheet","create","container","borderBottomWidth","flex","flexDirection","paddingHorizontal","paddingVertical","contentContainer","row","alignItems","justifyContent","paddingLeft","statusContainer","display","title","fontSize","fontWeight","maxWidth","ChannelPreviewMessengerWithContext","props","channel","formatLatestMessageDate","latestMessagePreview","maxUnreadCount","onSelect","PreviewAvatar","ChannelAvatar","PreviewMessage","ChannelPreviewMessage","PreviewStatus","ChannelPreviewStatus","PreviewTitle","ChannelPreviewTitle","PreviewUnreadCount","ChannelPreviewUnreadCount","PreviewMutedStatus","ChannelPreviewMutedStatus","unread","theme","channelPreview","colors","border","white_snow","displayName","Math","floor","isChannelMuted","muteStatus","muted","backgroundColor","borderBottomColor","id","MemoizedChannelPreviewMessengerWithContext","React","memo","ChannelPreviewMessenger"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { TouchableOpacity } from 'react-native-gesture-handler';\n\nimport { ChannelAvatar } from './ChannelAvatar';\nimport type { ChannelPreviewProps } from './ChannelPreview';\nimport { ChannelPreviewMessage } from './ChannelPreviewMessage';\nimport { ChannelPreviewMutedStatus } from './ChannelPreviewMutedStatus';\nimport { ChannelPreviewStatus } from './ChannelPreviewStatus';\nimport { ChannelPreviewTitle } from './ChannelPreviewTitle';\nimport { ChannelPreviewUnreadCount } from './ChannelPreviewUnreadCount';\nimport { useChannelPreviewDisplayName } from './hooks/useChannelPreviewDisplayName';\n\nimport type { LatestMessagePreview } from './hooks/useLatestMessagePreview';\n\nimport {\n ChannelsContextValue,\n useChannelsContext,\n} from '../../contexts/channelsContext/ChannelsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { vw } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n container: {\n borderBottomWidth: 1,\n flex: 1,\n flexDirection: 'row',\n paddingHorizontal: 8,\n paddingVertical: 12,\n },\n contentContainer: { flex: 1 },\n row: {\n alignItems: 'center',\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingLeft: 8,\n },\n statusContainer: {\n display: 'flex',\n flexDirection: 'row',\n },\n title: { fontSize: 14, fontWeight: '700' },\n});\n\nconst maxWidth = vw(80) - 16 - 40;\n\nexport type ChannelPreviewMessengerPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelPreviewProps<StreamChatGenerics>, 'channel'> &\n Pick<\n ChannelsContextValue<StreamChatGenerics>,\n | 'maxUnreadCount'\n | 'onSelect'\n | 'PreviewAvatar'\n | 'PreviewMessage'\n | 'PreviewMutedStatus'\n | 'PreviewStatus'\n | 'PreviewTitle'\n | 'PreviewUnreadCount'\n > & {\n /**\n * Latest message on a channel, formatted for preview\n *\n * e.g.,\n *\n * ```json\n * {\n * created_at: '' ,\n * messageObject: { ... },\n * previews: {\n * bold: true,\n * text: 'This is the message preview text'\n * },\n * status: 0 | 1 | 2 // read states of latest message.\n * }\n * ```\n *\n * @overrideType object\n */\n latestMessagePreview: LatestMessagePreview<StreamChatGenerics>;\n /**\n * Formatter function for date of latest message.\n * @param date Message date\n * @returns Formatted date string\n *\n * By default today's date is shown in 'HH:mm A' format and other dates\n * are displayed in 'DD/MM/YY' format. props.latestMessage.created_at is the\n * default formatted date. This default logic is part of ChannelPreview component.\n */\n formatLatestMessageDate?: (date: Date) => string;\n /** Number of unread messages on the channel */\n unread?: number;\n };\n\nconst ChannelPreviewMessengerWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n channel,\n formatLatestMessageDate,\n latestMessagePreview,\n maxUnreadCount,\n onSelect,\n PreviewAvatar = ChannelAvatar,\n PreviewMessage = ChannelPreviewMessage,\n PreviewStatus = ChannelPreviewStatus,\n PreviewTitle = ChannelPreviewTitle,\n PreviewUnreadCount = ChannelPreviewUnreadCount,\n PreviewMutedStatus = ChannelPreviewMutedStatus,\n unread,\n } = props;\n\n const {\n theme: {\n channelPreview: { container, contentContainer, row, title },\n colors: { border, white_snow },\n },\n } = useTheme();\n\n const displayName = useChannelPreviewDisplayName(\n channel,\n Math.floor(maxWidth / ((title.fontSize || styles.title.fontSize) / 2)),\n );\n\n const isChannelMuted = channel.muteStatus().muted;\n\n return (\n <TouchableOpacity\n onPress={() => {\n if (onSelect) {\n onSelect(channel);\n }\n }}\n style={[\n styles.container,\n { backgroundColor: white_snow, borderBottomColor: border },\n container,\n ]}\n testID='channel-preview-button'\n >\n <PreviewAvatar channel={channel} />\n <View\n style={[styles.contentContainer, contentContainer]}\n testID={`channel-preview-content-${channel.id}`}\n >\n <View style={[styles.row, row]}>\n <PreviewTitle channel={channel} displayName={displayName} />\n <View style={[styles.statusContainer, row]}>\n <PreviewMutedStatus channel={channel} muted={isChannelMuted} />\n <PreviewUnreadCount channel={channel} maxUnreadCount={maxUnreadCount} unread={unread} />\n </View>\n </View>\n <View style={[styles.row, row]}>\n <PreviewMessage latestMessagePreview={latestMessagePreview} />\n <PreviewStatus\n channel={channel}\n formatLatestMessageDate={formatLatestMessageDate}\n latestMessagePreview={latestMessagePreview}\n />\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nexport type ChannelPreviewMessengerProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Omit<\n ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n 'channel' | 'latestMessagePreview'\n >\n> &\n Pick<\n ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n 'channel' | 'latestMessagePreview'\n >;\n\nconst MemoizedChannelPreviewMessengerWithContext = React.memo(\n ChannelPreviewMessengerWithContext,\n) as typeof ChannelPreviewMessengerWithContext;\n\n/**\n * This UI component displays an individual preview item for each channel in a list. It also receives all props\n * from the ChannelPreview component.\n */\nexport const ChannelPreviewMessenger = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewMessengerProps<StreamChatGenerics>,\n) => {\n const {\n maxUnreadCount,\n onSelect,\n PreviewAvatar,\n PreviewMessage,\n PreviewMutedStatus,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n } = useChannelsContext<StreamChatGenerics>();\n return (\n <MemoizedChannelPreviewMessengerWithContext\n {...{\n maxUnreadCount,\n onSelect,\n PreviewAvatar,\n PreviewMessage,\n PreviewMutedStatus,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n }}\n {...props}\n />\n );\n};\n\nChannelPreviewMessenger.displayName = 'ChannelPreviewMessenger{channelPreview}';\n"]}
@@ -41,7 +41,7 @@ var ChannelPreviewMutedStatus = function ChannelPreviewMutedStatus(props) {
41
41
  __self: _this,
42
42
  __source: {
43
43
  fileName: _jsxFileName,
44
- lineNumber: 64,
44
+ lineNumber: 43,
45
45
  columnNumber: 5
46
46
  }
47
47
  }) : null;
@@ -1 +1 @@
1
- {"version":3,"sources":["ChannelPreviewMutedStatus.tsx"],"names":["styles","StyleSheet","create","iconStyle","marginRight","ChannelPreviewMutedStatus","props","muted","theme","channelPreview","mutedStatus","height","width","grey_dark","colors"],"mappings":";;;;;;;AAAA;;AAEA;;AAIA;;AACA;;;;;AAYA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,WAAW,EAAE;AADJ;AADoB,CAAlB,CAAf;;AAqBO,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,CASvCC,KATuC,EAUpC;AACH,MAAQC,KAAR,GAAkBD,KAAlB,CAAQC,KAAR;;AAEA,kBAOI,6BAPJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,cAFJ,CAGMC,WAHN;AAAA,MAGqBC,MAHrB,yBAGqBA,MAHrB;AAAA,MAG6BR,SAH7B,yBAG6BA,SAH7B;AAAA,MAGwCS,KAHxC,yBAGwCA,KAHxC;AAAA,MAKcC,SALd,mBAKIC,MALJ,CAKcD,SALd;;AASA,SAAON,KAAK,GACV,gCAAC,WAAD;AACE,IAAA,MAAM,EAAEI,MADV;AAEE,IAAA,QAAQ,EAAEE,SAFZ;AAGE,IAAA,KAAK,EAAE,CAACb,MAAM,CAACG,SAAR,EAAmBA,SAAnB,CAHT;AAIE,IAAA,KAAK,EAAES,KAJT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADU,GAOR,IAPJ;AAQD,CA9BM","sourcesContent":["import React from 'react';\n\nimport { StyleSheet } from 'react-native';\n\nimport type { ChannelPreviewProps } from './ChannelPreview';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Mute } from '../../icons';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\n\nconst styles = StyleSheet.create({\n iconStyle: {\n marginRight: 8,\n },\n});\n\nexport type ChannelPreviewMutedStatusProps<\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> = Pick<ChannelPreviewProps<At, Ch, Co, Ev, Me, Re, Us>, 'channel'> & {\n muted: boolean;\n};\n\n/**\n * This UI component displays an avatar for a particular channel.\n */\nexport const ChannelPreviewMutedStatus = <\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 props: ChannelPreviewMutedStatusProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { muted } = props;\n\n const {\n theme: {\n channelPreview: {\n mutedStatus: { height, iconStyle, width },\n },\n colors: { grey_dark },\n },\n } = useTheme();\n\n return muted ? (\n <Mute\n height={height}\n pathFill={grey_dark}\n style={[styles.iconStyle, iconStyle]}\n width={width}\n />\n ) : null;\n};\n"]}
1
+ {"version":3,"sources":["ChannelPreviewMutedStatus.tsx"],"names":["styles","StyleSheet","create","iconStyle","marginRight","ChannelPreviewMutedStatus","props","muted","theme","channelPreview","mutedStatus","height","width","grey_dark","colors"],"mappings":";;;;;;;AAAA;;AAEA;;AAIA;;AACA;;;;;AAGA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,WAAW,EAAE;AADJ;AADoB,CAAlB,CAAf;;AAeO,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,CAGvCC,KAHuC,EAIpC;AACH,MAAQC,KAAR,GAAkBD,KAAlB,CAAQC,KAAR;;AAEA,kBAOI,6BAPJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,cAFJ,CAGMC,WAHN;AAAA,MAGqBC,MAHrB,yBAGqBA,MAHrB;AAAA,MAG6BR,SAH7B,yBAG6BA,SAH7B;AAAA,MAGwCS,KAHxC,yBAGwCA,KAHxC;AAAA,MAKcC,SALd,mBAKIC,MALJ,CAKcD,SALd;;AASA,SAAON,KAAK,GACV,gCAAC,WAAD;AACE,IAAA,MAAM,EAAEI,MADV;AAEE,IAAA,QAAQ,EAAEE,SAFZ;AAGE,IAAA,KAAK,EAAE,CAACb,MAAM,CAACG,SAAR,EAAmBA,SAAnB,CAHT;AAIE,IAAA,KAAK,EAAES,KAJT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADU,GAOR,IAPJ;AAQD,CAxBM","sourcesContent":["import React from 'react';\n\nimport { StyleSheet } from 'react-native';\n\nimport type { ChannelPreviewProps } from './ChannelPreview';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Mute } from '../../icons';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst styles = StyleSheet.create({\n iconStyle: {\n marginRight: 8,\n },\n});\n\nexport type ChannelPreviewMutedStatusProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelPreviewProps<StreamChatGenerics>, 'channel'> & {\n muted: boolean;\n};\n\n/**\n * This UI component displays an avatar for a particular channel.\n */\nexport const ChannelPreviewMutedStatus = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewMutedStatusProps<StreamChatGenerics>,\n) => {\n const { muted } = props;\n\n const {\n theme: {\n channelPreview: {\n mutedStatus: { height, iconStyle, width },\n },\n colors: { grey_dark },\n },\n } = useTheme();\n\n return muted ? (\n <Mute\n height={height}\n pathFill={grey_dark}\n style={[styles.iconStyle, iconStyle]}\n width={width}\n />\n ) : null;\n};\n"]}
@@ -53,7 +53,7 @@ var ChannelPreviewStatus = function ChannelPreviewStatus(props) {
53
53
  __self: _this,
54
54
  __source: {
55
55
  fileName: _jsxFileName,
56
- lineNumber: 71,
56
+ lineNumber: 50,
57
57
  columnNumber: 5
58
58
  }
59
59
  }, status === 2 ? _react["default"].createElement(_icons.CheckAll, (0, _extends2["default"])({
@@ -62,7 +62,7 @@ var ChannelPreviewStatus = function ChannelPreviewStatus(props) {
62
62
  __self: _this,
63
63
  __source: {
64
64
  fileName: _jsxFileName,
65
- lineNumber: 73,
65
+ lineNumber: 52,
66
66
  columnNumber: 9
67
67
  }
68
68
  })) : status === 1 ? _react["default"].createElement(_icons.Check, (0, _extends2["default"])({
@@ -71,7 +71,7 @@ var ChannelPreviewStatus = function ChannelPreviewStatus(props) {
71
71
  __self: _this,
72
72
  __source: {
73
73
  fileName: _jsxFileName,
74
- lineNumber: 75,
74
+ lineNumber: 54,
75
75
  columnNumber: 9
76
76
  }
77
77
  })) : null, _react["default"].createElement(_reactNative.Text, {
@@ -81,7 +81,7 @@ var ChannelPreviewStatus = function ChannelPreviewStatus(props) {
81
81
  __self: _this,
82
82
  __source: {
83
83
  fileName: _jsxFileName,
84
- lineNumber: 77,
84
+ lineNumber: 56,
85
85
  columnNumber: 7
86
86
  }
87
87
  }, formatLatestMessageDate && latestMessageDate ? formatLatestMessageDate(latestMessageDate) : latestMessagePreview.created_at));
@@ -1 +1 @@
1
- {"version":3,"sources":["ChannelPreviewStatus.tsx"],"names":["styles","StyleSheet","create","date","fontSize","marginLeft","textAlign","flexRow","flexDirection","ChannelPreviewStatus","props","formatLatestMessageDate","latestMessagePreview","theme","channelPreview","checkAllIcon","checkIcon","colors","accent_blue","grey","created_at","messageObject","latestMessageDate","Date","status","color"],"mappings":";;;;;;;;;AAAA;;AACA;;AAMA;;AACA;;;;;AAaA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,IAAI,EAAE;AACJC,IAAAA,QAAQ,EAAE,EADN;AAEJC,IAAAA,UAAU,EAAE,CAFR;AAGJC,IAAAA,SAAS,EAAE;AAHP,GADyB;AAM/BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,aAAa,EAAE;AADR;AANsB,CAAlB,CAAf;;AAyBO,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CASlCC,KATkC,EAU/B;AAAA;;AACH,MAAQC,uBAAR,GAA0DD,KAA1D,CAAQC,uBAAR;AAAA,MAAiCC,oBAAjC,GAA0DF,KAA1D,CAAiCE,oBAAjC;;AACA,kBAKI,6BALJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,cAFJ;AAAA,MAEsBC,YAFtB,yBAEsBA,YAFtB;AAAA,MAEoCC,SAFpC,yBAEoCA,SAFpC;AAAA,MAE+Cb,IAF/C,yBAE+CA,IAF/C;AAAA,8CAGIc,MAHJ;AAAA,MAGcC,WAHd,yBAGcA,WAHd;AAAA,MAG2BC,IAH3B,yBAG2BA,IAH3B;;AAOA,MAAMC,UAAU,4BAAGR,oBAAoB,CAACS,aAAxB,qBAAG,sBAAoCD,UAAvD;AACA,MAAME,iBAAiB,GAAGF,UAAU,GAAG,IAAIG,IAAJ,CAASH,UAAT,CAAH,GAA0B,IAAIG,IAAJ,EAA9D;AACA,MAAMC,MAAM,GAAGZ,oBAAoB,CAACY,MAApC;AAEA,SACE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAExB,MAAM,CAACO,OAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGiB,MAAM,KAAK,CAAX,GACC,gCAAC,eAAD;AAAU,IAAA,QAAQ,EAAEN;AAApB,KAAqCH,YAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADD,GAEGS,MAAM,KAAK,CAAX,GACF,gCAAC,YAAD;AAAO,IAAA,QAAQ,EAAEL;AAAjB,KAA2BH,SAA3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADE,GAEA,IALN,EAME,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAAChB,MAAM,CAACG,IAAR,EAAc;AAAEsB,MAAAA,KAAK,EAAEN;AAAT,KAAd,EAA+BhB,IAA/B,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGQ,uBAAuB,IAAIW,iBAA3B,GACGX,uBAAuB,CAACW,iBAAD,CAD1B,GAEGV,oBAAoB,CAACQ,UAH3B,CANF,CADF;AAcD,CArCM","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport type { ChannelPreviewProps } from './ChannelPreview';\n\nimport type { ChannelPreviewMessengerPropsWithContext } from './ChannelPreviewMessenger';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Check, CheckAll } from '../../icons';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\n\nconst styles = StyleSheet.create({\n date: {\n fontSize: 12,\n marginLeft: 2,\n textAlign: 'right',\n },\n flexRow: {\n flexDirection: 'row',\n },\n});\n\nexport type ChannelPreviewStatusProps<\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> = Pick<\n ChannelPreviewMessengerPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n 'latestMessagePreview' | 'formatLatestMessageDate'\n> &\n Pick<ChannelPreviewProps<At, Ch, Co, Ev, Me, Re, Us>, 'channel'>;\n\nexport const ChannelPreviewStatus = <\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 props: ChannelPreviewStatusProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { formatLatestMessageDate, latestMessagePreview } = props;\n const {\n theme: {\n channelPreview: { checkAllIcon, checkIcon, date },\n colors: { accent_blue, grey },\n },\n } = useTheme();\n\n const created_at = latestMessagePreview.messageObject?.created_at;\n const latestMessageDate = created_at ? new Date(created_at) : new Date();\n const status = latestMessagePreview.status;\n\n return (\n <View style={styles.flexRow}>\n {status === 2 ? (\n <CheckAll pathFill={accent_blue} {...checkAllIcon} />\n ) : status === 1 ? (\n <Check pathFill={grey} {...checkIcon} />\n ) : null}\n <Text style={[styles.date, { color: grey }, date]}>\n {formatLatestMessageDate && latestMessageDate\n ? formatLatestMessageDate(latestMessageDate)\n : latestMessagePreview.created_at}\n </Text>\n </View>\n );\n};\n"]}
1
+ {"version":3,"sources":["ChannelPreviewStatus.tsx"],"names":["styles","StyleSheet","create","date","fontSize","marginLeft","textAlign","flexRow","flexDirection","ChannelPreviewStatus","props","formatLatestMessageDate","latestMessagePreview","theme","channelPreview","checkAllIcon","checkIcon","colors","accent_blue","grey","created_at","messageObject","latestMessageDate","Date","status","color"],"mappings":";;;;;;;;;AAAA;;AACA;;AAMA;;AACA;;;;;AAIA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,IAAI,EAAE;AACJC,IAAAA,QAAQ,EAAE,EADN;AAEJC,IAAAA,UAAU,EAAE,CAFR;AAGJC,IAAAA,SAAS,EAAE;AAHP,GADyB;AAM/BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,aAAa,EAAE;AADR;AANsB,CAAlB,CAAf;;AAmBO,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAGlCC,KAHkC,EAI/B;AAAA;;AACH,MAAQC,uBAAR,GAA0DD,KAA1D,CAAQC,uBAAR;AAAA,MAAiCC,oBAAjC,GAA0DF,KAA1D,CAAiCE,oBAAjC;;AACA,kBAKI,6BALJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,cAFJ;AAAA,MAEsBC,YAFtB,yBAEsBA,YAFtB;AAAA,MAEoCC,SAFpC,yBAEoCA,SAFpC;AAAA,MAE+Cb,IAF/C,yBAE+CA,IAF/C;AAAA,8CAGIc,MAHJ;AAAA,MAGcC,WAHd,yBAGcA,WAHd;AAAA,MAG2BC,IAH3B,yBAG2BA,IAH3B;;AAOA,MAAMC,UAAU,4BAAGR,oBAAoB,CAACS,aAAxB,qBAAG,sBAAoCD,UAAvD;AACA,MAAME,iBAAiB,GAAGF,UAAU,GAAG,IAAIG,IAAJ,CAASH,UAAT,CAAH,GAA0B,IAAIG,IAAJ,EAA9D;AACA,MAAMC,MAAM,GAAGZ,oBAAoB,CAACY,MAApC;AAEA,SACE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAExB,MAAM,CAACO,OAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGiB,MAAM,KAAK,CAAX,GACC,gCAAC,eAAD;AAAU,IAAA,QAAQ,EAAEN;AAApB,KAAqCH,YAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADD,GAEGS,MAAM,KAAK,CAAX,GACF,gCAAC,YAAD;AAAO,IAAA,QAAQ,EAAEL;AAAjB,KAA2BH,SAA3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADE,GAEA,IALN,EAME,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAAChB,MAAM,CAACG,IAAR,EAAc;AAAEsB,MAAAA,KAAK,EAAEN;AAAT,KAAd,EAA+BhB,IAA/B,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGQ,uBAAuB,IAAIW,iBAA3B,GACGX,uBAAuB,CAACW,iBAAD,CAD1B,GAEGV,oBAAoB,CAACQ,UAH3B,CANF,CADF;AAcD,CA/BM","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport type { ChannelPreviewProps } from './ChannelPreview';\n\nimport type { ChannelPreviewMessengerPropsWithContext } from './ChannelPreviewMessenger';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Check, CheckAll } from '../../icons';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst styles = StyleSheet.create({\n date: {\n fontSize: 12,\n marginLeft: 2,\n textAlign: 'right',\n },\n flexRow: {\n flexDirection: 'row',\n },\n});\n\nexport type ChannelPreviewStatusProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n 'latestMessagePreview' | 'formatLatestMessageDate'\n> &\n Pick<ChannelPreviewProps<StreamChatGenerics>, 'channel'>;\n\nexport const ChannelPreviewStatus = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewStatusProps<StreamChatGenerics>,\n) => {\n const { formatLatestMessageDate, latestMessagePreview } = props;\n const {\n theme: {\n channelPreview: { checkAllIcon, checkIcon, date },\n colors: { accent_blue, grey },\n },\n } = useTheme();\n\n const created_at = latestMessagePreview.messageObject?.created_at;\n const latestMessageDate = created_at ? new Date(created_at) : new Date();\n const status = latestMessagePreview.status;\n\n return (\n <View style={styles.flexRow}>\n {status === 2 ? (\n <CheckAll pathFill={accent_blue} {...checkAllIcon} />\n ) : status === 1 ? (\n <Check pathFill={grey} {...checkIcon} />\n ) : null}\n <Text style={[styles.date, { color: grey }, date]}>\n {formatLatestMessageDate && latestMessageDate\n ? formatLatestMessageDate(latestMessageDate)\n : latestMessagePreview.created_at}\n </Text>\n </View>\n );\n};\n"]}
@@ -37,7 +37,7 @@ var ChannelPreviewTitle = function ChannelPreviewTitle(props) {
37
37
  __self: _this,
38
38
  __source: {
39
39
  fileName: _jsxFileName,
40
- lineNumber: 55,
40
+ lineNumber: 34,
41
41
  columnNumber: 5
42
42
  }
43
43
  }, displayName);
@@ -1 +1 @@
1
- {"version":3,"sources":["ChannelPreviewTitle.tsx"],"names":["styles","StyleSheet","create","title","fontSize","fontWeight","ChannelPreviewTitle","props","displayName","theme","channelPreview","black","colors","color"],"mappings":";;;;;;;AAAA;;AACA;;AAIA;;;;;AAaA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,KAAK,EAAE;AAAEC,IAAAA,QAAQ,EAAE,EAAZ;AAAgBC,IAAAA,UAAU,EAAE;AAA5B;AADwB,CAAlB,CAAf;;AAgBO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CASjCC,KATiC,EAU9B;AACH,MAAQC,WAAR,GAAwBD,KAAxB,CAAQC,WAAR;;AACA,kBAKI,6BALJ;AAAA,kCACEC,KADF;AAAA,MAEsBN,KAFtB,mBAEIO,cAFJ,CAEsBP,KAFtB;AAAA,MAGcQ,KAHd,mBAGIC,MAHJ,CAGcD,KAHd;;AAOA,SACE,gCAAC,iBAAD;AAAM,IAAA,aAAa,EAAE,CAArB;AAAwB,IAAA,KAAK,EAAE,CAACX,MAAM,CAACG,KAAR,EAAe;AAAEU,MAAAA,KAAK,EAAEF;AAAT,KAAf,EAAiCR,KAAjC,CAA/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGK,WADH,CADF;AAKD,CAxBM","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text } from 'react-native';\n\nimport type { ChannelPreviewProps } from './ChannelPreview';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\n\nconst styles = StyleSheet.create({\n title: { fontSize: 14, fontWeight: '700' },\n});\n\nexport type ChannelPreviewTitleProps<\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> = Pick<ChannelPreviewProps<At, Ch, Co, Ev, Me, Re, Us>, 'channel'> & {\n displayName: string;\n};\n\nexport const ChannelPreviewTitle = <\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 props: ChannelPreviewTitleProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { displayName } = props;\n const {\n theme: {\n channelPreview: { title },\n colors: { black },\n },\n } = useTheme();\n\n return (\n <Text numberOfLines={1} style={[styles.title, { color: black }, title]}>\n {displayName}\n </Text>\n );\n};\n"]}
1
+ {"version":3,"sources":["ChannelPreviewTitle.tsx"],"names":["styles","StyleSheet","create","title","fontSize","fontWeight","ChannelPreviewTitle","props","displayName","theme","channelPreview","black","colors","color"],"mappings":";;;;;;;AAAA;;AACA;;AAIA;;;;;AAIA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,KAAK,EAAE;AAAEC,IAAAA,QAAQ,EAAE,EAAZ;AAAgBC,IAAAA,UAAU,EAAE;AAA5B;AADwB,CAAlB,CAAf;;AAUO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAGjCC,KAHiC,EAI9B;AACH,MAAQC,WAAR,GAAwBD,KAAxB,CAAQC,WAAR;;AACA,kBAKI,6BALJ;AAAA,kCACEC,KADF;AAAA,MAEsBN,KAFtB,mBAEIO,cAFJ,CAEsBP,KAFtB;AAAA,MAGcQ,KAHd,mBAGIC,MAHJ,CAGcD,KAHd;;AAOA,SACE,gCAAC,iBAAD;AAAM,IAAA,aAAa,EAAE,CAArB;AAAwB,IAAA,KAAK,EAAE,CAACX,MAAM,CAACG,KAAR,EAAe;AAAEU,MAAAA,KAAK,EAAEF;AAAT,KAAf,EAAiCR,KAAjC,CAA/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGK,WADH,CADF;AAKD,CAlBM","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text } from 'react-native';\n\nimport type { ChannelPreviewProps } from './ChannelPreview';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst styles = StyleSheet.create({\n title: { fontSize: 14, fontWeight: '700' },\n});\n\nexport type ChannelPreviewTitleProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelPreviewProps<StreamChatGenerics>, 'channel'> & {\n displayName: string;\n};\n\nexport const ChannelPreviewTitle = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewTitleProps<StreamChatGenerics>,\n) => {\n const { displayName } = props;\n const {\n theme: {\n channelPreview: { title },\n colors: { black },\n },\n } = useTheme();\n\n return (\n <Text numberOfLines={1} style={[styles.title, { color: black }, title]}>\n {displayName}\n </Text>\n );\n};\n"]}
@@ -48,7 +48,7 @@ var ChannelPreviewUnreadCount = function ChannelPreviewUnreadCount(props) {
48
48
  __self: _this,
49
49
  __source: {
50
50
  fileName: _jsxFileName,
51
- lineNumber: 68,
51
+ lineNumber: 47,
52
52
  columnNumber: 5
53
53
  }
54
54
  }, !!unread && _react["default"].createElement(_reactNative.Text, {
@@ -57,7 +57,7 @@ var ChannelPreviewUnreadCount = function ChannelPreviewUnreadCount(props) {
57
57
  __self: _this,
58
58
  __source: {
59
59
  fileName: _jsxFileName,
60
- lineNumber: 70,
60
+ lineNumber: 49,
61
61
  columnNumber: 9
62
62
  }
63
63
  }, unread > maxUnreadCount ? maxUnreadCount + "+" : unread));
@@ -1 +1 @@
1
- {"version":3,"sources":["ChannelPreviewUnreadCount.tsx"],"names":["styles","StyleSheet","create","unreadContainer","alignItems","borderRadius","flexShrink","justifyContent","unreadText","color","fontSize","fontWeight","paddingHorizontal","paddingVertical","ChannelPreviewUnreadCount","props","maxUnreadCount","unread","theme","channelPreview","accent_red","colors","backgroundColor"],"mappings":";;;;;;;AAAA;;AACA;;AAIA;;;;;AAaA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,eAAe,EAAE;AACfC,IAAAA,UAAU,EAAE,QADG;AAEfC,IAAAA,YAAY,EAAE,CAFC;AAGfC,IAAAA,UAAU,EAAE,CAHG;AAIfC,IAAAA,cAAc,EAAE;AAJD,GADc;AAO/BC,EAAAA,UAAU,EAAE;AACVC,IAAAA,KAAK,EAAE,SADG;AAEVC,IAAAA,QAAQ,EAAE,EAFA;AAGVC,IAAAA,UAAU,EAAE,KAHF;AAIVC,IAAAA,iBAAiB,EAAE,CAJT;AAKVC,IAAAA,eAAe,EAAE;AALP;AAPmB,CAAlB,CAAf;;AA6BO,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,CASvCC,KATuC,EAUpC;AACH,MAAQC,cAAR,GAAmCD,KAAnC,CAAQC,cAAR;AAAA,MAAwBC,MAAxB,GAAmCF,KAAnC,CAAwBE,MAAxB;;AACA,kBAKI,6BALJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,cAFJ;AAAA,MAEsBhB,eAFtB,yBAEsBA,eAFtB;AAAA,MAEuCK,UAFvC,yBAEuCA,UAFvC;AAAA,MAGcY,UAHd,mBAGIC,MAHJ,CAGcD,UAHd;;AAOA,SACE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACpB,MAAM,CAACG,eAAR,EAAyB;AAAEmB,MAAAA,eAAe,EAAEF;AAAnB,KAAzB,EAA0DjB,eAA1D,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACG,CAAC,CAACc,MAAF,IACC,gCAAC,iBAAD;AAAM,IAAA,aAAa,EAAE,CAArB;AAAwB,IAAA,KAAK,EAAE,CAACjB,MAAM,CAACQ,UAAR,EAAoBA,UAApB,CAA/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGS,MAAM,GAAGD,cAAT,GAA6BA,cAA7B,SAAiDC,MADpD,CAFJ,CADF;AASD,CA5BM","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport type { ChannelPreviewProps } from './ChannelPreview';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\n\nconst styles = StyleSheet.create({\n unreadContainer: {\n alignItems: 'center',\n borderRadius: 8,\n flexShrink: 1,\n justifyContent: 'center',\n },\n unreadText: {\n color: '#FFFFFF',\n fontSize: 11,\n fontWeight: '700',\n paddingHorizontal: 5,\n paddingVertical: 1,\n },\n});\n\nexport type ChannelPreviewUnreadCountProps<\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> = Pick<ChannelPreviewProps<At, Ch, Co, Ev, Me, Re, Us>, 'channel'> & {\n maxUnreadCount: number;\n unread?: number;\n};\n\nexport const ChannelPreviewUnreadCount = <\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 props: ChannelPreviewUnreadCountProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { maxUnreadCount, unread } = props;\n const {\n theme: {\n channelPreview: { unreadContainer, unreadText },\n colors: { accent_red },\n },\n } = useTheme();\n\n return (\n <View style={[styles.unreadContainer, { backgroundColor: accent_red }, unreadContainer]}>\n {!!unread && (\n <Text numberOfLines={1} style={[styles.unreadText, unreadText]}>\n {unread > maxUnreadCount ? `${maxUnreadCount}+` : unread}\n </Text>\n )}\n </View>\n );\n};\n"]}
1
+ {"version":3,"sources":["ChannelPreviewUnreadCount.tsx"],"names":["styles","StyleSheet","create","unreadContainer","alignItems","borderRadius","flexShrink","justifyContent","unreadText","color","fontSize","fontWeight","paddingHorizontal","paddingVertical","ChannelPreviewUnreadCount","props","maxUnreadCount","unread","theme","channelPreview","accent_red","colors","backgroundColor"],"mappings":";;;;;;;AAAA;;AACA;;AAIA;;;;;AAIA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,eAAe,EAAE;AACfC,IAAAA,UAAU,EAAE,QADG;AAEfC,IAAAA,YAAY,EAAE,CAFC;AAGfC,IAAAA,UAAU,EAAE,CAHG;AAIfC,IAAAA,cAAc,EAAE;AAJD,GADc;AAO/BC,EAAAA,UAAU,EAAE;AACVC,IAAAA,KAAK,EAAE,SADG;AAEVC,IAAAA,QAAQ,EAAE,EAFA;AAGVC,IAAAA,UAAU,EAAE,KAHF;AAIVC,IAAAA,iBAAiB,EAAE,CAJT;AAKVC,IAAAA,eAAe,EAAE;AALP;AAPmB,CAAlB,CAAf;;AAuBO,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,CAGvCC,KAHuC,EAIpC;AACH,MAAQC,cAAR,GAAmCD,KAAnC,CAAQC,cAAR;AAAA,MAAwBC,MAAxB,GAAmCF,KAAnC,CAAwBE,MAAxB;;AACA,kBAKI,6BALJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,cAFJ;AAAA,MAEsBhB,eAFtB,yBAEsBA,eAFtB;AAAA,MAEuCK,UAFvC,yBAEuCA,UAFvC;AAAA,MAGcY,UAHd,mBAGIC,MAHJ,CAGcD,UAHd;;AAOA,SACE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACpB,MAAM,CAACG,eAAR,EAAyB;AAAEmB,MAAAA,eAAe,EAAEF;AAAnB,KAAzB,EAA0DjB,eAA1D,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACG,CAAC,CAACc,MAAF,IACC,gCAAC,iBAAD;AAAM,IAAA,aAAa,EAAE,CAArB;AAAwB,IAAA,KAAK,EAAE,CAACjB,MAAM,CAACQ,UAAR,EAAoBA,UAApB,CAA/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGS,MAAM,GAAGD,cAAT,GAA6BA,cAA7B,SAAiDC,MADpD,CAFJ,CADF;AASD,CAtBM","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport type { ChannelPreviewProps } from './ChannelPreview';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst styles = StyleSheet.create({\n unreadContainer: {\n alignItems: 'center',\n borderRadius: 8,\n flexShrink: 1,\n justifyContent: 'center',\n },\n unreadText: {\n color: '#FFFFFF',\n fontSize: 11,\n fontWeight: '700',\n paddingHorizontal: 5,\n paddingVertical: 1,\n },\n});\n\nexport type ChannelPreviewUnreadCountProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelPreviewProps<StreamChatGenerics>, 'channel'> & {\n maxUnreadCount: number;\n unread?: number;\n};\n\nexport const ChannelPreviewUnreadCount = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewUnreadCountProps<StreamChatGenerics>,\n) => {\n const { maxUnreadCount, unread } = props;\n const {\n theme: {\n channelPreview: { unreadContainer, unreadText },\n colors: { accent_red },\n },\n } = useTheme();\n\n return (\n <View style={[styles.unreadContainer, { backgroundColor: accent_red }, unreadContainer]}>\n {!!unread && (\n <Text numberOfLines={1} style={[styles.unreadText, unreadText]}>\n {unread > maxUnreadCount ? `${maxUnreadCount}+` : unread}\n </Text>\n )}\n </View>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["useChannelPreviewDisplayAvatar.ts"],"names":["getChannelPreviewDisplayAvatar","channel","client","currentUserId","user","id","channelId","channelData","data","channelName","name","channelImage","image","members","Object","values","state","otherMembers","filter","member","length","ids","slice","map","images","names","useChannelPreviewDisplayAvatar","displayAvatar","setDisplayAvatar"],"mappings":"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","sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Channel, StreamChat } from 'stream-chat';\n\nimport { useChatContext } from '../../../contexts/chatContext/ChatContext';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nexport const getChannelPreviewDisplayAvatar = <\n At extends DefaultAttachmentType = DefaultAttachmentType,\n Ch extends DefaultChannelType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends DefaultEventType = DefaultEventType,\n Me extends DefaultMessageType = DefaultMessageType,\n Re extends DefaultReactionType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n>(\n channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n client: StreamChat<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const currentUserId = client?.user?.id;\n const channelId = channel?.id;\n const channelData = channel?.data;\n const channelName = channelData?.name;\n const channelImage = channelData?.image;\n\n if (channelImage) {\n return {\n id: channelId,\n image: channelImage,\n name: channelName,\n };\n } else if (currentUserId) {\n const members = Object.values(channel.state?.members);\n const otherMembers = members.filter((member) => member.user?.id !== currentUserId);\n\n if (otherMembers.length === 1) {\n return {\n id: otherMembers[0].user?.id,\n image: otherMembers[0].user?.image,\n name: channelName || otherMembers[0].user?.name,\n };\n }\n\n return {\n ids: otherMembers.slice(0, 4).map((member) => member.user?.id || ''),\n images: otherMembers.slice(0, 4).map((member) => member.user?.image || ''),\n names: otherMembers.slice(0, 4).map((member) => member.user?.name || ''),\n };\n }\n return {\n id: channelId,\n name: channelName,\n };\n};\n\n/**\n * Hook to set the display avatar for channel preview\n * @param {*} channel\n *\n * @returns {object} e.g., { image: 'http://dummyurl.com/test.png', name: 'Uhtred Bebbanburg' }\n */\nexport const useChannelPreviewDisplayAvatar = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends DefaultChannelType = 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 channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { client } = useChatContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n const channelData = channel?.data;\n const image = channelData?.image;\n const name = channelData?.name;\n const id = client?.user?.id;\n\n const [displayAvatar, setDisplayAvatar] = useState(\n getChannelPreviewDisplayAvatar(channel, client),\n );\n\n useEffect(() => {\n setDisplayAvatar(getChannelPreviewDisplayAvatar(channel, client));\n }, [id, image, name]);\n\n return displayAvatar;\n};\n"]}
1
+ {"version":3,"sources":["useChannelPreviewDisplayAvatar.ts"],"names":["getChannelPreviewDisplayAvatar","channel","client","currentUserId","user","id","channelId","channelData","data","channelName","name","channelImage","image","members","Object","values","state","otherMembers","filter","member","length","ids","slice","map","images","names","useChannelPreviewDisplayAvatar","displayAvatar","setDisplayAvatar"],"mappings":"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","sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Channel, StreamChat } from 'stream-chat';\n\nimport { useChatContext } from '../../../contexts/chatContext/ChatContext';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nexport const getChannelPreviewDisplayAvatar = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n client: StreamChat<StreamChatGenerics>,\n) => {\n const currentUserId = client?.user?.id;\n const channelId = channel?.id;\n const channelData = channel?.data;\n const channelName = channelData?.name;\n const channelImage = channelData?.image;\n\n if (channelImage) {\n return {\n id: channelId,\n image: channelImage,\n name: channelName,\n };\n } else if (currentUserId) {\n const members = Object.values(channel.state?.members);\n const otherMembers = members.filter((member) => member.user?.id !== currentUserId);\n\n if (otherMembers.length === 1) {\n return {\n id: otherMembers[0].user?.id,\n image: otherMembers[0].user?.image,\n name: channelName || otherMembers[0].user?.name,\n };\n }\n\n return {\n ids: otherMembers.slice(0, 4).map((member) => member.user?.id || ''),\n images: otherMembers.slice(0, 4).map((member) => member.user?.image || ''),\n names: otherMembers.slice(0, 4).map((member) => member.user?.name || ''),\n };\n }\n return {\n id: channelId,\n name: channelName,\n };\n};\n\n/**\n * Hook to set the display avatar for channel preview\n * @param {*} channel\n *\n * @returns {object} e.g., { image: 'http://dummyurl.com/test.png', name: 'Uhtred Bebbanburg' }\n */\nexport const useChannelPreviewDisplayAvatar = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => {\n const { client } = useChatContext<StreamChatGenerics>();\n\n const channelData = channel?.data;\n const image = channelData?.image;\n const name = channelData?.name;\n const id = client?.user?.id;\n\n const [displayAvatar, setDisplayAvatar] = useState(\n getChannelPreviewDisplayAvatar(channel, client),\n );\n\n useEffect(() => {\n setDisplayAvatar(getChannelPreviewDisplayAvatar(channel, client));\n }, [id, image, name]);\n\n return displayAvatar;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["useChannelPreviewDisplayName.ts"],"names":["maxCharacterLengthDefault","getChannelPreviewDisplayName","channelName","currentUserId","maxCharacterLength","members","channelMembers","Object","values","otherMembers","filter","member","user","id","name","slice","reduce","returnString","currentMember","index","originalArray","returnStringLength","length","currentMemberName","remainingMembers","splice","useChannelPreviewDisplayName","channel","characterLength","client","userID","state","numOfMembers","keys","data","displayName","setDisplayName"],"mappings":"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","sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Channel } from 'stream-chat';\n\nimport { useChatContext } from '../../../contexts/chatContext/ChatContext';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\nimport { vw } from '../../../utils/utils';\n\nconst maxCharacterLengthDefault = (vw(100) - 16) / 6;\n\nexport const getChannelPreviewDisplayName = <\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 channelName,\n currentUserId,\n maxCharacterLength,\n members,\n}: {\n maxCharacterLength: number;\n channelName?: string;\n currentUserId?: string;\n members?: Channel<At, Ch, Co, Ev, Me, Re, Us>['state']['members'];\n}) => {\n if (channelName) return channelName;\n\n const channelMembers = Object.values(members || {});\n const otherMembers = channelMembers.filter((member) => member.user?.id !== currentUserId);\n\n const name = otherMembers.slice(0).reduce((returnString, currentMember, index, originalArray) => {\n const returnStringLength = returnString.length;\n const currentMemberName = currentMember.user?.name || currentMember.user?.id || 'Unknown User';\n // a rough approximation of when the +Number shows up\n if (returnStringLength + (currentMemberName.length + 2) < maxCharacterLength) {\n if (returnStringLength) {\n returnString += `, ${currentMemberName}`;\n } else {\n returnString = currentMemberName;\n }\n } else {\n const remainingMembers = originalArray.length - index;\n returnString += `, +${remainingMembers}`;\n originalArray.splice(1); // exit early\n }\n return returnString;\n }, '');\n\n return name;\n};\n\nexport const useChannelPreviewDisplayName = <\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 channel?: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n characterLength?: number,\n) => {\n const { client } = useChatContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n const currentUserId = client.userID;\n const members = channel?.state.members;\n const numOfMembers = Object.keys(members || {}).length;\n const channelName = channel?.data?.name;\n const maxCharacterLength = characterLength || maxCharacterLengthDefault;\n\n const [displayName, setDisplayName] = useState(\n getChannelPreviewDisplayName({\n channelName,\n currentUserId,\n maxCharacterLength,\n members,\n }),\n );\n\n useEffect(() => {\n setDisplayName(\n getChannelPreviewDisplayName({\n channelName,\n currentUserId,\n maxCharacterLength,\n members,\n }),\n );\n }, [channelName, currentUserId, maxCharacterLength, numOfMembers]);\n\n return displayName;\n};\n"]}
1
+ {"version":3,"sources":["useChannelPreviewDisplayName.ts"],"names":["maxCharacterLengthDefault","getChannelPreviewDisplayName","channelName","currentUserId","maxCharacterLength","members","channelMembers","Object","values","otherMembers","filter","member","user","id","name","slice","reduce","returnString","currentMember","index","originalArray","returnStringLength","length","currentMemberName","remainingMembers","splice","useChannelPreviewDisplayName","channel","characterLength","client","userID","state","numOfMembers","keys","data","displayName","setDisplayName"],"mappings":"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","sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Channel } from 'stream-chat';\n\nimport { useChatContext } from '../../../contexts/chatContext/ChatContext';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport { vw } from '../../../utils/utils';\n\nconst maxCharacterLengthDefault = (vw(100) - 16) / 6;\n\nexport const getChannelPreviewDisplayName = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n channelName,\n currentUserId,\n maxCharacterLength,\n members,\n}: {\n maxCharacterLength: number;\n channelName?: string;\n currentUserId?: string;\n members?: Channel<StreamChatGenerics>['state']['members'];\n}) => {\n if (channelName) return channelName;\n\n const channelMembers = Object.values(members || {});\n const otherMembers = channelMembers.filter((member) => member.user?.id !== currentUserId);\n\n const name = otherMembers.slice(0).reduce((returnString, currentMember, index, originalArray) => {\n const returnStringLength = returnString.length;\n const currentMemberName = currentMember.user?.name || currentMember.user?.id || 'Unknown User';\n // a rough approximation of when the +Number shows up\n if (returnStringLength + (currentMemberName.length + 2) < maxCharacterLength) {\n if (returnStringLength) {\n returnString += `, ${currentMemberName}`;\n } else {\n returnString = currentMemberName;\n }\n } else {\n const remainingMembers = originalArray.length - index;\n returnString += `, +${remainingMembers}`;\n originalArray.splice(1); // exit early\n }\n return returnString;\n }, '');\n\n return name;\n};\n\nexport const useChannelPreviewDisplayName = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel?: Channel<StreamChatGenerics>,\n characterLength?: number,\n) => {\n const { client } = useChatContext<StreamChatGenerics>();\n\n const currentUserId = client.userID;\n const members = channel?.state.members;\n const numOfMembers = Object.keys(members || {}).length;\n const channelName = channel?.data?.name;\n const maxCharacterLength = characterLength || maxCharacterLengthDefault;\n\n const [displayName, setDisplayName] = useState(\n getChannelPreviewDisplayName({\n channelName,\n currentUserId,\n maxCharacterLength,\n members,\n }),\n );\n\n useEffect(() => {\n setDisplayName(\n getChannelPreviewDisplayName({\n channelName,\n currentUserId,\n maxCharacterLength,\n members,\n }),\n );\n }, [channelName, currentUserId, maxCharacterLength, numOfMembers]);\n\n return displayName;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["useChannelPreviewDisplayPresence.ts"],"names":["getChannelPreviewDisplayPresence","channel","client","currentUserId","userID","members","Object","values","state","otherMembers","filter","member","user","id","length","online","useChannelPreviewDisplayPresence","channelMemberOnline","some","displayPresence","setDisplayPresence"],"mappings":";;;;;;;;;AAAA;;AAIA;;AAaA,IAAMA,gCAAgC,GAAG,SAAnCA,gCAAmC,CASvCC,OATuC,EAUvCC,MAVuC,EAWpC;AACH,MAAMC,aAAa,GAAGD,MAAM,CAACE,MAA7B;;AAEA,MAAID,aAAJ,EAAmB;AACjB,QAAME,OAAO,GAAGC,MAAM,CAACC,MAAP,CAAcN,OAAO,CAACO,KAAR,CAAcH,OAA5B,CAAhB;AACA,QAAMI,YAAY,GAAGJ,OAAO,CAACK,MAAR,CAAe,UAACC,MAAD;AAAA;;AAAA,aAAY,iBAAAA,MAAM,CAACC,IAAP,kCAAaC,EAAb,MAAoBV,aAAhC;AAAA,KAAf,CAArB;;AAEA,QAAIM,YAAY,CAACK,MAAb,KAAwB,CAA5B,EAA+B;AAAA;;AAC7B,aAAO,CAAC,0BAACL,YAAY,CAAC,CAAD,CAAZ,CAAgBG,IAAjB,aAAC,qBAAsBG,MAAvB,CAAR;AACD;AACF;;AACD,SAAO,KAAP;AACD,CAvBD;;AA+BO,IAAMC,gCAAgC,GAAG,SAAnCA,gCAAmC,CAS9Cf,OAT8C,EAU3C;AACH,wBAAmB,kCAAnB;AAAA,MAAQC,MAAR,mBAAQA,MAAR;;AAEA,MAAMC,aAAa,GAAGD,MAAM,CAACE,MAA7B;AACA,MAAMC,OAAO,GAAGC,MAAM,CAACC,MAAP,CAAcN,OAAO,CAACO,KAAR,CAAcH,OAA5B,EAAqCK,MAArC,CACd,UAACC,MAAD;AAAA;;AAAA,WAAY,CAAC,mBAACA,MAAM,CAACC,IAAR,aAAC,cAAaC,EAAd,CAAD,IAAqB,CAAC,CAACV,aAAvB,IAAwC,kBAAAQ,MAAM,CAACC,IAAP,mCAAaC,EAAb,MAAoBV,aAAxE;AAAA,GADc,CAAhB;AAGA,MAAMc,mBAAmB,GAAGZ,OAAO,CAACa,IAAR,CAAa,UAACP,MAAD;AAAA;;AAAA,4BAAYA,MAAM,CAACC,IAAnB,qBAAY,cAAaG,MAAzB;AAAA,GAAb,CAA5B;;AAEA,kBAA8C,qBAAS,KAAT,CAA9C;AAAA;AAAA,MAAOI,eAAP;AAAA,MAAwBC,kBAAxB;;AAEA,wBAAU,YAAM;AACdA,IAAAA,kBAAkB,CAACpB,gCAAgC,CAACC,OAAD,EAAUC,MAAV,CAAjC,CAAlB;AACD,GAFD,EAEG,CAACe,mBAAD,CAFH;AAIA,SAAOE,eAAP;AACD,CA1BM","sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Channel, StreamChat } from 'stream-chat';\n\nimport { useChatContext } from '../../../contexts/chatContext/ChatContext';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nconst getChannelPreviewDisplayPresence = <\n At extends DefaultAttachmentType = DefaultAttachmentType,\n Ch extends DefaultChannelType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends DefaultEventType = DefaultEventType,\n Me extends DefaultMessageType = DefaultMessageType,\n Re extends DefaultReactionType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n>(\n channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n client: StreamChat<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const currentUserId = client.userID;\n\n if (currentUserId) {\n const members = Object.values(channel.state.members);\n const otherMembers = members.filter((member) => member.user?.id !== currentUserId);\n\n if (otherMembers.length === 1) {\n return !!otherMembers[0].user?.online;\n }\n }\n return false;\n};\n\n/**\n * Hook to set the display avatar presence for channel preview\n * @param {*} channel\n *\n * @returns {boolean} e.g., true\n */\nexport const useChannelPreviewDisplayPresence = <\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 channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { client } = useChatContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n const currentUserId = client.userID;\n const members = Object.values(channel.state.members).filter(\n (member) => !!member.user?.id && !!currentUserId && member.user?.id !== currentUserId,\n );\n const channelMemberOnline = members.some((member) => member.user?.online);\n\n const [displayPresence, setDisplayPresence] = useState(false);\n\n useEffect(() => {\n setDisplayPresence(getChannelPreviewDisplayPresence(channel, client));\n }, [channelMemberOnline]);\n\n return displayPresence;\n};\n"]}
1
+ {"version":3,"sources":["useChannelPreviewDisplayPresence.ts"],"names":["getChannelPreviewDisplayPresence","channel","client","currentUserId","userID","members","Object","values","state","otherMembers","filter","member","user","id","length","online","useChannelPreviewDisplayPresence","channelMemberOnline","some","displayPresence","setDisplayPresence"],"mappings":";;;;;;;;;AAAA;;AAIA;;AAIA,IAAMA,gCAAgC,GAAG,SAAnCA,gCAAmC,CAGvCC,OAHuC,EAIvCC,MAJuC,EAKpC;AACH,MAAMC,aAAa,GAAGD,MAAM,CAACE,MAA7B;;AAEA,MAAID,aAAJ,EAAmB;AACjB,QAAME,OAAO,GAAGC,MAAM,CAACC,MAAP,CAAcN,OAAO,CAACO,KAAR,CAAcH,OAA5B,CAAhB;AACA,QAAMI,YAAY,GAAGJ,OAAO,CAACK,MAAR,CAAe,UAACC,MAAD;AAAA;;AAAA,aAAY,iBAAAA,MAAM,CAACC,IAAP,kCAAaC,EAAb,MAAoBV,aAAhC;AAAA,KAAf,CAArB;;AAEA,QAAIM,YAAY,CAACK,MAAb,KAAwB,CAA5B,EAA+B;AAAA;;AAC7B,aAAO,CAAC,0BAACL,YAAY,CAAC,CAAD,CAAZ,CAAgBG,IAAjB,aAAC,qBAAsBG,MAAvB,CAAR;AACD;AACF;;AACD,SAAO,KAAP;AACD,CAjBD;;AAyBO,IAAMC,gCAAgC,GAAG,SAAnCA,gCAAmC,CAG9Cf,OAH8C,EAI3C;AACH,wBAAmB,kCAAnB;AAAA,MAAQC,MAAR,mBAAQA,MAAR;;AAEA,MAAMC,aAAa,GAAGD,MAAM,CAACE,MAA7B;AACA,MAAMC,OAAO,GAAGC,MAAM,CAACC,MAAP,CAAcN,OAAO,CAACO,KAAR,CAAcH,OAA5B,EAAqCK,MAArC,CACd,UAACC,MAAD;AAAA;;AAAA,WAAY,CAAC,mBAACA,MAAM,CAACC,IAAR,aAAC,cAAaC,EAAd,CAAD,IAAqB,CAAC,CAACV,aAAvB,IAAwC,kBAAAQ,MAAM,CAACC,IAAP,mCAAaC,EAAb,MAAoBV,aAAxE;AAAA,GADc,CAAhB;AAGA,MAAMc,mBAAmB,GAAGZ,OAAO,CAACa,IAAR,CAAa,UAACP,MAAD;AAAA;;AAAA,4BAAYA,MAAM,CAACC,IAAnB,qBAAY,cAAaG,MAAzB;AAAA,GAAb,CAA5B;;AAEA,kBAA8C,qBAAS,KAAT,CAA9C;AAAA;AAAA,MAAOI,eAAP;AAAA,MAAwBC,kBAAxB;;AAEA,wBAAU,YAAM;AACdA,IAAAA,kBAAkB,CAACpB,gCAAgC,CAACC,OAAD,EAAUC,MAAV,CAAjC,CAAlB;AACD,GAFD,EAEG,CAACe,mBAAD,CAFH;AAIA,SAAOE,eAAP;AACD,CApBM","sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Channel, StreamChat } from 'stream-chat';\n\nimport { useChatContext } from '../../../contexts/chatContext/ChatContext';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nconst getChannelPreviewDisplayPresence = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n client: StreamChat<StreamChatGenerics>,\n) => {\n const currentUserId = client.userID;\n\n if (currentUserId) {\n const members = Object.values(channel.state.members);\n const otherMembers = members.filter((member) => member.user?.id !== currentUserId);\n\n if (otherMembers.length === 1) {\n return !!otherMembers[0].user?.online;\n }\n }\n return false;\n};\n\n/**\n * Hook to set the display avatar presence for channel preview\n * @param {*} channel\n *\n * @returns {boolean} e.g., true\n */\nexport const useChannelPreviewDisplayPresence = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => {\n const { client } = useChatContext<StreamChatGenerics>();\n\n const currentUserId = client.userID;\n const members = Object.values(channel.state.members).filter(\n (member) => !!member.user?.id && !!currentUserId && member.user?.id !== currentUserId,\n );\n const channelMemberOnline = members.some((member) => member.user?.online);\n\n const [displayPresence, setDisplayPresence] = useState(false);\n\n useEffect(() => {\n setDisplayPresence(getChannelPreviewDisplayPresence(channel, client));\n }, [channelMemberOnline]);\n\n return displayPresence;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["useLatestMessagePreview.ts"],"names":["getLatestMessageDisplayText","channel","client","message","t","bold","text","isMessageTypeDeleted","type","currentUserId","userID","messageOwnerId","user","id","members","Object","keys","state","owner","length","name","username","ownerText","boldOwner","includes","shortenedText","substring","replace","mentionedUsers","Array","isArray","mentioned_users","reduce","acc","cur","userName","regEx","RegExp","split","index","test","push","command","attachments","getLatestMessageDisplayDate","tDateTimeParser","parserOutput","created_at","isSame","Date","format","getLatestMessageReadStatus","readEvents","readList","read","messageUpdatedAt","updated_at","undefined","values","some","last_read","getLatestMessagePreview","params","lastMessage","messages","messageObject","previews","status","useLatestMessagePreview","forceUpdate","channelConfigExists","getConfig","channelLastMessageString","setReadEvents","latestMessagePreview","setLatestMessagePreview","readStatus","read_events"],"mappings":"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","sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Channel, ChannelState, MessageResponse, StreamChat } from 'stream-chat';\n\nimport { useChatContext } from '../../../contexts/chatContext/ChatContext';\nimport {\n isDayOrMoment,\n TDateTimeParser,\n useTranslationContext,\n} from '../../../contexts/translationContext/TranslationContext';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\ntype LatestMessage<\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 | ReturnType<ChannelState<At, Ch, Co, Ev, Me, Re, Us>['formatMessage']>\n | MessageResponse<At, Ch, Co, Me, Re, Us>;\n\nexport type LatestMessagePreview<\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 created_at: string | number | Date;\n messageObject: LatestMessage<At, Ch, Co, Ev, Me, Re, Us> | undefined;\n previews: {\n bold: boolean;\n text: string;\n }[];\n status: number;\n};\n\nconst getLatestMessageDisplayText = <\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 channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n client: StreamChat<At, Ch, Co, Ev, Me, Re, Us>,\n message: LatestMessage<At, Ch, Co, Ev, Me, Re, Us> | undefined,\n t: (key: string) => string,\n) => {\n if (!message) return [{ bold: false, text: t('Nothing yet...') }];\n const isMessageTypeDeleted = message.type === 'deleted';\n if (isMessageTypeDeleted) return [{ bold: false, text: t('Message deleted') }];\n const currentUserId = client.userID;\n const messageOwnerId = message.user?.id;\n const members = Object.keys(channel.state.members);\n const owner =\n messageOwnerId === currentUserId\n ? t('You')\n : members.length > 2\n ? message.user?.name || message.user?.username || message.user?.id || ''\n : '';\n const ownerText = owner ? `${owner === t('You') ? '' : '@'}${owner}: ` : '';\n const boldOwner = ownerText.includes('@');\n if (message.text) {\n // rough guess optimization to limit string preview to max 100 characters\n const shortenedText = message.text.substring(0, 100).replace(/\\n/g, ' ');\n const mentionedUsers = Array.isArray(message.mentioned_users)\n ? message.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 const regEx = new RegExp(`^(${mentionedUsers})`);\n return [\n { bold: boldOwner, text: ownerText },\n ...shortenedText.split('').reduce(\n (acc, cur, index) => {\n if (cur === '@' && mentionedUsers && regEx.test(shortenedText.substring(index))) {\n acc.push({ bold: true, text: cur });\n } else if (mentionedUsers && regEx.test(acc[acc.length - 1].text)) {\n acc.push({ bold: false, text: cur });\n } else {\n acc[acc.length - 1].text += cur;\n }\n return acc;\n },\n [{ bold: false, text: '' }],\n ),\n ];\n }\n if (message.command) {\n return [\n { bold: boldOwner, text: ownerText },\n { bold: false, text: `/${message.command}` },\n ];\n }\n if (message.attachments?.length) {\n return [\n { bold: boldOwner, text: ownerText },\n { bold: false, text: t('🏙 Attachment...') },\n ];\n }\n return [\n { bold: boldOwner, text: ownerText },\n { bold: false, text: t('Empty message...') },\n ];\n};\n\nconst getLatestMessageDisplayDate = <\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 message: LatestMessage<At, Ch, Co, Ev, Me, Re, Us> | undefined,\n tDateTimeParser: TDateTimeParser,\n) => {\n const parserOutput = tDateTimeParser(message?.created_at);\n if (isDayOrMoment(parserOutput)) {\n if (parserOutput.isSame(new Date(), 'day')) {\n return parserOutput.format('LT');\n }\n return parserOutput.format('L');\n }\n return parserOutput;\n};\n\n/**\n * set up enum\n * 0 = latest message is not current user's message\n * 1 = nobody has read latest message which is the current user's message\n * 2 = someone has read latest message which is the current user's message\n */\nconst getLatestMessageReadStatus = <\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 channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n client: StreamChat<At, Ch, Co, Ev, Me, Re, Us>,\n message: LatestMessage<At, Ch, Co, Ev, Me, Re, Us> | undefined,\n readEvents: boolean,\n) => {\n const currentUserId = client.userID;\n if (!message || currentUserId !== message.user?.id || readEvents === false) return 0;\n\n const readList = channel.state.read;\n if (currentUserId) {\n delete readList[currentUserId];\n }\n\n const messageUpdatedAt = message.updated_at\n ? typeof message.updated_at === 'string'\n ? new Date(message.updated_at)\n : message.updated_at\n : undefined;\n\n return Object.values(readList).some(\n ({ last_read }) => messageUpdatedAt && messageUpdatedAt < last_read,\n )\n ? 2\n : 1;\n};\n\nconst getLatestMessagePreview = <\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>(params: {\n channel: Channel<At, Ch, Co, Ev, Me, Re, Us>;\n client: StreamChat<At, Ch, Co, Ev, Me, Re, Us>;\n readEvents: boolean;\n t: (key: string) => string;\n tDateTimeParser: TDateTimeParser;\n lastMessage?:\n | ReturnType<ChannelState<At, Ch, Co, Ev, Me, Re, Us>['formatMessage']>\n | MessageResponse<At, Ch, Co, Me, Re, Us>;\n}) => {\n const { channel, client, lastMessage, readEvents, t, tDateTimeParser } = params;\n\n const messages = channel.state.messages;\n\n if (!messages.length && !lastMessage) {\n return {\n created_at: '',\n messageObject: undefined,\n previews: [\n {\n bold: false,\n text: t('Nothing yet...'),\n },\n ],\n status: 0,\n };\n }\n const message = lastMessage || messages.length ? messages[messages.length - 1] : undefined;\n\n return {\n created_at: getLatestMessageDisplayDate(message, tDateTimeParser),\n messageObject: message,\n previews: getLatestMessageDisplayText(channel, client, message, t),\n status: getLatestMessageReadStatus(channel, client, message, readEvents),\n };\n};\n\n/**\n * Hook to set the display preview for latest message on channel.\n *\n * @param {*} channel Channel object\n *\n * @returns {object} latest message preview e.g.. { text: 'this was last message ...', created_at: '11/12/2020', messageObject: { originalMessageObject } }\n */\nexport const useLatestMessagePreview = <\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 channel: Channel<At, Ch, Co, Ev, Me, Re, Us>,\n forceUpdate: number,\n lastMessage?:\n | ReturnType<ChannelState<At, Ch, Co, Ev, Me, Re, Us>['formatMessage']>\n | MessageResponse<At, Ch, Co, Me, Re, Us>,\n) => {\n const { client } = useChatContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { t, tDateTimeParser } = useTranslationContext();\n\n const channelConfigExists = typeof channel?.getConfig === 'function';\n\n const messages = channel.state.messages;\n const message = messages.length ? messages[messages.length - 1] : undefined;\n\n const channelLastMessageString = `${lastMessage?.id || message?.id}${\n lastMessage?.updated_at || message?.updated_at\n }`;\n\n const [readEvents, setReadEvents] = useState(true);\n const [latestMessagePreview, setLatestMessagePreview] = useState<\n LatestMessagePreview<At, Ch, Co, Ev, Me, Re, Us>\n >({\n created_at: '',\n messageObject: undefined,\n previews: [\n {\n bold: false,\n text: '',\n },\n ],\n status: 0,\n });\n\n const readStatus = getLatestMessageReadStatus(\n channel,\n client,\n lastMessage || message,\n readEvents,\n );\n\n useEffect(() => {\n if (channelConfigExists) {\n const read_events = channel.getConfig()?.read_events;\n if (typeof read_events === 'boolean') {\n setReadEvents(read_events);\n }\n }\n }, [channelConfigExists]);\n\n useEffect(\n () =>\n setLatestMessagePreview(\n getLatestMessagePreview({\n channel,\n client,\n lastMessage,\n readEvents,\n t,\n tDateTimeParser,\n }),\n ),\n [channelLastMessageString, forceUpdate, readEvents, readStatus],\n );\n\n return latestMessagePreview;\n};\n"]}
1
+ {"version":3,"sources":["useLatestMessagePreview.ts"],"names":["getLatestMessageDisplayText","channel","client","message","t","bold","text","isMessageTypeDeleted","type","currentUserId","userID","messageOwnerId","user","id","members","Object","keys","state","owner","length","name","username","ownerText","boldOwner","includes","shortenedText","substring","replace","mentionedUsers","Array","isArray","mentioned_users","reduce","acc","cur","userName","regEx","RegExp","split","index","test","push","command","attachments","getLatestMessageDisplayDate","tDateTimeParser","parserOutput","created_at","isSame","Date","format","getLatestMessageReadStatus","readEvents","readList","read","messageUpdatedAt","updated_at","undefined","values","some","last_read","getLatestMessagePreview","params","lastMessage","messages","messageObject","previews","status","useLatestMessagePreview","forceUpdate","channelConfigExists","getConfig","channelLastMessageString","setReadEvents","latestMessagePreview","setLatestMessagePreview","readStatus","read_events"],"mappings":"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","sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Channel, ChannelState, MessageResponse, StreamChat } from 'stream-chat';\n\nimport { useChatContext } from '../../../contexts/chatContext/ChatContext';\nimport {\n isDayOrMoment,\n TDateTimeParser,\n useTranslationContext,\n} from '../../../contexts/translationContext/TranslationContext';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\ntype LatestMessage<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> =\n | ReturnType<ChannelState<StreamChatGenerics>['formatMessage']>\n | MessageResponse<StreamChatGenerics>;\n\nexport type LatestMessagePreview<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n created_at: string | number | Date;\n messageObject: LatestMessage<StreamChatGenerics> | undefined;\n previews: {\n bold: boolean;\n text: string;\n }[];\n status: number;\n};\n\nconst getLatestMessageDisplayText = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n client: StreamChat<StreamChatGenerics>,\n message: LatestMessage<StreamChatGenerics> | undefined,\n t: (key: string) => string,\n) => {\n if (!message) return [{ bold: false, text: t('Nothing yet...') }];\n const isMessageTypeDeleted = message.type === 'deleted';\n if (isMessageTypeDeleted) return [{ bold: false, text: t('Message deleted') }];\n const currentUserId = client.userID;\n const messageOwnerId = message.user?.id;\n const members = Object.keys(channel.state.members);\n const owner =\n messageOwnerId === currentUserId\n ? t('You')\n : members.length > 2\n ? message.user?.name || message.user?.username || message.user?.id || ''\n : '';\n const ownerText = owner ? `${owner === t('You') ? '' : '@'}${owner}: ` : '';\n const boldOwner = ownerText.includes('@');\n if (message.text) {\n // rough guess optimization to limit string preview to max 100 characters\n const shortenedText = message.text.substring(0, 100).replace(/\\n/g, ' ');\n const mentionedUsers = Array.isArray(message.mentioned_users)\n ? message.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 const regEx = new RegExp(`^(${mentionedUsers})`);\n return [\n { bold: boldOwner, text: ownerText },\n ...shortenedText.split('').reduce(\n (acc, cur, index) => {\n if (cur === '@' && mentionedUsers && regEx.test(shortenedText.substring(index))) {\n acc.push({ bold: true, text: cur });\n } else if (mentionedUsers && regEx.test(acc[acc.length - 1].text)) {\n acc.push({ bold: false, text: cur });\n } else {\n acc[acc.length - 1].text += cur;\n }\n return acc;\n },\n [{ bold: false, text: '' }],\n ),\n ];\n }\n if (message.command) {\n return [\n { bold: boldOwner, text: ownerText },\n { bold: false, text: `/${message.command}` },\n ];\n }\n if (message.attachments?.length) {\n return [\n { bold: boldOwner, text: ownerText },\n { bold: false, text: t('🏙 Attachment...') },\n ];\n }\n return [\n { bold: boldOwner, text: ownerText },\n { bold: false, text: t('Empty message...') },\n ];\n};\n\nconst getLatestMessageDisplayDate = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n message: LatestMessage<StreamChatGenerics> | undefined,\n tDateTimeParser: TDateTimeParser,\n) => {\n const parserOutput = tDateTimeParser(message?.created_at);\n if (isDayOrMoment(parserOutput)) {\n if (parserOutput.isSame(new Date(), 'day')) {\n return parserOutput.format('LT');\n }\n return parserOutput.format('L');\n }\n return parserOutput;\n};\n\n/**\n * set up enum\n * 0 = latest message is not current user's message\n * 1 = nobody has read latest message which is the current user's message\n * 2 = someone has read latest message which is the current user's message\n */\nconst getLatestMessageReadStatus = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n client: StreamChat<StreamChatGenerics>,\n message: LatestMessage<StreamChatGenerics> | undefined,\n readEvents: boolean,\n) => {\n const currentUserId = client.userID;\n if (!message || currentUserId !== message.user?.id || readEvents === false) return 0;\n\n const readList = channel.state.read;\n if (currentUserId) {\n delete readList[currentUserId];\n }\n\n const messageUpdatedAt = message.updated_at\n ? typeof message.updated_at === 'string'\n ? new Date(message.updated_at)\n : message.updated_at\n : undefined;\n\n return Object.values(readList).some(\n ({ last_read }) => messageUpdatedAt && messageUpdatedAt < last_read,\n )\n ? 2\n : 1;\n};\n\nconst getLatestMessagePreview = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(params: {\n channel: Channel<StreamChatGenerics>;\n client: StreamChat<StreamChatGenerics>;\n readEvents: boolean;\n t: (key: string) => string;\n tDateTimeParser: TDateTimeParser;\n lastMessage?:\n | ReturnType<ChannelState<StreamChatGenerics>['formatMessage']>\n | MessageResponse<StreamChatGenerics>;\n}) => {\n const { channel, client, lastMessage, readEvents, t, tDateTimeParser } = params;\n\n const messages = channel.state.messages;\n\n if (!messages.length && !lastMessage) {\n return {\n created_at: '',\n messageObject: undefined,\n previews: [\n {\n bold: false,\n text: t('Nothing yet...'),\n },\n ],\n status: 0,\n };\n }\n const message = lastMessage || messages.length ? messages[messages.length - 1] : undefined;\n\n return {\n created_at: getLatestMessageDisplayDate(message, tDateTimeParser),\n messageObject: message,\n previews: getLatestMessageDisplayText(channel, client, message, t),\n status: getLatestMessageReadStatus(channel, client, message, readEvents),\n };\n};\n\n/**\n * Hook to set the display preview for latest message on channel.\n *\n * @param {*} channel Channel object\n *\n * @returns {object} latest message preview e.g.. { text: 'this was last message ...', created_at: '11/12/2020', messageObject: { originalMessageObject } }\n */\nexport const useLatestMessagePreview = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n forceUpdate: number,\n lastMessage?:\n | ReturnType<ChannelState<StreamChatGenerics>['formatMessage']>\n | MessageResponse<StreamChatGenerics>,\n) => {\n const { client } = useChatContext<StreamChatGenerics>();\n const { t, tDateTimeParser } = useTranslationContext();\n\n const channelConfigExists = typeof channel?.getConfig === 'function';\n\n const messages = channel.state.messages;\n const message = messages.length ? messages[messages.length - 1] : undefined;\n\n const channelLastMessageString = `${lastMessage?.id || message?.id}${\n lastMessage?.updated_at || message?.updated_at\n }`;\n\n const [readEvents, setReadEvents] = useState(true);\n const [latestMessagePreview, setLatestMessagePreview] = useState<\n LatestMessagePreview<StreamChatGenerics>\n >({\n created_at: '',\n messageObject: undefined,\n previews: [\n {\n bold: false,\n text: '',\n },\n ],\n status: 0,\n });\n\n const readStatus = getLatestMessageReadStatus(\n channel,\n client,\n lastMessage || message,\n readEvents,\n );\n\n useEffect(() => {\n if (channelConfigExists) {\n const read_events = channel.getConfig()?.read_events;\n if (typeof read_events === 'boolean') {\n setReadEvents(read_events);\n }\n }\n }, [channelConfigExists]);\n\n useEffect(\n () =>\n setLatestMessagePreview(\n getLatestMessagePreview({\n channel,\n client,\n lastMessage,\n readEvents,\n t,\n tDateTimeParser,\n }),\n ),\n [channelLastMessageString, forceUpdate, readEvents, readStatus],\n );\n\n return latestMessagePreview;\n};\n"]}
@@ -33,6 +33,8 @@ var _TranslationContext = require("../../contexts/translationContext/Translation
33
33
 
34
34
  var _useStreami18n = require("../../hooks/useStreami18n");
35
35
 
36
+ var _init = _interopRequireDefault(require("../../init"));
37
+
36
38
  var _native = require("../../native");
37
39
 
38
40
  var _version = require("../../version.json");
@@ -44,6 +46,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
44
46
 
45
47
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
46
48
 
49
+ (0, _init["default"])();
50
+
47
51
  var ChatWithContext = function ChatWithContext(props) {
48
52
  var children = props.children,
49
53
  client = props.client,
@@ -104,7 +108,7 @@ var ChatWithContext = function ChatWithContext(props) {
104
108
  __self: _this,
105
109
  __source: {
106
110
  fileName: _jsxFileName,
107
- lineNumber: 195,
111
+ lineNumber: 176,
108
112
  columnNumber: 5
109
113
  }
110
114
  }, _react["default"].createElement(_TranslationContext.TranslationProvider, {
@@ -112,7 +116,7 @@ var ChatWithContext = function ChatWithContext(props) {
112
116
  __self: _this,
113
117
  __source: {
114
118
  fileName: _jsxFileName,
115
- lineNumber: 196,
119
+ lineNumber: 177,
116
120
  columnNumber: 7
117
121
  }
118
122
  }, _react["default"].createElement(_ThemeContext.ThemeProvider, {
@@ -120,7 +124,7 @@ var ChatWithContext = function ChatWithContext(props) {
120
124
  __self: _this,
121
125
  __source: {
122
126
  fileName: _jsxFileName,
123
- lineNumber: 197,
127
+ lineNumber: 178,
124
128
  columnNumber: 9
125
129
  }
126
130
  }, children)));
@@ -136,7 +140,7 @@ var Chat = function Chat(props) {
136
140
  __self: _this,
137
141
  __source: {
138
142
  fileName: _jsxFileName,
139
- lineNumber: 237,
143
+ lineNumber: 212,
140
144
  columnNumber: 10
141
145
  }
142
146
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["Chat.tsx"],"names":["ChatWithContext","props","children","client","closeConnectionOnBackground","i18nInstance","style","channel","setChannel","t","key","tDateTimeParser","input","translators","setTranslators","loadingTranslators","connectionRecovering","isOnline","mutedUsers","setUserAgent","SDK","Platform","OS","version","recoverStateOnReconnect","setActiveChannel","newChannel","chatContext","Chat"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AAIA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AAEA;;AAIA;;AAEA;;AAYA;;;;;;;;;AAqGA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAStBC,KATsB,EAUnB;AACH,MAAQC,QAAR,GAAsFD,KAAtF,CAAQC,QAAR;AAAA,MAAkBC,MAAlB,GAAsFF,KAAtF,CAAkBE,MAAlB;AAAA,8BAAsFF,KAAtF,CAA0BG,2BAA1B;AAAA,MAA0BA,2BAA1B,sCAAwD,IAAxD;AAAA,MAA8DC,YAA9D,GAAsFJ,KAAtF,CAA8DI,YAA9D;AAAA,MAA4EC,KAA5E,GAAsFL,KAAtF,CAA4EK,KAA5E;;AAEA,kBAA8B,sBAA9B;AAAA;AAAA,MAAOC,OAAP;AAAA,MAAgBC,UAAhB;;AACA,mBAAsC,qBAAkC;AACtEC,IAAAA,CAAC,EAAE,WAACC,GAAD;AAAA,aAAiBA,GAAjB;AAAA,KADmE;AAEtEC,IAAAA,eAAe,EAAE,yBAACC,KAAD;AAAA,aAAoC,uBAAMA,KAAN,CAApC;AAAA;AAFqD,GAAlC,CAAtC;AAAA;AAAA,MAAOC,WAAP;AAAA,MAAoBC,cAApB;;AAQA,MAAMC,kBAAkB,GAAG,kCAAc;AAAEV,IAAAA,YAAY,EAAZA,YAAF;AAAgBS,IAAAA,cAAc,EAAdA;AAAhB,GAAd,CAA3B;;AAKA,qBAA2C,+BACzCX,MADyC,EAEzCC,2BAFyC,CAA3C;AAAA,MAAQY,oBAAR,gBAAQA,oBAAR;AAAA,MAA8BC,QAA9B,gBAA8BA,QAA9B;;AAQA,MAAMC,UAAU,GAAG,kCAA0Cf,MAA1C,CAAnB;AAEA,wBAAU,YAAM;AACd,QAAIA,MAAM,CAACgB,YAAX,EAAyB;AACvBhB,MAAAA,MAAM,CAACgB,YAAP,CAAuBC,WAAvB,SAA8BC,sBAASC,EAAvC,SAA6CC,gBAA7C;AAEApB,MAAAA,MAAM,CAACqB,uBAAP,GAAiC,KAAjC;AACD;AACF,GAND,EAMG,EANH;;AAQA,MAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,UAAD;AAAA,WACvBlB,UAAU,CAACkB,UAAD,CADa;AAAA,GAAzB;;AAGA,MAAMC,WAAW,GAAG,gDAAqB;AACvCpB,IAAAA,OAAO,EAAPA,OADuC;AAEvCJ,IAAAA,MAAM,EAANA,MAFuC;AAGvCa,IAAAA,oBAAoB,EAApBA,oBAHuC;AAIvCC,IAAAA,QAAQ,EAARA,QAJuC;AAKvCC,IAAAA,UAAU,EAAVA,UALuC;AAMvCO,IAAAA,gBAAgB,EAAhBA;AANuC,GAArB,CAApB;AASA,MAAIV,kBAAJ,EAAwB,OAAO,IAAP;AAExB,SACE,gCAAC,yBAAD;AAA0C,IAAA,KAAK,EAAEY,WAAjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,uCAAD;AAAqB,IAAA,KAAK,EAAEd,WAA5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,2BAAD;AAAe,IAAA,KAAK,EAAEP,KAAtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAA8BJ,QAA9B,CADF,CADF,CADF;AAOD,CAlED;;AAyFO,IAAM0B,IAAI,GAAG,SAAPA,IAAO,CASlB3B,KATkB,EAUf;AACH,2BAAkB,wCAAlB;AAAA,MAAQK,KAAR,sBAAQA,KAAR;;AAEA,SAAO,gCAAC,eAAD;AAAuBA,IAAAA,KAAK,EAALA;AAAvB,KAAoCL,KAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAP;AACD,CAdM","sourcesContent":["import React, { PropsWithChildren, useEffect, useState } from 'react';\nimport { Platform } from 'react-native';\n\nimport Dayjs from 'dayjs';\n\nimport type { Channel } from 'stream-chat';\n\nimport { useCreateChatContext } from './hooks/useCreateChatContext';\nimport { useIsOnline } from './hooks/useIsOnline';\nimport { useMutedUsers } from './hooks/useMutedUsers';\n\nimport { ChatContextValue, ChatProvider } from '../../contexts/chatContext/ChatContext';\nimport { useOverlayContext } from '../../contexts/overlayContext/OverlayContext';\nimport { DeepPartial, ThemeProvider } from '../../contexts/themeContext/ThemeContext';\nimport type { Theme } from '../../contexts/themeContext/utils/theme';\nimport {\n TranslationContextValue,\n TranslationProvider,\n} from '../../contexts/translationContext/TranslationContext';\nimport { useStreami18n } from '../../hooks/useStreami18n';\n\nimport { SDK } from '../../native';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\nimport type { Streami18n } from '../../utils/Streami18n';\nimport { version } from '../../version.json';\n\nexport type ChatProps<\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> = Pick<ChatContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'client'> & {\n /**\n * When false, ws connection won't be disconnection upon backgrounding the app.\n * To receive push notifications, its necessary that user doesn't have active\n * websocket connection. So by default, we disconnect websocket connection when\n * app goes to background, and reconnect when app comes to foreground.\n */\n closeConnectionOnBackground?: boolean;\n /**\n * Instance of Streami18n class should be provided to Chat component to enable internationalization.\n *\n * Stream provides following list of in-built translations:\n * 1. English (en)\n * 2. Dutch (nl)\n * 3. ...\n * 4. ...\n *\n * Simplest way to start using chat components in one of the in-built languages would be following:\n *\n * ```\n * const i18n = new Streami18n('nl');\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * If you would like to override certain keys in in-built translation.\n * UI will be automatically updated in this case.\n *\n * ```\n * const i18n = new Streami18n('nl');\n *\n * i18n.registerTranslation('nl', {\n * 'Nothing yet...': 'Nog Niet ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} en {{ secondUser }} zijn aan het typen...',\n * });\n *\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * You can use the same function to add whole new language.\n *\n * ```\n * const i18n = new Streami18n('it');\n *\n * i18n.registerTranslation('it', {\n * 'Nothing yet...': 'Non ancora ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} a {{ secondUser }} stanno scrivendo...',\n * });\n *\n * // Make sure to call setLanguage to reflect new language in UI.\n * i18n.setLanguage('it');\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n */\n i18nInstance?: Streami18n;\n /**\n * You can pass the theme object to customize the styles of Chat components. You can check the default theme in [theme.ts](https://github.com/GetStream/stream-chat-react-native/blob/master/src/contexts/themeContext/utils/theme.ts)\n *\n * Please check section about [themes in cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#theme) for details.\n *\n * ```\n * import type { DeepPartial, Theme } from 'stream-chat-react-native';\n *\n * const theme: DeepPartial<Theme> = {\n * messageSimple: {\n * file: {\n * container: {\n * backgroundColor: 'red',\n * },\n * icon: {\n * height: 16,\n * width: 16,\n * },\n * },\n * },\n * };\n *\n * <Chat style={theme}>\n * </Chat>\n * ```\n *\n * @overrideType object\n */\n style?: DeepPartial<Theme>;\n};\n\nconst ChatWithContext = <\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 props: PropsWithChildren<ChatProps<At, Ch, Co, Ev, Me, Re, Us>>,\n) => {\n const { children, client, closeConnectionOnBackground = true, i18nInstance, style } = props;\n\n const [channel, setChannel] = useState<Channel<At, Ch, Co, Ev, Me, Re, Us>>();\n const [translators, setTranslators] = useState<TranslationContextValue>({\n t: (key: string) => key,\n tDateTimeParser: (input?: string | number | Date) => Dayjs(input),\n });\n\n /**\n * Setup translators\n */\n const loadingTranslators = useStreami18n({ i18nInstance, setTranslators });\n\n /**\n * Setup connection event listeners\n */\n const { connectionRecovering, isOnline } = useIsOnline<At, Ch, Co, Ev, Me, Re, Us>(\n client,\n closeConnectionOnBackground,\n );\n\n /**\n * Setup muted user listener\n */\n const mutedUsers = useMutedUsers<At, Ch, Co, Ev, Me, Re, Us>(client);\n\n useEffect(() => {\n if (client.setUserAgent) {\n client.setUserAgent(`${SDK}-${Platform.OS}-${version}`);\n // This is to disable recovery related logic in js client, since we handle it in this SDK\n client.recoverStateOnReconnect = false;\n }\n }, []);\n\n const setActiveChannel = (newChannel?: Channel<At, Ch, Co, Ev, Me, Re, Us>) =>\n setChannel(newChannel);\n\n const chatContext = useCreateChatContext({\n channel,\n client,\n connectionRecovering,\n isOnline,\n mutedUsers,\n setActiveChannel,\n });\n\n if (loadingTranslators) return null;\n\n return (\n <ChatProvider<At, Ch, Co, Ev, Me, Re, Us> value={chatContext}>\n <TranslationProvider value={translators}>\n <ThemeProvider style={style}>{children}</ThemeProvider>\n </TranslationProvider>\n </ChatProvider>\n );\n};\n\n/**\n * Chat - Wrapper component for Chat. The needs to be placed around any other chat components.\n * This Chat component provides the ChatContext to all other components.\n *\n * The ChatContext provides the following props:\n *\n * - channel - currently active channel\n * - client - client connection\n * - connectionRecovering - whether or not websocket is reconnecting\n * - isOnline - whether or not set user is active\n * - setActiveChannel - function to set the currently active channel\n *\n * The Chat Component takes the following generics in order:\n * - At (AttachmentType) - custom Attachment object extension\n * - Ct (ChannelType) - custom Channel object extension\n * - Co (CommandType) - custom Command string union extension\n * - Ev (EventType) - custom Event object extension\n * - Me (MessageType) - custom Message object extension\n * - Re (ReactionType) - custom Reaction object extension\n * - Us (UserType) - custom User object extension\n */\nexport const Chat = <\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 props: PropsWithChildren<ChatProps<At, Ch, Co, Ev, Me, Re, Us>>,\n) => {\n const { style } = useOverlayContext();\n\n return <ChatWithContext {...{ style }} {...props} />;\n};\n"]}
1
+ {"version":3,"sources":["Chat.tsx"],"names":["ChatWithContext","props","children","client","closeConnectionOnBackground","i18nInstance","style","channel","setChannel","t","key","tDateTimeParser","input","translators","setTranslators","loadingTranslators","connectionRecovering","isOnline","mutedUsers","setUserAgent","SDK","Platform","OS","version","recoverStateOnReconnect","setActiveChannel","newChannel","chatContext","Chat"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AAIA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AAEA;;AAIA;;AACA;;AAEA;;AAGA;;;;;;;;;AAEA;;AA+FA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAGtBC,KAHsB,EAInB;AACH,MAAQC,QAAR,GAAsFD,KAAtF,CAAQC,QAAR;AAAA,MAAkBC,MAAlB,GAAsFF,KAAtF,CAAkBE,MAAlB;AAAA,8BAAsFF,KAAtF,CAA0BG,2BAA1B;AAAA,MAA0BA,2BAA1B,sCAAwD,IAAxD;AAAA,MAA8DC,YAA9D,GAAsFJ,KAAtF,CAA8DI,YAA9D;AAAA,MAA4EC,KAA5E,GAAsFL,KAAtF,CAA4EK,KAA5E;;AAEA,kBAA8B,sBAA9B;AAAA;AAAA,MAAOC,OAAP;AAAA,MAAgBC,UAAhB;;AACA,mBAAsC,qBAAkC;AACtEC,IAAAA,CAAC,EAAE,WAACC,GAAD;AAAA,aAAiBA,GAAjB;AAAA,KADmE;AAEtEC,IAAAA,eAAe,EAAE,yBAACC,KAAD;AAAA,aAAoC,uBAAMA,KAAN,CAApC;AAAA;AAFqD,GAAlC,CAAtC;AAAA;AAAA,MAAOC,WAAP;AAAA,MAAoBC,cAApB;;AAQA,MAAMC,kBAAkB,GAAG,kCAAc;AAAEV,IAAAA,YAAY,EAAZA,YAAF;AAAgBS,IAAAA,cAAc,EAAdA;AAAhB,GAAd,CAA3B;;AAKA,qBAA2C,+BACzCX,MADyC,EAEzCC,2BAFyC,CAA3C;AAAA,MAAQY,oBAAR,gBAAQA,oBAAR;AAAA,MAA8BC,QAA9B,gBAA8BA,QAA9B;;AAQA,MAAMC,UAAU,GAAG,kCAAkCf,MAAlC,CAAnB;AAEA,wBAAU,YAAM;AACd,QAAIA,MAAM,CAACgB,YAAX,EAAyB;AACvBhB,MAAAA,MAAM,CAACgB,YAAP,CAAuBC,WAAvB,SAA8BC,sBAASC,EAAvC,SAA6CC,gBAA7C;AAEApB,MAAAA,MAAM,CAACqB,uBAAP,GAAiC,KAAjC;AACD;AACF,GAND,EAMG,EANH;;AAQA,MAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,UAAD;AAAA,WAA8ClB,UAAU,CAACkB,UAAD,CAAxD;AAAA,GAAzB;;AAEA,MAAMC,WAAW,GAAG,gDAAqB;AACvCpB,IAAAA,OAAO,EAAPA,OADuC;AAEvCJ,IAAAA,MAAM,EAANA,MAFuC;AAGvCa,IAAAA,oBAAoB,EAApBA,oBAHuC;AAIvCC,IAAAA,QAAQ,EAARA,QAJuC;AAKvCC,IAAAA,UAAU,EAAVA,UALuC;AAMvCO,IAAAA,gBAAgB,EAAhBA;AANuC,GAArB,CAApB;AASA,MAAIV,kBAAJ,EAAwB,OAAO,IAAP;AAExB,SACE,gCAAC,yBAAD;AAAkC,IAAA,KAAK,EAAEY,WAAzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,uCAAD;AAAqB,IAAA,KAAK,EAAEd,WAA5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,2BAAD;AAAe,IAAA,KAAK,EAAEP,KAAtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAA8BJ,QAA9B,CADF,CADF,CADF;AAOD,CA3DD;;AAkFO,IAAM0B,IAAI,GAAG,SAAPA,IAAO,CAGlB3B,KAHkB,EAIf;AACH,2BAAkB,wCAAlB;AAAA,MAAQK,KAAR,sBAAQA,KAAR;;AAEA,SAAO,gCAAC,eAAD;AAAuBA,IAAAA,KAAK,EAALA;AAAvB,KAAoCL,KAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAP;AACD,CARM","sourcesContent":["import React, { PropsWithChildren, useEffect, useState } from 'react';\nimport { Platform } from 'react-native';\n\nimport Dayjs from 'dayjs';\n\nimport type { Channel } from 'stream-chat';\n\nimport { useCreateChatContext } from './hooks/useCreateChatContext';\nimport { useIsOnline } from './hooks/useIsOnline';\nimport { useMutedUsers } from './hooks/useMutedUsers';\n\nimport { ChatContextValue, ChatProvider } from '../../contexts/chatContext/ChatContext';\nimport { useOverlayContext } from '../../contexts/overlayContext/OverlayContext';\nimport { DeepPartial, ThemeProvider } from '../../contexts/themeContext/ThemeContext';\nimport type { Theme } from '../../contexts/themeContext/utils/theme';\nimport {\n TranslationContextValue,\n TranslationProvider,\n} from '../../contexts/translationContext/TranslationContext';\nimport { useStreami18n } from '../../hooks/useStreami18n';\nimport init from '../../init';\n\nimport { SDK } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport type { Streami18n } from '../../utils/Streami18n';\nimport { version } from '../../version.json';\n\ninit();\n\nexport type ChatProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChatContextValue<StreamChatGenerics>, 'client'> & {\n /**\n * When false, ws connection won't be disconnection upon backgrounding the app.\n * To receive push notifications, its necessary that user doesn't have active\n * websocket connection. So by default, we disconnect websocket connection when\n * app goes to background, and reconnect when app comes to foreground.\n */\n closeConnectionOnBackground?: boolean;\n /**\n * Instance of Streami18n class should be provided to Chat component to enable internationalization.\n *\n * Stream provides following list of in-built translations:\n * 1. English (en)\n * 2. Dutch (nl)\n * 3. ...\n * 4. ...\n *\n * Simplest way to start using chat components in one of the in-built languages would be following:\n *\n * ```\n * const i18n = new Streami18n('nl');\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * If you would like to override certain keys in in-built translation.\n * UI will be automatically updated in this case.\n *\n * ```\n * const i18n = new Streami18n('nl');\n *\n * i18n.registerTranslation('nl', {\n * 'Nothing yet...': 'Nog Niet ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} en {{ secondUser }} zijn aan het typen...',\n * });\n *\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * You can use the same function to add whole new language.\n *\n * ```\n * const i18n = new Streami18n('it');\n *\n * i18n.registerTranslation('it', {\n * 'Nothing yet...': 'Non ancora ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} a {{ secondUser }} stanno scrivendo...',\n * });\n *\n * // Make sure to call setLanguage to reflect new language in UI.\n * i18n.setLanguage('it');\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n */\n i18nInstance?: Streami18n;\n /**\n * You can pass the theme object to customize the styles of Chat components. You can check the default theme in [theme.ts](https://github.com/GetStream/stream-chat-react-native/blob/master/src/contexts/themeContext/utils/theme.ts)\n *\n * Please check section about [themes in cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#theme) for details.\n *\n * ```\n * import type { DeepPartial, Theme } from 'stream-chat-react-native';\n *\n * const theme: DeepPartial<Theme> = {\n * messageSimple: {\n * file: {\n * container: {\n * backgroundColor: 'red',\n * },\n * icon: {\n * height: 16,\n * width: 16,\n * },\n * },\n * },\n * };\n *\n * <Chat style={theme}>\n * </Chat>\n * ```\n *\n * @overrideType object\n */\n style?: DeepPartial<Theme>;\n};\n\nconst ChatWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<ChatProps<StreamChatGenerics>>,\n) => {\n const { children, client, closeConnectionOnBackground = true, i18nInstance, style } = props;\n\n const [channel, setChannel] = useState<Channel<StreamChatGenerics>>();\n const [translators, setTranslators] = useState<TranslationContextValue>({\n t: (key: string) => key,\n tDateTimeParser: (input?: string | number | Date) => Dayjs(input),\n });\n\n /**\n * Setup translators\n */\n const loadingTranslators = useStreami18n({ i18nInstance, setTranslators });\n\n /**\n * Setup connection event listeners\n */\n const { connectionRecovering, isOnline } = useIsOnline<StreamChatGenerics>(\n client,\n closeConnectionOnBackground,\n );\n\n /**\n * Setup muted user listener\n */\n const mutedUsers = useMutedUsers<StreamChatGenerics>(client);\n\n useEffect(() => {\n if (client.setUserAgent) {\n client.setUserAgent(`${SDK}-${Platform.OS}-${version}`);\n // This is to disable recovery related logic in js client, since we handle it in this SDK\n client.recoverStateOnReconnect = false;\n }\n }, []);\n\n const setActiveChannel = (newChannel?: Channel<StreamChatGenerics>) => setChannel(newChannel);\n\n const chatContext = useCreateChatContext({\n channel,\n client,\n connectionRecovering,\n isOnline,\n mutedUsers,\n setActiveChannel,\n });\n\n if (loadingTranslators) return null;\n\n return (\n <ChatProvider<StreamChatGenerics> value={chatContext}>\n <TranslationProvider value={translators}>\n <ThemeProvider style={style}>{children}</ThemeProvider>\n </TranslationProvider>\n </ChatProvider>\n );\n};\n\n/**\n * Chat - Wrapper component for Chat. The needs to be placed around any other chat components.\n * This Chat component provides the ChatContext to all other components.\n *\n * The ChatContext provides the following props:\n *\n * - channel - currently active channel\n * - client - client connection\n * - connectionRecovering - whether or not websocket is reconnecting\n * - isOnline - whether or not set user is active\n * - setActiveChannel - function to set the currently active channel\n *\n * The Chat Component takes the following generics in order:\n * - At (AttachmentType) - custom Attachment object extension\n * - Ct (ChannelType) - custom Channel object extension\n * - Co (CommandType) - custom Command string union extension\n * - Ev (EventType) - custom Event object extension\n * - Me (MessageType) - custom Message object extension\n * - Re (ReactionType) - custom Reaction object extension\n * - Us (UserType) - custom User object extension\n */\nexport const Chat = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<ChatProps<StreamChatGenerics>>,\n) => {\n const { style } = useOverlayContext();\n\n return <ChatWithContext {...{ style }} {...props} />;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["useCreateChatContext.ts"],"names":["useCreateChatContext","channel","client","connectionRecovering","isOnline","mutedUsers","setActiveChannel","channelId","id","clientValues","clientID","Object","keys","activeChannels","length","listeners","mutedChannels","mutedUsersLength","chatContext"],"mappings":";;;;;AAAA;;AAcO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,OAegB;AAAA,MANlDC,OAMkD,QANlDA,OAMkD;AAAA,MALlDC,MAKkD,QALlDA,MAKkD;AAAA,MAJlDC,oBAIkD,QAJlDA,oBAIkD;AAAA,MAHlDC,QAGkD,QAHlDA,QAGkD;AAAA,MAFlDC,UAEkD,QAFlDA,UAEkD;AAAA,MADlDC,gBACkD,QADlDA,gBACkD;AAClD,MAAMC,SAAS,GAAGN,OAAH,oBAAGA,OAAO,CAAEO,EAA3B;AACA,MAAMC,YAAY,QAAMP,MAAM,CAACQ,QAAb,GAAwBC,MAAM,CAACC,IAAP,CAAYV,MAAM,CAACW,cAAnB,EAAmCC,MAA3D,GAChBH,MAAM,CAACC,IAAP,CAAYV,MAAM,CAACa,SAAnB,EAA8BD,MADd,GAEfZ,MAAM,CAACc,aAAP,CAAqBF,MAFxB;AAGA,MAAMG,gBAAgB,GAAGZ,UAAU,CAACS,MAApC;AAEA,MAAMI,WAAyD,GAAG,oBAChE;AAAA,WAAO;AACLjB,MAAAA,OAAO,EAAPA,OADK;AAELC,MAAAA,MAAM,EAANA,MAFK;AAGLC,MAAAA,oBAAoB,EAApBA,oBAHK;AAILC,MAAAA,QAAQ,EAARA,QAJK;AAKLC,MAAAA,UAAU,EAAVA,UALK;AAMLC,MAAAA,gBAAgB,EAAhBA;AANK,KAAP;AAAA,GADgE,EAShE,CAACC,SAAD,EAAYE,YAAZ,EAA0BN,oBAA1B,EAAgDC,QAAhD,EAA0Da,gBAA1D,CATgE,CAAlE;AAYA,SAAOC,WAAP;AACD,CAnCM","sourcesContent":["import { useMemo } from 'react';\n\nimport type { ChatContextValue } from '../../../contexts/chatContext/ChatContext';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nexport const useCreateChatContext = <\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 channel,\n client,\n connectionRecovering,\n isOnline,\n mutedUsers,\n setActiveChannel,\n}: ChatContextValue<At, Ch, Co, Ev, Me, Re, Us>) => {\n const channelId = channel?.id;\n const clientValues = `${client.clientID}${Object.keys(client.activeChannels).length}${\n Object.keys(client.listeners).length\n }${client.mutedChannels.length}`;\n const mutedUsersLength = mutedUsers.length;\n\n const chatContext: ChatContextValue<At, Ch, Co, Ev, Me, Re, Us> = useMemo(\n () => ({\n channel,\n client,\n connectionRecovering,\n isOnline,\n mutedUsers,\n setActiveChannel,\n }),\n [channelId, clientValues, connectionRecovering, isOnline, mutedUsersLength],\n );\n\n return chatContext;\n};\n"]}
1
+ {"version":3,"sources":["useCreateChatContext.ts"],"names":["useCreateChatContext","channel","client","connectionRecovering","isOnline","mutedUsers","setActiveChannel","channelId","id","clientValues","clientID","Object","keys","activeChannels","length","listeners","mutedChannels","mutedUsersLength","chatContext"],"mappings":";;;;;AAAA;;AAKO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,OASQ;AAAA,MAN1CC,OAM0C,QAN1CA,OAM0C;AAAA,MAL1CC,MAK0C,QAL1CA,MAK0C;AAAA,MAJ1CC,oBAI0C,QAJ1CA,oBAI0C;AAAA,MAH1CC,QAG0C,QAH1CA,QAG0C;AAAA,MAF1CC,UAE0C,QAF1CA,UAE0C;AAAA,MAD1CC,gBAC0C,QAD1CA,gBAC0C;AAC1C,MAAMC,SAAS,GAAGN,OAAH,oBAAGA,OAAO,CAAEO,EAA3B;AACA,MAAMC,YAAY,QAAMP,MAAM,CAACQ,QAAb,GAAwBC,MAAM,CAACC,IAAP,CAAYV,MAAM,CAACW,cAAnB,EAAmCC,MAA3D,GAChBH,MAAM,CAACC,IAAP,CAAYV,MAAM,CAACa,SAAnB,EAA8BD,MADd,GAEfZ,MAAM,CAACc,aAAP,CAAqBF,MAFxB;AAGA,MAAMG,gBAAgB,GAAGZ,UAAU,CAACS,MAApC;AAEA,MAAMI,WAAiD,GAAG,oBACxD;AAAA,WAAO;AACLjB,MAAAA,OAAO,EAAPA,OADK;AAELC,MAAAA,MAAM,EAANA,MAFK;AAGLC,MAAAA,oBAAoB,EAApBA,oBAHK;AAILC,MAAAA,QAAQ,EAARA,QAJK;AAKLC,MAAAA,UAAU,EAAVA,UALK;AAMLC,MAAAA,gBAAgB,EAAhBA;AANK,KAAP;AAAA,GADwD,EASxD,CAACC,SAAD,EAAYE,YAAZ,EAA0BN,oBAA1B,EAAgDC,QAAhD,EAA0Da,gBAA1D,CATwD,CAA1D;AAYA,SAAOC,WAAP;AACD,CA7BM","sourcesContent":["import { useMemo } from 'react';\n\nimport type { ChatContextValue } from '../../../contexts/chatContext/ChatContext';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nexport const useCreateChatContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n channel,\n client,\n connectionRecovering,\n isOnline,\n mutedUsers,\n setActiveChannel,\n}: ChatContextValue<StreamChatGenerics>) => {\n const channelId = channel?.id;\n const clientValues = `${client.clientID}${Object.keys(client.activeChannels).length}${\n Object.keys(client.listeners).length\n }${client.mutedChannels.length}`;\n const mutedUsersLength = mutedUsers.length;\n\n const chatContext: ChatContextValue<StreamChatGenerics> = useMemo(\n () => ({\n channel,\n client,\n connectionRecovering,\n isOnline,\n mutedUsers,\n setActiveChannel,\n }),\n [channelId, clientValues, connectionRecovering, isOnline, mutedUsersLength],\n );\n\n return chatContext;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["useIsOnline.ts"],"names":["useIsOnline","client","closeConnectionOnBackground","isOnline","setIsOnline","connectionRecovering","setConnectionRecovering","isMounted","clientExits","onBackground","cid","activeChannels","channel","state","setIsUpToDate","closeConnection","onForeground","openConnection","handleChangedEvent","event","online","handleRecoveredEvent","notifyChatClient","netInfoState","wsConnection","onlineStatusChanged","type","unsubscribeNetInfo","setNetInfoListener","NetInfo","addEventListener","isHealthy","setInitialOnlineState","fetch","status","current","chatListeners","push","on","forEach","listener","unsubscribe"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nimport type { NetInfoSubscription } from '@react-native-community/netinfo';\n\nimport type { StreamChat, Event as StreamEvent } from 'stream-chat';\n\nimport { useAppStateListener } from '../../../hooks/useAppStateListener';\nimport { useIsMountedRef } from '../../../hooks/useIsMountedRef';\nimport { NetInfo } from '../../../native';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\n/**\n * Disconnect the websocket connection when app goes to background,\n * and reconnect when app comes to foreground.\n * We do this to make sure, user receives push notifications when app is in the background.\n * You can't receive push notification until you have active websocket connection.\n */\nexport const useIsOnline = <\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 client: StreamChat<At, Ch, Co, Ev, Me, Re, Us>,\n closeConnectionOnBackground = true,\n) => {\n const [isOnline, setIsOnline] = useState(true);\n const [connectionRecovering, setConnectionRecovering] = useState(false);\n const isMounted = useIsMountedRef();\n const clientExits = !!client;\n\n const onBackground = useCallback(() => {\n if (!closeConnectionOnBackground) return;\n\n for (const cid in client.activeChannels) {\n const channel = client.activeChannels[cid];\n channel?.state.setIsUpToDate(false);\n }\n\n client.closeConnection();\n setIsOnline(false);\n }, [closeConnectionOnBackground, client]);\n\n const onForeground = useCallback(() => {\n if (!closeConnectionOnBackground) return;\n\n client.openConnection();\n }, [closeConnectionOnBackground, client]);\n\n useAppStateListener(onForeground, onBackground);\n\n useEffect(() => {\n const handleChangedEvent = (event: StreamEvent<At, Ch, Co, Ev, Me, Re, Us>) => {\n setConnectionRecovering(!event.online);\n setIsOnline(event.online || false);\n };\n\n const handleRecoveredEvent = () => setConnectionRecovering(false);\n\n const notifyChatClient = (netInfoState: boolean) => {\n if (client?.wsConnection) {\n if (netInfoState) {\n client.wsConnection.onlineStatusChanged({\n type: 'online',\n } as Event);\n } else {\n client.wsConnection.onlineStatusChanged({\n type: 'offline',\n } as Event);\n }\n }\n };\n\n let unsubscribeNetInfo: NetInfoSubscription;\n const setNetInfoListener = () => {\n unsubscribeNetInfo = NetInfo.addEventListener((netInfoState) => {\n if (netInfoState === false && !client.wsConnection?.isHealthy) {\n setConnectionRecovering(true);\n setIsOnline(false);\n }\n notifyChatClient(netInfoState);\n });\n };\n\n const setInitialOnlineState = async () => {\n const status = await NetInfo.fetch();\n if (isMounted.current) {\n setIsOnline(status);\n notifyChatClient(status);\n }\n };\n\n setInitialOnlineState();\n const chatListeners: Array<ReturnType<StreamChat['on']>> = [];\n\n if (client) {\n chatListeners.push(client.on('connection.changed', handleChangedEvent));\n chatListeners.push(client.on('connection.recovered', handleRecoveredEvent));\n setNetInfoListener();\n }\n\n return () => {\n chatListeners.forEach((listener) => listener.unsubscribe?.());\n unsubscribeNetInfo?.();\n };\n }, [clientExits]);\n\n return { connectionRecovering, isOnline };\n};\n"]}
1
+ {"version":3,"sources":["useIsOnline.ts"],"names":["useIsOnline","client","closeConnectionOnBackground","isOnline","setIsOnline","connectionRecovering","setConnectionRecovering","isMounted","clientExits","onBackground","cid","activeChannels","channel","state","setIsUpToDate","closeConnection","onForeground","openConnection","handleChangedEvent","event","online","handleRecoveredEvent","notifyChatClient","netInfoState","wsConnection","onlineStatusChanged","type","unsubscribeNetInfo","setNetInfoListener","NetInfo","addEventListener","isHealthy","setInitialOnlineState","fetch","status","current","chatListeners","push","on","forEach","listener","unsubscribe"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nimport type { NetInfoSubscription } from '@react-native-community/netinfo';\n\nimport type { StreamChat, Event as StreamEvent } from 'stream-chat';\n\nimport { useAppStateListener } from '../../../hooks/useAppStateListener';\nimport { useIsMountedRef } from '../../../hooks/useIsMountedRef';\nimport { NetInfo } from '../../../native';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\n/**\n * Disconnect the websocket connection when app goes to background,\n * and reconnect when app comes to foreground.\n * We do this to make sure, user receives push notifications when app is in the background.\n * You can't receive push notification until you have active websocket connection.\n */\nexport const useIsOnline = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n client: StreamChat<StreamChatGenerics>,\n closeConnectionOnBackground = true,\n) => {\n const [isOnline, setIsOnline] = useState(true);\n const [connectionRecovering, setConnectionRecovering] = useState(false);\n const isMounted = useIsMountedRef();\n const clientExits = !!client;\n\n const onBackground = useCallback(() => {\n if (!closeConnectionOnBackground) return;\n\n for (const cid in client.activeChannels) {\n const channel = client.activeChannels[cid];\n channel?.state.setIsUpToDate(false);\n }\n\n client.closeConnection();\n setIsOnline(false);\n }, [closeConnectionOnBackground, client]);\n\n const onForeground = useCallback(() => {\n if (!closeConnectionOnBackground) return;\n\n client.openConnection();\n }, [closeConnectionOnBackground, client]);\n\n useAppStateListener(onForeground, onBackground);\n\n useEffect(() => {\n const handleChangedEvent = (event: StreamEvent<StreamChatGenerics>) => {\n setConnectionRecovering(!event.online);\n setIsOnline(event.online || false);\n };\n\n const handleRecoveredEvent = () => setConnectionRecovering(false);\n\n const notifyChatClient = (netInfoState: boolean) => {\n if (client?.wsConnection) {\n if (netInfoState) {\n client.wsConnection.onlineStatusChanged({\n type: 'online',\n } as Event);\n } else {\n client.wsConnection.onlineStatusChanged({\n type: 'offline',\n } as Event);\n }\n }\n };\n\n let unsubscribeNetInfo: NetInfoSubscription;\n const setNetInfoListener = () => {\n unsubscribeNetInfo = NetInfo.addEventListener((netInfoState) => {\n if (netInfoState === false && !client.wsConnection?.isHealthy) {\n setConnectionRecovering(true);\n setIsOnline(false);\n }\n notifyChatClient(netInfoState);\n });\n };\n\n const setInitialOnlineState = async () => {\n const status = await NetInfo.fetch();\n if (isMounted.current) {\n setIsOnline(status);\n notifyChatClient(status);\n }\n };\n\n setInitialOnlineState();\n const chatListeners: Array<ReturnType<StreamChat['on']>> = [];\n\n if (client) {\n chatListeners.push(client.on('connection.changed', handleChangedEvent));\n chatListeners.push(client.on('connection.recovered', handleRecoveredEvent));\n setNetInfoListener();\n }\n\n return () => {\n chatListeners.forEach((listener) => listener.unsubscribe?.());\n unsubscribeNetInfo?.();\n };\n }, [clientExits]);\n\n return { connectionRecovering, isOnline };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["useMutedUsers.ts"],"names":["useMutedUsers","client","mutedUsers","setMutedUsers","handleEvent","event","mutes","me","on","off"],"mappings":";;;;;;;;;AAAA;;AAeO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAS3BC,MAT2B,EAUxB;AACH,kBAAoC,qBAAqBA,MAAM,CAACC,UAAP,IAAqB,EAA1C,CAApC;AAAA;AAAA,MAAOA,UAAP;AAAA,MAAmBC,aAAnB;;AAEA,wBAAU,YAAM;AACd,QAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,KAAD,EAA8C;AAChEF,MAAAA,aAAa,CAAC,UAACG,KAAD;AAAA;;AAAA,eAAW,cAAAD,KAAK,CAACE,EAAN,+BAAUD,KAAV,KAAmBA,KAAnB,IAA4B,EAAvC;AAAA,OAAD,CAAb;AACD,KAFD;;AAIAL,IAAAA,MAAM,CAACO,EAAP,CAAU,4BAAV,EAAwCJ,WAAxC;AACA,WAAO;AAAA,aAAMH,MAAM,CAACQ,GAAP,CAAW,4BAAX,EAAyCL,WAAzC,CAAN;AAAA,KAAP;AACD,GAPD,EAOG,CAACD,aAAD,CAPH;AASA,SAAOD,UAAP;AACD,CAvBM","sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Event, Mute, StreamChat } from 'stream-chat';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nexport const useMutedUsers = <\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 client: StreamChat<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const [mutedUsers, setMutedUsers] = useState<Mute<Us>[]>(client.mutedUsers || []);\n\n useEffect(() => {\n const handleEvent = (event: Event<At, Ch, Co, Ev, Me, Re, Us>) => {\n setMutedUsers((mutes) => event.me?.mutes || mutes || []);\n };\n\n client.on('notification.mutes_updated', handleEvent);\n return () => client.off('notification.mutes_updated', handleEvent);\n }, [setMutedUsers]);\n\n return mutedUsers;\n};\n"]}
1
+ {"version":3,"sources":["useMutedUsers.ts"],"names":["useMutedUsers","client","mutedUsers","setMutedUsers","handleEvent","event","mutes","me","on","off"],"mappings":";;;;;;;;;AAAA;;AAMO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAG3BC,MAH2B,EAIxB;AACH,kBAAoC,qBAAqCA,MAAM,CAACC,UAAP,IAAqB,EAA1D,CAApC;AAAA;AAAA,MAAOA,UAAP;AAAA,MAAmBC,aAAnB;;AAEA,wBAAU,YAAM;AACd,QAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,KAAD,EAAsC;AACxDF,MAAAA,aAAa,CAAC,UAACG,KAAD;AAAA;;AAAA,eAAW,cAAAD,KAAK,CAACE,EAAN,+BAAUD,KAAV,KAAmBA,KAAnB,IAA4B,EAAvC;AAAA,OAAD,CAAb;AACD,KAFD;;AAIAL,IAAAA,MAAM,CAACO,EAAP,CAAU,4BAAV,EAAwCJ,WAAxC;AACA,WAAO;AAAA,aAAMH,MAAM,CAACQ,GAAP,CAAW,4BAAX,EAAyCL,WAAzC,CAAN;AAAA,KAAP;AACD,GAPD,EAOG,CAACD,aAAD,CAPH;AASA,SAAOD,UAAP;AACD,CAjBM","sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Event, Mute, StreamChat } from 'stream-chat';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nexport const useMutedUsers = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n client: StreamChat<StreamChatGenerics>,\n) => {\n const [mutedUsers, setMutedUsers] = useState<Mute<StreamChatGenerics>[]>(client.mutedUsers || []);\n\n useEffect(() => {\n const handleEvent = (event: Event<StreamChatGenerics>) => {\n setMutedUsers((mutes) => event.me?.mutes || mutes || []);\n };\n\n client.on('notification.mutes_updated', handleEvent);\n return () => client.off('notification.mutes_updated', handleEvent);\n }, [setMutedUsers]);\n\n return mutedUsers;\n};\n"]}