stream-chat-react-native-core 5.25.0-beta.7 → 5.25.1-beta.1

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 (619) hide show
  1. package/lib/commonjs/components/Channel/Channel.js +422 -393
  2. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  3. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
  4. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js +2 -2
  5. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  6. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +1 -4
  7. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  8. package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js +4 -4
  9. package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
  10. package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  11. package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
  12. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js +2 -2
  13. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
  14. package/lib/commonjs/components/Message/Message.js +7 -7
  15. package/lib/commonjs/components/Message/Message.js.map +1 -1
  16. package/lib/commonjs/components/MessageInput/hooks/useCountdown.js.map +1 -1
  17. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +5 -5
  18. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -1
  19. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
  20. package/lib/commonjs/contexts/chatContext/ChatContext.js +2 -2
  21. package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
  22. package/lib/commonjs/contexts/themeContext/ThemeContext.js.map +1 -1
  23. package/lib/commonjs/i18n/en.json +1 -1
  24. package/lib/commonjs/i18n/es.json +38 -38
  25. package/lib/commonjs/i18n/fr.json +38 -38
  26. package/lib/commonjs/i18n/he.json +38 -38
  27. package/lib/commonjs/i18n/hi.json +38 -38
  28. package/lib/commonjs/i18n/it.json +39 -39
  29. package/lib/commonjs/i18n/ja.json +39 -39
  30. package/lib/commonjs/i18n/ko.json +39 -39
  31. package/lib/commonjs/i18n/nl.json +39 -39
  32. package/lib/commonjs/i18n/ru.json +36 -36
  33. package/lib/commonjs/i18n/tr.json +36 -36
  34. package/lib/commonjs/icons/ArrowRight.js.map +1 -1
  35. package/lib/commonjs/icons/AtMentions.js.map +1 -1
  36. package/lib/commonjs/icons/Attach.js.map +1 -1
  37. package/lib/commonjs/icons/Audio.js.map +1 -1
  38. package/lib/commonjs/icons/CSV.js.map +1 -1
  39. package/lib/commonjs/icons/Camera.js.map +1 -1
  40. package/lib/commonjs/icons/Check.js.map +1 -1
  41. package/lib/commonjs/icons/CheckAll.js.map +1 -1
  42. package/lib/commonjs/icons/CheckSend.js.map +1 -1
  43. package/lib/commonjs/icons/CircleClose.js.map +1 -1
  44. package/lib/commonjs/icons/CirclePlus.js.map +1 -1
  45. package/lib/commonjs/icons/CircleRight.js.map +1 -1
  46. package/lib/commonjs/icons/Close.js.map +1 -1
  47. package/lib/commonjs/icons/Copy.js.map +1 -1
  48. package/lib/commonjs/icons/CurveLineLeftUp.js.map +1 -1
  49. package/lib/commonjs/icons/DOC.js.map +1 -1
  50. package/lib/commonjs/icons/DOCX.js.map +1 -1
  51. package/lib/commonjs/icons/Delete.js.map +1 -1
  52. package/lib/commonjs/icons/Down.js.map +1 -1
  53. package/lib/commonjs/icons/DownloadArrow.js.map +1 -1
  54. package/lib/commonjs/icons/DownloadCloud.js.map +1 -1
  55. package/lib/commonjs/icons/Edit.js.map +1 -1
  56. package/lib/commonjs/icons/Error.js.map +1 -1
  57. package/lib/commonjs/icons/Eye.js.map +1 -1
  58. package/lib/commonjs/icons/Flag.js.map +1 -1
  59. package/lib/commonjs/icons/Folder.js.map +1 -1
  60. package/lib/commonjs/icons/GenericFile.js.map +1 -1
  61. package/lib/commonjs/icons/GiphyIcon.js.map +1 -1
  62. package/lib/commonjs/icons/Grid.js.map +1 -1
  63. package/lib/commonjs/icons/Group.js.map +1 -1
  64. package/lib/commonjs/icons/HTML.js.map +1 -1
  65. package/lib/commonjs/icons/Imgur.js.map +1 -1
  66. package/lib/commonjs/icons/LOLReaction.js.map +1 -1
  67. package/lib/commonjs/icons/Lightning.js.map +1 -1
  68. package/lib/commonjs/icons/Link.js.map +1 -1
  69. package/lib/commonjs/icons/Logo.js.map +1 -1
  70. package/lib/commonjs/icons/LoveReaction.js.map +1 -1
  71. package/lib/commonjs/icons/MD.js.map +1 -1
  72. package/lib/commonjs/icons/MailOpen.js.map +1 -1
  73. package/lib/commonjs/icons/MenuPointHorizontal.js.map +1 -1
  74. package/lib/commonjs/icons/MenuPointVertical.js.map +1 -1
  75. package/lib/commonjs/icons/MessageFlag.js.map +1 -1
  76. package/lib/commonjs/icons/MessageIcon.js.map +1 -1
  77. package/lib/commonjs/icons/Mute.js.map +1 -1
  78. package/lib/commonjs/icons/Notification.js.map +1 -1
  79. package/lib/commonjs/icons/ODT.js.map +1 -1
  80. package/lib/commonjs/icons/PDF.js.map +1 -1
  81. package/lib/commonjs/icons/PPT.js.map +1 -1
  82. package/lib/commonjs/icons/PPTX.js.map +1 -1
  83. package/lib/commonjs/icons/Pause.js.map +1 -1
  84. package/lib/commonjs/icons/Picture.js.map +1 -1
  85. package/lib/commonjs/icons/Pin.js.map +1 -1
  86. package/lib/commonjs/icons/PinHeader.js.map +1 -1
  87. package/lib/commonjs/icons/Play.js.map +1 -1
  88. package/lib/commonjs/icons/RAR.js.map +1 -1
  89. package/lib/commonjs/icons/RTF.js.map +1 -1
  90. package/lib/commonjs/icons/Recorder.js.map +1 -1
  91. package/lib/commonjs/icons/Refresh.js.map +1 -1
  92. package/lib/commonjs/icons/SEVEN_Z.js.map +1 -1
  93. package/lib/commonjs/icons/Search.js.map +1 -1
  94. package/lib/commonjs/icons/SendRight.js.map +1 -1
  95. package/lib/commonjs/icons/SendUp.js.map +1 -1
  96. package/lib/commonjs/icons/Share.js.map +1 -1
  97. package/lib/commonjs/icons/ShareRightArrow.js.map +1 -1
  98. package/lib/commonjs/icons/Smile.js.map +1 -1
  99. package/lib/commonjs/icons/Sound.js.map +1 -1
  100. package/lib/commonjs/icons/TAR.js.map +1 -1
  101. package/lib/commonjs/icons/TXT.js.map +1 -1
  102. package/lib/commonjs/icons/ThreadReply.js.map +1 -1
  103. package/lib/commonjs/icons/ThumbsDownReaction.js.map +1 -1
  104. package/lib/commonjs/icons/ThumbsUpReaction.js.map +1 -1
  105. package/lib/commonjs/icons/Time.js.map +1 -1
  106. package/lib/commonjs/icons/Unknown.js.map +1 -1
  107. package/lib/commonjs/icons/Unpin.js.map +1 -1
  108. package/lib/commonjs/icons/User.js.map +1 -1
  109. package/lib/commonjs/icons/UserAdd.js.map +1 -1
  110. package/lib/commonjs/icons/UserAdmin.js.map +1 -1
  111. package/lib/commonjs/icons/UserDelete.js.map +1 -1
  112. package/lib/commonjs/icons/UserMinus.js.map +1 -1
  113. package/lib/commonjs/icons/Video.js.map +1 -1
  114. package/lib/commonjs/icons/Warning.js.map +1 -1
  115. package/lib/commonjs/icons/WutReaction.js.map +1 -1
  116. package/lib/commonjs/icons/XLS.js.map +1 -1
  117. package/lib/commonjs/icons/XLSX.js.map +1 -1
  118. package/lib/commonjs/icons/ZIP.js.map +1 -1
  119. package/lib/commonjs/icons/utils/base.js.map +1 -1
  120. package/lib/commonjs/version.json +1 -1
  121. package/lib/module/components/Channel/Channel.js +422 -393
  122. package/lib/module/components/Channel/Channel.js.map +1 -1
  123. package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
  124. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js +2 -2
  125. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  126. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +1 -4
  127. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  128. package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js +4 -4
  129. package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
  130. package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  131. package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
  132. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js +2 -2
  133. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
  134. package/lib/module/components/Message/Message.js +7 -7
  135. package/lib/module/components/Message/Message.js.map +1 -1
  136. package/lib/module/components/MessageInput/hooks/useCountdown.js.map +1 -1
  137. package/lib/module/components/MessageOverlay/MessageActionListItem.js +5 -5
  138. package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -1
  139. package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
  140. package/lib/module/contexts/chatContext/ChatContext.js +2 -2
  141. package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
  142. package/lib/module/contexts/themeContext/ThemeContext.js.map +1 -1
  143. package/lib/module/i18n/en.json +1 -1
  144. package/lib/module/i18n/es.json +38 -38
  145. package/lib/module/i18n/fr.json +38 -38
  146. package/lib/module/i18n/he.json +38 -38
  147. package/lib/module/i18n/hi.json +38 -38
  148. package/lib/module/i18n/it.json +39 -39
  149. package/lib/module/i18n/ja.json +39 -39
  150. package/lib/module/i18n/ko.json +39 -39
  151. package/lib/module/i18n/nl.json +39 -39
  152. package/lib/module/i18n/ru.json +36 -36
  153. package/lib/module/i18n/tr.json +36 -36
  154. package/lib/module/icons/ArrowRight.js.map +1 -1
  155. package/lib/module/icons/AtMentions.js.map +1 -1
  156. package/lib/module/icons/Attach.js.map +1 -1
  157. package/lib/module/icons/Audio.js.map +1 -1
  158. package/lib/module/icons/CSV.js.map +1 -1
  159. package/lib/module/icons/Camera.js.map +1 -1
  160. package/lib/module/icons/Check.js.map +1 -1
  161. package/lib/module/icons/CheckAll.js.map +1 -1
  162. package/lib/module/icons/CheckSend.js.map +1 -1
  163. package/lib/module/icons/CircleClose.js.map +1 -1
  164. package/lib/module/icons/CirclePlus.js.map +1 -1
  165. package/lib/module/icons/CircleRight.js.map +1 -1
  166. package/lib/module/icons/Close.js.map +1 -1
  167. package/lib/module/icons/Copy.js.map +1 -1
  168. package/lib/module/icons/CurveLineLeftUp.js.map +1 -1
  169. package/lib/module/icons/DOC.js.map +1 -1
  170. package/lib/module/icons/DOCX.js.map +1 -1
  171. package/lib/module/icons/Delete.js.map +1 -1
  172. package/lib/module/icons/Down.js.map +1 -1
  173. package/lib/module/icons/DownloadArrow.js.map +1 -1
  174. package/lib/module/icons/DownloadCloud.js.map +1 -1
  175. package/lib/module/icons/Edit.js.map +1 -1
  176. package/lib/module/icons/Error.js.map +1 -1
  177. package/lib/module/icons/Eye.js.map +1 -1
  178. package/lib/module/icons/Flag.js.map +1 -1
  179. package/lib/module/icons/Folder.js.map +1 -1
  180. package/lib/module/icons/GenericFile.js.map +1 -1
  181. package/lib/module/icons/GiphyIcon.js.map +1 -1
  182. package/lib/module/icons/Grid.js.map +1 -1
  183. package/lib/module/icons/Group.js.map +1 -1
  184. package/lib/module/icons/HTML.js.map +1 -1
  185. package/lib/module/icons/Imgur.js.map +1 -1
  186. package/lib/module/icons/LOLReaction.js.map +1 -1
  187. package/lib/module/icons/Lightning.js.map +1 -1
  188. package/lib/module/icons/Link.js.map +1 -1
  189. package/lib/module/icons/Logo.js.map +1 -1
  190. package/lib/module/icons/LoveReaction.js.map +1 -1
  191. package/lib/module/icons/MD.js.map +1 -1
  192. package/lib/module/icons/MailOpen.js.map +1 -1
  193. package/lib/module/icons/MenuPointHorizontal.js.map +1 -1
  194. package/lib/module/icons/MenuPointVertical.js.map +1 -1
  195. package/lib/module/icons/MessageFlag.js.map +1 -1
  196. package/lib/module/icons/MessageIcon.js.map +1 -1
  197. package/lib/module/icons/Mute.js.map +1 -1
  198. package/lib/module/icons/Notification.js.map +1 -1
  199. package/lib/module/icons/ODT.js.map +1 -1
  200. package/lib/module/icons/PDF.js.map +1 -1
  201. package/lib/module/icons/PPT.js.map +1 -1
  202. package/lib/module/icons/PPTX.js.map +1 -1
  203. package/lib/module/icons/Pause.js.map +1 -1
  204. package/lib/module/icons/Picture.js.map +1 -1
  205. package/lib/module/icons/Pin.js.map +1 -1
  206. package/lib/module/icons/PinHeader.js.map +1 -1
  207. package/lib/module/icons/Play.js.map +1 -1
  208. package/lib/module/icons/RAR.js.map +1 -1
  209. package/lib/module/icons/RTF.js.map +1 -1
  210. package/lib/module/icons/Recorder.js.map +1 -1
  211. package/lib/module/icons/Refresh.js.map +1 -1
  212. package/lib/module/icons/SEVEN_Z.js.map +1 -1
  213. package/lib/module/icons/Search.js.map +1 -1
  214. package/lib/module/icons/SendRight.js.map +1 -1
  215. package/lib/module/icons/SendUp.js.map +1 -1
  216. package/lib/module/icons/Share.js.map +1 -1
  217. package/lib/module/icons/ShareRightArrow.js.map +1 -1
  218. package/lib/module/icons/Smile.js.map +1 -1
  219. package/lib/module/icons/Sound.js.map +1 -1
  220. package/lib/module/icons/TAR.js.map +1 -1
  221. package/lib/module/icons/TXT.js.map +1 -1
  222. package/lib/module/icons/ThreadReply.js.map +1 -1
  223. package/lib/module/icons/ThumbsDownReaction.js.map +1 -1
  224. package/lib/module/icons/ThumbsUpReaction.js.map +1 -1
  225. package/lib/module/icons/Time.js.map +1 -1
  226. package/lib/module/icons/Unknown.js.map +1 -1
  227. package/lib/module/icons/Unpin.js.map +1 -1
  228. package/lib/module/icons/User.js.map +1 -1
  229. package/lib/module/icons/UserAdd.js.map +1 -1
  230. package/lib/module/icons/UserAdmin.js.map +1 -1
  231. package/lib/module/icons/UserDelete.js.map +1 -1
  232. package/lib/module/icons/UserMinus.js.map +1 -1
  233. package/lib/module/icons/Video.js.map +1 -1
  234. package/lib/module/icons/Warning.js.map +1 -1
  235. package/lib/module/icons/WutReaction.js.map +1 -1
  236. package/lib/module/icons/XLS.js.map +1 -1
  237. package/lib/module/icons/XLSX.js.map +1 -1
  238. package/lib/module/icons/ZIP.js.map +1 -1
  239. package/lib/module/icons/utils/base.js.map +1 -1
  240. package/lib/module/version.json +1 -1
  241. package/lib/typescript/components/Attachment/Attachment.d.ts +3 -3
  242. package/lib/typescript/components/Attachment/AttachmentActions.d.ts +2 -2
  243. package/lib/typescript/components/Attachment/AudioAttachment.d.ts +2 -2
  244. package/lib/typescript/components/Attachment/Card.d.ts +2 -2
  245. package/lib/typescript/components/Attachment/FileAttachment.d.ts +3 -3
  246. package/lib/typescript/components/Attachment/FileAttachmentGroup.d.ts +2 -2
  247. package/lib/typescript/components/Attachment/FileIcon.d.ts +1 -1
  248. package/lib/typescript/components/Attachment/Gallery.d.ts +2 -2
  249. package/lib/typescript/components/Attachment/GalleryImage.d.ts +2 -2
  250. package/lib/typescript/components/Attachment/Giphy.d.ts +2 -2
  251. package/lib/typescript/components/Attachment/ImageLoadingFailedIndicator.d.ts +1 -1
  252. package/lib/typescript/components/Attachment/ImageLoadingIndicator.d.ts +1 -1
  253. package/lib/typescript/components/Attachment/VideoThumbnail.d.ts +1 -1
  254. package/lib/typescript/components/Attachment/utils/buildGallery/types.d.ts +4 -4
  255. package/lib/typescript/components/Attachment/utils/getGalleryImageBorderRadius.d.ts +1 -1
  256. package/lib/typescript/components/Attachment/utils/openUrlSafely.d.ts +1 -1
  257. package/lib/typescript/components/AttachmentPicker/AttachmentPicker.d.ts +1 -1
  258. package/lib/typescript/components/AttachmentPicker/components/AttachmentPickerError.d.ts +1 -1
  259. package/lib/typescript/components/AttachmentPicker/components/AttachmentPickerItem.d.ts +1 -1
  260. package/lib/typescript/components/AttachmentPicker/components/ImageSelectorIcon.d.ts +1 -1
  261. package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts +2 -2
  262. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionHeader.d.ts +2 -2
  263. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionItem.d.ts +2 -2
  264. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts +3 -3
  265. package/lib/typescript/components/Avatar/Avatar.d.ts +1 -1
  266. package/lib/typescript/components/Avatar/GroupAvatar.d.ts +1 -1
  267. package/lib/typescript/components/Channel/Channel.d.ts +2 -2
  268. package/lib/typescript/components/Channel/hooks/useTargetedMessage.d.ts +1 -1
  269. package/lib/typescript/components/ChannelList/ChannelList.d.ts +1 -1
  270. package/lib/typescript/components/ChannelList/ChannelListHeaderErrorIndicator.d.ts +1 -1
  271. package/lib/typescript/components/ChannelList/ChannelListMessenger.d.ts +2 -2
  272. package/lib/typescript/components/ChannelList/hooks/listeners/useAddedToChannelNotification.d.ts +1 -1
  273. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelDeleted.d.ts +1 -1
  274. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelHidden.d.ts +1 -1
  275. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelTruncated.d.ts +1 -1
  276. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelUpdated.d.ts +1 -1
  277. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelVisible.d.ts +1 -1
  278. package/lib/typescript/components/ChannelList/hooks/listeners/useNewMessage.d.ts +1 -1
  279. package/lib/typescript/components/ChannelList/hooks/listeners/useNewMessageNotification.d.ts +1 -1
  280. package/lib/typescript/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.d.ts +1 -1
  281. package/lib/typescript/components/ChannelList/hooks/listeners/useUserPresence.d.ts +1 -1
  282. package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +3 -3
  283. package/lib/typescript/components/ChannelList/utils.d.ts +2 -2
  284. package/lib/typescript/components/ChannelPreview/ChannelAvatar.d.ts +2 -2
  285. package/lib/typescript/components/ChannelPreview/ChannelPreview.d.ts +3 -3
  286. package/lib/typescript/components/ChannelPreview/ChannelPreviewMessage.d.ts +4 -1
  287. package/lib/typescript/components/ChannelPreview/ChannelPreviewMessenger.d.ts +2 -2
  288. package/lib/typescript/components/ChannelPreview/ChannelPreviewStatus.d.ts +1 -2
  289. package/lib/typescript/components/ChannelPreview/ChannelPreviewTitle.d.ts +5 -4
  290. package/lib/typescript/components/ChannelPreview/ChannelPreviewUnreadCount.d.ts +5 -3
  291. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayName.d.ts +1 -1
  292. package/lib/typescript/components/ChannelPreview/hooks/useLatestMessagePreview.d.ts +2 -2
  293. package/lib/typescript/components/Chat/Chat.d.ts +1 -1
  294. package/lib/typescript/components/Chat/hooks/handleEventToSyncDB.d.ts +1 -1
  295. package/lib/typescript/components/Chat/hooks/useSyncDatabase.d.ts +1 -1
  296. package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +3 -3
  297. package/lib/typescript/components/ImageGallery/components/AnimatedGalleryImage.d.ts +1 -1
  298. package/lib/typescript/components/ImageGallery/components/AnimatedGalleryVideo.d.ts +1 -1
  299. package/lib/typescript/components/ImageGallery/components/ImageGalleryFooter.d.ts +6 -6
  300. package/lib/typescript/components/ImageGallery/components/ImageGalleryHeader.d.ts +3 -3
  301. package/lib/typescript/components/ImageGallery/components/ImageGalleryOverlay.d.ts +1 -1
  302. package/lib/typescript/components/ImageGallery/components/ImageGrid.d.ts +4 -4
  303. package/lib/typescript/components/ImageGallery/components/ImageGridHandle.d.ts +3 -3
  304. package/lib/typescript/components/Indicators/EmptyStateIndicator.d.ts +1 -1
  305. package/lib/typescript/components/Indicators/LoadingDot.d.ts +1 -1
  306. package/lib/typescript/components/Indicators/LoadingDots.d.ts +1 -1
  307. package/lib/typescript/components/Indicators/LoadingErrorIndicator.d.ts +1 -1
  308. package/lib/typescript/components/Indicators/LoadingIndicator.d.ts +1 -1
  309. package/lib/typescript/components/Message/Message.d.ts +18 -9
  310. package/lib/typescript/components/Message/MessageSimple/MessageAvatar.d.ts +2 -2
  311. package/lib/typescript/components/Message/MessageSimple/MessageBounce.d.ts +2 -2
  312. package/lib/typescript/components/Message/MessageSimple/MessageContent.d.ts +2 -2
  313. package/lib/typescript/components/Message/MessageSimple/MessageDeleted.d.ts +2 -2
  314. package/lib/typescript/components/Message/MessageSimple/MessageError.d.ts +1 -1
  315. package/lib/typescript/components/Message/MessageSimple/MessageFooter.d.ts +2 -2
  316. package/lib/typescript/components/Message/MessageSimple/MessagePinnedHeader.d.ts +2 -2
  317. package/lib/typescript/components/Message/MessageSimple/MessageReplies.d.ts +2 -2
  318. package/lib/typescript/components/Message/MessageSimple/MessageRepliesAvatars.d.ts +2 -2
  319. package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts +2 -2
  320. package/lib/typescript/components/Message/MessageSimple/MessageStatus.d.ts +2 -2
  321. package/lib/typescript/components/Message/MessageSimple/MessageTextContainer.d.ts +3 -3
  322. package/lib/typescript/components/Message/MessageSimple/ReactionList.d.ts +3 -3
  323. package/lib/typescript/components/Message/MessageSimple/utils/generateMarkdownText.d.ts +1 -1
  324. package/lib/typescript/components/Message/MessageSimple/utils/renderText.d.ts +2 -2
  325. package/lib/typescript/components/Message/utils/messageActions.d.ts +2 -2
  326. package/lib/typescript/components/MessageInput/AttachButton.d.ts +2 -2
  327. package/lib/typescript/components/MessageInput/CommandsButton.d.ts +2 -2
  328. package/lib/typescript/components/MessageInput/CooldownTimer.d.ts +1 -1
  329. package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +2 -2
  330. package/lib/typescript/components/MessageInput/ImageUploadPreview.d.ts +2 -2
  331. package/lib/typescript/components/MessageInput/InputButtons.d.ts +2 -2
  332. package/lib/typescript/components/MessageInput/MessageInput.d.ts +2 -2
  333. package/lib/typescript/components/MessageInput/MoreOptionsButton.d.ts +2 -2
  334. package/lib/typescript/components/MessageInput/SendButton.d.ts +2 -2
  335. package/lib/typescript/components/MessageInput/ShowThreadMessageInChannelButton.d.ts +2 -2
  336. package/lib/typescript/components/MessageInput/UploadProgressIndicator.d.ts +1 -1
  337. package/lib/typescript/components/MessageInput/components/InputEditingStateHeader.d.ts +2 -2
  338. package/lib/typescript/components/MessageInput/components/InputGiphySearch.d.ts +2 -2
  339. package/lib/typescript/components/MessageInput/components/InputReplyStateHeader.d.ts +2 -2
  340. package/lib/typescript/components/MessageList/DateHeader.d.ts +1 -1
  341. package/lib/typescript/components/MessageList/InlineDateSeparator.d.ts +1 -1
  342. package/lib/typescript/components/MessageList/InlineLoadingMoreIndicator.d.ts +1 -1
  343. package/lib/typescript/components/MessageList/InlineLoadingMoreRecentIndicator.d.ts +1 -1
  344. package/lib/typescript/components/MessageList/InlineLoadingMoreThreadIndicator.d.ts +1 -1
  345. package/lib/typescript/components/MessageList/MessageList.d.ts +2 -2
  346. package/lib/typescript/components/MessageList/MessageSystem.d.ts +1 -1
  347. package/lib/typescript/components/MessageList/ScrollToBottomButton.d.ts +1 -1
  348. package/lib/typescript/components/MessageList/TypingIndicatorContainer.d.ts +2 -2
  349. package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts +4 -4
  350. package/lib/typescript/components/MessageList/utils/filterTypingUsers.d.ts +1 -1
  351. package/lib/typescript/components/MessageList/utils/getDateSeparators.d.ts +2 -2
  352. package/lib/typescript/components/MessageList/utils/getGroupStyles.d.ts +1 -1
  353. package/lib/typescript/components/MessageList/utils/getReadStates.d.ts +1 -0
  354. package/lib/typescript/components/MessageOverlay/MessageActionList.d.ts +2 -2
  355. package/lib/typescript/components/MessageOverlay/MessageActionListItem.d.ts +19 -3
  356. package/lib/typescript/components/MessageOverlay/MessageOverlay.d.ts +2 -2
  357. package/lib/typescript/components/MessageOverlay/OverlayBackdrop.d.ts +1 -1
  358. package/lib/typescript/components/MessageOverlay/OverlayReactionList.d.ts +3 -3
  359. package/lib/typescript/components/MessageOverlay/OverlayReactions.d.ts +2 -2
  360. package/lib/typescript/components/MessageOverlay/OverlayReactionsAvatar.d.ts +1 -1
  361. package/lib/typescript/components/MessageOverlay/hooks/useMessageActionAnimation.d.ts +1 -1
  362. package/lib/typescript/components/ProgressControl/ProgressControl.d.ts +1 -1
  363. package/lib/typescript/components/RTLComponents/WritingDirectionAwareText.d.ts +1 -1
  364. package/lib/typescript/components/Reply/Reply.d.ts +2 -2
  365. package/lib/typescript/components/Spinner/Spinner.d.ts +1 -1
  366. package/lib/typescript/components/Thread/Thread.d.ts +2 -2
  367. package/lib/typescript/contexts/activeChannelsRefContext/ActiveChannelsRefContext.d.ts +1 -1
  368. package/lib/typescript/contexts/attachmentPickerContext/AttachmentPickerContext.d.ts +2 -2
  369. package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +1 -1
  370. package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +2 -2
  371. package/lib/typescript/contexts/channelsStateContext/ChannelsStateContext.d.ts +5 -5
  372. package/lib/typescript/contexts/channelsStateContext/useChannelState.d.ts +1 -1
  373. package/lib/typescript/contexts/chatContext/ChatContext.d.ts +4 -1
  374. package/lib/typescript/contexts/debugContext/DebugContext.d.ts +2 -2
  375. package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContext.d.ts +2 -2
  376. package/lib/typescript/contexts/keyboardContext/KeyboardContext.d.ts +1 -1
  377. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +3 -3
  378. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +5 -5
  379. package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts +1 -1
  380. package/lib/typescript/contexts/messageOverlayContext/MessageOverlayContext.d.ts +2 -2
  381. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +3 -3
  382. package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts +3 -3
  383. package/lib/typescript/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.d.ts +2 -2
  384. package/lib/typescript/contexts/paginatedMessageListContext/PaginatedMessageListContext.d.ts +1 -1
  385. package/lib/typescript/contexts/suggestionsContext/SuggestionsContext.d.ts +6 -6
  386. package/lib/typescript/contexts/themeContext/ThemeContext.d.ts +5 -5
  387. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +2 -2
  388. package/lib/typescript/contexts/threadContext/ThreadContext.d.ts +1 -1
  389. package/lib/typescript/contexts/translationContext/TranslationContext.d.ts +5 -5
  390. package/lib/typescript/contexts/typingContext/TypingContext.d.ts +1 -1
  391. package/lib/typescript/emoji-data/index.d.ts +2 -2
  392. package/lib/typescript/hooks/useAppStateListener.d.ts +1 -1
  393. package/lib/typescript/hooks/useStreami18n.d.ts +1 -1
  394. package/lib/typescript/hooks/useViewport.d.ts +1 -1
  395. package/lib/typescript/i18n/en.json +1 -1
  396. package/lib/typescript/i18n/es.json +38 -38
  397. package/lib/typescript/i18n/fr.json +38 -38
  398. package/lib/typescript/i18n/he.json +38 -38
  399. package/lib/typescript/i18n/hi.json +38 -38
  400. package/lib/typescript/i18n/it.json +39 -39
  401. package/lib/typescript/i18n/ja.json +39 -39
  402. package/lib/typescript/i18n/ko.json +39 -39
  403. package/lib/typescript/i18n/nl.json +39 -39
  404. package/lib/typescript/i18n/ru.json +36 -36
  405. package/lib/typescript/i18n/tr.json +36 -36
  406. package/lib/typescript/icons/ArrowRight.d.ts +2 -2
  407. package/lib/typescript/icons/AtMentions.d.ts +2 -2
  408. package/lib/typescript/icons/Attach.d.ts +2 -2
  409. package/lib/typescript/icons/Audio.d.ts +2 -2
  410. package/lib/typescript/icons/CSV.d.ts +2 -2
  411. package/lib/typescript/icons/Camera.d.ts +2 -2
  412. package/lib/typescript/icons/Check.d.ts +2 -2
  413. package/lib/typescript/icons/CheckAll.d.ts +2 -2
  414. package/lib/typescript/icons/CheckSend.d.ts +2 -2
  415. package/lib/typescript/icons/CircleClose.d.ts +2 -2
  416. package/lib/typescript/icons/CirclePlus.d.ts +2 -2
  417. package/lib/typescript/icons/CircleRight.d.ts +2 -2
  418. package/lib/typescript/icons/Close.d.ts +2 -2
  419. package/lib/typescript/icons/CurveLineLeftUp.d.ts +2 -2
  420. package/lib/typescript/icons/DOC.d.ts +2 -2
  421. package/lib/typescript/icons/DOCX.d.ts +2 -2
  422. package/lib/typescript/icons/Delete.d.ts +2 -2
  423. package/lib/typescript/icons/Down.d.ts +2 -2
  424. package/lib/typescript/icons/DownloadArrow.d.ts +2 -2
  425. package/lib/typescript/icons/DownloadCloud.d.ts +2 -2
  426. package/lib/typescript/icons/Edit.d.ts +2 -2
  427. package/lib/typescript/icons/Error.d.ts +2 -2
  428. package/lib/typescript/icons/Eye.d.ts +2 -2
  429. package/lib/typescript/icons/Flag.d.ts +2 -2
  430. package/lib/typescript/icons/Folder.d.ts +2 -2
  431. package/lib/typescript/icons/GenericFile.d.ts +2 -2
  432. package/lib/typescript/icons/GiphyIcon.d.ts +2 -2
  433. package/lib/typescript/icons/Grid.d.ts +2 -2
  434. package/lib/typescript/icons/Group.d.ts +2 -2
  435. package/lib/typescript/icons/HTML.d.ts +2 -2
  436. package/lib/typescript/icons/Imgur.d.ts +2 -2
  437. package/lib/typescript/icons/LOLReaction.d.ts +2 -2
  438. package/lib/typescript/icons/Lightning.d.ts +2 -2
  439. package/lib/typescript/icons/Link.d.ts +2 -2
  440. package/lib/typescript/icons/Loading.d.ts +1 -1
  441. package/lib/typescript/icons/Logo.d.ts +2 -2
  442. package/lib/typescript/icons/LoveReaction.d.ts +2 -2
  443. package/lib/typescript/icons/MD.d.ts +2 -2
  444. package/lib/typescript/icons/MailOpen.d.ts +2 -2
  445. package/lib/typescript/icons/MenuPointHorizontal.d.ts +2 -2
  446. package/lib/typescript/icons/MenuPointVertical.d.ts +2 -2
  447. package/lib/typescript/icons/MessageFlag.d.ts +2 -2
  448. package/lib/typescript/icons/MessageIcon.d.ts +2 -2
  449. package/lib/typescript/icons/Mute.d.ts +2 -2
  450. package/lib/typescript/icons/Notification.d.ts +2 -2
  451. package/lib/typescript/icons/ODT.d.ts +2 -2
  452. package/lib/typescript/icons/PDF.d.ts +2 -2
  453. package/lib/typescript/icons/PPT.d.ts +2 -2
  454. package/lib/typescript/icons/PPTX.d.ts +2 -2
  455. package/lib/typescript/icons/Pause.d.ts +2 -2
  456. package/lib/typescript/icons/Picture.d.ts +2 -2
  457. package/lib/typescript/icons/Pin.d.ts +2 -2
  458. package/lib/typescript/icons/PinHeader.d.ts +2 -2
  459. package/lib/typescript/icons/Play.d.ts +2 -2
  460. package/lib/typescript/icons/RAR.d.ts +2 -2
  461. package/lib/typescript/icons/RTF.d.ts +2 -2
  462. package/lib/typescript/icons/Recorder.d.ts +2 -2
  463. package/lib/typescript/icons/Refresh.d.ts +2 -2
  464. package/lib/typescript/icons/SEVEN_Z.d.ts +2 -2
  465. package/lib/typescript/icons/Search.d.ts +2 -2
  466. package/lib/typescript/icons/SendRight.d.ts +2 -2
  467. package/lib/typescript/icons/SendUp.d.ts +2 -2
  468. package/lib/typescript/icons/Share.d.ts +2 -2
  469. package/lib/typescript/icons/ShareRightArrow.d.ts +2 -2
  470. package/lib/typescript/icons/Smile.d.ts +2 -2
  471. package/lib/typescript/icons/Sound.d.ts +2 -2
  472. package/lib/typescript/icons/TAR.d.ts +2 -2
  473. package/lib/typescript/icons/TXT.d.ts +2 -2
  474. package/lib/typescript/icons/ThreadReply.d.ts +2 -2
  475. package/lib/typescript/icons/ThumbsDownReaction.d.ts +2 -2
  476. package/lib/typescript/icons/ThumbsUpReaction.d.ts +2 -2
  477. package/lib/typescript/icons/Time.d.ts +2 -2
  478. package/lib/typescript/icons/Unknown.d.ts +2 -2
  479. package/lib/typescript/icons/Unpin.d.ts +2 -2
  480. package/lib/typescript/icons/User.d.ts +2 -2
  481. package/lib/typescript/icons/UserAdd.d.ts +2 -2
  482. package/lib/typescript/icons/UserAdmin.d.ts +2 -2
  483. package/lib/typescript/icons/UserDelete.d.ts +2 -2
  484. package/lib/typescript/icons/UserMinus.d.ts +2 -2
  485. package/lib/typescript/icons/Video.d.ts +2 -2
  486. package/lib/typescript/icons/Warning.d.ts +2 -2
  487. package/lib/typescript/icons/WutReaction.d.ts +2 -2
  488. package/lib/typescript/icons/XLS.d.ts +2 -2
  489. package/lib/typescript/icons/XLSX.d.ts +2 -2
  490. package/lib/typescript/icons/ZIP.d.ts +2 -2
  491. package/lib/typescript/icons/utils/base.d.ts +5 -5
  492. package/lib/typescript/native.d.ts +26 -26
  493. package/lib/typescript/store/QuickSqliteClient.d.ts +1 -1
  494. package/lib/typescript/store/apis/upsertChannels.d.ts +2 -2
  495. package/lib/typescript/store/apis/upsertCidsForQuery.d.ts +2 -2
  496. package/lib/typescript/store/mappers/mapDateTimeToStorable.d.ts +1 -1
  497. package/lib/typescript/store/schema.d.ts +2 -2
  498. package/lib/typescript/store/sqlite-utils/appendOrderByClause.d.ts +1 -1
  499. package/lib/typescript/store/sqlite-utils/appendWhereCluase.d.ts +1 -1
  500. package/lib/typescript/store/sqlite-utils/createUpsertQuery.d.ts +1 -1
  501. package/lib/typescript/store/types.d.ts +8 -8
  502. package/lib/typescript/types/types.d.ts +7 -7
  503. package/lib/typescript/utils/StreamChatRN.d.ts +1 -1
  504. package/lib/typescript/utils/Streami18n.d.ts +2 -2
  505. package/lib/typescript/utils/compressImage.d.ts +1 -1
  506. package/lib/typescript/utils/getResizedImageUrl.d.ts +1 -1
  507. package/lib/typescript/utils/utils.d.ts +14 -14
  508. package/package.json +2 -6
  509. package/src/components/Channel/Channel.tsx +27 -20
  510. package/src/components/ChannelPreview/ChannelPreview.tsx +1 -1
  511. package/src/components/ChannelPreview/ChannelPreviewMessage.tsx +3 -0
  512. package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +2 -3
  513. package/src/components/ChannelPreview/ChannelPreviewStatus.tsx +1 -3
  514. package/src/components/ChannelPreview/ChannelPreviewTitle.tsx +5 -12
  515. package/src/components/ChannelPreview/ChannelPreviewUnreadCount.tsx +5 -4
  516. package/src/components/Message/Message.tsx +9 -0
  517. package/src/components/MessageInput/hooks/useCountdown.ts +1 -1
  518. package/src/components/MessageOverlay/MessageActionListItem.tsx +16 -0
  519. package/src/contexts/channelsContext/ChannelsContext.tsx +1 -1
  520. package/src/contexts/chatContext/ChatContext.tsx +3 -0
  521. package/src/contexts/themeContext/ThemeContext.tsx +3 -3
  522. package/src/i18n/en.json +1 -1
  523. package/src/i18n/es.json +38 -38
  524. package/src/i18n/fr.json +38 -38
  525. package/src/i18n/he.json +38 -38
  526. package/src/i18n/hi.json +38 -38
  527. package/src/i18n/it.json +39 -39
  528. package/src/i18n/ja.json +39 -39
  529. package/src/i18n/ko.json +39 -39
  530. package/src/i18n/nl.json +39 -39
  531. package/src/i18n/ru.json +36 -36
  532. package/src/i18n/tr.json +36 -36
  533. package/src/icons/ArrowRight.tsx +1 -1
  534. package/src/icons/AtMentions.tsx +1 -1
  535. package/src/icons/Attach.tsx +1 -1
  536. package/src/icons/Audio.tsx +1 -1
  537. package/src/icons/CSV.tsx +1 -1
  538. package/src/icons/Camera.tsx +1 -1
  539. package/src/icons/Check.tsx +1 -1
  540. package/src/icons/CheckAll.tsx +1 -1
  541. package/src/icons/CheckSend.tsx +1 -1
  542. package/src/icons/CircleClose.tsx +1 -1
  543. package/src/icons/CirclePlus.tsx +1 -1
  544. package/src/icons/CircleRight.tsx +1 -1
  545. package/src/icons/Close.tsx +1 -1
  546. package/src/icons/Copy.tsx +1 -1
  547. package/src/icons/CurveLineLeftUp.tsx +1 -1
  548. package/src/icons/DOC.tsx +1 -1
  549. package/src/icons/DOCX.tsx +1 -1
  550. package/src/icons/Delete.tsx +1 -1
  551. package/src/icons/Down.tsx +1 -1
  552. package/src/icons/DownloadArrow.tsx +1 -1
  553. package/src/icons/DownloadCloud.tsx +1 -1
  554. package/src/icons/Edit.tsx +1 -1
  555. package/src/icons/Error.tsx +1 -1
  556. package/src/icons/Eye.tsx +1 -1
  557. package/src/icons/Flag.tsx +1 -1
  558. package/src/icons/Folder.tsx +1 -1
  559. package/src/icons/GenericFile.tsx +1 -1
  560. package/src/icons/GiphyIcon.tsx +1 -1
  561. package/src/icons/Grid.tsx +1 -1
  562. package/src/icons/Group.tsx +1 -1
  563. package/src/icons/HTML.tsx +1 -1
  564. package/src/icons/Imgur.tsx +1 -1
  565. package/src/icons/LOLReaction.tsx +1 -1
  566. package/src/icons/Lightning.tsx +1 -1
  567. package/src/icons/Link.tsx +1 -1
  568. package/src/icons/Logo.tsx +1 -1
  569. package/src/icons/LoveReaction.tsx +1 -1
  570. package/src/icons/MD.tsx +1 -1
  571. package/src/icons/MailOpen.tsx +1 -1
  572. package/src/icons/MenuPointHorizontal.tsx +1 -1
  573. package/src/icons/MenuPointVertical.tsx +1 -1
  574. package/src/icons/MessageFlag.tsx +1 -1
  575. package/src/icons/MessageIcon.tsx +1 -1
  576. package/src/icons/Mute.tsx +1 -1
  577. package/src/icons/Notification.tsx +1 -1
  578. package/src/icons/ODT.tsx +1 -1
  579. package/src/icons/PDF.tsx +1 -1
  580. package/src/icons/PPT.tsx +1 -1
  581. package/src/icons/PPTX.tsx +1 -1
  582. package/src/icons/Pause.tsx +1 -1
  583. package/src/icons/Picture.tsx +1 -1
  584. package/src/icons/Pin.tsx +1 -1
  585. package/src/icons/PinHeader.tsx +1 -1
  586. package/src/icons/Play.tsx +1 -1
  587. package/src/icons/RAR.tsx +1 -1
  588. package/src/icons/RTF.tsx +1 -1
  589. package/src/icons/Recorder.tsx +1 -1
  590. package/src/icons/Refresh.tsx +1 -1
  591. package/src/icons/SEVEN_Z.tsx +1 -1
  592. package/src/icons/Search.tsx +1 -1
  593. package/src/icons/SendRight.tsx +1 -1
  594. package/src/icons/SendUp.tsx +1 -1
  595. package/src/icons/Share.tsx +1 -1
  596. package/src/icons/ShareRightArrow.tsx +1 -1
  597. package/src/icons/Smile.tsx +1 -1
  598. package/src/icons/Sound.tsx +1 -1
  599. package/src/icons/TAR.tsx +1 -1
  600. package/src/icons/TXT.tsx +1 -1
  601. package/src/icons/ThreadReply.tsx +1 -1
  602. package/src/icons/ThumbsDownReaction.tsx +1 -1
  603. package/src/icons/ThumbsUpReaction.tsx +1 -1
  604. package/src/icons/Time.tsx +1 -1
  605. package/src/icons/Unknown.tsx +1 -1
  606. package/src/icons/Unpin.tsx +1 -1
  607. package/src/icons/User.tsx +1 -1
  608. package/src/icons/UserAdd.tsx +1 -1
  609. package/src/icons/UserAdmin.tsx +1 -1
  610. package/src/icons/UserDelete.tsx +1 -1
  611. package/src/icons/UserMinus.tsx +1 -1
  612. package/src/icons/Video.tsx +1 -1
  613. package/src/icons/Warning.tsx +1 -1
  614. package/src/icons/WutReaction.tsx +1 -1
  615. package/src/icons/XLS.tsx +1 -1
  616. package/src/icons/XLSX.tsx +1 -1
  617. package/src/icons/ZIP.tsx +1 -1
  618. package/src/icons/utils/base.tsx +2 -2
  619. package/src/version.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useCreateMessageContext","_useMessageActionHandlers","_useMessageActions2","_messageActions","_ChannelContext","_ChatContext","_KeyboardContext","_MessageContext","_MessageOverlayContext","_MessagesContext","_OverlayContext","_OwnCapabilitiesContext","_ThemeContext","_ThreadContext","_TranslationContext","_native","_utils","_useMessageList","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","MessageWithContext","props","_message$user","_useState","useState","_useState2","_slicedToArray2","isBounceDialogOpen","setIsBounceDialogOpen","isMessageTypeDeleted","message","type","sendReaction","channel","deleteMessageFromContext","deleteMessage","disabled","dismissKeyboard","dismissKeyboardOnMessageTouch","_props$enableLongPres","enableLongPress","enforceUniqueReaction","_props$forceAlignMess","forceAlignMessages","goToMessage","_props$groupStyles","groupStyles","handleBlock","handleCopy","handleDelete","handleEdit","handleFlag","handleMute","handlePinMessage","handleQuotedReply","handleReactionProp","handleReaction","handleRetry","handleThreadReply","chatContext","lastReceivedId","members","_props$messageActions","messageActions","messageActionsProp","defaultMessageActions","messageContentOrderProp","messageContentOrder","messagesContext","MessageBounce","MessageSimple","onLongPressProp","onLongPress","onLongPressMessageProp","onLongPressMessage","onPressProp","onPress","onPressMessageProp","onPressMessage","onPressInProp","onPressIn","onPressInMessageProp","onPressInMessage","onThreadSelect","openThread","OverlayReactionList","preventPress","removeMessage","deleteReaction","retrySendMessage","selectReaction","setData","setEditingState","setOverlay","setQuotedMessageState","showAvatar","showMessageStatus","showUnreadUnderlay","style","supportedReactions","t","isTargetedMessage","_props$threadList","threadList","updateMessage","client","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","bg_gradient_start","targetedMessageBackground","_useTheme$theme$messa","messageSimple","targetedMessageContainer","targetedMessageUnderlay","actionsEnabled","status","MessageStatusTypes","RECEIVED","isMyMessage","userID","user","id","handleAction","_ref","_asyncToGenerator2","_regenerator","mark","_callee","name","value","data","wrap","_callee$","_context","prev","next","sendAction","_defineProperty2","sent","parent_id","stop","_x","_x2","apply","arguments","onPressQuotedMessage","quotedMessage","errorOrFailed","FAILED","error","length","undefined","Keyboard","dismiss","quoted_message","isBlockedMessage","isBouncedMessage","showMessageOverlay","alignment","attachments","Array","isArray","reduce","acc","cur","files","push","other","og_scrape_url","isVideoPackageAvailable","videos","image_url","asset_url","thumb_url","title_link","images","hasAttachmentActions","some","attachment","actions","filter","content","text","emojiOnlyText","useMemo","hasOnlyEmojis","onlyEmojis","onOpenThread","hasReactions","latest_reactions","clientId","reactions","_message$latest_react","reactionType","reactionsOfReactionType","reaction","hasOwnReaction","user_id","own","ownCapabilities","useOwnCapabilitiesContext","_useMessageActionHand","useMessageActionHandlers","handleDeleteMessage","handleEditMessage","handleQuotedReplyMessage","handleResendMessage","handleToggleBanUser","handleToggleMuteUser","handleTogglePinMessage","handleToggleReaction","_useMessageActions","useMessageActions","blockUser","copyMessage","editMessage","flagMessage","muteUser","pinMessage","quotedReply","retry","threadReply","unpinMessage","_useTranslationContex","useTranslationContext","userLanguage","_ref2","_callee2","messageReactions","isThreadMessage","dismissOverlay","_args2","_callee2$","_context2","Boolean","messageContext","_extends2","messageReactionTitle","otherAttachments","actionHandlers","resendMessage","toggleBanUser","toggleMuteUser","toggleReaction","payload","defaultHandler","emitter","event","triggerHaptic","useCreateMessageContext","lastGroupMessage","myMessageTheme","onPressArgs","additionalInfo","handleOnPress","onPressInArgs","handleOnpressIn","createElement","View","pinned","backgroundColor","testID","__self","__source","fileName","lineNumber","columnNumber","MessageProvider","areEqual","prevProps","nextProps","_prevMessage$quoted_m","_nextMessage$quoted_m","_prevMessage$quoted_m2","_nextMessage$quoted_m2","_prevMessage$user","_nextMessage$user","prevMutedUsers","mutedUsers","prevDisabled","prevGoToMessage","prevGroupStyles","isAttachmentEqual","prevIsTargetedMessage","prevLastReceivedId","prevMembers","prevMessage","prevMessagesContext","prevShowUnreadUnderlay","prevT","nextMutedUsers","nextDisabled","nextGoToMessage","nextGroupStyles","nextIsTargetedMessage","nextLastReceivedId","nextMembers","nextMessage","nextMessagesContext","nextShowUnreadUnderlay","nextT","disabledEqual","membersEqual","keys","repliesEqual","reply_count","lastReceivedIdChangedAndMatters","goToMessageChangedAndMatters","quoted_message_id","groupStylesEqual","isPrevMessageTypeDeleted","isNextMessageTypeDeleted","messageEqual","isMessageWithStylesReadByAndDateSeparator","readBy","updated_at","isPrevQuotedMessageTypeDeleted","isNextQuotedMessageTypeDeleted","quotedMessageEqual","messageUserBannedEqual","banned","prevMessageAttachments","nextMessageAttachments","attachmentsEqual","every","index","attachmentKeysEqual","latestReactionsEqual","_ref3","_nextMessage$latest_r","mutedUserSame","mutedUser","_prevMessage$user2","target","_nextMessage$user2","showUnreadUnderlayEqual","tEqual","targetedMessageEqual","prevMyMessageTheme","JSON","stringify","nextMyMessageTheme","messageThemeEqual","MemoizedMessage","React","memo","Message","_useChannelContext","useChannelContext","useChatContext","_useKeyboardContext","useKeyboardContext","_useMessageOverlayCon","useMessageOverlayContext","useMessagesContext","_useOverlayContext","useOverlayContext","_useThreadContext","useThreadContext","_useTranslationContex2","exports"],"sources":["Message.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport { GestureResponderEvent, Keyboard, StyleProp, View, ViewStyle } from 'react-native';\n\nimport type { Attachment, UserResponse } from 'stream-chat';\n\nimport { useCreateMessageContext } from './hooks/useCreateMessageContext';\nimport { useMessageActionHandlers } from './hooks/useMessageActionHandlers';\nimport { useMessageActions } from './hooks/useMessageActions';\nimport { messageActions as defaultMessageActions } from './utils/messageActions';\n\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\nimport {\n KeyboardContextValue,\n useKeyboardContext,\n} from '../../contexts/keyboardContext/KeyboardContext';\nimport {\n MessageContextValue,\n MessageProvider,\n Reactions,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessageOverlayContextValue,\n useMessageOverlayContext,\n} from '../../contexts/messageOverlayContext/MessageOverlayContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useOwnCapabilitiesContext } from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport { isVideoPackageAvailable, triggerHaptic } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport {\n hasOnlyEmojis,\n isBlockedMessage,\n isBouncedMessage,\n MessageStatusTypes,\n} from '../../utils/utils';\n\nimport {\n isMessageWithStylesReadByAndDateSeparator,\n MessageType,\n} from '../MessageList/hooks/useMessageList';\nimport type { MessageActionListItemProps } from '../MessageOverlay/MessageActionListItem';\n\nexport type TouchableEmitter =\n | 'fileAttachment'\n | 'gallery'\n | 'giphy'\n | 'message'\n | 'messageContent'\n | 'messageReplies'\n | 'reactionList';\n\nexport type TextMentionTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n emitter: 'textMention';\n additionalInfo?: { user?: UserResponse<StreamChatGenerics> };\n};\n\nexport type UrlTouchableHandlerPayload = {\n emitter: 'textLink' | 'card';\n additionalInfo?: { url?: string };\n};\n\nexport type FileAttachmentTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n emitter: 'fileAttachment';\n additionalInfo?: { attachment?: Attachment<StreamChatGenerics> };\n};\n\nexport type TouchableHandlerPayload = {\n defaultHandler?: () => void;\n event?: GestureResponderEvent;\n} & (\n | {\n emitter?: Exclude<TouchableEmitter, 'textMention' | 'textLink' | 'card' | 'fileAttachment'>;\n }\n | TextMentionTouchableHandlerPayload\n | UrlTouchableHandlerPayload\n | FileAttachmentTouchableHandlerPayload\n);\n\nexport type MessageTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = TouchableHandlerPayload & {\n actionHandlers?: MessageActionHandlers;\n additionalInfo?: Record<string, unknown>;\n message?: MessageType<StreamChatGenerics>;\n};\n\nexport type MessageActionHandlers = {\n deleteMessage: () => Promise<void>;\n editMessage: () => void;\n pinMessage: () => Promise<void>;\n quotedReply: () => void;\n resendMessage: () => Promise<void>;\n showMessageOverlay: () => void;\n toggleBanUser: () => Promise<void>;\n toggleMuteUser: () => Promise<void>;\n toggleReaction: (reactionType: string) => Promise<void>;\n};\n\nexport type MessagePropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n ChannelContextValue<StreamChatGenerics>,\n 'channel' | 'disabled' | 'enforceUniqueReaction' | 'members'\n> &\n Pick<KeyboardContextValue, 'dismissKeyboard'> &\n Partial<Omit<MessageContextValue<StreamChatGenerics>, 'groupStyles' | 'message'>> &\n Pick<MessageContextValue<StreamChatGenerics>, 'groupStyles' | 'message'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'sendReaction'\n | 'deleteMessage'\n | 'dismissKeyboardOnMessageTouch'\n | 'forceAlignMessages'\n | 'handleBlock'\n | 'handleCopy'\n | 'handleDelete'\n | 'handleEdit'\n | 'handleFlag'\n | 'handleMute'\n | 'handlePinMessage'\n | 'handleQuotedReply'\n | 'handleReaction'\n | 'handleRetry'\n | 'handleThreadReply'\n | 'isAttachmentEqual'\n | 'messageActions'\n | 'messageContentOrder'\n | 'MessageBounce'\n | 'MessageSimple'\n | 'onLongPressMessage'\n | 'onPressInMessage'\n | 'onPressMessage'\n | 'OverlayReactionList'\n | 'removeMessage'\n | 'deleteReaction'\n | 'retrySendMessage'\n | 'selectReaction'\n | 'setEditingState'\n | 'setQuotedMessageState'\n | 'supportedReactions'\n | 'updateMessage'\n > &\n Pick<MessageOverlayContextValue<StreamChatGenerics>, 'setData'> &\n Pick<OverlayContextValue, 'setOverlay'> &\n Pick<ThreadContextValue<StreamChatGenerics>, 'openThread'> &\n Pick<TranslationContextValue, 't'> & {\n chatContext: ChatContextValue<StreamChatGenerics>;\n messagesContext: MessagesContextValue<StreamChatGenerics>;\n /**\n * Whether or not users are able to long press messages.\n */\n enableLongPress?: boolean;\n goToMessage?: (messageId: string) => void;\n isTargetedMessage?: boolean;\n /**\n * Array of allowed actions or null on message, this can also be a function returning the array.\n * If all the actions need to be disabled an empty array should be provided as value of prop\n */\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/Message.tsx)\n *\n * By default, we show the overlay with all the message actions on long press.\n *\n * @param message Message object which was long pressed\n * @param event Event object for onLongPress event\n **/\n onLongPress?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/Message.tsx)\n *\n * By default, we will dismiss the keyboard on press.\n *\n * @param message Message object which was long pressed\n * @param event Event object for onLongPress event\n * */\n onPress?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n onPressIn?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n /**\n * Handler to open the thread on message. This is callback for touch event for replies button.\n *\n * @param message A message object to open the thread upon.\n */\n onThreadSelect?: (message: MessageType<StreamChatGenerics>) => void;\n showUnreadUnderlay?: boolean;\n style?: StyleProp<ViewStyle>;\n };\n\n/**\n * Since this component doesn't consume `messages` from `MessagesContext`,\n * we memoized and broke it up to prevent new messages from re-rendering\n * each individual Message component.\n */\nconst MessageWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessagePropsWithContext<StreamChatGenerics>,\n) => {\n const [isBounceDialogOpen, setIsBounceDialogOpen] = useState(false);\n const isMessageTypeDeleted = props.message.type === 'deleted';\n\n const {\n sendReaction,\n channel,\n deleteMessage: deleteMessageFromContext,\n disabled,\n dismissKeyboard,\n dismissKeyboardOnMessageTouch,\n enableLongPress = true,\n enforceUniqueReaction,\n forceAlignMessages = false,\n goToMessage,\n groupStyles = ['bottom'],\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction: handleReactionProp,\n handleRetry,\n handleThreadReply,\n chatContext,\n lastReceivedId,\n members,\n message,\n messageActions: messageActionsProp = defaultMessageActions,\n messageContentOrder: messageContentOrderProp,\n messagesContext,\n MessageBounce,\n MessageSimple,\n onLongPress: onLongPressProp,\n onLongPressMessage: onLongPressMessageProp,\n onPress: onPressProp,\n onPressMessage: onPressMessageProp,\n onPressIn: onPressInProp,\n onPressInMessage: onPressInMessageProp,\n onThreadSelect,\n openThread,\n OverlayReactionList,\n preventPress,\n removeMessage,\n deleteReaction,\n retrySendMessage,\n selectReaction,\n setData,\n setEditingState,\n setOverlay,\n setQuotedMessageState,\n showAvatar,\n showMessageStatus,\n showUnreadUnderlay,\n style,\n supportedReactions,\n t,\n isTargetedMessage,\n threadList = false,\n updateMessage,\n } = props;\n const { client } = chatContext;\n const {\n theme: {\n colors: { bg_gradient_start, targetedMessageBackground },\n messageSimple: { targetedMessageContainer, targetedMessageUnderlay },\n },\n } = useTheme();\n\n const actionsEnabled =\n message.type === 'regular' && message.status === MessageStatusTypes.RECEIVED;\n\n const isMyMessage = client && message && client.userID === message.user?.id;\n\n const handleAction = async (name: string, value: string) => {\n if (message.id) {\n const data = await channel?.sendAction(message.id, { [name]: value });\n if (data?.message) {\n updateMessage(data.message);\n } else {\n removeMessage({\n id: message.id,\n parent_id: message.parent_id,\n });\n }\n }\n };\n\n const onPressQuotedMessage = (quotedMessage: MessageType<StreamChatGenerics>) => {\n if (!goToMessage) return;\n\n goToMessage(quotedMessage.id);\n };\n\n const errorOrFailed = message.type === 'error' || message.status === MessageStatusTypes.FAILED;\n\n const onPress = (error = errorOrFailed) => {\n if (dismissKeyboardOnMessageTouch) {\n Keyboard.dismiss();\n }\n const quotedMessage = message.quoted_message as MessageType<StreamChatGenerics>;\n if (error) {\n /**\n * If its a Blocked message, we don't do anything as per specs.\n */\n if (isBlockedMessage(message)) {\n return;\n }\n /**\n * If its a Bounced message, we open the message bounced options modal.\n */\n if (isBouncedMessage(message)) {\n setIsBounceDialogOpen(true);\n return;\n }\n showMessageOverlay(false, true);\n } else if (quotedMessage) {\n onPressQuotedMessage(quotedMessage);\n }\n };\n\n const alignment =\n forceAlignMessages && (forceAlignMessages === 'left' || forceAlignMessages === 'right')\n ? forceAlignMessages\n : isMyMessage\n ? 'right'\n : 'left';\n\n /**\n * attachments contain files/images or other attachments\n *\n * if a URL attachment is present with a file/image then we\n * show just the text and markdown should make the link\n * clickable\n */\n const attachments =\n !isMessageTypeDeleted && Array.isArray(message.attachments)\n ? message.attachments.reduce(\n (acc, cur) => {\n if (cur.type === 'file') {\n acc.files.push(cur);\n acc.other = []; // remove other attachments if a file exists\n } else if (cur.type === 'video' && !cur.og_scrape_url && isVideoPackageAvailable()) {\n acc.videos.push({\n image_url: cur.asset_url,\n thumb_url: cur.thumb_url,\n type: 'video',\n });\n acc.other = [];\n } else if (cur.type === 'video' && !cur.og_scrape_url) {\n acc.files.push(cur);\n acc.other = []; // remove other attachments if a file exists\n } else if (cur.type === 'audio') {\n acc.files.push(cur);\n } else if (cur.type === 'image' && !cur.title_link && !cur.og_scrape_url) {\n /**\n * this next if is not combined with the above one for cases where we have\n * an image with no url links at all falling back to being an attachment\n */\n if (cur.image_url || cur.thumb_url) {\n acc.images.push(cur);\n acc.other = []; // remove other attachments if an image exists\n }\n // only add other attachments if there are no files/images\n } else if (!acc.files.length && !acc.images.length && !acc.videos.length) {\n acc.other.push(cur);\n }\n\n return acc;\n },\n {\n files: [] as Attachment<StreamChatGenerics>[],\n images: [] as Attachment<StreamChatGenerics>[],\n other: [] as Attachment<StreamChatGenerics>[],\n videos: [] as Attachment<StreamChatGenerics>[],\n },\n )\n : {\n files: [] as Attachment<StreamChatGenerics>[],\n images: [] as Attachment<StreamChatGenerics>[],\n other: [] as Attachment<StreamChatGenerics>[],\n videos: [] as Attachment<StreamChatGenerics>[],\n };\n /**\n * Check if any actions to prevent long press\n */\n const hasAttachmentActions =\n !isMessageTypeDeleted &&\n Array.isArray(message.attachments) &&\n message.attachments.some((attachment) => attachment.actions && attachment.actions.length);\n\n const messageContentOrder = messageContentOrderProp.filter((content) => {\n if (content === 'quoted_reply') {\n return !!message.quoted_message;\n }\n\n switch (content) {\n case 'attachments':\n return !!attachments.other.length;\n case 'files':\n return !!attachments.files.length;\n case 'gallery':\n return !!attachments.images.length || !!attachments.videos.length;\n case 'text':\n default:\n return !!message.text;\n }\n });\n\n const emojiOnlyText = useMemo(() => {\n if (!message.text) return false;\n return hasOnlyEmojis(message.text);\n }, [message.text]);\n\n const onlyEmojis =\n !attachments.files.length &&\n !attachments.images.length &&\n !attachments.other.length &&\n emojiOnlyText;\n\n const onOpenThread = () => {\n if (onThreadSelect) {\n onThreadSelect(message);\n }\n if (openThread) {\n openThread(message);\n }\n };\n\n const hasReactions =\n !isMessageTypeDeleted && !!message.latest_reactions && message.latest_reactions.length > 0;\n\n const clientId = client.userID;\n\n const reactions = hasReactions\n ? supportedReactions.reduce((acc, cur) => {\n const reactionType = cur.type;\n const reactionsOfReactionType = message.latest_reactions?.filter(\n (reaction) => reaction.type === reactionType,\n );\n\n if (reactionsOfReactionType?.length) {\n const hasOwnReaction = reactionsOfReactionType.some(\n (reaction) => reaction.user_id === clientId,\n );\n acc.push({ own: hasOwnReaction, type: reactionType });\n }\n\n return acc;\n }, [] as Reactions)\n : [];\n\n const ownCapabilities = useOwnCapabilitiesContext();\n\n const {\n handleDeleteMessage,\n handleEditMessage,\n handleQuotedReplyMessage,\n handleResendMessage,\n handleToggleBanUser,\n handleToggleMuteUser,\n handleTogglePinMessage,\n handleToggleReaction,\n } = useMessageActionHandlers({\n channel,\n client,\n deleteMessage: deleteMessageFromContext,\n deleteReaction,\n enforceUniqueReaction,\n message,\n retrySendMessage,\n sendReaction,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n });\n\n const {\n blockUser,\n copyMessage,\n deleteMessage,\n editMessage,\n flagMessage,\n handleReaction,\n muteUser,\n pinMessage,\n quotedReply,\n retry,\n threadReply,\n unpinMessage,\n } = useMessageActions({\n channel,\n client,\n deleteMessage: deleteMessageFromContext,\n deleteReaction,\n enforceUniqueReaction,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction: handleReactionProp,\n handleRetry,\n handleThreadReply,\n message,\n onThreadSelect,\n openThread,\n removeMessage,\n retrySendMessage,\n selectReaction,\n sendReaction,\n setEditingState,\n setOverlay,\n setQuotedMessageState,\n supportedReactions,\n t,\n updateMessage,\n });\n\n const { userLanguage } = useTranslationContext();\n\n const showMessageOverlay = async (messageReactions = false, error = errorOrFailed) => {\n await dismissKeyboard();\n\n const isThreadMessage = threadList || !!message.parent_id;\n\n const dismissOverlay = () => setOverlay('none');\n\n const messageActions =\n typeof messageActionsProp !== 'function'\n ? messageActionsProp\n : messageActionsProp({\n blockUser,\n copyMessage,\n deleteMessage,\n dismissOverlay,\n editMessage,\n error,\n flagMessage,\n isMyMessage,\n isThreadMessage,\n message,\n messageReactions,\n muteUser,\n ownCapabilities,\n pinMessage,\n quotedReply,\n retry,\n threadReply,\n unpinMessage,\n });\n\n setData({\n alignment,\n chatContext,\n clientId: client.userID,\n files: attachments.files,\n groupStyles,\n handleReaction: ownCapabilities.sendReaction ? handleReaction : undefined,\n images: attachments.images,\n message,\n messageActions: messageActions?.filter(Boolean) as MessageActionListItemProps[] | undefined,\n messageContext: { ...messageContext, preventPress: true },\n messageReactionTitle: !error && messageReactions ? t('Message Reactions') : undefined,\n messagesContext: { ...messagesContext, messageContentOrder },\n onlyEmojis,\n otherAttachments: attachments.other,\n OverlayReactionList,\n ownCapabilities,\n supportedReactions,\n threadList,\n userLanguage,\n videos: attachments.videos,\n });\n\n setOverlay('message');\n };\n\n const actionHandlers: MessageActionHandlers = {\n deleteMessage: handleDeleteMessage,\n editMessage: handleEditMessage,\n pinMessage: handleTogglePinMessage,\n quotedReply: handleQuotedReplyMessage,\n resendMessage: handleResendMessage,\n showMessageOverlay,\n toggleBanUser: handleToggleBanUser,\n toggleMuteUser: handleToggleMuteUser,\n toggleReaction: handleToggleReaction,\n };\n\n const onLongPressMessage =\n disabled || hasAttachmentActions || isBlockedMessage(message)\n ? () => null\n : onLongPressMessageProp\n ? (payload?: TouchableHandlerPayload) =>\n onLongPressMessageProp({\n actionHandlers,\n defaultHandler: payload?.defaultHandler || showMessageOverlay,\n emitter: payload?.emitter || 'message',\n event: payload?.event,\n message,\n })\n : onLongPressProp\n ? (payload?: TouchableHandlerPayload) =>\n onLongPressProp({\n actionHandlers,\n defaultHandler: payload?.defaultHandler || showMessageOverlay,\n emitter: payload?.emitter || 'message',\n event: payload?.event,\n })\n : enableLongPress\n ? () => {\n // If a message is bounced, on long press the message bounce options modal should open.\n if (isBouncedMessage(message)) {\n setIsBounceDialogOpen(true);\n return;\n }\n triggerHaptic('impactMedium');\n showMessageOverlay(false);\n }\n : () => null;\n\n const messageContext = useCreateMessageContext({\n actionsEnabled,\n alignment,\n channel,\n disabled,\n files: attachments.files,\n goToMessage,\n groupStyles,\n handleAction,\n handleDeleteMessage,\n handleEditMessage,\n handleQuotedReplyMessage,\n handleResendMessage,\n handleToggleBanUser,\n handleToggleMuteUser,\n handleToggleReaction,\n hasReactions,\n images: attachments.images,\n isMyMessage,\n lastGroupMessage: groupStyles?.[0] === 'single' || groupStyles?.[0] === 'bottom',\n lastReceivedId,\n members,\n message,\n messageContentOrder,\n myMessageTheme: messagesContext.myMessageTheme,\n onLongPress: onLongPressMessage,\n onlyEmojis,\n onOpenThread,\n onPress: (payload) => {\n const onPressArgs = {\n actionHandlers,\n additionalInfo: payload.additionalInfo,\n defaultHandler: payload.defaultHandler || onPress,\n emitter: payload.emitter || 'message',\n event: payload.event,\n message,\n };\n\n const handleOnPress = () => {\n if (onPressProp) return onPressProp(onPressArgs);\n if (onPressMessageProp) return onPressMessageProp(onPressArgs);\n if (payload.defaultHandler) return payload.defaultHandler();\n\n return onPress();\n };\n\n handleOnPress();\n },\n onPressIn:\n onPressInProp || onPressInMessageProp\n ? (payload) => {\n const onPressInArgs = {\n actionHandlers,\n defaultHandler: payload.defaultHandler,\n emitter: payload.emitter || 'message',\n event: payload.event,\n message,\n };\n const handleOnpressIn = () => {\n if (onPressInProp) return onPressInProp(onPressInArgs);\n if (onPressInMessageProp) return onPressInMessageProp(onPressInArgs);\n };\n handleOnpressIn();\n }\n : null,\n otherAttachments: attachments.other,\n preventPress,\n reactions,\n showAvatar,\n showMessageOverlay,\n showMessageStatus: typeof showMessageStatus === 'boolean' ? showMessageStatus : isMyMessage,\n threadList,\n videos: attachments.videos,\n });\n\n if (!(isMessageTypeDeleted || messageContentOrder.length)) return null;\n\n return (\n <View\n style={[\n message.pinned && {\n ...targetedMessageContainer,\n backgroundColor: targetedMessageBackground,\n },\n ]}\n testID='message-wrapper'\n >\n <View\n style={[\n style,\n {\n backgroundColor: showUnreadUnderlay ? bg_gradient_start : undefined,\n },\n ]}\n >\n <View\n style={[\n isTargetedMessage\n ? { backgroundColor: targetedMessageBackground, ...targetedMessageUnderlay }\n : {},\n ]}\n >\n <MessageProvider value={messageContext}>\n <MessageSimple />\n {isBounceDialogOpen && <MessageBounce setIsBounceDialogOpen={setIsBounceDialogOpen} />}\n </MessageProvider>\n </View>\n </View>\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessagePropsWithContext<StreamChatGenerics>,\n nextProps: MessagePropsWithContext<StreamChatGenerics>,\n) => {\n const {\n chatContext: { mutedUsers: prevMutedUsers },\n disabled: prevDisabled,\n goToMessage: prevGoToMessage,\n groupStyles: prevGroupStyles,\n isAttachmentEqual,\n isTargetedMessage: prevIsTargetedMessage,\n lastReceivedId: prevLastReceivedId,\n members: prevMembers,\n message: prevMessage,\n messagesContext: prevMessagesContext,\n showUnreadUnderlay: prevShowUnreadUnderlay,\n t: prevT,\n } = prevProps;\n const {\n chatContext: { mutedUsers: nextMutedUsers },\n disabled: nextDisabled,\n goToMessage: nextGoToMessage,\n groupStyles: nextGroupStyles,\n isTargetedMessage: nextIsTargetedMessage,\n lastReceivedId: nextLastReceivedId,\n members: nextMembers,\n message: nextMessage,\n messagesContext: nextMessagesContext,\n showUnreadUnderlay: nextShowUnreadUnderlay,\n t: nextT,\n } = nextProps;\n\n const disabledEqual = prevDisabled === nextDisabled;\n if (!disabledEqual) return false;\n\n const membersEqual = Object.keys(prevMembers).length === Object.keys(nextMembers).length;\n if (!membersEqual) return false;\n\n const repliesEqual = prevMessage.reply_count === nextMessage.reply_count;\n if (!repliesEqual) return false;\n\n const lastReceivedIdChangedAndMatters =\n prevLastReceivedId !== nextLastReceivedId &&\n (prevLastReceivedId === prevMessage.id ||\n prevLastReceivedId === nextMessage.id ||\n nextLastReceivedId === prevMessage.id ||\n nextLastReceivedId === nextMessage.id);\n\n if (lastReceivedIdChangedAndMatters) return false;\n\n const goToMessageChangedAndMatters =\n nextMessage.quoted_message_id && prevGoToMessage !== nextGoToMessage;\n\n if (goToMessageChangedAndMatters) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const isPrevMessageTypeDeleted = prevMessage.type === 'deleted';\n const isNextMessageTypeDeleted = nextMessage.type === 'deleted';\n\n const messageEqual =\n isPrevMessageTypeDeleted === isNextMessageTypeDeleted &&\n (isMessageWithStylesReadByAndDateSeparator(prevMessage) && prevMessage.readBy) ===\n (isMessageWithStylesReadByAndDateSeparator(nextMessage) && nextMessage.readBy) &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text &&\n prevMessage.pinned === nextMessage.pinned &&\n `${prevMessage?.updated_at}` === `${nextMessage?.updated_at}`;\n\n if (!messageEqual) return false;\n\n const isPrevQuotedMessageTypeDeleted = prevMessage.quoted_message?.type === 'deleted';\n const isNextQuotedMessageTypeDeleted = nextMessage.quoted_message?.type === 'deleted';\n\n const quotedMessageEqual =\n prevMessage.quoted_message?.id === nextMessage.quoted_message?.id &&\n isPrevQuotedMessageTypeDeleted === isNextQuotedMessageTypeDeleted;\n\n if (!quotedMessageEqual) return false;\n\n const messageUserBannedEqual = prevMessage.user?.banned === nextMessage.user?.banned;\n if (!messageUserBannedEqual) return false;\n\n const prevMessageAttachments = prevMessage.attachments;\n const nextMessageAttachments = nextMessage.attachments;\n const attachmentsEqual =\n (Array.isArray(prevMessageAttachments) &&\n Array.isArray(nextMessageAttachments) &&\n prevMessageAttachments.length === nextMessageAttachments.length &&\n prevMessageAttachments.every((attachment, index) => {\n const attachmentKeysEqual =\n attachment.type === 'image'\n ? attachment.image_url === nextMessageAttachments[index].image_url &&\n attachment.thumb_url === nextMessageAttachments[index].thumb_url\n : attachment.type === nextMessageAttachments[index].type;\n\n if (isAttachmentEqual)\n return (\n attachmentKeysEqual && !!isAttachmentEqual(attachment, nextMessageAttachments[index])\n );\n\n return attachmentKeysEqual;\n })) ||\n prevMessageAttachments === nextMessageAttachments;\n if (!attachmentsEqual) return false;\n\n const latestReactionsEqual =\n Array.isArray(prevMessage.latest_reactions) && Array.isArray(nextMessage.latest_reactions)\n ? prevMessage.latest_reactions.length === nextMessage.latest_reactions.length &&\n prevMessage.latest_reactions.every(\n ({ type }, index) => type === nextMessage.latest_reactions?.[index].type,\n )\n : prevMessage.latest_reactions === nextMessage.latest_reactions;\n if (!latestReactionsEqual) return false;\n\n const mutedUserSame =\n prevMutedUsers.length === nextMutedUsers.length ||\n prevMutedUsers.some((mutedUser) => mutedUser.target.id === prevMessage.user?.id) ===\n nextMutedUsers.some((mutedUser) => mutedUser.target.id === nextMessage.user?.id);\n if (!mutedUserSame) return false;\n\n const showUnreadUnderlayEqual = prevShowUnreadUnderlay === nextShowUnreadUnderlay;\n if (!showUnreadUnderlayEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const targetedMessageEqual = prevIsTargetedMessage === nextIsTargetedMessage;\n if (!targetedMessageEqual) return false;\n\n const prevMyMessageTheme = JSON.stringify(prevMessagesContext?.myMessageTheme);\n const nextMyMessageTheme = JSON.stringify(nextMessagesContext?.myMessageTheme);\n\n const messageThemeEqual = prevMyMessageTheme === nextMyMessageTheme;\n if (!messageThemeEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessage = React.memo(MessageWithContext, areEqual) as typeof MessageWithContext;\n\nexport type MessageProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<MessagePropsWithContext<StreamChatGenerics>, 'groupStyles' | 'message'>> &\n Pick<MessagePropsWithContext<StreamChatGenerics>, 'groupStyles' | 'message'>;\n\n/**\n * Message - A high level component which implements all the logic required for a message.\n * The actual rendering of the message is delegated via the \"Message\" property\n *\n * @example ./Message.md\n */\nexport const Message = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageProps<StreamChatGenerics>,\n) => {\n const { channel, disabled, enforceUniqueReaction, members } =\n useChannelContext<StreamChatGenerics>();\n const chatContext = useChatContext<StreamChatGenerics>();\n const { dismissKeyboard } = useKeyboardContext();\n const { setData } = useMessageOverlayContext<StreamChatGenerics>();\n const messagesContext = useMessagesContext<StreamChatGenerics>();\n const { setOverlay } = useOverlayContext();\n const { openThread } = useThreadContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedMessage<StreamChatGenerics>\n {...messagesContext}\n {...{\n channel,\n chatContext,\n disabled,\n dismissKeyboard,\n enforceUniqueReaction,\n members,\n messagesContext,\n openThread,\n setData,\n setOverlay,\n t,\n }}\n {...props}\n />\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useCreateMessageContext","_useMessageActionHandlers","_useMessageActions2","_messageActions","_ChannelContext","_ChatContext","_KeyboardContext","_MessageContext","_MessageOverlayContext","_MessagesContext","_OverlayContext","_OwnCapabilitiesContext","_ThemeContext","_ThreadContext","_TranslationContext","_native","_utils","_useMessageList","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","MessageWithContext","props","_message$user","_useState","useState","_useState2","_slicedToArray2","isBounceDialogOpen","setIsBounceDialogOpen","isMessageTypeDeleted","message","type","sendReaction","channel","deleteMessageFromContext","deleteMessage","disabled","dismissKeyboard","dismissKeyboardOnMessageTouch","_props$enableLongPres","enableLongPress","enforceUniqueReaction","_props$forceAlignMess","forceAlignMessages","goToMessage","_props$groupStyles","groupStyles","handleBlock","handleCopy","handleDelete","handleEdit","handleFlag","handleMute","handlePinMessage","handleQuotedReply","handleReactionProp","handleReaction","handleRetry","handleThreadReply","chatContext","lastReceivedId","members","_props$messageActions","messageActions","messageActionsProp","defaultMessageActions","messageContentOrderProp","messageContentOrder","messagesContext","MessageBounce","MessageSimple","onLongPressProp","onLongPress","onLongPressMessageProp","onLongPressMessage","onPressProp","onPress","onPressMessageProp","onPressMessage","onPressInProp","onPressIn","onPressInMessageProp","onPressInMessage","onThreadSelect","openThread","OverlayReactionList","preventPress","removeMessage","deleteReaction","retrySendMessage","selectReaction","setData","setEditingState","setOverlay","setQuotedMessageState","showAvatar","showMessageStatus","showUnreadUnderlay","style","supportedReactions","t","isTargetedMessage","_props$threadList","threadList","updateMessage","client","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","bg_gradient_start","targetedMessageBackground","_useTheme$theme$messa","messageSimple","targetedMessageContainer","targetedMessageUnderlay","actionsEnabled","status","MessageStatusTypes","RECEIVED","isMyMessage","userID","user","id","handleAction","_ref","_asyncToGenerator2","_regenerator","mark","_callee","name","value","data","wrap","_callee$","_context","prev","next","sendAction","_defineProperty2","sent","parent_id","stop","_x","_x2","apply","arguments","onPressQuotedMessage","quotedMessage","errorOrFailed","FAILED","error","length","undefined","Keyboard","dismiss","quoted_message","isBlockedMessage","isBouncedMessage","showMessageOverlay","alignment","attachments","Array","isArray","reduce","acc","cur","files","push","other","og_scrape_url","isVideoPackageAvailable","videos","image_url","asset_url","thumb_url","title_link","images","hasAttachmentActions","some","attachment","actions","filter","content","text","emojiOnlyText","useMemo","hasOnlyEmojis","onlyEmojis","onOpenThread","hasReactions","latest_reactions","clientId","reactions","_message$latest_react","reactionType","reactionsOfReactionType","reaction","hasOwnReaction","user_id","own","ownCapabilities","useOwnCapabilitiesContext","_useMessageActionHand","useMessageActionHandlers","handleDeleteMessage","handleEditMessage","handleQuotedReplyMessage","handleResendMessage","handleToggleBanUser","handleToggleMuteUser","handleTogglePinMessage","handleToggleReaction","_useMessageActions","useMessageActions","blockUser","copyMessage","editMessage","flagMessage","muteUser","pinMessage","quotedReply","retry","threadReply","unpinMessage","_useTranslationContex","useTranslationContext","userLanguage","_ref2","_callee2","messageReactions","isThreadMessage","dismissOverlay","_args2","_callee2$","_context2","Boolean","messageContext","_extends2","messageReactionTitle","otherAttachments","actionHandlers","resendMessage","toggleBanUser","toggleMuteUser","toggleReaction","payload","defaultHandler","emitter","event","triggerHaptic","useCreateMessageContext","lastGroupMessage","myMessageTheme","onPressArgs","additionalInfo","handleOnPress","onPressInArgs","handleOnpressIn","createElement","View","pinned","backgroundColor","testID","__self","__source","fileName","lineNumber","columnNumber","MessageProvider","areEqual","prevProps","nextProps","_prevMessage$quoted_m","_nextMessage$quoted_m","_prevMessage$quoted_m2","_nextMessage$quoted_m2","_prevMessage$user","_nextMessage$user","prevMutedUsers","mutedUsers","prevDisabled","prevGoToMessage","prevGroupStyles","isAttachmentEqual","prevIsTargetedMessage","prevLastReceivedId","prevMembers","prevMessage","prevMessagesContext","prevShowUnreadUnderlay","prevT","nextMutedUsers","nextDisabled","nextGoToMessage","nextGroupStyles","nextIsTargetedMessage","nextLastReceivedId","nextMembers","nextMessage","nextMessagesContext","nextShowUnreadUnderlay","nextT","disabledEqual","membersEqual","keys","repliesEqual","reply_count","lastReceivedIdChangedAndMatters","goToMessageChangedAndMatters","quoted_message_id","groupStylesEqual","isPrevMessageTypeDeleted","isNextMessageTypeDeleted","messageEqual","isMessageWithStylesReadByAndDateSeparator","readBy","updated_at","isPrevQuotedMessageTypeDeleted","isNextQuotedMessageTypeDeleted","quotedMessageEqual","messageUserBannedEqual","banned","prevMessageAttachments","nextMessageAttachments","attachmentsEqual","every","index","attachmentKeysEqual","latestReactionsEqual","_ref3","_nextMessage$latest_r","mutedUserSame","mutedUser","_prevMessage$user2","target","_nextMessage$user2","showUnreadUnderlayEqual","tEqual","targetedMessageEqual","prevMyMessageTheme","JSON","stringify","nextMyMessageTheme","messageThemeEqual","MemoizedMessage","React","memo","Message","_useChannelContext","useChannelContext","useChatContext","_useKeyboardContext","useKeyboardContext","_useMessageOverlayCon","useMessageOverlayContext","useMessagesContext","_useOverlayContext","useOverlayContext","_useThreadContext","useThreadContext","_useTranslationContex2","exports"],"sources":["Message.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport { GestureResponderEvent, Keyboard, StyleProp, View, ViewStyle } from 'react-native';\n\nimport type { Attachment, UserResponse } from 'stream-chat';\n\nimport { useCreateMessageContext } from './hooks/useCreateMessageContext';\nimport { useMessageActionHandlers } from './hooks/useMessageActionHandlers';\nimport { useMessageActions } from './hooks/useMessageActions';\nimport { messageActions as defaultMessageActions } from './utils/messageActions';\n\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\nimport {\n KeyboardContextValue,\n useKeyboardContext,\n} from '../../contexts/keyboardContext/KeyboardContext';\nimport {\n MessageContextValue,\n MessageProvider,\n Reactions,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessageOverlayContextValue,\n useMessageOverlayContext,\n} from '../../contexts/messageOverlayContext/MessageOverlayContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useOwnCapabilitiesContext } from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport { isVideoPackageAvailable, triggerHaptic } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport {\n hasOnlyEmojis,\n isBlockedMessage,\n isBouncedMessage,\n MessageStatusTypes,\n} from '../../utils/utils';\n\nimport {\n isMessageWithStylesReadByAndDateSeparator,\n MessageType,\n} from '../MessageList/hooks/useMessageList';\nimport type { MessageActionListItemProps } from '../MessageOverlay/MessageActionListItem';\n\nexport type TouchableEmitter =\n | 'fileAttachment'\n | 'gallery'\n | 'giphy'\n | 'message'\n | 'messageContent'\n | 'messageReplies'\n | 'reactionList';\n\nexport type TextMentionTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n emitter: 'textMention';\n additionalInfo?: { user?: UserResponse<StreamChatGenerics> };\n};\n\nexport type UrlTouchableHandlerPayload = {\n emitter: 'textLink' | 'card';\n additionalInfo?: { url?: string };\n};\n\nexport type FileAttachmentTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n emitter: 'fileAttachment';\n additionalInfo?: { attachment?: Attachment<StreamChatGenerics> };\n};\n\nexport type TouchableHandlerPayload = {\n defaultHandler?: () => void;\n event?: GestureResponderEvent;\n} & (\n | {\n emitter?: Exclude<TouchableEmitter, 'textMention' | 'textLink' | 'card' | 'fileAttachment'>;\n }\n | TextMentionTouchableHandlerPayload\n | UrlTouchableHandlerPayload\n | FileAttachmentTouchableHandlerPayload\n);\n\nexport type MessageTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = TouchableHandlerPayload & {\n /**\n * Set of action handler functions for various message actions. You can use these functions to perform any action when give interaction occurs.\n */\n actionHandlers?: MessageActionHandlers;\n /**\n * Additional message touchable handler info.\n */\n additionalInfo?: Record<string, unknown>;\n /**\n * Message object, on which interaction occurred.\n */\n message?: MessageType<StreamChatGenerics>;\n};\n\nexport type MessageActionHandlers = {\n deleteMessage: () => Promise<void>;\n editMessage: () => void;\n pinMessage: () => Promise<void>;\n quotedReply: () => void;\n resendMessage: () => Promise<void>;\n showMessageOverlay: () => void;\n toggleBanUser: () => Promise<void>;\n toggleMuteUser: () => Promise<void>;\n toggleReaction: (reactionType: string) => Promise<void>;\n};\n\nexport type MessagePropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n ChannelContextValue<StreamChatGenerics>,\n 'channel' | 'disabled' | 'enforceUniqueReaction' | 'members'\n> &\n Pick<KeyboardContextValue, 'dismissKeyboard'> &\n Partial<Omit<MessageContextValue<StreamChatGenerics>, 'groupStyles' | 'message'>> &\n Pick<MessageContextValue<StreamChatGenerics>, 'groupStyles' | 'message'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'sendReaction'\n | 'deleteMessage'\n | 'dismissKeyboardOnMessageTouch'\n | 'forceAlignMessages'\n | 'handleBlock'\n | 'handleCopy'\n | 'handleDelete'\n | 'handleEdit'\n | 'handleFlag'\n | 'handleMute'\n | 'handlePinMessage'\n | 'handleQuotedReply'\n | 'handleReaction'\n | 'handleRetry'\n | 'handleThreadReply'\n | 'isAttachmentEqual'\n | 'messageActions'\n | 'messageContentOrder'\n | 'MessageBounce'\n | 'MessageSimple'\n | 'onLongPressMessage'\n | 'onPressInMessage'\n | 'onPressMessage'\n | 'OverlayReactionList'\n | 'removeMessage'\n | 'deleteReaction'\n | 'retrySendMessage'\n | 'selectReaction'\n | 'setEditingState'\n | 'setQuotedMessageState'\n | 'supportedReactions'\n | 'updateMessage'\n > &\n Pick<MessageOverlayContextValue<StreamChatGenerics>, 'setData'> &\n Pick<OverlayContextValue, 'setOverlay'> &\n Pick<ThreadContextValue<StreamChatGenerics>, 'openThread'> &\n Pick<TranslationContextValue, 't'> & {\n chatContext: ChatContextValue<StreamChatGenerics>;\n messagesContext: MessagesContextValue<StreamChatGenerics>;\n /**\n * Whether or not users are able to long press messages.\n */\n enableLongPress?: boolean;\n goToMessage?: (messageId: string) => void;\n isTargetedMessage?: boolean;\n /**\n * Array of allowed actions or null on message, this can also be a function returning the array.\n * If all the actions need to be disabled an empty array should be provided as value of prop\n */\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/Message.tsx)\n *\n * By default, we show the overlay with all the message actions on long press.\n *\n * @param message Message object which was long pressed\n * @param event Event object for onLongPress event\n **/\n onLongPress?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/Message.tsx)\n *\n * By default, we will dismiss the keyboard on press.\n *\n * @param message Message object which was long pressed\n * @param event Event object for onLongPress event\n * */\n onPress?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n onPressIn?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n /**\n * Handler to open the thread on message. This is callback for touch event for replies button.\n *\n * @param message A message object to open the thread upon.\n */\n onThreadSelect?: (message: MessageType<StreamChatGenerics>) => void;\n showUnreadUnderlay?: boolean;\n style?: StyleProp<ViewStyle>;\n };\n\n/**\n * Since this component doesn't consume `messages` from `MessagesContext`,\n * we memoized and broke it up to prevent new messages from re-rendering\n * each individual Message component.\n */\nconst MessageWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessagePropsWithContext<StreamChatGenerics>,\n) => {\n const [isBounceDialogOpen, setIsBounceDialogOpen] = useState(false);\n const isMessageTypeDeleted = props.message.type === 'deleted';\n\n const {\n sendReaction,\n channel,\n deleteMessage: deleteMessageFromContext,\n disabled,\n dismissKeyboard,\n dismissKeyboardOnMessageTouch,\n enableLongPress = true,\n enforceUniqueReaction,\n forceAlignMessages = false,\n goToMessage,\n groupStyles = ['bottom'],\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction: handleReactionProp,\n handleRetry,\n handleThreadReply,\n chatContext,\n lastReceivedId,\n members,\n message,\n messageActions: messageActionsProp = defaultMessageActions,\n messageContentOrder: messageContentOrderProp,\n messagesContext,\n MessageBounce,\n MessageSimple,\n onLongPress: onLongPressProp,\n onLongPressMessage: onLongPressMessageProp,\n onPress: onPressProp,\n onPressMessage: onPressMessageProp,\n onPressIn: onPressInProp,\n onPressInMessage: onPressInMessageProp,\n onThreadSelect,\n openThread,\n OverlayReactionList,\n preventPress,\n removeMessage,\n deleteReaction,\n retrySendMessage,\n selectReaction,\n setData,\n setEditingState,\n setOverlay,\n setQuotedMessageState,\n showAvatar,\n showMessageStatus,\n showUnreadUnderlay,\n style,\n supportedReactions,\n t,\n isTargetedMessage,\n threadList = false,\n updateMessage,\n } = props;\n const { client } = chatContext;\n const {\n theme: {\n colors: { bg_gradient_start, targetedMessageBackground },\n messageSimple: { targetedMessageContainer, targetedMessageUnderlay },\n },\n } = useTheme();\n\n const actionsEnabled =\n message.type === 'regular' && message.status === MessageStatusTypes.RECEIVED;\n\n const isMyMessage = client && message && client.userID === message.user?.id;\n\n const handleAction = async (name: string, value: string) => {\n if (message.id) {\n const data = await channel?.sendAction(message.id, { [name]: value });\n if (data?.message) {\n updateMessage(data.message);\n } else {\n removeMessage({\n id: message.id,\n parent_id: message.parent_id,\n });\n }\n }\n };\n\n const onPressQuotedMessage = (quotedMessage: MessageType<StreamChatGenerics>) => {\n if (!goToMessage) return;\n\n goToMessage(quotedMessage.id);\n };\n\n const errorOrFailed = message.type === 'error' || message.status === MessageStatusTypes.FAILED;\n\n const onPress = (error = errorOrFailed) => {\n if (dismissKeyboardOnMessageTouch) {\n Keyboard.dismiss();\n }\n const quotedMessage = message.quoted_message as MessageType<StreamChatGenerics>;\n if (error) {\n /**\n * If its a Blocked message, we don't do anything as per specs.\n */\n if (isBlockedMessage(message)) {\n return;\n }\n /**\n * If its a Bounced message, we open the message bounced options modal.\n */\n if (isBouncedMessage(message)) {\n setIsBounceDialogOpen(true);\n return;\n }\n showMessageOverlay(false, true);\n } else if (quotedMessage) {\n onPressQuotedMessage(quotedMessage);\n }\n };\n\n const alignment =\n forceAlignMessages && (forceAlignMessages === 'left' || forceAlignMessages === 'right')\n ? forceAlignMessages\n : isMyMessage\n ? 'right'\n : 'left';\n\n /**\n * attachments contain files/images or other attachments\n *\n * if a URL attachment is present with a file/image then we\n * show just the text and markdown should make the link\n * clickable\n */\n const attachments =\n !isMessageTypeDeleted && Array.isArray(message.attachments)\n ? message.attachments.reduce(\n (acc, cur) => {\n if (cur.type === 'file') {\n acc.files.push(cur);\n acc.other = []; // remove other attachments if a file exists\n } else if (cur.type === 'video' && !cur.og_scrape_url && isVideoPackageAvailable()) {\n acc.videos.push({\n image_url: cur.asset_url,\n thumb_url: cur.thumb_url,\n type: 'video',\n });\n acc.other = [];\n } else if (cur.type === 'video' && !cur.og_scrape_url) {\n acc.files.push(cur);\n acc.other = []; // remove other attachments if a file exists\n } else if (cur.type === 'audio') {\n acc.files.push(cur);\n } else if (cur.type === 'image' && !cur.title_link && !cur.og_scrape_url) {\n /**\n * this next if is not combined with the above one for cases where we have\n * an image with no url links at all falling back to being an attachment\n */\n if (cur.image_url || cur.thumb_url) {\n acc.images.push(cur);\n acc.other = []; // remove other attachments if an image exists\n }\n // only add other attachments if there are no files/images\n } else if (!acc.files.length && !acc.images.length && !acc.videos.length) {\n acc.other.push(cur);\n }\n\n return acc;\n },\n {\n files: [] as Attachment<StreamChatGenerics>[],\n images: [] as Attachment<StreamChatGenerics>[],\n other: [] as Attachment<StreamChatGenerics>[],\n videos: [] as Attachment<StreamChatGenerics>[],\n },\n )\n : {\n files: [] as Attachment<StreamChatGenerics>[],\n images: [] as Attachment<StreamChatGenerics>[],\n other: [] as Attachment<StreamChatGenerics>[],\n videos: [] as Attachment<StreamChatGenerics>[],\n };\n /**\n * Check if any actions to prevent long press\n */\n const hasAttachmentActions =\n !isMessageTypeDeleted &&\n Array.isArray(message.attachments) &&\n message.attachments.some((attachment) => attachment.actions && attachment.actions.length);\n\n const messageContentOrder = messageContentOrderProp.filter((content) => {\n if (content === 'quoted_reply') {\n return !!message.quoted_message;\n }\n\n switch (content) {\n case 'attachments':\n return !!attachments.other.length;\n case 'files':\n return !!attachments.files.length;\n case 'gallery':\n return !!attachments.images.length || !!attachments.videos.length;\n case 'text':\n default:\n return !!message.text;\n }\n });\n\n const emojiOnlyText = useMemo(() => {\n if (!message.text) return false;\n return hasOnlyEmojis(message.text);\n }, [message.text]);\n\n const onlyEmojis =\n !attachments.files.length &&\n !attachments.images.length &&\n !attachments.other.length &&\n emojiOnlyText;\n\n const onOpenThread = () => {\n if (onThreadSelect) {\n onThreadSelect(message);\n }\n if (openThread) {\n openThread(message);\n }\n };\n\n const hasReactions =\n !isMessageTypeDeleted && !!message.latest_reactions && message.latest_reactions.length > 0;\n\n const clientId = client.userID;\n\n const reactions = hasReactions\n ? supportedReactions.reduce((acc, cur) => {\n const reactionType = cur.type;\n const reactionsOfReactionType = message.latest_reactions?.filter(\n (reaction) => reaction.type === reactionType,\n );\n\n if (reactionsOfReactionType?.length) {\n const hasOwnReaction = reactionsOfReactionType.some(\n (reaction) => reaction.user_id === clientId,\n );\n acc.push({ own: hasOwnReaction, type: reactionType });\n }\n\n return acc;\n }, [] as Reactions)\n : [];\n\n const ownCapabilities = useOwnCapabilitiesContext();\n\n const {\n handleDeleteMessage,\n handleEditMessage,\n handleQuotedReplyMessage,\n handleResendMessage,\n handleToggleBanUser,\n handleToggleMuteUser,\n handleTogglePinMessage,\n handleToggleReaction,\n } = useMessageActionHandlers({\n channel,\n client,\n deleteMessage: deleteMessageFromContext,\n deleteReaction,\n enforceUniqueReaction,\n message,\n retrySendMessage,\n sendReaction,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n });\n\n const {\n blockUser,\n copyMessage,\n deleteMessage,\n editMessage,\n flagMessage,\n handleReaction,\n muteUser,\n pinMessage,\n quotedReply,\n retry,\n threadReply,\n unpinMessage,\n } = useMessageActions({\n channel,\n client,\n deleteMessage: deleteMessageFromContext,\n deleteReaction,\n enforceUniqueReaction,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction: handleReactionProp,\n handleRetry,\n handleThreadReply,\n message,\n onThreadSelect,\n openThread,\n removeMessage,\n retrySendMessage,\n selectReaction,\n sendReaction,\n setEditingState,\n setOverlay,\n setQuotedMessageState,\n supportedReactions,\n t,\n updateMessage,\n });\n\n const { userLanguage } = useTranslationContext();\n\n const showMessageOverlay = async (messageReactions = false, error = errorOrFailed) => {\n await dismissKeyboard();\n\n const isThreadMessage = threadList || !!message.parent_id;\n\n const dismissOverlay = () => setOverlay('none');\n\n const messageActions =\n typeof messageActionsProp !== 'function'\n ? messageActionsProp\n : messageActionsProp({\n blockUser,\n copyMessage,\n deleteMessage,\n dismissOverlay,\n editMessage,\n error,\n flagMessage,\n isMyMessage,\n isThreadMessage,\n message,\n messageReactions,\n muteUser,\n ownCapabilities,\n pinMessage,\n quotedReply,\n retry,\n threadReply,\n unpinMessage,\n });\n\n setData({\n alignment,\n chatContext,\n clientId: client.userID,\n files: attachments.files,\n groupStyles,\n handleReaction: ownCapabilities.sendReaction ? handleReaction : undefined,\n images: attachments.images,\n message,\n messageActions: messageActions?.filter(Boolean) as MessageActionListItemProps[] | undefined,\n messageContext: { ...messageContext, preventPress: true },\n messageReactionTitle: !error && messageReactions ? t('Message Reactions') : undefined,\n messagesContext: { ...messagesContext, messageContentOrder },\n onlyEmojis,\n otherAttachments: attachments.other,\n OverlayReactionList,\n ownCapabilities,\n supportedReactions,\n threadList,\n userLanguage,\n videos: attachments.videos,\n });\n\n setOverlay('message');\n };\n\n const actionHandlers: MessageActionHandlers = {\n deleteMessage: handleDeleteMessage,\n editMessage: handleEditMessage,\n pinMessage: handleTogglePinMessage,\n quotedReply: handleQuotedReplyMessage,\n resendMessage: handleResendMessage,\n showMessageOverlay,\n toggleBanUser: handleToggleBanUser,\n toggleMuteUser: handleToggleMuteUser,\n toggleReaction: handleToggleReaction,\n };\n\n const onLongPressMessage =\n disabled || hasAttachmentActions || isBlockedMessage(message)\n ? () => null\n : onLongPressMessageProp\n ? (payload?: TouchableHandlerPayload) =>\n onLongPressMessageProp({\n actionHandlers,\n defaultHandler: payload?.defaultHandler || showMessageOverlay,\n emitter: payload?.emitter || 'message',\n event: payload?.event,\n message,\n })\n : onLongPressProp\n ? (payload?: TouchableHandlerPayload) =>\n onLongPressProp({\n actionHandlers,\n defaultHandler: payload?.defaultHandler || showMessageOverlay,\n emitter: payload?.emitter || 'message',\n event: payload?.event,\n })\n : enableLongPress\n ? () => {\n // If a message is bounced, on long press the message bounce options modal should open.\n if (isBouncedMessage(message)) {\n setIsBounceDialogOpen(true);\n return;\n }\n triggerHaptic('impactMedium');\n showMessageOverlay(false);\n }\n : () => null;\n\n const messageContext = useCreateMessageContext({\n actionsEnabled,\n alignment,\n channel,\n disabled,\n files: attachments.files,\n goToMessage,\n groupStyles,\n handleAction,\n handleDeleteMessage,\n handleEditMessage,\n handleQuotedReplyMessage,\n handleResendMessage,\n handleToggleBanUser,\n handleToggleMuteUser,\n handleToggleReaction,\n hasReactions,\n images: attachments.images,\n isMyMessage,\n lastGroupMessage: groupStyles?.[0] === 'single' || groupStyles?.[0] === 'bottom',\n lastReceivedId,\n members,\n message,\n messageContentOrder,\n myMessageTheme: messagesContext.myMessageTheme,\n onLongPress: onLongPressMessage,\n onlyEmojis,\n onOpenThread,\n onPress: (payload) => {\n const onPressArgs = {\n actionHandlers,\n additionalInfo: payload.additionalInfo,\n defaultHandler: payload.defaultHandler || onPress,\n emitter: payload.emitter || 'message',\n event: payload.event,\n message,\n };\n\n const handleOnPress = () => {\n if (onPressProp) return onPressProp(onPressArgs);\n if (onPressMessageProp) return onPressMessageProp(onPressArgs);\n if (payload.defaultHandler) return payload.defaultHandler();\n\n return onPress();\n };\n\n handleOnPress();\n },\n onPressIn:\n onPressInProp || onPressInMessageProp\n ? (payload) => {\n const onPressInArgs = {\n actionHandlers,\n defaultHandler: payload.defaultHandler,\n emitter: payload.emitter || 'message',\n event: payload.event,\n message,\n };\n const handleOnpressIn = () => {\n if (onPressInProp) return onPressInProp(onPressInArgs);\n if (onPressInMessageProp) return onPressInMessageProp(onPressInArgs);\n };\n handleOnpressIn();\n }\n : null,\n otherAttachments: attachments.other,\n preventPress,\n reactions,\n showAvatar,\n showMessageOverlay,\n showMessageStatus: typeof showMessageStatus === 'boolean' ? showMessageStatus : isMyMessage,\n threadList,\n videos: attachments.videos,\n });\n\n if (!(isMessageTypeDeleted || messageContentOrder.length)) return null;\n\n return (\n <View\n style={[\n message.pinned && {\n ...targetedMessageContainer,\n backgroundColor: targetedMessageBackground,\n },\n ]}\n testID='message-wrapper'\n >\n <View\n style={[\n style,\n {\n backgroundColor: showUnreadUnderlay ? bg_gradient_start : undefined,\n },\n ]}\n >\n <View\n style={[\n isTargetedMessage\n ? { backgroundColor: targetedMessageBackground, ...targetedMessageUnderlay }\n : {},\n ]}\n >\n <MessageProvider value={messageContext}>\n <MessageSimple />\n {isBounceDialogOpen && <MessageBounce setIsBounceDialogOpen={setIsBounceDialogOpen} />}\n </MessageProvider>\n </View>\n </View>\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessagePropsWithContext<StreamChatGenerics>,\n nextProps: MessagePropsWithContext<StreamChatGenerics>,\n) => {\n const {\n chatContext: { mutedUsers: prevMutedUsers },\n disabled: prevDisabled,\n goToMessage: prevGoToMessage,\n groupStyles: prevGroupStyles,\n isAttachmentEqual,\n isTargetedMessage: prevIsTargetedMessage,\n lastReceivedId: prevLastReceivedId,\n members: prevMembers,\n message: prevMessage,\n messagesContext: prevMessagesContext,\n showUnreadUnderlay: prevShowUnreadUnderlay,\n t: prevT,\n } = prevProps;\n const {\n chatContext: { mutedUsers: nextMutedUsers },\n disabled: nextDisabled,\n goToMessage: nextGoToMessage,\n groupStyles: nextGroupStyles,\n isTargetedMessage: nextIsTargetedMessage,\n lastReceivedId: nextLastReceivedId,\n members: nextMembers,\n message: nextMessage,\n messagesContext: nextMessagesContext,\n showUnreadUnderlay: nextShowUnreadUnderlay,\n t: nextT,\n } = nextProps;\n\n const disabledEqual = prevDisabled === nextDisabled;\n if (!disabledEqual) return false;\n\n const membersEqual = Object.keys(prevMembers).length === Object.keys(nextMembers).length;\n if (!membersEqual) return false;\n\n const repliesEqual = prevMessage.reply_count === nextMessage.reply_count;\n if (!repliesEqual) return false;\n\n const lastReceivedIdChangedAndMatters =\n prevLastReceivedId !== nextLastReceivedId &&\n (prevLastReceivedId === prevMessage.id ||\n prevLastReceivedId === nextMessage.id ||\n nextLastReceivedId === prevMessage.id ||\n nextLastReceivedId === nextMessage.id);\n\n if (lastReceivedIdChangedAndMatters) return false;\n\n const goToMessageChangedAndMatters =\n nextMessage.quoted_message_id && prevGoToMessage !== nextGoToMessage;\n\n if (goToMessageChangedAndMatters) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const isPrevMessageTypeDeleted = prevMessage.type === 'deleted';\n const isNextMessageTypeDeleted = nextMessage.type === 'deleted';\n\n const messageEqual =\n isPrevMessageTypeDeleted === isNextMessageTypeDeleted &&\n (isMessageWithStylesReadByAndDateSeparator(prevMessage) && prevMessage.readBy) ===\n (isMessageWithStylesReadByAndDateSeparator(nextMessage) && nextMessage.readBy) &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text &&\n prevMessage.pinned === nextMessage.pinned &&\n `${prevMessage?.updated_at}` === `${nextMessage?.updated_at}`;\n\n if (!messageEqual) return false;\n\n const isPrevQuotedMessageTypeDeleted = prevMessage.quoted_message?.type === 'deleted';\n const isNextQuotedMessageTypeDeleted = nextMessage.quoted_message?.type === 'deleted';\n\n const quotedMessageEqual =\n prevMessage.quoted_message?.id === nextMessage.quoted_message?.id &&\n isPrevQuotedMessageTypeDeleted === isNextQuotedMessageTypeDeleted;\n\n if (!quotedMessageEqual) return false;\n\n const messageUserBannedEqual = prevMessage.user?.banned === nextMessage.user?.banned;\n if (!messageUserBannedEqual) return false;\n\n const prevMessageAttachments = prevMessage.attachments;\n const nextMessageAttachments = nextMessage.attachments;\n const attachmentsEqual =\n (Array.isArray(prevMessageAttachments) &&\n Array.isArray(nextMessageAttachments) &&\n prevMessageAttachments.length === nextMessageAttachments.length &&\n prevMessageAttachments.every((attachment, index) => {\n const attachmentKeysEqual =\n attachment.type === 'image'\n ? attachment.image_url === nextMessageAttachments[index].image_url &&\n attachment.thumb_url === nextMessageAttachments[index].thumb_url\n : attachment.type === nextMessageAttachments[index].type;\n\n if (isAttachmentEqual)\n return (\n attachmentKeysEqual && !!isAttachmentEqual(attachment, nextMessageAttachments[index])\n );\n\n return attachmentKeysEqual;\n })) ||\n prevMessageAttachments === nextMessageAttachments;\n if (!attachmentsEqual) return false;\n\n const latestReactionsEqual =\n Array.isArray(prevMessage.latest_reactions) && Array.isArray(nextMessage.latest_reactions)\n ? prevMessage.latest_reactions.length === nextMessage.latest_reactions.length &&\n prevMessage.latest_reactions.every(\n ({ type }, index) => type === nextMessage.latest_reactions?.[index].type,\n )\n : prevMessage.latest_reactions === nextMessage.latest_reactions;\n if (!latestReactionsEqual) return false;\n\n const mutedUserSame =\n prevMutedUsers.length === nextMutedUsers.length ||\n prevMutedUsers.some((mutedUser) => mutedUser.target.id === prevMessage.user?.id) ===\n nextMutedUsers.some((mutedUser) => mutedUser.target.id === nextMessage.user?.id);\n if (!mutedUserSame) return false;\n\n const showUnreadUnderlayEqual = prevShowUnreadUnderlay === nextShowUnreadUnderlay;\n if (!showUnreadUnderlayEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const targetedMessageEqual = prevIsTargetedMessage === nextIsTargetedMessage;\n if (!targetedMessageEqual) return false;\n\n const prevMyMessageTheme = JSON.stringify(prevMessagesContext?.myMessageTheme);\n const nextMyMessageTheme = JSON.stringify(nextMessagesContext?.myMessageTheme);\n\n const messageThemeEqual = prevMyMessageTheme === nextMyMessageTheme;\n if (!messageThemeEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessage = React.memo(MessageWithContext, areEqual) as typeof MessageWithContext;\n\nexport type MessageProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<MessagePropsWithContext<StreamChatGenerics>, 'groupStyles' | 'message'>> &\n Pick<MessagePropsWithContext<StreamChatGenerics>, 'groupStyles' | 'message'>;\n\n/**\n * Message - A high level component which implements all the logic required for a message.\n * The actual rendering of the message is delegated via the \"Message\" property\n *\n * @example ./Message.md\n */\nexport const Message = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageProps<StreamChatGenerics>,\n) => {\n const { channel, disabled, enforceUniqueReaction, members } =\n useChannelContext<StreamChatGenerics>();\n const chatContext = useChatContext<StreamChatGenerics>();\n const { dismissKeyboard } = useKeyboardContext();\n const { setData } = useMessageOverlayContext<StreamChatGenerics>();\n const messagesContext = useMessagesContext<StreamChatGenerics>();\n const { setOverlay } = useOverlayContext();\n const { openThread } = useThreadContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedMessage<StreamChatGenerics>\n {...messagesContext}\n {...{\n channel,\n chatContext,\n disabled,\n dismissKeyboard,\n enforceUniqueReaction,\n members,\n messagesContext,\n openThread,\n setData,\n setOverlay,\n t,\n }}\n {...props}\n />\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_date","useCountdown","end","_useState","useState","_useState2","_slicedToArray2","seconds","setSeconds","useEffect","intervalId","startCountdown","setInterval","previous","next","clearInterval","ONE_SECOND_IN_MS","secondsUntilEnd","secondsUntil","exports"],"sources":["useCountdown.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { ONE_SECOND_IN_MS, secondsUntil } from '../../../utils/date';\n\n/**\n * Start a countdown to a set date, in seconds.\n * The date passed in as an argument to useCountdown\n * will be rounded up to the nearest second.\n **/\nexport const useCountdown = (end: Date) => {\n const [seconds, setSeconds] = useState(0);\n\n /**\n * When a new `end` is set for the countdown, start the counter if\n * the `end` is in the future.\n **/\n useEffect(() => {\n let intervalId: NodeJS.Timer;\n\n const startCountdown = (seconds: number) => {\n setSeconds(seconds);\n intervalId = setInterval(() => {\n setSeconds((previous: number) => {\n const next = previous - 1;\n if (next < 1) {\n /* Don't trigger an unnecessary rerender when done */\n clearInterval(intervalId);\n return 0;\n }\n return next;\n });\n }, ONE_SECOND_IN_MS);\n };\n\n const secondsUntilEnd = secondsUntil(end);\n if (secondsUntilEnd > 0) {\n startCountdown(secondsUntilEnd);\n }\n\n return () => {\n if (intervalId) {\n clearInterval(intervalId);\n }\n };\n }, [end]);\n\n return { seconds };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AAOO,IAAME,YAAY,GAAG,SAAfA,YAAYA,CAAIC,GAAS,EAAK;EACzC,IAAAC,SAAA,GAA8B,IAAAC,eAAQ,EAAC,CAAC,CAAC;IAAAC,UAAA,OAAAC,eAAA,aAAAH,SAAA;IAAlCI,OAAO,GAAAF,UAAA;IAAEG,UAAU,GAAAH,UAAA;EAM1B,IAAAI,gBAAS,EAAC,YAAM;IACd,IAAIC,UAAwB;IAE5B,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAIJ,OAAe,EAAK;MAC1CC,UAAU,CAACD,OAAO,CAAC;MACnBG,UAAU,GAAGE,WAAW,CAAC,YAAM;QAC7BJ,UAAU,CAAC,UAACK,QAAgB,EAAK;UAC/B,IAAMC,IAAI,GAAGD,QAAQ,GAAG,CAAC;UACzB,IAAIC,IAAI,GAAG,CAAC,EAAE;YAEZC,aAAa,CAACL,UAAU,CAAC;YACzB,OAAO,CAAC;UACV;UACA,OAAOI,IAAI;QACb,CAAC,CAAC;MACJ,CAAC,EAAEE,sBAAgB,CAAC;IACtB,CAAC;IAED,IAAMC,eAAe,GAAG,IAAAC,kBAAY,EAAChB,GAAG,CAAC;IACzC,IAAIe,eAAe,GAAG,CAAC,EAAE;MACvBN,cAAc,CAACM,eAAe,CAAC;IACjC;IAEA,OAAO,YAAM;MACX,IAAIP,UAAU,EAAE;QACdK,aAAa,CAACL,UAAU,CAAC;MAC3B;IACF,CAAC;EACH,CAAC,EAAE,CAACR,GAAG,CAAC,CAAC;EAET,OAAO;IAAEK,OAAO,EAAPA;EAAQ,CAAC;AACpB,CAAC;AAACY,OAAA,CAAAlB,YAAA,GAAAA,YAAA"}
1
+ {"version":3,"names":["_react","require","_date","useCountdown","end","_useState","useState","_useState2","_slicedToArray2","seconds","setSeconds","useEffect","intervalId","startCountdown","setInterval","previous","next","clearInterval","ONE_SECOND_IN_MS","secondsUntilEnd","secondsUntil","exports"],"sources":["useCountdown.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { ONE_SECOND_IN_MS, secondsUntil } from '../../../utils/date';\n\n/**\n * Start a countdown to a set date, in seconds.\n * The date passed in as an argument to useCountdown\n * will be rounded up to the nearest second.\n **/\nexport const useCountdown = (end: Date) => {\n const [seconds, setSeconds] = useState(0);\n\n /**\n * When a new `end` is set for the countdown, start the counter if\n * the `end` is in the future.\n **/\n useEffect(() => {\n let intervalId: NodeJS.Timeout;\n\n const startCountdown = (seconds: number) => {\n setSeconds(seconds);\n intervalId = setInterval(() => {\n setSeconds((previous: number) => {\n const next = previous - 1;\n if (next < 1) {\n /* Don't trigger an unnecessary rerender when done */\n clearInterval(intervalId);\n return 0;\n }\n return next;\n });\n }, ONE_SECOND_IN_MS);\n };\n\n const secondsUntilEnd = secondsUntil(end);\n if (secondsUntilEnd > 0) {\n startCountdown(secondsUntilEnd);\n }\n\n return () => {\n if (intervalId) {\n clearInterval(intervalId);\n }\n };\n }, [end]);\n\n return { seconds };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AAOO,IAAME,YAAY,GAAG,SAAfA,YAAYA,CAAIC,GAAS,EAAK;EACzC,IAAAC,SAAA,GAA8B,IAAAC,eAAQ,EAAC,CAAC,CAAC;IAAAC,UAAA,OAAAC,eAAA,aAAAH,SAAA;IAAlCI,OAAO,GAAAF,UAAA;IAAEG,UAAU,GAAAH,UAAA;EAM1B,IAAAI,gBAAS,EAAC,YAAM;IACd,IAAIC,UAA0B;IAE9B,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAIJ,OAAe,EAAK;MAC1CC,UAAU,CAACD,OAAO,CAAC;MACnBG,UAAU,GAAGE,WAAW,CAAC,YAAM;QAC7BJ,UAAU,CAAC,UAACK,QAAgB,EAAK;UAC/B,IAAMC,IAAI,GAAGD,QAAQ,GAAG,CAAC;UACzB,IAAIC,IAAI,GAAG,CAAC,EAAE;YAEZC,aAAa,CAACL,UAAU,CAAC;YACzB,OAAO,CAAC;UACV;UACA,OAAOI,IAAI;QACb,CAAC,CAAC;MACJ,CAAC,EAAEE,sBAAgB,CAAC;IACtB,CAAC;IAED,IAAMC,eAAe,GAAG,IAAAC,kBAAY,EAAChB,GAAG,CAAC;IACzC,IAAIe,eAAe,GAAG,CAAC,EAAE;MACvBN,cAAc,CAACM,eAAe,CAAC;IACjC;IAEA,OAAO,YAAM;MACX,IAAIP,UAAU,EAAE;QACdK,aAAa,CAACL,UAAU,CAAC;MAC3B;IACF,CAAC;EACH,CAAC,EAAE,CAACR,GAAG,CAAC,CAAC;EAET,OAAO;IAAEK,OAAO,EAAPA;EAAQ,CAAC;AACpB,CAAC;AAACY,OAAA,CAAAlB,YAAA,GAAAA,YAAA"}
@@ -39,7 +39,7 @@ var MessageActionListItemWithContext = function MessageActionListItemWithContext
39
39
  __self: _this,
40
40
  __source: {
41
41
  fileName: _jsxFileName,
42
- lineNumber: 65,
42
+ lineNumber: 81,
43
43
  columnNumber: 5
44
44
  }
45
45
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -52,7 +52,7 @@ var MessageActionListItemWithContext = function MessageActionListItemWithContext
52
52
  __self: _this,
53
53
  __source: {
54
54
  fileName: _jsxFileName,
55
- lineNumber: 66,
55
+ lineNumber: 82,
56
56
  columnNumber: 7
57
57
  }
58
58
  }, _react["default"].createElement(_reactNative.View, {
@@ -60,7 +60,7 @@ var MessageActionListItemWithContext = function MessageActionListItemWithContext
60
60
  __self: _this,
61
61
  __source: {
62
62
  fileName: _jsxFileName,
63
- lineNumber: 78,
63
+ lineNumber: 94,
64
64
  columnNumber: 9
65
65
  }
66
66
  }, icon), _react["default"].createElement(_reactNative.Text, {
@@ -70,7 +70,7 @@ var MessageActionListItemWithContext = function MessageActionListItemWithContext
70
70
  __self: _this,
71
71
  __source: {
72
72
  fileName: _jsxFileName,
73
- lineNumber: 79,
73
+ lineNumber: 95,
74
74
  columnNumber: 9
75
75
  }
76
76
  }, title)));
@@ -85,7 +85,7 @@ var MessageActionListItem = function MessageActionListItem(props) {
85
85
  __self: _this,
86
86
  __source: {
87
87
  fileName: _jsxFileName,
88
- lineNumber: 106,
88
+ lineNumber: 122,
89
89
  columnNumber: 6
90
90
  }
91
91
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_useMessageActionAnimation","_ThemeContext","_useViewport2","_this","_jsxFileName","MessageActionListItemWithContext","props","action","actionType","icon","index","length","title","titleStyle","_useViewport","useViewport","vw","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","black","border","messageActions","overlay","_useMessageActionAnim","useMessageActionAnimation","animatedStyle","onTap","createElement","TapGestureHandler","onHandlerStateChange","__self","__source","fileName","lineNumber","columnNumber","View","style","styles","row","minWidth","_extends2","bottomBorder","borderBottomColor","actionContainer","testID","Text","color","messageActionIsEqual","prevProps","nextProps","MemoizedMessageActionListItem","React","memo","exports","MessageActionListItem","StyleSheet","create","borderBottomWidth","container","borderRadius","marginTop","maxWidth","alignItems","flexDirection","justifyContent","paddingHorizontal","paddingVertical","paddingLeft"],"sources":["MessageActionListItem.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, StyleSheet, Text, TextStyle, View } from 'react-native';\nimport { TapGestureHandler } from 'react-native-gesture-handler';\nimport Animated from 'react-native-reanimated';\n\nimport { useMessageActionAnimation } from './hooks/useMessageActionAnimation';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useViewport } from '../../hooks/useViewport';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport type { MessageOverlayPropsWithContext } from '../MessageOverlay/MessageOverlay';\n\nexport type ActionType =\n | 'blockUser'\n | 'copyMessage'\n | 'deleteMessage'\n | 'editMessage'\n | 'flagMessage'\n | 'muteUser'\n | 'pinMessage'\n | 'selectReaction'\n | 'reply'\n | 'retry'\n | 'quotedReply'\n | 'threadReply'\n | 'unpinMessage';\n\nexport type MessageActionType = {\n action: () => void;\n actionType: ActionType;\n title: string;\n icon?: React.ReactElement;\n titleStyle?: StyleProp<TextStyle>;\n};\n\nexport type MessageActionListItemProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = MessageActionType &\n Pick<\n MessageOverlayPropsWithContext<StreamChatGenerics>,\n 'error' | 'isMyMessage' | 'isThreadMessage' | 'message' | 'messageReactions'\n > & {\n index: number;\n length: number;\n };\n\nconst MessageActionListItemWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageActionListItemProps<StreamChatGenerics>,\n) => {\n const { action, actionType, icon, index, length, title, titleStyle } = props;\n const { vw } = useViewport();\n\n const {\n theme: {\n colors: { black, border },\n overlay: { messageActions },\n },\n } = useTheme();\n\n const { animatedStyle, onTap } = useMessageActionAnimation({ action });\n\n return (\n <TapGestureHandler onHandlerStateChange={onTap}>\n <Animated.View\n style={[\n styles.row,\n {\n minWidth: vw(65),\n },\n index !== length - 1 ? { ...styles.bottomBorder, borderBottomColor: border } : {},\n animatedStyle,\n messageActions.actionContainer,\n ]}\n testID={`${actionType}-list-item`}\n >\n <View style={messageActions.icon}>{icon}</View>\n <Text style={[styles.titleStyle, { color: black }, titleStyle, messageActions.title]}>\n {title}\n </Text>\n </Animated.View>\n </TapGestureHandler>\n );\n};\n\nconst messageActionIsEqual = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n prevProps: MessageActionListItemProps<StreamChatGenerics>,\n nextProps: MessageActionListItemProps<StreamChatGenerics>,\n) => prevProps.length === nextProps.length;\n\nexport const MemoizedMessageActionListItem = React.memo(\n MessageActionListItemWithContext,\n messageActionIsEqual,\n) as typeof MessageActionListItemWithContext;\n\n/**\n * MessageActionListItem - A high-level component that implements all the logic required for a `MessageAction` in a `MessageActionList`\n */\nexport const MessageActionListItem = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageActionListItemProps<StreamChatGenerics>,\n) => <MemoizedMessageActionListItem {...props} />;\n\nconst styles = StyleSheet.create({\n bottomBorder: {\n borderBottomWidth: 1,\n },\n container: {\n borderRadius: 16,\n marginTop: 8,\n maxWidth: 275,\n },\n row: {\n alignItems: 'center',\n flexDirection: 'row',\n justifyContent: 'flex-start',\n paddingHorizontal: 20,\n paddingVertical: 10,\n },\n titleStyle: {\n paddingLeft: 20,\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_useMessageActionAnimation","_ThemeContext","_useViewport2","_this","_jsxFileName","MessageActionListItemWithContext","props","action","actionType","icon","index","length","title","titleStyle","_useViewport","useViewport","vw","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","black","border","messageActions","overlay","_useMessageActionAnim","useMessageActionAnimation","animatedStyle","onTap","createElement","TapGestureHandler","onHandlerStateChange","__self","__source","fileName","lineNumber","columnNumber","View","style","styles","row","minWidth","_extends2","bottomBorder","borderBottomColor","actionContainer","testID","Text","color","messageActionIsEqual","prevProps","nextProps","MemoizedMessageActionListItem","React","memo","exports","MessageActionListItem","StyleSheet","create","borderBottomWidth","container","borderRadius","marginTop","maxWidth","alignItems","flexDirection","justifyContent","paddingHorizontal","paddingVertical","paddingLeft"],"sources":["MessageActionListItem.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, StyleSheet, Text, TextStyle, View } from 'react-native';\nimport { TapGestureHandler } from 'react-native-gesture-handler';\nimport Animated from 'react-native-reanimated';\n\nimport { useMessageActionAnimation } from './hooks/useMessageActionAnimation';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useViewport } from '../../hooks/useViewport';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport type { MessageOverlayPropsWithContext } from '../MessageOverlay/MessageOverlay';\n\nexport type ActionType =\n | 'blockUser'\n | 'copyMessage'\n | 'deleteMessage'\n | 'editMessage'\n | 'flagMessage'\n | 'muteUser'\n | 'pinMessage'\n | 'selectReaction'\n | 'reply'\n | 'retry'\n | 'quotedReply'\n | 'threadReply'\n | 'unpinMessage';\n\nexport type MessageActionType = {\n /**\n * Callback when user presses the action button.\n */\n action: () => void;\n /**\n * Type of the action performed.\n * Eg: 'blockUser', 'copyMessage', 'deleteMessage', 'editMessage', 'flagMessage', 'muteUser', 'pinMessage', 'selectReaction', 'reply', 'retry', 'quotedReply', 'threadReply', 'unpinMessage'\n */\n actionType: ActionType;\n /**\n * Title for action button.\n */\n title: string;\n /**\n * Element to render as icon for action button.\n */\n icon?: React.ReactElement;\n /**\n * Styles for underlying Text component of action title.\n */\n titleStyle?: StyleProp<TextStyle>;\n};\n\nexport type MessageActionListItemProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = MessageActionType &\n Pick<\n MessageOverlayPropsWithContext<StreamChatGenerics>,\n 'error' | 'isMyMessage' | 'isThreadMessage' | 'message' | 'messageReactions'\n > & {\n index: number;\n length: number;\n };\n\nconst MessageActionListItemWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageActionListItemProps<StreamChatGenerics>,\n) => {\n const { action, actionType, icon, index, length, title, titleStyle } = props;\n const { vw } = useViewport();\n\n const {\n theme: {\n colors: { black, border },\n overlay: { messageActions },\n },\n } = useTheme();\n\n const { animatedStyle, onTap } = useMessageActionAnimation({ action });\n\n return (\n <TapGestureHandler onHandlerStateChange={onTap}>\n <Animated.View\n style={[\n styles.row,\n {\n minWidth: vw(65),\n },\n index !== length - 1 ? { ...styles.bottomBorder, borderBottomColor: border } : {},\n animatedStyle,\n messageActions.actionContainer,\n ]}\n testID={`${actionType}-list-item`}\n >\n <View style={messageActions.icon}>{icon}</View>\n <Text style={[styles.titleStyle, { color: black }, titleStyle, messageActions.title]}>\n {title}\n </Text>\n </Animated.View>\n </TapGestureHandler>\n );\n};\n\nconst messageActionIsEqual = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n prevProps: MessageActionListItemProps<StreamChatGenerics>,\n nextProps: MessageActionListItemProps<StreamChatGenerics>,\n) => prevProps.length === nextProps.length;\n\nexport const MemoizedMessageActionListItem = React.memo(\n MessageActionListItemWithContext,\n messageActionIsEqual,\n) as typeof MessageActionListItemWithContext;\n\n/**\n * MessageActionListItem - A high-level component that implements all the logic required for a `MessageAction` in a `MessageActionList`\n */\nexport const MessageActionListItem = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageActionListItemProps<StreamChatGenerics>,\n) => <MemoizedMessageActionListItem {...props} />;\n\nconst styles = StyleSheet.create({\n bottomBorder: {\n borderBottomWidth: 1,\n },\n container: {\n borderRadius: 16,\n marginTop: 8,\n maxWidth: 275,\n },\n row: {\n alignItems: 'center',\n flexDirection: 'row',\n justifyContent: 'flex-start',\n paddingHorizontal: 20,\n paddingVertical: 10,\n },\n titleStyle: {\n paddingLeft: 20,\n },\n});\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_defaultBaseContextValue","_getDisplayName","_isTestEnvironment","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ChannelsContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","exports","ChannelsProvider","_ref","children","value","createElement","Provider","__self","__source","fileName","lineNumber","columnNumber","useChannelsContext","contextValue","useContext","isTestEnvironment","Error","withChannelsContext","Component","WithChannelsContextComponent","props","channelsContext","_extends2","displayName","getDisplayName"],"sources":["ChannelsContext.tsx"],"sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\n\nimport type { FlatListProps } from 'react-native';\nimport type { FlatList } from 'react-native-gesture-handler';\n\nimport type { Channel } from 'stream-chat';\n\nimport type { HeaderErrorProps } from '../../components/ChannelList/ChannelListHeaderErrorIndicator';\nimport type { QueryChannels } from '../../components/ChannelList/hooks/usePaginatedChannels';\nimport type { ChannelAvatarProps } from '../../components/ChannelPreview/ChannelAvatar';\nimport type { ChannelPreviewMessageProps } from '../../components/ChannelPreview/ChannelPreviewMessage';\nimport type { ChannelPreviewMessengerProps } from '../../components/ChannelPreview/ChannelPreviewMessenger';\nimport type { ChannelPreviewStatusProps } from '../../components/ChannelPreview/ChannelPreviewStatus';\nimport type { ChannelPreviewTitleProps } from '../../components/ChannelPreview/ChannelPreviewTitle';\nimport type { ChannelPreviewUnreadCountProps } from '../../components/ChannelPreview/ChannelPreviewUnreadCount';\nimport type { EmptyStateProps } from '../../components/Indicators/EmptyStateIndicator';\nimport type { LoadingErrorProps } from '../../components/Indicators/LoadingErrorIndicator';\nimport type { LoadingProps } from '../../components/Indicators/LoadingIndicator';\nimport type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type ChannelsContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Besides the existing default behavior of the ChannelListMessenger component, you can attach\n * additional props to the underlying React Native FlatList.\n *\n * You can find list of all the available FlatList props here - https://facebook.github.io/react-native/docs/flatlist#props\n *\n * **EXAMPLE:**\n *\n * ```\n * <ChannelListMessenger\n * channels={channels}\n * additionalFlatListProps={{ bounces: true }}\n * />\n * ```\n *\n * **Note:** Don't use `additionalFlatListProps` to access the FlatList ref, use `setFlatListRef`\n */\n additionalFlatListProps: Partial<FlatListProps<Channel<StreamChatGenerics>>>;\n /**\n * Channels can be either an array of channels or a promise which resolves to an array of channels\n */\n channels: Channel<StreamChatGenerics>[] | null;\n /**\n * Custom indicator to use when channel list is empty\n *\n * Default: [EmptyStateIndicator](https://getstream.io/chat/docs/sdk/reactnative/core-components/channel/#emptystateindicator)\n * */\n EmptyStateIndicator: React.ComponentType<EmptyStateProps>;\n /**\n * Custom loading indicator to display at bottom of the list, while loading further pages\n *\n * Default: [ChannelListFooterLoadingIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#footerloadingindicator)\n */\n FooterLoadingIndicator: React.ComponentType;\n /**\n * Incremental number change to force update the FlatList\n */\n forceUpdate: number;\n /**\n * Whether or not the FlatList has another page to render\n */\n hasNextPage: boolean;\n /**\n * Custom indicator to display error at top of list, if loading/pagination error occurs\n *\n * Default: [ChannelListHeaderErrorIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#headererrorindicator)\n */\n HeaderErrorIndicator: React.ComponentType<HeaderErrorProps>;\n /**\n * Custom indicator to display network-down error at top of list, if there is connectivity issue\n *\n * Default: [ChannelListHeaderNetworkDownIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#headernetworkdownindicator)\n */\n HeaderNetworkDownIndicator: React.ComponentType;\n /**\n * Initial channels query loading state, triggers the LoadingIndicator\n */\n loadingChannels: boolean;\n /**\n * Custom indicator to use when there is error in fetching channels\n *\n * Default: [LoadingErrorIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#loadingerrorindicator)\n * */\n LoadingErrorIndicator: React.ComponentType<LoadingErrorProps>;\n /**\n * Custom loading indicator to use on Channel List\n *\n * */\n LoadingIndicator: React.ComponentType<Pick<LoadingProps, 'listType'>>;\n /**\n * Whether or not additional channels are being loaded, triggers the FooterLoadingIndicator\n */\n loadingNextPage: boolean;\n /**\n * The React Native FlatList threshold to fetch more data\n * @see See loadMoreThreshold [doc](https://facebook.github.io/react-native/docs/flatlist#onendreachedthreshold)\n * */\n loadMoreThreshold: number;\n /**\n * Loads the next page of `channels`, which is present as a required prop\n */\n loadNextPage: QueryChannels;\n /**\n * Max number to display within notification badge. Default: 255 and it cannot be higher than that for now due to backend limitations\n */\n maxUnreadCount: number;\n /**\n * Number of skeletons that should show when loading. Default: 6\n */\n numberOfSkeletons: number;\n /**\n * Custom UI component to display individual channel list items\n *\n * Default: [ChannelPreviewMessenger](https://getstream.io/chat/docs/sdk/reactnative/ui-components/channel-preview-messenger/)\n */\n Preview: React.ComponentType<ChannelPreviewMessengerProps<StreamChatGenerics>>;\n /**\n * Triggered when the channel list is refreshing, displays a loading spinner at the top of the list\n */\n refreshing: boolean;\n /**\n * Function to refresh the channel list that is similar to `reloadList`, but it doesn't wipe out existing channels\n * from UI before loading the new ones\n */\n refreshList: () => void | Promise<void>;\n /**\n * Removes all the existing channels from UI and loads fresh channels\n * */\n reloadList: () => Promise<void>;\n // /**\n // * Function to set the currently active channel, acts as a bridge between ChannelList and Channel components\n // *\n // * @param channel A channel object\n // */\n // setActiveChannel?: (channel: Channel<StreamChatGenerics>) => void;\n /**\n * Function to gain access to the inner FlatList ref\n *\n * **Example:**\n *\n * ```\n * <ChannelListMessenger\n * setFlatListRef={(ref) => {\n * // Use ref for your own good\n * }}\n * ```\n */\n setFlatListRef: (ref: FlatList<Channel<StreamChatGenerics>> | null) => void;\n /**\n * Custom UI component to display loading channel skeletons\n *\n * Default: [Skeleton](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#skeleton)\n */\n Skeleton: React.ComponentType;\n /**\n * Error in channels query, if any\n */\n error?: Error;\n ListHeaderComponent?: React.ComponentType;\n /**\n * Function to set the currently active channel, acts as a bridge between ChannelList and Channel components\n *\n * @param channel A channel object\n */\n onSelect?: (channel: Channel<StreamChatGenerics>) => void;\n /**\n * Custom UI component to render preview avatar.\n *\n * **Default** [ChannelAvatar](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelAvatar.tsx)\n */\n PreviewAvatar?: React.ComponentType<ChannelAvatarProps<StreamChatGenerics>>;\n /**\n * Custom UI component to render preview of latest message on channel.\n *\n * **Default** [ChannelPreviewMessage](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewMessage.tsx)\n */\n PreviewMessage?: React.ComponentType<ChannelPreviewMessageProps<StreamChatGenerics>>;\n /**\n * Custom UI component to render muted status.\n *\n * **Default** [ChannelMutedStatus](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewMutedStatus.tsx)\n */\n PreviewMutedStatus?: React.ComponentType;\n /**\n * Custom UI component to render preview avatar.\n *\n * **Default** [ChannelPreviewStatus](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewStatus.tsx)\n */\n PreviewStatus?: React.ComponentType<ChannelPreviewStatusProps<StreamChatGenerics>>;\n /**\n * Custom UI component to render preview avatar.\n *\n * **Default** [ChannelPreviewTitle](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewTitle.tsx)\n */\n PreviewTitle?: React.ComponentType<ChannelPreviewTitleProps<StreamChatGenerics>>;\n /**\n * Custom UI component to render preview avatar.\n *\n * **Default** [ChannelPreviewUnreadCount](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewUnreadCount.tsx)\n */\n PreviewUnreadCount?: React.ComponentType<ChannelPreviewUnreadCountProps<StreamChatGenerics>>;\n};\n\nexport const ChannelsContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as ChannelsContextValue,\n);\n\nexport const ChannelsProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value: ChannelsContextValue<StreamChatGenerics>;\n}>) => (\n <ChannelsContext.Provider value={value as unknown as ChannelsContextValue}>\n {children}\n </ChannelsContext.Provider>\n);\n\nexport const useChannelsContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n ChannelsContext,\n ) as unknown as ChannelsContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useChannelsContext hook was called outside of the ChannelsContext provider. Make sure you have configured ChannelList component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#channel-list`,\n );\n }\n\n return contextValue;\n};\n/**\n * Typescript currently does not support partial inference so if ChatContext\n * typing is desired while using the HOC withChannelContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withChannelsContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof ChannelsContextValue<StreamChatGenerics>>> => {\n const WithChannelsContextComponent = (\n props: Omit<P, keyof ChannelsContextValue<StreamChatGenerics>>,\n ) => {\n const channelsContext = useChannelsContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...channelsContext} />;\n };\n WithChannelsContextComponent.displayName = `WithChannelsContext${getDisplayName(Component)}`;\n return WithChannelsContextComponent;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAmBA,IAAAC,wBAAA,GAAAD,OAAA;AAEA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AAA+D,IAAAI,KAAA;EAAAC,YAAA;AAAA,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAR,wBAAAY,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AA4LxD,IAAMW,eAAe,GAAGC,iBAAK,CAACC,aAAa,CAChDC,mDACF,CAAC;AAACC,OAAA,CAAAJ,eAAA,GAAAA,eAAA;AAEK,IAAMK,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA;EAAA,IAG3BC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,KAAK,GAAAF,IAAA,CAALE,KAAK;EAAA,OAILtC,MAAA,YAAAuC,aAAA,CAACT,eAAe,CAACU,QAAQ;IAACF,KAAK,EAAEA,KAAyC;IAAAG,MAAA,EAAAnC,KAAA;IAAAoC,QAAA;MAAAC,QAAA,EAAApC,YAAA;MAAAqC,UAAA;MAAAC,YAAA;IAAA;EAAA,GACvER,QACuB,CAAC;AAAA,CAC5B;AAACH,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAEK,IAAMW,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAA,EAExB;EACL,IAAMC,YAAY,GAAG,IAAAC,iBAAU,EAC7BlB,eACF,CAAwD;EAExD,IAAIiB,YAAY,KAAKd,mDAA0B,IAAI,CAAC,IAAAgB,oCAAiB,EAAC,CAAC,EAAE;IACvE,MAAM,IAAIC,KAAK,wOAEf,CAAC;EACH;EAEA,OAAOH,YAAY;AACrB,CAAC;AAACb,OAAA,CAAAY,kBAAA,GAAAA,kBAAA;AAMK,IAAMK,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAI9BC,SAAiC,EACqC;EACtE,IAAMC,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAChCC,KAA8D,EAC3D;IACH,IAAMC,eAAe,GAAGT,kBAAkB,CAAqB,CAAC;IAEhE,OAAO9C,MAAA,YAAAuC,aAAA,CAACa,SAAS,MAAAI,SAAA,iBAAMF,KAAK,EAAYC,eAAe;MAAAd,MAAA,EAAAnC,KAAA;MAAAoC,QAAA;QAAAC,QAAA,EAAApC,YAAA;QAAAqC,UAAA;QAAAC,YAAA;MAAA;IAAA,EAAG,CAAC;EAC7D,CAAC;EACDQ,4BAA4B,CAACI,WAAW,2BAAyB,IAAAC,8BAAc,EAACN,SAAS,CAAG;EAC5F,OAAOC,4BAA4B;AACrC,CAAC;AAACnB,OAAA,CAAAiB,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_defaultBaseContextValue","_getDisplayName","_isTestEnvironment","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ChannelsContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","exports","ChannelsProvider","_ref","children","value","createElement","Provider","__self","__source","fileName","lineNumber","columnNumber","useChannelsContext","contextValue","useContext","isTestEnvironment","Error","withChannelsContext","Component","WithChannelsContextComponent","props","channelsContext","_extends2","displayName","getDisplayName"],"sources":["ChannelsContext.tsx"],"sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\n\nimport type { FlatListProps } from 'react-native';\nimport type { FlatList } from 'react-native-gesture-handler';\n\nimport type { Channel } from 'stream-chat';\n\nimport type { HeaderErrorProps } from '../../components/ChannelList/ChannelListHeaderErrorIndicator';\nimport type { QueryChannels } from '../../components/ChannelList/hooks/usePaginatedChannels';\nimport type { ChannelAvatarProps } from '../../components/ChannelPreview/ChannelAvatar';\nimport type { ChannelPreviewMessageProps } from '../../components/ChannelPreview/ChannelPreviewMessage';\nimport type { ChannelPreviewMessengerProps } from '../../components/ChannelPreview/ChannelPreviewMessenger';\nimport type { ChannelPreviewStatusProps } from '../../components/ChannelPreview/ChannelPreviewStatus';\nimport type { ChannelPreviewTitleProps } from '../../components/ChannelPreview/ChannelPreviewTitle';\nimport type { ChannelPreviewUnreadCountProps } from '../../components/ChannelPreview/ChannelPreviewUnreadCount';\nimport type { EmptyStateProps } from '../../components/Indicators/EmptyStateIndicator';\nimport type { LoadingErrorProps } from '../../components/Indicators/LoadingErrorIndicator';\nimport type { LoadingProps } from '../../components/Indicators/LoadingIndicator';\nimport type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type ChannelsContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Besides the existing default behavior of the ChannelListMessenger component, you can attach\n * additional props to the underlying React Native FlatList.\n *\n * You can find list of all the available FlatList props here - https://facebook.github.io/react-native/docs/flatlist#props\n *\n * **EXAMPLE:**\n *\n * ```\n * <ChannelListMessenger\n * channels={channels}\n * additionalFlatListProps={{ bounces: true }}\n * />\n * ```\n *\n * **Note:** Don't use `additionalFlatListProps` to access the FlatList ref, use `setFlatListRef`\n */\n additionalFlatListProps: Partial<FlatListProps<Channel<StreamChatGenerics>>>;\n /**\n * Channels can be either an array of channels or a promise which resolves to an array of channels\n */\n channels: Channel<StreamChatGenerics>[] | null;\n /**\n * Custom indicator to use when channel list is empty\n *\n * Default: [EmptyStateIndicator](https://getstream.io/chat/docs/sdk/reactnative/core-components/channel/#emptystateindicator)\n * */\n EmptyStateIndicator: React.ComponentType<EmptyStateProps>;\n /**\n * Custom loading indicator to display at bottom of the list, while loading further pages\n *\n * Default: [ChannelListFooterLoadingIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#footerloadingindicator)\n */\n FooterLoadingIndicator: React.ComponentType;\n /**\n * Incremental number change to force update the FlatList\n */\n forceUpdate: number;\n /**\n * Whether or not the FlatList has another page to render\n */\n hasNextPage: boolean;\n /**\n * Custom indicator to display error at top of list, if loading/pagination error occurs\n *\n * Default: [ChannelListHeaderErrorIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#headererrorindicator)\n */\n HeaderErrorIndicator: React.ComponentType<HeaderErrorProps>;\n /**\n * Custom indicator to display network-down error at top of list, if there is connectivity issue\n *\n * Default: [ChannelListHeaderNetworkDownIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#headernetworkdownindicator)\n */\n HeaderNetworkDownIndicator: React.ComponentType;\n /**\n * Initial channels query loading state, triggers the LoadingIndicator\n */\n loadingChannels: boolean;\n /**\n * Custom indicator to use when there is error in fetching channels\n *\n * Default: [LoadingErrorIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#loadingerrorindicator)\n * */\n LoadingErrorIndicator: React.ComponentType<LoadingErrorProps>;\n /**\n * Custom loading indicator to use on Channel List\n *\n * */\n LoadingIndicator: React.ComponentType<Pick<LoadingProps, 'listType'>>;\n /**\n * Whether or not additional channels are being loaded, triggers the FooterLoadingIndicator\n */\n loadingNextPage: boolean;\n /**\n * The React Native FlatList threshold to fetch more data\n * @see See loadMoreThreshold [doc](https://facebook.github.io/react-native/docs/flatlist#onendreachedthreshold)\n * */\n loadMoreThreshold: number;\n /**\n * Loads the next page of `channels`, which is present as a required prop\n */\n loadNextPage: QueryChannels;\n /**\n * Max number to display within notification badge. Default: 255 and it cannot be higher than that for now due to backend limitations\n */\n maxUnreadCount: number;\n /**\n * Number of skeletons that should show when loading. Default: 6\n */\n numberOfSkeletons: number;\n /**\n * Custom UI component to display individual channel list items\n *\n * Default: [ChannelPreviewMessenger](https://getstream.io/chat/docs/sdk/reactnative/ui-components/channel-preview-messenger/)\n */\n Preview: React.ComponentType<ChannelPreviewMessengerProps<StreamChatGenerics>>;\n /**\n * Triggered when the channel list is refreshing, displays a loading spinner at the top of the list\n */\n refreshing: boolean;\n /**\n * Function to refresh the channel list that is similar to `reloadList`, but it doesn't wipe out existing channels\n * from UI before loading the new ones\n */\n refreshList: () => void | Promise<void>;\n /**\n * Removes all the existing channels from UI and loads fresh channels\n * */\n reloadList: () => Promise<void>;\n // /**\n // * Function to set the currently active channel, acts as a bridge between ChannelList and Channel components\n // *\n // * @param channel A channel object\n // */\n // setActiveChannel?: (channel: Channel<StreamChatGenerics>) => void;\n /**\n * Function to gain access to the inner FlatList ref\n *\n * **Example:**\n *\n * ```\n * <ChannelListMessenger\n * setFlatListRef={(ref) => {\n * // Use ref for your own good\n * }}\n * ```\n */\n setFlatListRef: (ref: FlatList<Channel<StreamChatGenerics>> | null) => void;\n /**\n * Custom UI component to display loading channel skeletons\n *\n * Default: [Skeleton](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#skeleton)\n */\n Skeleton: React.ComponentType;\n /**\n * Error in channels query, if any\n */\n error?: Error;\n ListHeaderComponent?: React.ComponentType;\n /**\n * Function to set the currently active channel, acts as a bridge between ChannelList and Channel components\n *\n * @param channel A channel object\n */\n onSelect?: (channel: Channel<StreamChatGenerics>) => void;\n /**\n * Custom UI component to render preview avatar.\n *\n * **Default** [ChannelAvatar](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelAvatar.tsx)\n */\n PreviewAvatar?: React.ComponentType<ChannelAvatarProps<StreamChatGenerics>>;\n /**\n * Custom UI component to render preview of latest message on channel.\n *\n * **Default** [ChannelPreviewMessage](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewMessage.tsx)\n */\n PreviewMessage?: React.ComponentType<ChannelPreviewMessageProps<StreamChatGenerics>>;\n /**\n * Custom UI component to render muted status.\n *\n * **Default** [ChannelMutedStatus](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewMutedStatus.tsx)\n */\n PreviewMutedStatus?: React.ComponentType;\n /**\n * Custom UI component to render preview avatar.\n *\n * **Default** [ChannelPreviewStatus](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewStatus.tsx)\n */\n PreviewStatus?: React.ComponentType<ChannelPreviewStatusProps<StreamChatGenerics>>;\n /**\n * Custom UI component to render preview avatar.\n *\n * **Default** [ChannelPreviewTitle](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewTitle.tsx)\n */\n PreviewTitle?: React.ComponentType<ChannelPreviewTitleProps>;\n /**\n * Custom UI component to render preview avatar.\n *\n * **Default** [ChannelPreviewUnreadCount](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewUnreadCount.tsx)\n */\n PreviewUnreadCount?: React.ComponentType<ChannelPreviewUnreadCountProps<StreamChatGenerics>>;\n};\n\nexport const ChannelsContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as ChannelsContextValue,\n);\n\nexport const ChannelsProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value: ChannelsContextValue<StreamChatGenerics>;\n}>) => (\n <ChannelsContext.Provider value={value as unknown as ChannelsContextValue}>\n {children}\n </ChannelsContext.Provider>\n);\n\nexport const useChannelsContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n ChannelsContext,\n ) as unknown as ChannelsContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useChannelsContext hook was called outside of the ChannelsContext provider. Make sure you have configured ChannelList component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#channel-list`,\n );\n }\n\n return contextValue;\n};\n/**\n * Typescript currently does not support partial inference so if ChatContext\n * typing is desired while using the HOC withChannelContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withChannelsContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof ChannelsContextValue<StreamChatGenerics>>> => {\n const WithChannelsContextComponent = (\n props: Omit<P, keyof ChannelsContextValue<StreamChatGenerics>>,\n ) => {\n const channelsContext = useChannelsContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...channelsContext} />;\n };\n WithChannelsContextComponent.displayName = `WithChannelsContext${getDisplayName(Component)}`;\n return WithChannelsContextComponent;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAmBA,IAAAC,wBAAA,GAAAD,OAAA;AAEA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AAA+D,IAAAI,KAAA;EAAAC,YAAA;AAAA,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAR,wBAAAY,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AA4LxD,IAAMW,eAAe,GAAGC,iBAAK,CAACC,aAAa,CAChDC,mDACF,CAAC;AAACC,OAAA,CAAAJ,eAAA,GAAAA,eAAA;AAEK,IAAMK,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA;EAAA,IAG3BC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,KAAK,GAAAF,IAAA,CAALE,KAAK;EAAA,OAILtC,MAAA,YAAAuC,aAAA,CAACT,eAAe,CAACU,QAAQ;IAACF,KAAK,EAAEA,KAAyC;IAAAG,MAAA,EAAAnC,KAAA;IAAAoC,QAAA;MAAAC,QAAA,EAAApC,YAAA;MAAAqC,UAAA;MAAAC,YAAA;IAAA;EAAA,GACvER,QACuB,CAAC;AAAA,CAC5B;AAACH,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAEK,IAAMW,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAA,EAExB;EACL,IAAMC,YAAY,GAAG,IAAAC,iBAAU,EAC7BlB,eACF,CAAwD;EAExD,IAAIiB,YAAY,KAAKd,mDAA0B,IAAI,CAAC,IAAAgB,oCAAiB,EAAC,CAAC,EAAE;IACvE,MAAM,IAAIC,KAAK,wOAEf,CAAC;EACH;EAEA,OAAOH,YAAY;AACrB,CAAC;AAACb,OAAA,CAAAY,kBAAA,GAAAA,kBAAA;AAMK,IAAMK,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAI9BC,SAAiC,EACqC;EACtE,IAAMC,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAChCC,KAA8D,EAC3D;IACH,IAAMC,eAAe,GAAGT,kBAAkB,CAAqB,CAAC;IAEhE,OAAO9C,MAAA,YAAAuC,aAAA,CAACa,SAAS,MAAAI,SAAA,iBAAMF,KAAK,EAAYC,eAAe;MAAAd,MAAA,EAAAnC,KAAA;MAAAoC,QAAA;QAAAC,QAAA,EAAApC,YAAA;QAAAqC,UAAA;QAAAC,YAAA;MAAA;IAAA,EAAG,CAAC;EAC7D,CAAC;EACDQ,4BAA4B,CAACI,WAAW,2BAAyB,IAAAC,8BAAc,EAACN,SAAS,CAAG;EAC5F,OAAOC,4BAA4B;AACrC,CAAC;AAACnB,OAAA,CAAAiB,mBAAA,GAAAA,mBAAA"}
@@ -23,7 +23,7 @@ var ChatProvider = function ChatProvider(_ref) {
23
23
  __self: _this,
24
24
  __source: {
25
25
  fileName: _jsxFileName,
26
- lineNumber: 77,
26
+ lineNumber: 80,
27
27
  columnNumber: 3
28
28
  }
29
29
  }, children);
@@ -44,7 +44,7 @@ var withChatContext = function withChatContext(Component) {
44
44
  __self: _this,
45
45
  __source: {
46
46
  fileName: _jsxFileName,
47
- lineNumber: 110,
47
+ lineNumber: 113,
48
48
  columnNumber: 12
49
49
  }
50
50
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_defaultBaseContextValue","_getDisplayName","_isTestEnvironment","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ChatContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","exports","ChatProvider","_ref","children","value","createElement","Provider","__self","__source","fileName","lineNumber","columnNumber","useChatContext","contextValue","useContext","isTestEnvironment","Error","withChatContext","Component","WithChatContextComponent","props","chatContext","_extends2","displayName","getDisplayName"],"sources":["ChatContext.tsx"],"sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\nimport type { ImageProps } from 'react-native';\n\nimport type { AppSettingsAPIResponse, Channel, Mute, StreamChat } from 'stream-chat';\n\nimport type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type ChatContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Object of application settings returned from Stream.\n * */\n appSettings: AppSettingsAPIResponse<StreamChatGenerics> | null;\n /**\n * The StreamChat client object\n *\n * ```\n * import { StreamChat } from 'stream-chat';\n * import { Chat } from 'stream-chat-react-native';\n *\n * const client = StreamChat.getInstance('api_key);\n * await client.connectUser('user_id', 'userToken');\n *\n * <Chat client={client}>\n * </Chat>\n * ```\n *\n * @overrideType StreamChat\n * */\n client: StreamChat<StreamChatGenerics>;\n connectionRecovering: boolean;\n enableOfflineSupport: boolean;\n ImageComponent: React.ComponentType<ImageProps>;\n isOnline: boolean | null;\n mutedUsers: Mute<StreamChatGenerics>[];\n /**\n * @param newChannel Channel to set as active.\n *\n * @overrideType Function\n */\n setActiveChannel: (newChannel?: Channel<StreamChatGenerics>) => void;\n /**\n * Instance of channel object from stream-chat package.\n *\n * Please check the docs around how to create or query channel - https://getstream.io/chat/docs/javascript/creating_channels/?language=javascript\n *\n * ```\n * import { StreamChat, Channel } from 'stream-chat';\n * import { Chat, Channel} from 'stream-chat-react-native';\n *\n * const client = StreamChat.getInstance('api_key');\n * await client.connectUser('user_id', 'user_token');\n * const channel = client.channel('messaging', 'channel_id');\n * await channel.watch();\n * ```\n *\n * @overrideType Channel\n */\n channel?: Channel<StreamChatGenerics>;\n};\n\nexport const ChatContext = React.createContext(DEFAULT_BASE_CONTEXT_VALUE as ChatContextValue);\n\nexport const ChatProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value?: ChatContextValue<StreamChatGenerics>;\n}>) => (\n <ChatContext.Provider value={value as unknown as ChatContextValue}>\n {children}\n </ChatContext.Provider>\n);\n\nexport const useChatContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(ChatContext) as unknown as ChatContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useChatContext hook was called outside the ChatContext Provider. Make sure you have configured Chat component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#chat`,\n );\n }\n\n return contextValue;\n};\n\n/**\n * Typescript currently does not support partial inference so if ChatContext\n * typing is desired while using the HOC withChatContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withChatContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof ChatContextValue<StreamChatGenerics>>> => {\n const WithChatContextComponent = (props: Omit<P, keyof ChatContextValue<StreamChatGenerics>>) => {\n const chatContext = useChatContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...chatContext} />;\n };\n WithChatContextComponent.displayName = `WithChatContext${getDisplayName(Component)}`;\n return WithChatContextComponent;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_defaultBaseContextValue","_getDisplayName","_isTestEnvironment","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ChatContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","exports","ChatProvider","_ref","children","value","createElement","Provider","__self","__source","fileName","lineNumber","columnNumber","useChatContext","contextValue","useContext","isTestEnvironment","Error","withChatContext","Component","WithChatContextComponent","props","chatContext","_extends2","displayName","getDisplayName"],"sources":["ChatContext.tsx"],"sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\nimport type { ImageProps } from 'react-native';\n\nimport type { AppSettingsAPIResponse, Channel, Mute, StreamChat } from 'stream-chat';\n\nimport type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type ChatContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Object of application settings returned from Stream.\n * */\n appSettings: AppSettingsAPIResponse<StreamChatGenerics> | null;\n /**\n * The StreamChat client object\n *\n * ```\n * import { StreamChat } from 'stream-chat';\n * import { Chat } from 'stream-chat-react-native';\n *\n * const client = StreamChat.getInstance('api_key);\n * await client.connectUser('user_id', 'userToken');\n *\n * <Chat client={client}>\n * </Chat>\n * ```\n *\n * @overrideType StreamChat\n * */\n client: StreamChat<StreamChatGenerics>;\n connectionRecovering: boolean;\n enableOfflineSupport: boolean;\n /**\n * Drop in replacement of all the underlying Image components within SDK. This is useful for the purpose of offline caching of images. Please check the Offline Support Guide for usage.\n */\n ImageComponent: React.ComponentType<ImageProps>;\n isOnline: boolean | null;\n mutedUsers: Mute<StreamChatGenerics>[];\n /**\n * @param newChannel Channel to set as active.\n *\n * @overrideType Function\n */\n setActiveChannel: (newChannel?: Channel<StreamChatGenerics>) => void;\n /**\n * Instance of channel object from stream-chat package.\n *\n * Please check the docs around how to create or query channel - https://getstream.io/chat/docs/javascript/creating_channels/?language=javascript\n *\n * ```\n * import { StreamChat, Channel } from 'stream-chat';\n * import { Chat, Channel} from 'stream-chat-react-native';\n *\n * const client = StreamChat.getInstance('api_key');\n * await client.connectUser('user_id', 'user_token');\n * const channel = client.channel('messaging', 'channel_id');\n * await channel.watch();\n * ```\n *\n * @overrideType Channel\n */\n channel?: Channel<StreamChatGenerics>;\n};\n\nexport const ChatContext = React.createContext(DEFAULT_BASE_CONTEXT_VALUE as ChatContextValue);\n\nexport const ChatProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value?: ChatContextValue<StreamChatGenerics>;\n}>) => (\n <ChatContext.Provider value={value as unknown as ChatContextValue}>\n {children}\n </ChatContext.Provider>\n);\n\nexport const useChatContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(ChatContext) as unknown as ChatContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useChatContext hook was called outside the ChatContext Provider. Make sure you have configured Chat component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#chat`,\n );\n }\n\n return contextValue;\n};\n\n/**\n * Typescript currently does not support partial inference so if ChatContext\n * typing is desired while using the HOC withChatContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withChatContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof ChatContextValue<StreamChatGenerics>>> => {\n const WithChatContextComponent = (props: Omit<P, keyof ChatContextValue<StreamChatGenerics>>) => {\n const chatContext = useChatContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...chatContext} />;\n };\n WithChatContextComponent.displayName = `WithChatContext${getDisplayName(Component)}`;\n return WithChatContextComponent;\n};\n"],"mappings":"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"}