stream-chat-react-native-core 5.25.0-beta.6 → 5.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (659) hide show
  1. package/lib/commonjs/components/Channel/Channel.js +22 -17
  2. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  3. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +3 -1
  4. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  5. package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +22 -5
  6. package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
  7. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
  8. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js +2 -2
  9. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  10. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +1 -4
  11. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  12. package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js +4 -4
  13. package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
  14. package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  15. package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
  16. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js +2 -2
  17. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
  18. package/lib/commonjs/components/Message/Message.js +11 -8
  19. package/lib/commonjs/components/Message/Message.js.map +1 -1
  20. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +7 -3
  21. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
  22. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +7 -1
  23. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  24. package/lib/commonjs/components/MessageInput/MessageInput.js +5 -5
  25. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  26. package/lib/commonjs/components/MessageInput/hooks/useCountdown.js.map +1 -1
  27. package/lib/commonjs/components/MessageList/MessageList.js +32 -30
  28. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  29. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +5 -5
  30. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -1
  31. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
  32. package/lib/commonjs/contexts/chatContext/ChatContext.js +2 -2
  33. package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
  34. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  35. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +3 -1
  36. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  37. package/lib/commonjs/contexts/themeContext/ThemeContext.js.map +1 -1
  38. package/lib/commonjs/i18n/en.json +1 -1
  39. package/lib/commonjs/i18n/es.json +56 -56
  40. package/lib/commonjs/i18n/fr.json +56 -56
  41. package/lib/commonjs/i18n/he.json +56 -56
  42. package/lib/commonjs/i18n/hi.json +56 -56
  43. package/lib/commonjs/i18n/it.json +56 -56
  44. package/lib/commonjs/i18n/ja.json +56 -56
  45. package/lib/commonjs/i18n/ko.json +56 -56
  46. package/lib/commonjs/i18n/nl.json +56 -56
  47. package/lib/commonjs/i18n/ru.json +56 -56
  48. package/lib/commonjs/i18n/tr.json +56 -56
  49. package/lib/commonjs/icons/ArrowRight.js.map +1 -1
  50. package/lib/commonjs/icons/AtMentions.js.map +1 -1
  51. package/lib/commonjs/icons/Attach.js.map +1 -1
  52. package/lib/commonjs/icons/Audio.js.map +1 -1
  53. package/lib/commonjs/icons/CSV.js.map +1 -1
  54. package/lib/commonjs/icons/Camera.js.map +1 -1
  55. package/lib/commonjs/icons/Check.js.map +1 -1
  56. package/lib/commonjs/icons/CheckAll.js.map +1 -1
  57. package/lib/commonjs/icons/CheckSend.js.map +1 -1
  58. package/lib/commonjs/icons/CircleClose.js.map +1 -1
  59. package/lib/commonjs/icons/CirclePlus.js.map +1 -1
  60. package/lib/commonjs/icons/CircleRight.js.map +1 -1
  61. package/lib/commonjs/icons/Close.js.map +1 -1
  62. package/lib/commonjs/icons/Copy.js.map +1 -1
  63. package/lib/commonjs/icons/CurveLineLeftUp.js.map +1 -1
  64. package/lib/commonjs/icons/DOC.js.map +1 -1
  65. package/lib/commonjs/icons/DOCX.js.map +1 -1
  66. package/lib/commonjs/icons/Delete.js.map +1 -1
  67. package/lib/commonjs/icons/Down.js.map +1 -1
  68. package/lib/commonjs/icons/DownloadArrow.js.map +1 -1
  69. package/lib/commonjs/icons/DownloadCloud.js.map +1 -1
  70. package/lib/commonjs/icons/Edit.js.map +1 -1
  71. package/lib/commonjs/icons/Error.js.map +1 -1
  72. package/lib/commonjs/icons/Eye.js.map +1 -1
  73. package/lib/commonjs/icons/Flag.js.map +1 -1
  74. package/lib/commonjs/icons/Folder.js.map +1 -1
  75. package/lib/commonjs/icons/GenericFile.js.map +1 -1
  76. package/lib/commonjs/icons/GiphyIcon.js.map +1 -1
  77. package/lib/commonjs/icons/Grid.js.map +1 -1
  78. package/lib/commonjs/icons/Group.js.map +1 -1
  79. package/lib/commonjs/icons/HTML.js.map +1 -1
  80. package/lib/commonjs/icons/Imgur.js.map +1 -1
  81. package/lib/commonjs/icons/LOLReaction.js.map +1 -1
  82. package/lib/commonjs/icons/Lightning.js.map +1 -1
  83. package/lib/commonjs/icons/Link.js.map +1 -1
  84. package/lib/commonjs/icons/Logo.js.map +1 -1
  85. package/lib/commonjs/icons/LoveReaction.js.map +1 -1
  86. package/lib/commonjs/icons/MD.js.map +1 -1
  87. package/lib/commonjs/icons/MailOpen.js.map +1 -1
  88. package/lib/commonjs/icons/MenuPointHorizontal.js.map +1 -1
  89. package/lib/commonjs/icons/MenuPointVertical.js.map +1 -1
  90. package/lib/commonjs/icons/MessageFlag.js.map +1 -1
  91. package/lib/commonjs/icons/MessageIcon.js.map +1 -1
  92. package/lib/commonjs/icons/Mute.js.map +1 -1
  93. package/lib/commonjs/icons/Notification.js.map +1 -1
  94. package/lib/commonjs/icons/ODT.js.map +1 -1
  95. package/lib/commonjs/icons/PDF.js.map +1 -1
  96. package/lib/commonjs/icons/PPT.js.map +1 -1
  97. package/lib/commonjs/icons/PPTX.js.map +1 -1
  98. package/lib/commonjs/icons/Pause.js.map +1 -1
  99. package/lib/commonjs/icons/Picture.js.map +1 -1
  100. package/lib/commonjs/icons/Pin.js.map +1 -1
  101. package/lib/commonjs/icons/PinHeader.js.map +1 -1
  102. package/lib/commonjs/icons/Play.js.map +1 -1
  103. package/lib/commonjs/icons/RAR.js.map +1 -1
  104. package/lib/commonjs/icons/RTF.js.map +1 -1
  105. package/lib/commonjs/icons/Recorder.js.map +1 -1
  106. package/lib/commonjs/icons/Refresh.js.map +1 -1
  107. package/lib/commonjs/icons/SEVEN_Z.js.map +1 -1
  108. package/lib/commonjs/icons/Search.js.map +1 -1
  109. package/lib/commonjs/icons/SendRight.js.map +1 -1
  110. package/lib/commonjs/icons/SendUp.js.map +1 -1
  111. package/lib/commonjs/icons/Share.js.map +1 -1
  112. package/lib/commonjs/icons/ShareRightArrow.js.map +1 -1
  113. package/lib/commonjs/icons/Smile.js.map +1 -1
  114. package/lib/commonjs/icons/Sound.js.map +1 -1
  115. package/lib/commonjs/icons/TAR.js.map +1 -1
  116. package/lib/commonjs/icons/TXT.js.map +1 -1
  117. package/lib/commonjs/icons/ThreadReply.js.map +1 -1
  118. package/lib/commonjs/icons/ThumbsDownReaction.js.map +1 -1
  119. package/lib/commonjs/icons/ThumbsUpReaction.js.map +1 -1
  120. package/lib/commonjs/icons/Time.js.map +1 -1
  121. package/lib/commonjs/icons/Unknown.js.map +1 -1
  122. package/lib/commonjs/icons/Unpin.js.map +1 -1
  123. package/lib/commonjs/icons/User.js.map +1 -1
  124. package/lib/commonjs/icons/UserAdd.js.map +1 -1
  125. package/lib/commonjs/icons/UserAdmin.js.map +1 -1
  126. package/lib/commonjs/icons/UserDelete.js.map +1 -1
  127. package/lib/commonjs/icons/UserMinus.js.map +1 -1
  128. package/lib/commonjs/icons/Video.js.map +1 -1
  129. package/lib/commonjs/icons/Warning.js.map +1 -1
  130. package/lib/commonjs/icons/WutReaction.js.map +1 -1
  131. package/lib/commonjs/icons/XLS.js.map +1 -1
  132. package/lib/commonjs/icons/XLSX.js.map +1 -1
  133. package/lib/commonjs/icons/ZIP.js.map +1 -1
  134. package/lib/commonjs/icons/utils/base.js.map +1 -1
  135. package/lib/commonjs/version.json +1 -1
  136. package/lib/module/components/Channel/Channel.js +22 -17
  137. package/lib/module/components/Channel/Channel.js.map +1 -1
  138. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +3 -1
  139. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  140. package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +22 -5
  141. package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
  142. package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
  143. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js +2 -2
  144. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  145. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +1 -4
  146. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  147. package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js +4 -4
  148. package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
  149. package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  150. package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
  151. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js +2 -2
  152. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
  153. package/lib/module/components/Message/Message.js +11 -8
  154. package/lib/module/components/Message/Message.js.map +1 -1
  155. package/lib/module/components/Message/MessageSimple/MessageContent.js +7 -3
  156. package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
  157. package/lib/module/components/Message/MessageSimple/MessageSimple.js +7 -1
  158. package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  159. package/lib/module/components/MessageInput/MessageInput.js +5 -5
  160. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  161. package/lib/module/components/MessageInput/hooks/useCountdown.js.map +1 -1
  162. package/lib/module/components/MessageList/MessageList.js +32 -30
  163. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  164. package/lib/module/components/MessageOverlay/MessageActionListItem.js +5 -5
  165. package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -1
  166. package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
  167. package/lib/module/contexts/chatContext/ChatContext.js +2 -2
  168. package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
  169. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  170. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +3 -1
  171. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  172. package/lib/module/contexts/themeContext/ThemeContext.js.map +1 -1
  173. package/lib/module/i18n/en.json +1 -1
  174. package/lib/module/i18n/es.json +56 -56
  175. package/lib/module/i18n/fr.json +56 -56
  176. package/lib/module/i18n/he.json +56 -56
  177. package/lib/module/i18n/hi.json +56 -56
  178. package/lib/module/i18n/it.json +56 -56
  179. package/lib/module/i18n/ja.json +56 -56
  180. package/lib/module/i18n/ko.json +56 -56
  181. package/lib/module/i18n/nl.json +56 -56
  182. package/lib/module/i18n/ru.json +56 -56
  183. package/lib/module/i18n/tr.json +56 -56
  184. package/lib/module/icons/ArrowRight.js.map +1 -1
  185. package/lib/module/icons/AtMentions.js.map +1 -1
  186. package/lib/module/icons/Attach.js.map +1 -1
  187. package/lib/module/icons/Audio.js.map +1 -1
  188. package/lib/module/icons/CSV.js.map +1 -1
  189. package/lib/module/icons/Camera.js.map +1 -1
  190. package/lib/module/icons/Check.js.map +1 -1
  191. package/lib/module/icons/CheckAll.js.map +1 -1
  192. package/lib/module/icons/CheckSend.js.map +1 -1
  193. package/lib/module/icons/CircleClose.js.map +1 -1
  194. package/lib/module/icons/CirclePlus.js.map +1 -1
  195. package/lib/module/icons/CircleRight.js.map +1 -1
  196. package/lib/module/icons/Close.js.map +1 -1
  197. package/lib/module/icons/Copy.js.map +1 -1
  198. package/lib/module/icons/CurveLineLeftUp.js.map +1 -1
  199. package/lib/module/icons/DOC.js.map +1 -1
  200. package/lib/module/icons/DOCX.js.map +1 -1
  201. package/lib/module/icons/Delete.js.map +1 -1
  202. package/lib/module/icons/Down.js.map +1 -1
  203. package/lib/module/icons/DownloadArrow.js.map +1 -1
  204. package/lib/module/icons/DownloadCloud.js.map +1 -1
  205. package/lib/module/icons/Edit.js.map +1 -1
  206. package/lib/module/icons/Error.js.map +1 -1
  207. package/lib/module/icons/Eye.js.map +1 -1
  208. package/lib/module/icons/Flag.js.map +1 -1
  209. package/lib/module/icons/Folder.js.map +1 -1
  210. package/lib/module/icons/GenericFile.js.map +1 -1
  211. package/lib/module/icons/GiphyIcon.js.map +1 -1
  212. package/lib/module/icons/Grid.js.map +1 -1
  213. package/lib/module/icons/Group.js.map +1 -1
  214. package/lib/module/icons/HTML.js.map +1 -1
  215. package/lib/module/icons/Imgur.js.map +1 -1
  216. package/lib/module/icons/LOLReaction.js.map +1 -1
  217. package/lib/module/icons/Lightning.js.map +1 -1
  218. package/lib/module/icons/Link.js.map +1 -1
  219. package/lib/module/icons/Logo.js.map +1 -1
  220. package/lib/module/icons/LoveReaction.js.map +1 -1
  221. package/lib/module/icons/MD.js.map +1 -1
  222. package/lib/module/icons/MailOpen.js.map +1 -1
  223. package/lib/module/icons/MenuPointHorizontal.js.map +1 -1
  224. package/lib/module/icons/MenuPointVertical.js.map +1 -1
  225. package/lib/module/icons/MessageFlag.js.map +1 -1
  226. package/lib/module/icons/MessageIcon.js.map +1 -1
  227. package/lib/module/icons/Mute.js.map +1 -1
  228. package/lib/module/icons/Notification.js.map +1 -1
  229. package/lib/module/icons/ODT.js.map +1 -1
  230. package/lib/module/icons/PDF.js.map +1 -1
  231. package/lib/module/icons/PPT.js.map +1 -1
  232. package/lib/module/icons/PPTX.js.map +1 -1
  233. package/lib/module/icons/Pause.js.map +1 -1
  234. package/lib/module/icons/Picture.js.map +1 -1
  235. package/lib/module/icons/Pin.js.map +1 -1
  236. package/lib/module/icons/PinHeader.js.map +1 -1
  237. package/lib/module/icons/Play.js.map +1 -1
  238. package/lib/module/icons/RAR.js.map +1 -1
  239. package/lib/module/icons/RTF.js.map +1 -1
  240. package/lib/module/icons/Recorder.js.map +1 -1
  241. package/lib/module/icons/Refresh.js.map +1 -1
  242. package/lib/module/icons/SEVEN_Z.js.map +1 -1
  243. package/lib/module/icons/Search.js.map +1 -1
  244. package/lib/module/icons/SendRight.js.map +1 -1
  245. package/lib/module/icons/SendUp.js.map +1 -1
  246. package/lib/module/icons/Share.js.map +1 -1
  247. package/lib/module/icons/ShareRightArrow.js.map +1 -1
  248. package/lib/module/icons/Smile.js.map +1 -1
  249. package/lib/module/icons/Sound.js.map +1 -1
  250. package/lib/module/icons/TAR.js.map +1 -1
  251. package/lib/module/icons/TXT.js.map +1 -1
  252. package/lib/module/icons/ThreadReply.js.map +1 -1
  253. package/lib/module/icons/ThumbsDownReaction.js.map +1 -1
  254. package/lib/module/icons/ThumbsUpReaction.js.map +1 -1
  255. package/lib/module/icons/Time.js.map +1 -1
  256. package/lib/module/icons/Unknown.js.map +1 -1
  257. package/lib/module/icons/Unpin.js.map +1 -1
  258. package/lib/module/icons/User.js.map +1 -1
  259. package/lib/module/icons/UserAdd.js.map +1 -1
  260. package/lib/module/icons/UserAdmin.js.map +1 -1
  261. package/lib/module/icons/UserDelete.js.map +1 -1
  262. package/lib/module/icons/UserMinus.js.map +1 -1
  263. package/lib/module/icons/Video.js.map +1 -1
  264. package/lib/module/icons/Warning.js.map +1 -1
  265. package/lib/module/icons/WutReaction.js.map +1 -1
  266. package/lib/module/icons/XLS.js.map +1 -1
  267. package/lib/module/icons/XLSX.js.map +1 -1
  268. package/lib/module/icons/ZIP.js.map +1 -1
  269. package/lib/module/icons/utils/base.js.map +1 -1
  270. package/lib/module/version.json +1 -1
  271. package/lib/typescript/components/Attachment/Attachment.d.ts +3 -3
  272. package/lib/typescript/components/Attachment/AttachmentActions.d.ts +2 -2
  273. package/lib/typescript/components/Attachment/AudioAttachment.d.ts +2 -2
  274. package/lib/typescript/components/Attachment/Card.d.ts +2 -2
  275. package/lib/typescript/components/Attachment/FileAttachment.d.ts +3 -3
  276. package/lib/typescript/components/Attachment/FileAttachmentGroup.d.ts +2 -2
  277. package/lib/typescript/components/Attachment/FileIcon.d.ts +1 -1
  278. package/lib/typescript/components/Attachment/Gallery.d.ts +2 -2
  279. package/lib/typescript/components/Attachment/GalleryImage.d.ts +2 -2
  280. package/lib/typescript/components/Attachment/Giphy.d.ts +2 -2
  281. package/lib/typescript/components/Attachment/ImageLoadingFailedIndicator.d.ts +1 -1
  282. package/lib/typescript/components/Attachment/ImageLoadingIndicator.d.ts +1 -1
  283. package/lib/typescript/components/Attachment/VideoThumbnail.d.ts +1 -1
  284. package/lib/typescript/components/Attachment/utils/buildGallery/types.d.ts +4 -4
  285. package/lib/typescript/components/Attachment/utils/getGalleryImageBorderRadius.d.ts +1 -1
  286. package/lib/typescript/components/Attachment/utils/openUrlSafely.d.ts +1 -1
  287. package/lib/typescript/components/AttachmentPicker/AttachmentPicker.d.ts +1 -1
  288. package/lib/typescript/components/AttachmentPicker/components/AttachmentPickerError.d.ts +1 -1
  289. package/lib/typescript/components/AttachmentPicker/components/AttachmentPickerItem.d.ts +1 -1
  290. package/lib/typescript/components/AttachmentPicker/components/ImageSelectorIcon.d.ts +1 -1
  291. package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts +2 -2
  292. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionHeader.d.ts +2 -2
  293. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionItem.d.ts +2 -2
  294. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts +3 -3
  295. package/lib/typescript/components/Avatar/Avatar.d.ts +1 -1
  296. package/lib/typescript/components/Avatar/GroupAvatar.d.ts +1 -1
  297. package/lib/typescript/components/Channel/Channel.d.ts +2 -2
  298. package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +62 -1
  299. package/lib/typescript/components/Channel/hooks/useTargetedMessage.d.ts +1 -1
  300. package/lib/typescript/components/ChannelList/ChannelList.d.ts +1 -1
  301. package/lib/typescript/components/ChannelList/ChannelListHeaderErrorIndicator.d.ts +1 -1
  302. package/lib/typescript/components/ChannelList/ChannelListMessenger.d.ts +2 -2
  303. package/lib/typescript/components/ChannelList/hooks/listeners/useAddedToChannelNotification.d.ts +1 -1
  304. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelDeleted.d.ts +1 -1
  305. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelHidden.d.ts +1 -1
  306. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelTruncated.d.ts +1 -1
  307. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelUpdated.d.ts +1 -1
  308. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelVisible.d.ts +1 -1
  309. package/lib/typescript/components/ChannelList/hooks/listeners/useNewMessage.d.ts +1 -1
  310. package/lib/typescript/components/ChannelList/hooks/listeners/useNewMessageNotification.d.ts +1 -1
  311. package/lib/typescript/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.d.ts +1 -1
  312. package/lib/typescript/components/ChannelList/hooks/listeners/useUserPresence.d.ts +1 -1
  313. package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +3 -3
  314. package/lib/typescript/components/ChannelList/utils.d.ts +2 -2
  315. package/lib/typescript/components/ChannelPreview/ChannelAvatar.d.ts +2 -2
  316. package/lib/typescript/components/ChannelPreview/ChannelPreview.d.ts +3 -3
  317. package/lib/typescript/components/ChannelPreview/ChannelPreviewMessage.d.ts +4 -1
  318. package/lib/typescript/components/ChannelPreview/ChannelPreviewMessenger.d.ts +2 -2
  319. package/lib/typescript/components/ChannelPreview/ChannelPreviewStatus.d.ts +1 -2
  320. package/lib/typescript/components/ChannelPreview/ChannelPreviewTitle.d.ts +5 -4
  321. package/lib/typescript/components/ChannelPreview/ChannelPreviewUnreadCount.d.ts +5 -3
  322. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayName.d.ts +1 -1
  323. package/lib/typescript/components/ChannelPreview/hooks/useLatestMessagePreview.d.ts +2 -2
  324. package/lib/typescript/components/Chat/Chat.d.ts +1 -1
  325. package/lib/typescript/components/Chat/hooks/handleEventToSyncDB.d.ts +1 -1
  326. package/lib/typescript/components/Chat/hooks/useSyncDatabase.d.ts +1 -1
  327. package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +3 -3
  328. package/lib/typescript/components/ImageGallery/components/AnimatedGalleryImage.d.ts +1 -1
  329. package/lib/typescript/components/ImageGallery/components/AnimatedGalleryVideo.d.ts +1 -1
  330. package/lib/typescript/components/ImageGallery/components/ImageGalleryFooter.d.ts +6 -6
  331. package/lib/typescript/components/ImageGallery/components/ImageGalleryHeader.d.ts +3 -3
  332. package/lib/typescript/components/ImageGallery/components/ImageGalleryOverlay.d.ts +1 -1
  333. package/lib/typescript/components/ImageGallery/components/ImageGrid.d.ts +4 -4
  334. package/lib/typescript/components/ImageGallery/components/ImageGridHandle.d.ts +3 -3
  335. package/lib/typescript/components/Indicators/EmptyStateIndicator.d.ts +1 -1
  336. package/lib/typescript/components/Indicators/LoadingDot.d.ts +1 -1
  337. package/lib/typescript/components/Indicators/LoadingDots.d.ts +1 -1
  338. package/lib/typescript/components/Indicators/LoadingErrorIndicator.d.ts +1 -1
  339. package/lib/typescript/components/Indicators/LoadingIndicator.d.ts +1 -1
  340. package/lib/typescript/components/Message/Message.d.ts +18 -9
  341. package/lib/typescript/components/Message/MessageSimple/MessageAvatar.d.ts +2 -2
  342. package/lib/typescript/components/Message/MessageSimple/MessageBounce.d.ts +2 -2
  343. package/lib/typescript/components/Message/MessageSimple/MessageContent.d.ts +2 -2
  344. package/lib/typescript/components/Message/MessageSimple/MessageDeleted.d.ts +2 -2
  345. package/lib/typescript/components/Message/MessageSimple/MessageError.d.ts +1 -1
  346. package/lib/typescript/components/Message/MessageSimple/MessageFooter.d.ts +2 -2
  347. package/lib/typescript/components/Message/MessageSimple/MessagePinnedHeader.d.ts +2 -2
  348. package/lib/typescript/components/Message/MessageSimple/MessageReplies.d.ts +2 -2
  349. package/lib/typescript/components/Message/MessageSimple/MessageRepliesAvatars.d.ts +2 -2
  350. package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts +2 -2
  351. package/lib/typescript/components/Message/MessageSimple/MessageStatus.d.ts +2 -2
  352. package/lib/typescript/components/Message/MessageSimple/MessageTextContainer.d.ts +3 -3
  353. package/lib/typescript/components/Message/MessageSimple/ReactionList.d.ts +3 -3
  354. package/lib/typescript/components/Message/MessageSimple/utils/generateMarkdownText.d.ts +1 -1
  355. package/lib/typescript/components/Message/MessageSimple/utils/renderText.d.ts +2 -2
  356. package/lib/typescript/components/Message/utils/messageActions.d.ts +2 -2
  357. package/lib/typescript/components/MessageInput/AttachButton.d.ts +2 -2
  358. package/lib/typescript/components/MessageInput/CommandsButton.d.ts +2 -2
  359. package/lib/typescript/components/MessageInput/CooldownTimer.d.ts +1 -1
  360. package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +2 -2
  361. package/lib/typescript/components/MessageInput/ImageUploadPreview.d.ts +2 -2
  362. package/lib/typescript/components/MessageInput/InputButtons.d.ts +2 -2
  363. package/lib/typescript/components/MessageInput/MessageInput.d.ts +2 -2
  364. package/lib/typescript/components/MessageInput/MoreOptionsButton.d.ts +2 -2
  365. package/lib/typescript/components/MessageInput/SendButton.d.ts +2 -2
  366. package/lib/typescript/components/MessageInput/ShowThreadMessageInChannelButton.d.ts +2 -2
  367. package/lib/typescript/components/MessageInput/UploadProgressIndicator.d.ts +1 -1
  368. package/lib/typescript/components/MessageInput/components/InputEditingStateHeader.d.ts +2 -2
  369. package/lib/typescript/components/MessageInput/components/InputGiphySearch.d.ts +2 -2
  370. package/lib/typescript/components/MessageInput/components/InputReplyStateHeader.d.ts +2 -2
  371. package/lib/typescript/components/MessageList/DateHeader.d.ts +1 -1
  372. package/lib/typescript/components/MessageList/InlineDateSeparator.d.ts +1 -1
  373. package/lib/typescript/components/MessageList/InlineLoadingMoreIndicator.d.ts +1 -1
  374. package/lib/typescript/components/MessageList/InlineLoadingMoreRecentIndicator.d.ts +1 -1
  375. package/lib/typescript/components/MessageList/InlineLoadingMoreThreadIndicator.d.ts +1 -1
  376. package/lib/typescript/components/MessageList/MessageList.d.ts +2 -2
  377. package/lib/typescript/components/MessageList/MessageSystem.d.ts +1 -1
  378. package/lib/typescript/components/MessageList/ScrollToBottomButton.d.ts +1 -1
  379. package/lib/typescript/components/MessageList/TypingIndicatorContainer.d.ts +2 -2
  380. package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts +4 -4
  381. package/lib/typescript/components/MessageList/utils/filterTypingUsers.d.ts +1 -1
  382. package/lib/typescript/components/MessageList/utils/getDateSeparators.d.ts +2 -2
  383. package/lib/typescript/components/MessageList/utils/getGroupStyles.d.ts +1 -1
  384. package/lib/typescript/components/MessageList/utils/getReadStates.d.ts +1 -0
  385. package/lib/typescript/components/MessageOverlay/MessageActionList.d.ts +2 -2
  386. package/lib/typescript/components/MessageOverlay/MessageActionListItem.d.ts +19 -3
  387. package/lib/typescript/components/MessageOverlay/MessageOverlay.d.ts +2 -2
  388. package/lib/typescript/components/MessageOverlay/OverlayBackdrop.d.ts +1 -1
  389. package/lib/typescript/components/MessageOverlay/OverlayReactionList.d.ts +3 -3
  390. package/lib/typescript/components/MessageOverlay/OverlayReactions.d.ts +2 -2
  391. package/lib/typescript/components/MessageOverlay/OverlayReactionsAvatar.d.ts +1 -1
  392. package/lib/typescript/components/MessageOverlay/hooks/useMessageActionAnimation.d.ts +1 -1
  393. package/lib/typescript/components/ProgressControl/ProgressControl.d.ts +1 -1
  394. package/lib/typescript/components/RTLComponents/WritingDirectionAwareText.d.ts +1 -1
  395. package/lib/typescript/components/Reply/Reply.d.ts +2 -2
  396. package/lib/typescript/components/Spinner/Spinner.d.ts +1 -1
  397. package/lib/typescript/components/Thread/Thread.d.ts +2 -2
  398. package/lib/typescript/contexts/activeChannelsRefContext/ActiveChannelsRefContext.d.ts +1 -1
  399. package/lib/typescript/contexts/attachmentPickerContext/AttachmentPickerContext.d.ts +2 -2
  400. package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +1 -1
  401. package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +2 -2
  402. package/lib/typescript/contexts/channelsStateContext/ChannelsStateContext.d.ts +5 -5
  403. package/lib/typescript/contexts/channelsStateContext/useChannelState.d.ts +1 -1
  404. package/lib/typescript/contexts/chatContext/ChatContext.d.ts +4 -1
  405. package/lib/typescript/contexts/debugContext/DebugContext.d.ts +2 -2
  406. package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContext.d.ts +2 -2
  407. package/lib/typescript/contexts/keyboardContext/KeyboardContext.d.ts +1 -1
  408. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +3 -3
  409. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +6 -6
  410. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
  411. package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts +1 -1
  412. package/lib/typescript/contexts/messageOverlayContext/MessageOverlayContext.d.ts +2 -2
  413. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +3 -3
  414. package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts +3 -3
  415. package/lib/typescript/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.d.ts +2 -2
  416. package/lib/typescript/contexts/paginatedMessageListContext/PaginatedMessageListContext.d.ts +1 -1
  417. package/lib/typescript/contexts/suggestionsContext/SuggestionsContext.d.ts +6 -6
  418. package/lib/typescript/contexts/themeContext/ThemeContext.d.ts +5 -5
  419. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +2 -2
  420. package/lib/typescript/contexts/threadContext/ThreadContext.d.ts +1 -1
  421. package/lib/typescript/contexts/translationContext/TranslationContext.d.ts +5 -5
  422. package/lib/typescript/contexts/typingContext/TypingContext.d.ts +1 -1
  423. package/lib/typescript/emoji-data/index.d.ts +2 -2
  424. package/lib/typescript/hooks/useAppStateListener.d.ts +1 -1
  425. package/lib/typescript/hooks/useStreami18n.d.ts +1 -1
  426. package/lib/typescript/hooks/useViewport.d.ts +1 -1
  427. package/lib/typescript/i18n/en.json +1 -1
  428. package/lib/typescript/i18n/es.json +56 -56
  429. package/lib/typescript/i18n/fr.json +56 -56
  430. package/lib/typescript/i18n/he.json +56 -56
  431. package/lib/typescript/i18n/hi.json +56 -56
  432. package/lib/typescript/i18n/it.json +56 -56
  433. package/lib/typescript/i18n/ja.json +56 -56
  434. package/lib/typescript/i18n/ko.json +56 -56
  435. package/lib/typescript/i18n/nl.json +56 -56
  436. package/lib/typescript/i18n/ru.json +56 -56
  437. package/lib/typescript/i18n/tr.json +56 -56
  438. package/lib/typescript/icons/ArrowRight.d.ts +2 -2
  439. package/lib/typescript/icons/AtMentions.d.ts +2 -2
  440. package/lib/typescript/icons/Attach.d.ts +2 -2
  441. package/lib/typescript/icons/Audio.d.ts +2 -2
  442. package/lib/typescript/icons/CSV.d.ts +2 -2
  443. package/lib/typescript/icons/Camera.d.ts +2 -2
  444. package/lib/typescript/icons/Check.d.ts +2 -2
  445. package/lib/typescript/icons/CheckAll.d.ts +2 -2
  446. package/lib/typescript/icons/CheckSend.d.ts +2 -2
  447. package/lib/typescript/icons/CircleClose.d.ts +2 -2
  448. package/lib/typescript/icons/CirclePlus.d.ts +2 -2
  449. package/lib/typescript/icons/CircleRight.d.ts +2 -2
  450. package/lib/typescript/icons/Close.d.ts +2 -2
  451. package/lib/typescript/icons/CurveLineLeftUp.d.ts +2 -2
  452. package/lib/typescript/icons/DOC.d.ts +2 -2
  453. package/lib/typescript/icons/DOCX.d.ts +2 -2
  454. package/lib/typescript/icons/Delete.d.ts +2 -2
  455. package/lib/typescript/icons/Down.d.ts +2 -2
  456. package/lib/typescript/icons/DownloadArrow.d.ts +2 -2
  457. package/lib/typescript/icons/DownloadCloud.d.ts +2 -2
  458. package/lib/typescript/icons/Edit.d.ts +2 -2
  459. package/lib/typescript/icons/Error.d.ts +2 -2
  460. package/lib/typescript/icons/Eye.d.ts +2 -2
  461. package/lib/typescript/icons/Flag.d.ts +2 -2
  462. package/lib/typescript/icons/Folder.d.ts +2 -2
  463. package/lib/typescript/icons/GenericFile.d.ts +2 -2
  464. package/lib/typescript/icons/GiphyIcon.d.ts +2 -2
  465. package/lib/typescript/icons/Grid.d.ts +2 -2
  466. package/lib/typescript/icons/Group.d.ts +2 -2
  467. package/lib/typescript/icons/HTML.d.ts +2 -2
  468. package/lib/typescript/icons/Imgur.d.ts +2 -2
  469. package/lib/typescript/icons/LOLReaction.d.ts +2 -2
  470. package/lib/typescript/icons/Lightning.d.ts +2 -2
  471. package/lib/typescript/icons/Link.d.ts +2 -2
  472. package/lib/typescript/icons/Loading.d.ts +1 -1
  473. package/lib/typescript/icons/Logo.d.ts +2 -2
  474. package/lib/typescript/icons/LoveReaction.d.ts +2 -2
  475. package/lib/typescript/icons/MD.d.ts +2 -2
  476. package/lib/typescript/icons/MailOpen.d.ts +2 -2
  477. package/lib/typescript/icons/MenuPointHorizontal.d.ts +2 -2
  478. package/lib/typescript/icons/MenuPointVertical.d.ts +2 -2
  479. package/lib/typescript/icons/MessageFlag.d.ts +2 -2
  480. package/lib/typescript/icons/MessageIcon.d.ts +2 -2
  481. package/lib/typescript/icons/Mute.d.ts +2 -2
  482. package/lib/typescript/icons/Notification.d.ts +2 -2
  483. package/lib/typescript/icons/ODT.d.ts +2 -2
  484. package/lib/typescript/icons/PDF.d.ts +2 -2
  485. package/lib/typescript/icons/PPT.d.ts +2 -2
  486. package/lib/typescript/icons/PPTX.d.ts +2 -2
  487. package/lib/typescript/icons/Pause.d.ts +2 -2
  488. package/lib/typescript/icons/Picture.d.ts +2 -2
  489. package/lib/typescript/icons/Pin.d.ts +2 -2
  490. package/lib/typescript/icons/PinHeader.d.ts +2 -2
  491. package/lib/typescript/icons/Play.d.ts +2 -2
  492. package/lib/typescript/icons/RAR.d.ts +2 -2
  493. package/lib/typescript/icons/RTF.d.ts +2 -2
  494. package/lib/typescript/icons/Recorder.d.ts +2 -2
  495. package/lib/typescript/icons/Refresh.d.ts +2 -2
  496. package/lib/typescript/icons/SEVEN_Z.d.ts +2 -2
  497. package/lib/typescript/icons/Search.d.ts +2 -2
  498. package/lib/typescript/icons/SendRight.d.ts +2 -2
  499. package/lib/typescript/icons/SendUp.d.ts +2 -2
  500. package/lib/typescript/icons/Share.d.ts +2 -2
  501. package/lib/typescript/icons/ShareRightArrow.d.ts +2 -2
  502. package/lib/typescript/icons/Smile.d.ts +2 -2
  503. package/lib/typescript/icons/Sound.d.ts +2 -2
  504. package/lib/typescript/icons/TAR.d.ts +2 -2
  505. package/lib/typescript/icons/TXT.d.ts +2 -2
  506. package/lib/typescript/icons/ThreadReply.d.ts +2 -2
  507. package/lib/typescript/icons/ThumbsDownReaction.d.ts +2 -2
  508. package/lib/typescript/icons/ThumbsUpReaction.d.ts +2 -2
  509. package/lib/typescript/icons/Time.d.ts +2 -2
  510. package/lib/typescript/icons/Unknown.d.ts +2 -2
  511. package/lib/typescript/icons/Unpin.d.ts +2 -2
  512. package/lib/typescript/icons/User.d.ts +2 -2
  513. package/lib/typescript/icons/UserAdd.d.ts +2 -2
  514. package/lib/typescript/icons/UserAdmin.d.ts +2 -2
  515. package/lib/typescript/icons/UserDelete.d.ts +2 -2
  516. package/lib/typescript/icons/UserMinus.d.ts +2 -2
  517. package/lib/typescript/icons/Video.d.ts +2 -2
  518. package/lib/typescript/icons/Warning.d.ts +2 -2
  519. package/lib/typescript/icons/WutReaction.d.ts +2 -2
  520. package/lib/typescript/icons/XLS.d.ts +2 -2
  521. package/lib/typescript/icons/XLSX.d.ts +2 -2
  522. package/lib/typescript/icons/ZIP.d.ts +2 -2
  523. package/lib/typescript/icons/utils/base.d.ts +5 -5
  524. package/lib/typescript/native.d.ts +26 -26
  525. package/lib/typescript/store/QuickSqliteClient.d.ts +1 -1
  526. package/lib/typescript/store/apis/upsertChannels.d.ts +2 -2
  527. package/lib/typescript/store/apis/upsertCidsForQuery.d.ts +2 -2
  528. package/lib/typescript/store/mappers/mapDateTimeToStorable.d.ts +1 -1
  529. package/lib/typescript/store/schema.d.ts +2 -2
  530. package/lib/typescript/store/sqlite-utils/appendOrderByClause.d.ts +1 -1
  531. package/lib/typescript/store/sqlite-utils/appendWhereCluase.d.ts +1 -1
  532. package/lib/typescript/store/sqlite-utils/createUpsertQuery.d.ts +1 -1
  533. package/lib/typescript/store/types.d.ts +8 -8
  534. package/lib/typescript/types/types.d.ts +7 -7
  535. package/lib/typescript/utils/StreamChatRN.d.ts +1 -1
  536. package/lib/typescript/utils/Streami18n.d.ts +2 -2
  537. package/lib/typescript/utils/compressImage.d.ts +1 -1
  538. package/lib/typescript/utils/getResizedImageUrl.d.ts +1 -1
  539. package/lib/typescript/utils/utils.d.ts +14 -14
  540. package/package.json +3 -7
  541. package/src/components/Channel/Channel.tsx +9 -3
  542. package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +11 -1
  543. package/src/components/Channel/hooks/useCreateOwnCapabilitiesContext.ts +24 -6
  544. package/src/components/ChannelPreview/ChannelPreview.tsx +1 -1
  545. package/src/components/ChannelPreview/ChannelPreviewMessage.tsx +3 -0
  546. package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +2 -3
  547. package/src/components/ChannelPreview/ChannelPreviewStatus.tsx +1 -3
  548. package/src/components/ChannelPreview/ChannelPreviewTitle.tsx +5 -12
  549. package/src/components/ChannelPreview/ChannelPreviewUnreadCount.tsx +5 -4
  550. package/src/components/Message/Message.tsx +15 -1
  551. package/src/components/Message/MessageSimple/MessageContent.tsx +5 -0
  552. package/src/components/Message/MessageSimple/MessageSimple.tsx +8 -2
  553. package/src/components/MessageInput/MessageInput.tsx +3 -7
  554. package/src/components/MessageInput/hooks/useCountdown.ts +1 -1
  555. package/src/components/MessageList/MessageList.tsx +3 -1
  556. package/src/components/MessageOverlay/MessageActionListItem.tsx +16 -0
  557. package/src/contexts/channelsContext/ChannelsContext.tsx +1 -1
  558. package/src/contexts/chatContext/ChatContext.tsx +3 -0
  559. package/src/contexts/messageInputContext/MessageInputContext.tsx +1 -1
  560. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +3 -0
  561. package/src/contexts/themeContext/ThemeContext.tsx +3 -3
  562. package/src/i18n/en.json +1 -1
  563. package/src/i18n/es.json +56 -56
  564. package/src/i18n/fr.json +56 -56
  565. package/src/i18n/he.json +56 -56
  566. package/src/i18n/hi.json +56 -56
  567. package/src/i18n/it.json +56 -56
  568. package/src/i18n/ja.json +56 -56
  569. package/src/i18n/ko.json +56 -56
  570. package/src/i18n/nl.json +56 -56
  571. package/src/i18n/ru.json +56 -56
  572. package/src/i18n/tr.json +56 -56
  573. package/src/icons/ArrowRight.tsx +1 -1
  574. package/src/icons/AtMentions.tsx +1 -1
  575. package/src/icons/Attach.tsx +1 -1
  576. package/src/icons/Audio.tsx +1 -1
  577. package/src/icons/CSV.tsx +1 -1
  578. package/src/icons/Camera.tsx +1 -1
  579. package/src/icons/Check.tsx +1 -1
  580. package/src/icons/CheckAll.tsx +1 -1
  581. package/src/icons/CheckSend.tsx +1 -1
  582. package/src/icons/CircleClose.tsx +1 -1
  583. package/src/icons/CirclePlus.tsx +1 -1
  584. package/src/icons/CircleRight.tsx +1 -1
  585. package/src/icons/Close.tsx +1 -1
  586. package/src/icons/Copy.tsx +1 -1
  587. package/src/icons/CurveLineLeftUp.tsx +1 -1
  588. package/src/icons/DOC.tsx +1 -1
  589. package/src/icons/DOCX.tsx +1 -1
  590. package/src/icons/Delete.tsx +1 -1
  591. package/src/icons/Down.tsx +1 -1
  592. package/src/icons/DownloadArrow.tsx +1 -1
  593. package/src/icons/DownloadCloud.tsx +1 -1
  594. package/src/icons/Edit.tsx +1 -1
  595. package/src/icons/Error.tsx +1 -1
  596. package/src/icons/Eye.tsx +1 -1
  597. package/src/icons/Flag.tsx +1 -1
  598. package/src/icons/Folder.tsx +1 -1
  599. package/src/icons/GenericFile.tsx +1 -1
  600. package/src/icons/GiphyIcon.tsx +1 -1
  601. package/src/icons/Grid.tsx +1 -1
  602. package/src/icons/Group.tsx +1 -1
  603. package/src/icons/HTML.tsx +1 -1
  604. package/src/icons/Imgur.tsx +1 -1
  605. package/src/icons/LOLReaction.tsx +1 -1
  606. package/src/icons/Lightning.tsx +1 -1
  607. package/src/icons/Link.tsx +1 -1
  608. package/src/icons/Logo.tsx +1 -1
  609. package/src/icons/LoveReaction.tsx +1 -1
  610. package/src/icons/MD.tsx +1 -1
  611. package/src/icons/MailOpen.tsx +1 -1
  612. package/src/icons/MenuPointHorizontal.tsx +1 -1
  613. package/src/icons/MenuPointVertical.tsx +1 -1
  614. package/src/icons/MessageFlag.tsx +1 -1
  615. package/src/icons/MessageIcon.tsx +1 -1
  616. package/src/icons/Mute.tsx +1 -1
  617. package/src/icons/Notification.tsx +1 -1
  618. package/src/icons/ODT.tsx +1 -1
  619. package/src/icons/PDF.tsx +1 -1
  620. package/src/icons/PPT.tsx +1 -1
  621. package/src/icons/PPTX.tsx +1 -1
  622. package/src/icons/Pause.tsx +1 -1
  623. package/src/icons/Picture.tsx +1 -1
  624. package/src/icons/Pin.tsx +1 -1
  625. package/src/icons/PinHeader.tsx +1 -1
  626. package/src/icons/Play.tsx +1 -1
  627. package/src/icons/RAR.tsx +1 -1
  628. package/src/icons/RTF.tsx +1 -1
  629. package/src/icons/Recorder.tsx +1 -1
  630. package/src/icons/Refresh.tsx +1 -1
  631. package/src/icons/SEVEN_Z.tsx +1 -1
  632. package/src/icons/Search.tsx +1 -1
  633. package/src/icons/SendRight.tsx +1 -1
  634. package/src/icons/SendUp.tsx +1 -1
  635. package/src/icons/Share.tsx +1 -1
  636. package/src/icons/ShareRightArrow.tsx +1 -1
  637. package/src/icons/Smile.tsx +1 -1
  638. package/src/icons/Sound.tsx +1 -1
  639. package/src/icons/TAR.tsx +1 -1
  640. package/src/icons/TXT.tsx +1 -1
  641. package/src/icons/ThreadReply.tsx +1 -1
  642. package/src/icons/ThumbsDownReaction.tsx +1 -1
  643. package/src/icons/ThumbsUpReaction.tsx +1 -1
  644. package/src/icons/Time.tsx +1 -1
  645. package/src/icons/Unknown.tsx +1 -1
  646. package/src/icons/Unpin.tsx +1 -1
  647. package/src/icons/User.tsx +1 -1
  648. package/src/icons/UserAdd.tsx +1 -1
  649. package/src/icons/UserAdmin.tsx +1 -1
  650. package/src/icons/UserDelete.tsx +1 -1
  651. package/src/icons/UserMinus.tsx +1 -1
  652. package/src/icons/Video.tsx +1 -1
  653. package/src/icons/Warning.tsx +1 -1
  654. package/src/icons/WutReaction.tsx +1 -1
  655. package/src/icons/XLS.tsx +1 -1
  656. package/src/icons/XLSX.tsx +1 -1
  657. package/src/icons/ZIP.tsx +1 -1
  658. package/src/icons/utils/base.tsx +2 -2
  659. package/src/version.json +1 -1
@@ -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":"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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","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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"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uniq","_interopRequireDefault","_mimeTypes","_streamChat","_useCreateMessageInputContext","_useMessageDetailsForState","_parseLinks","_useCooldown2","_native","_compressImage","_removeReservedFields","_utils","_AttachmentPickerContext","_ChannelContext","_ChatContext","_MessagesContext","_OwnCapabilitiesContext","_ThreadContext","_TranslationContext","_defaultBaseContextValue","_getDisplayName","_isTestEnvironment","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof3","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","from","test","arr","len","arr2","MessageInputContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","exports","MessageInputProvider","_ref","_getFileUploadConfig","_getFileUploadConfig2","_getImageUploadConfig","_getImageUploadConfig2","children","_useAttachmentPickerC","useAttachmentPickerContext","closePicker","openPicker","selectedPicker","setSelectedPicker","_useChatContext","useChatContext","appSettings","client","enableOfflineSupport","_useMessagesContext","useMessagesContext","removeMessage","getFileUploadConfig","_appSettings$app","fileConfig","app","file_upload_config","undefined","blockedFileExtensionTypes","blocked_file_extensions","blockedFileMimeTypes","blocked_mime_types","getImageUploadConfig","_appSettings$app2","imageConfig","image_upload_config","blockedImageExtensionTypes","blockedImageMimeTypes","channelCapabities","useOwnCapabilitiesContext","_useChannelContext","useChannelContext","channel","giphyEnabled","uploadAbortControllerRef","_useThreadContext","useThreadContext","thread","_useTranslationContex","useTranslationContext","t","inputBoxRef","useRef","sending","_useState","useState","_useState2","_slicedToArray2","asyncIds","setAsyncIds","_useState3","_useState4","asyncUploads","setAsyncUploads","_useState5","_useState6","giphyActive","setGiphyActive","_useState7","_useState8","sendThreadMessageInChannel","setSendThreadMessageInChannel","editing","hasFilePicker","hasImagePicker","initialValue","_useMessageDetailsFor","useMessageDetailsForState","fileUploads","imageUploads","mentionedUsers","numberOfUploads","setFileUploads","setImageUploads","setMentionedUsers","setNumberOfUploads","setShowMoreOptions","setText","showMoreOptions","text","_useCooldown","useCooldown","cooldownEndsAt","endsAt","startCooldown","start","threadId","id","useEffect","appendText","newText","prevText","isValidMessage","trim","imagesAndFiles","concat","_toConsumableArray2","_iterator","_step","file","state","FileState","NOT_SUPPORTED","_iterator2","_step2","UPLOAD_FAILED","UPLOADING","onChange","current","sendTypingEvents","logChatPromiseExecution","keystroke","onChangeText","openCommandsPicker","focus","openMentionsPicker","openAttachmentPicker","Keyboard","dismiss","pickFile","closeAttachmentPicker","toggleAttachmentPicker","onSelectItem","item","prevMentionedUsers","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","result","MEGA_BYTES_TO_BYTES","MAX_FILE_SIZE_TO_UPLOAD_IN_MB","totalFileSize","wrap","_callee$","_context","prev","pickDocument","console","log","abrupt","maxNumberOfFiles","Alert","alert","sent","cancelled","assets","reduce","acc","asset","Number","size","forEach","uploadNewFile","stop","apply","arguments","removeFile","some","prevFileUploads","filter","prevNumberOfUploads","removeImage","image","prevImageUploads","resetInput","pendingAttachments","clearEditingState","mapImageUploadToAttachment","mime_type","lookup","fallback","image_url","url","original_height","height","original_width","width","originalImage","type","mapFileUploadToAttachment","_file$file$mimeType","_file$file$mimeType2","_file$file$mimeType3","mimeType","startsWith","originalFile","asset_url","uri","duration","file_size","title","thumb_url","sendMessage","_ref3","_callee3","customMessageData","linkInfos","attachments","_loop","_iterator3","_step3","_image","_ret","_iterator4","_step4","_file3","message","updatedMessage","updateMessagePromise","_callee3$","_context3","parseLinksFromText","sendLinks","clear","_callee2","_callee2$","_context2","v","push","sendImageAsync","prevAsyncIds","UPLOADED","FINISHED","delegateYield","t0","_typeof2","_extends2","mentioned_users","quoted_message","editMessage","removeReservedFields","then","isBouncedMessage","uniq","parent_id","quoted_message_id","quotedMessage","show_in_channel","clearQuotedMessageState","_error","setQuotedMessageState","_x","sendMessageAsync","splice","indexOf","prevAsyncUploads","setInputBoxRef","ref","setInputRef","getTriggerSettings","triggerSettings","autoCompleteTriggerSettings","emojiSearchIndex","onMentionSelectItem","ACITriggerSettings","updateMessage","_ref4","_callee4","_callee4$","_context4","regexCondition","getUploadSetStateAction","fileState","extraData","prevUploads","map","prevUpload","handleFileOrImageUploadError","error","isImageError","Error","uploadFile","_ref6","_callee5","_ref5","newFile","response","_file$mimeType","compressedUri","_callee5$","_context5","doDocUploadRequest","createAbortControllerForNextRequest","includes","compressedImageURI","compressImageQuality","sendFile","_x2","uploadImage","_ref8","_callee6","_ref7","_file$name","newImage","_ref9","filename","contentType","newImageUploads","_callee6$","_context6","replace","doImageUploadRequest","sendImage","res","keys","_x3","_ref10","_callee7","isBlockedFileExtension","isBlockedFileMimeType","_callee7$","_context7","generateRandomId","fileExtensionType","_file$name2","_file$name3","paused","progress","Promise","all","_x4","uploadNewImage","_ref11","_callee8","isBlockedImageMimeType","isBlockedImageExtension","imageState","_callee8$","_context8","_image$uri","imageExtensionType","_image$uri2","_x5","messageInputContext","useCreateMessageInputContext","openFilePicker","createElement","Provider","__self","__source","fileName","lineNumber","columnNumber","useMessageInputContext","contextValue","useContext","isTestEnvironment","withMessageInputContext","Component","WithMessageInputContextComponent","props","displayName","getDisplayName"],"sources":["MessageInputContext.tsx"],"sourcesContent":["import type { LegacyRef } from 'react';\nimport React, { PropsWithChildren, useContext, useEffect, useRef, useState } from 'react';\nimport type { TextInput, TextInputProps } from 'react-native';\nimport { Alert, Keyboard } from 'react-native';\n\nimport uniq from 'lodash/uniq';\nimport { lookup } from 'mime-types';\nimport {\n Attachment,\n logChatPromiseExecution,\n Message,\n SendFileAPIResponse,\n StreamChat,\n Message as StreamMessage,\n UserFilters,\n UserOptions,\n UserResponse,\n UserSort,\n} from 'stream-chat';\n\nimport { useCreateMessageInputContext } from './hooks/useCreateMessageInputContext';\nimport { useMessageDetailsForState } from './hooks/useMessageDetailsForState';\n\nimport { parseLinksFromText } from '../../components/Message/MessageSimple/utils/parseLinks';\nimport type { AttachButtonProps } from '../../components/MessageInput/AttachButton';\nimport type { CommandsButtonProps } from '../../components/MessageInput/CommandsButton';\nimport type { InputEditingStateHeaderProps } from '../../components/MessageInput/components/InputEditingStateHeader';\nimport type { InputGiphySearchProps } from '../../components/MessageInput/components/InputGiphySearch';\nimport type { InputReplyStateHeaderProps } from '../../components/MessageInput/components/InputReplyStateHeader';\nimport type { CooldownTimerProps } from '../../components/MessageInput/CooldownTimer';\nimport type { FileUploadPreviewProps } from '../../components/MessageInput/FileUploadPreview';\nimport { useCooldown } from '../../components/MessageInput/hooks/useCooldown';\nimport type { ImageUploadPreviewProps } from '../../components/MessageInput/ImageUploadPreview';\nimport type { InputButtonsProps } from '../../components/MessageInput/InputButtons';\nimport type { MessageInputProps } from '../../components/MessageInput/MessageInput';\nimport type { MoreOptionsButtonProps } from '../../components/MessageInput/MoreOptionsButton';\nimport type { SendButtonProps } from '../../components/MessageInput/SendButton';\nimport type { UploadProgressIndicatorProps } from '../../components/MessageInput/UploadProgressIndicator';\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport type { Emoji } from '../../emoji-data';\nimport { pickDocument } from '../../native';\nimport type {\n Asset,\n DefaultStreamChatGenerics,\n File,\n FileUpload,\n ImageUpload,\n UnknownType,\n} from '../../types/types';\nimport { compressedImageURI } from '../../utils/compressImage';\nimport { removeReservedFields } from '../../utils/removeReservedFields';\nimport {\n ACITriggerSettings,\n ACITriggerSettingsParams,\n FileState,\n FileStateValue,\n generateRandomId,\n isBouncedMessage,\n TriggerSettings,\n} from '../../utils/utils';\nimport { useAttachmentPickerContext } from '../attachmentPickerContext/AttachmentPickerContext';\nimport { ChannelContextValue, useChannelContext } from '../channelContext/ChannelContext';\nimport { useChatContext } from '../chatContext/ChatContext';\nimport { useMessagesContext } from '../messagesContext/MessagesContext';\nimport { useOwnCapabilitiesContext } from '../ownCapabilitiesContext/OwnCapabilitiesContext';\nimport { useThreadContext } from '../threadContext/ThreadContext';\nimport { useTranslationContext } from '../translationContext/TranslationContext';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type EmojiSearchIndex = {\n search: (query: string) => PromiseLike<Array<Emoji>> | Array<Emoji> | null;\n};\n\nexport type MentionAllAppUsersQuery<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n filters?: UserFilters<StreamChatGenerics>;\n options?: UserOptions;\n sort?: UserSort<StreamChatGenerics>;\n};\n\nexport type LocalMessageInputContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n appendText: (newText: string) => void;\n asyncIds: string[];\n asyncUploads: {\n [key: string]: {\n state: string;\n url: string;\n };\n };\n closeAttachmentPicker: () => void;\n /** The time at which the active cooldown will end */\n cooldownEndsAt: Date;\n /**\n * An array of file objects which are set for upload. It has the following structure:\n *\n * ```json\n * [\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_1\",\n * \"state\": \"uploading\" // or \"finished\",\n * \"url\": \"https://url1.com\",\n * },\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_2\",\n * \"state\": \"uploading\" // or \"finished\",\n * \"url\": \"https://url1.com\",\n * },\n * ]\n * ```\n *\n */\n fileUploads: FileUpload[];\n giphyActive: boolean;\n /**\n * An array of image objects which are set for upload. It has the following structure:\n *\n * ```json\n * [\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_1\",\n * \"state\": \"uploading\" // or \"finished\",\n * },\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_2\",\n * \"state\": \"uploading\" // or \"finished\",\n * },\n * ]\n * ```\n *\n */\n imageUploads: ImageUpload[];\n inputBoxRef: React.MutableRefObject<TextInput | null>;\n isValidMessage: () => boolean;\n mentionedUsers: string[];\n numberOfUploads: number;\n onChange: (newText: string) => void;\n onSelectItem: (item: UserResponse<StreamChatGenerics>) => void;\n openAttachmentPicker: () => void;\n openCommandsPicker: () => void;\n openFilePicker: () => void;\n openMentionsPicker: () => void;\n pickFile: () => Promise<void>;\n /**\n * Function for removing a file from the upload preview\n *\n * @param id string ID of file in `fileUploads` object in state of MessageInput\n */\n removeFile: (id: string) => void;\n /**\n * Function for removing an image from the upload preview\n *\n * @param id string ID of image in `imageUploads` object in state of MessageInput\n */\n removeImage: (id: string) => void;\n resetInput: (pendingAttachments?: Attachment<StreamChatGenerics>[]) => void;\n selectedPicker: string | undefined;\n sending: React.MutableRefObject<boolean>;\n sendMessage: (customMessageData?: Partial<Message<StreamChatGenerics>>) => Promise<void>;\n sendMessageAsync: (id: string) => void;\n sendThreadMessageInChannel: boolean;\n setAsyncIds: React.Dispatch<React.SetStateAction<string[]>>;\n setAsyncUploads: React.Dispatch<\n React.SetStateAction<{\n [key: string]: {\n state: string;\n url: string;\n };\n }>\n >;\n setFileUploads: React.Dispatch<React.SetStateAction<FileUpload[]>>;\n setGiphyActive: React.Dispatch<React.SetStateAction<boolean>>;\n setImageUploads: React.Dispatch<React.SetStateAction<ImageUpload[]>>;\n /**\n * Ref callback to set reference on input box\n */\n setInputBoxRef: LegacyRef<TextInput> | undefined;\n setMentionedUsers: React.Dispatch<React.SetStateAction<string[]>>;\n setNumberOfUploads: React.Dispatch<React.SetStateAction<number>>;\n setSendThreadMessageInChannel: React.Dispatch<React.SetStateAction<boolean>>;\n setShowMoreOptions: React.Dispatch<React.SetStateAction<boolean>>;\n setText: React.Dispatch<React.SetStateAction<string>>;\n showMoreOptions: boolean;\n /**\n * Text value of the TextInput\n */\n text: string;\n toggleAttachmentPicker: () => void;\n /**\n * Mapping of input triggers to the outputs to be displayed by the AutoCompleteInput\n */\n triggerSettings: TriggerSettings<StreamChatGenerics>;\n updateMessage: () => Promise<void>;\n /** Function for attempting to upload a file */\n uploadFile: ({ newFile }: { newFile: FileUpload }) => Promise<void>;\n /** Function for attempting to upload an image */\n uploadImage: ({ newImage }: { newImage: ImageUpload }) => Promise<void>;\n uploadNewFile: (file: File) => Promise<void>;\n uploadNewImage: (image: Partial<Asset>) => Promise<void>;\n};\n\nexport type InputMessageInputContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Custom UI component for attach button.\n *\n * Defaults to and accepts same props as: [AttachButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/attach-button/)\n */\n AttachButton: React.ComponentType<AttachButtonProps<StreamChatGenerics>>;\n\n clearEditingState: () => void;\n clearQuotedMessageState: () => void;\n /**\n * Custom UI component for commands button.\n *\n * Defaults to and accepts same props as: [CommandsButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/commands-button/)\n */\n CommandsButton: React.ComponentType<CommandsButtonProps<StreamChatGenerics>>;\n /**\n * Custom UI component to display the remaining cooldown a user will have to wait before\n * being allowed to send another message. This component is displayed in place of the\n * send button for the MessageInput component.\n *\n * **default** [CooldownTimer](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/CooldownTimer.tsx)\n */\n CooldownTimer: React.ComponentType<CooldownTimerProps>;\n editMessage: StreamChat<StreamChatGenerics>['updateMessage'];\n\n /**\n * Custom UI component for FileUploadPreview.\n * Defaults to and accepts same props as: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/FileUploadPreview.tsx\n */\n FileUploadPreview: React.ComponentType<FileUploadPreviewProps<StreamChatGenerics>>;\n\n /** When false, CommandsButton will be hidden */\n hasCommands: boolean;\n /** When false, FileSelectorIcon will be hidden */\n hasFilePicker: boolean;\n /** When false, ImageSelectorIcon will be hidden */\n hasImagePicker: boolean;\n /**\n * Custom UI component for ImageUploadPreview.\n * Defaults to and accepts same props as: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/ImageUploadPreview.tsx\n */\n ImageUploadPreview: React.ComponentType<ImageUploadPreviewProps<StreamChatGenerics>>;\n InputEditingStateHeader: React.ComponentType<InputEditingStateHeaderProps<StreamChatGenerics>>;\n InputGiphySearch: React.ComponentType<InputGiphySearchProps<StreamChatGenerics>>;\n InputReplyStateHeader: React.ComponentType<InputReplyStateHeaderProps<StreamChatGenerics>>;\n /** Limit on allowed number of files to attach at a time. */\n maxNumberOfFiles: number;\n /**\n * Custom UI component for more options button.\n *\n * Defaults to and accepts same props as: [MoreOptionsButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/more-options-button/)\n */\n MoreOptionsButton: React.ComponentType<MoreOptionsButtonProps<StreamChatGenerics>>;\n /** Limit on the number of lines in the text input before scrolling */\n numberOfLines: number;\n quotedMessage: boolean | MessageType<StreamChatGenerics>;\n /**\n * Custom UI component for send button.\n *\n * Defaults to and accepts same props as: [SendButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/send-button/)\n */\n SendButton: React.ComponentType<SendButtonProps<StreamChatGenerics>>;\n sendImageAsync: boolean;\n sendMessage: (message: Partial<StreamMessage<StreamChatGenerics>>) => Promise<void>;\n setQuotedMessageState: (message: MessageType<StreamChatGenerics>) => void;\n /**\n * Custom UI component to render checkbox with text (\"Also send to channel\") in Thread's input box.\n * When ticked, message will also be sent in parent channel.\n */\n ShowThreadMessageInChannelButton: React.ComponentType<{\n threadList?: boolean;\n }>;\n /**\n * Custom UI component to render upload progress indicator on attachment preview.\n *\n * **Default** [UploadProgressIndicator](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/UploadProgressIndicator.tsx)\n */\n UploadProgressIndicator: React.ComponentType<UploadProgressIndicatorProps>;\n /**\n * Additional props for underlying TextInput component. These props will be forwarded as it is to TextInput component.\n *\n * @see See https://reactnative.dev/docs/textinput#reference\n */\n additionalTextInputProps?: TextInputProps;\n /** Max number of suggestions to display in autocomplete list. Defaults to 10. */\n autoCompleteSuggestionsLimit?: number;\n /**\n * Mapping of input triggers to the outputs to be displayed by the AutoCompleteInput\n */\n autoCompleteTriggerSettings?: (\n settings: ACITriggerSettingsParams<StreamChatGenerics>,\n ) => TriggerSettings<StreamChatGenerics>;\n /**\n * Compress image with quality (from 0 to 1, where 1 is best quality).\n * On iOS, values larger than 0.8 don't produce a noticeable quality increase in most images,\n * while a value of 0.8 will reduce the file size by about half or less compared to a value of 1.\n * Image picker defaults to 0.8 for iOS and 1 for Android\n */\n compressImageQuality?: number;\n /**\n * Override file upload request\n *\n * @param file File object - { uri: '', name: '' }\n * @param channel Current channel object\n *\n * @overrideType Function\n */\n doDocUploadRequest?: (\n file: File,\n channel: ChannelContextValue<StreamChatGenerics>['channel'],\n ) => Promise<SendFileAPIResponse>;\n /**\n * Override image upload request\n *\n * @param file File object - { uri: '' }\n * @param channel Current channel object\n *\n * @overrideType Function\n */\n doImageUploadRequest?: (\n file: {\n name?: string;\n uri?: string;\n },\n channel: ChannelContextValue<StreamChatGenerics>['channel'],\n ) => Promise<SendFileAPIResponse>;\n\n /**\n * Variable that tracks the editing state.\n * It is defined with message type if the editing state is true, else its undefined.\n */\n editing?: MessageType<StreamChatGenerics>;\n\n /**\n * Prop to override the default emoji search index in auto complete suggestion list.\n */\n emojiSearchIndex?: EmojiSearchIndex;\n\n /** Initial value to set on input */\n initialValue?: string;\n /**\n * Custom UI component for AutoCompleteInput.\n * Has access to all of [MessageInputContext](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/contexts/messageInputContext/MessageInputContext.tsx)\n */\n Input?: React.ComponentType<\n Omit<MessageInputProps<StreamChatGenerics>, 'Input'> &\n InputButtonsProps<StreamChatGenerics> & {\n getUsers: () => UserResponse<StreamChatGenerics>[];\n }\n >;\n /**\n * Custom UI component to override buttons on left side of input box\n * Defaults to [InputButtons](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/InputButtons.tsx),\n * which contain following components/buttons:\n *\n * - AttachButton\n * - CommandsButtom\n *\n * You have access to following prop functions:\n *\n * - closeAttachmentPicker\n * - openAttachmentPicker\n * - openCommandsPicker\n * - toggleAttachmentPicker\n */\n InputButtons?: React.ComponentType<InputButtonsProps<StreamChatGenerics>>;\n maxMessageLength?: number;\n mentionAllAppUsersEnabled?: boolean;\n /** Object containing filters/sort/options overrides for an @mention user query */\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n /**\n * Callback that is called when the text input's text changes. Changed text is passed as a single string argument to the callback handler.\n */\n onChangeText?: (newText: string) => void;\n SendMessageDisallowedIndicator?: React.ComponentType;\n /**\n * ref for input setter function\n *\n * @param ref [Ref object](https://reactjs.org/docs/refs-and-the-dom.html) for underling `TextInput` component.\n *\n * @overrideType Function\n */\n setInputRef?: (ref: TextInput | null) => void;\n};\n\nexport type MessageInputContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = LocalMessageInputContext<StreamChatGenerics> &\n Omit<InputMessageInputContextValue<StreamChatGenerics>, 'sendMessage'>;\n\nexport const MessageInputContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as MessageInputContextValue,\n);\n\nexport const MessageInputProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value: InputMessageInputContextValue<StreamChatGenerics>;\n}>) => {\n const { closePicker, openPicker, selectedPicker, setSelectedPicker } =\n useAttachmentPickerContext();\n const { appSettings, client, enableOfflineSupport } = useChatContext<StreamChatGenerics>();\n const { removeMessage } = useMessagesContext();\n\n const getFileUploadConfig = () => {\n const fileConfig = appSettings?.app?.file_upload_config;\n if (fileConfig !== null || fileConfig !== undefined) {\n return fileConfig;\n } else {\n return {};\n }\n };\n\n const blockedFileExtensionTypes = getFileUploadConfig()?.blocked_file_extensions;\n const blockedFileMimeTypes = getFileUploadConfig()?.blocked_mime_types;\n\n const getImageUploadConfig = () => {\n const imageConfig = appSettings?.app?.image_upload_config;\n if (imageConfig !== null || imageConfig !== undefined) {\n return imageConfig;\n }\n return {};\n };\n\n const blockedImageExtensionTypes = getImageUploadConfig()?.blocked_file_extensions;\n const blockedImageMimeTypes = getImageUploadConfig()?.blocked_mime_types;\n\n const channelCapabities = useOwnCapabilitiesContext();\n\n const { channel, giphyEnabled, uploadAbortControllerRef } =\n useChannelContext<StreamChatGenerics>();\n const { thread } = useThreadContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n const inputBoxRef = useRef<TextInput | null>(null);\n const sending = useRef(false);\n\n const [asyncIds, setAsyncIds] = useState<string[]>([]);\n const [asyncUploads, setAsyncUploads] = useState<{\n [key: string]: {\n state: string;\n url: string;\n };\n }>({});\n const [giphyActive, setGiphyActive] = useState(false);\n const [sendThreadMessageInChannel, setSendThreadMessageInChannel] = useState(false);\n const { editing, hasFilePicker, hasImagePicker, initialValue } = value;\n const {\n fileUploads,\n imageUploads,\n mentionedUsers,\n numberOfUploads,\n setFileUploads,\n setImageUploads,\n setMentionedUsers,\n setNumberOfUploads,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n text,\n } = useMessageDetailsForState<StreamChatGenerics>(editing, initialValue);\n const { endsAt: cooldownEndsAt, start: startCooldown } = useCooldown<StreamChatGenerics>();\n\n const threadId = thread?.id;\n useEffect(() => {\n setSendThreadMessageInChannel(false);\n }, [threadId]);\n\n const appendText = (newText: string) => {\n setText((prevText) => `${prevText}${newText}`);\n };\n\n /** Checks if the message is valid or not. Accordingly we can enable/disable send button */\n const isValidMessage = () => {\n if (text && text.trim()) {\n return true;\n }\n\n const imagesAndFiles = [...imageUploads, ...fileUploads];\n if (imagesAndFiles.length === 0) return false;\n\n if (enableOfflineSupport) {\n // Allow only if none of the attachments have unsupported status\n for (const file of imagesAndFiles) {\n if (file.state === FileState.NOT_SUPPORTED) {\n return false;\n }\n }\n\n return true;\n }\n\n for (const file of imagesAndFiles) {\n if (!file || file.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n if (file.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n return false;\n }\n\n return true;\n }\n\n return false;\n };\n\n const onChange = (newText: string) => {\n if (sending.current) {\n return;\n }\n setText(newText);\n\n if (newText && channel && channelCapabities.sendTypingEvents) {\n logChatPromiseExecution(channel.keystroke(thread?.id), 'start typing event');\n }\n\n if (value.onChangeText) {\n value.onChangeText(newText);\n }\n };\n\n const openCommandsPicker = () => {\n appendText('/');\n if (inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n };\n\n const openMentionsPicker = () => {\n appendText('@');\n if (inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n };\n\n const openAttachmentPicker = () => {\n if (hasImagePicker) {\n Keyboard.dismiss();\n setSelectedPicker('images');\n openPicker();\n } else if (hasFilePicker) {\n pickFile();\n }\n };\n\n const closeAttachmentPicker = () => {\n setSelectedPicker(undefined);\n closePicker();\n };\n\n const toggleAttachmentPicker = () => {\n if (selectedPicker) {\n closeAttachmentPicker();\n } else {\n openAttachmentPicker();\n }\n };\n\n const onSelectItem = (item: UserResponse<StreamChatGenerics>) => {\n setMentionedUsers((prevMentionedUsers) => [...prevMentionedUsers, item.id]);\n };\n\n const pickFile = async () => {\n if (pickDocument === null) {\n console.log(\n 'The file picker is not installed. Check our Getting Started documentation to install it.',\n );\n return;\n }\n\n if (numberOfUploads >= value.maxNumberOfFiles) {\n Alert.alert('Maximum number of files reached');\n return;\n }\n\n const result = await pickDocument({\n maxNumberOfFiles: value.maxNumberOfFiles - numberOfUploads,\n });\n\n const MEGA_BYTES_TO_BYTES = 1024 * 1024;\n const MAX_FILE_SIZE_TO_UPLOAD_IN_MB = 100;\n\n if (!result.cancelled && result.assets) {\n const totalFileSize = result.assets.reduce((acc, asset) => acc + Number(asset.size), 0);\n if (totalFileSize / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB) {\n Alert.alert(\n t(\n `Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.`,\n { MAX_FILE_SIZE_TO_UPLOAD_IN_MB },\n ),\n );\n } else {\n result.assets.forEach((asset) => {\n /**\n * TODO: The current tight coupling of images to the image\n * picker does not allow images picked from the file picker\n * to be rendered in a preview via the uploadNewImage call.\n * This should be updated alongside allowing image a file\n * uploads together.\n */\n uploadNewFile(asset);\n });\n }\n }\n };\n\n const removeFile = (id: string) => {\n if (fileUploads.some((file) => file.id === id)) {\n setFileUploads((prevFileUploads) => prevFileUploads.filter((file) => file.id !== id));\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n }\n };\n\n const removeImage = (id: string) => {\n if (imageUploads.some((image) => image.id === id)) {\n setImageUploads((prevImageUploads) => prevImageUploads.filter((image) => image.id !== id));\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n }\n };\n\n const resetInput = (pendingAttachments: Attachment<StreamChatGenerics>[] = []) => {\n setFileUploads([]);\n setGiphyActive(false);\n setShowMoreOptions(true);\n setImageUploads([]);\n setMentionedUsers([]);\n setNumberOfUploads(\n (prevNumberOfUploads) => prevNumberOfUploads - (pendingAttachments?.length || 0),\n );\n setText('');\n if (value.editing) {\n value.clearEditingState();\n }\n };\n\n const mapImageUploadToAttachment = (image: ImageUpload): Attachment<StreamChatGenerics> => {\n const mime_type: string | boolean = lookup(image.file.name as string);\n const name = image.file.name as string;\n return {\n fallback: name,\n image_url: image.url,\n mime_type: mime_type ? mime_type : undefined,\n original_height: image.height,\n original_width: image.width,\n originalImage: image.file,\n type: 'image',\n };\n };\n\n const mapFileUploadToAttachment = (file: FileUpload): Attachment<StreamChatGenerics> => {\n if (file.file.mimeType?.startsWith('image/')) {\n return {\n fallback: file.file.name,\n image_url: file.url,\n mime_type: file.file.mimeType,\n originalFile: file.file,\n type: 'image',\n };\n } else if (file.file.mimeType?.startsWith('audio/')) {\n return {\n asset_url: file.url || file.file.uri,\n duration: file.file.duration,\n file_size: file.file.size,\n mime_type: file.file.mimeType,\n originalFile: file.file,\n title: file.file.name,\n type: 'audio',\n };\n } else if (file.file.mimeType?.startsWith('video/')) {\n return {\n asset_url: file.url || file.file.uri,\n duration: file.file.duration,\n file_size: file.file.size,\n mime_type: file.file.mimeType,\n originalFile: file.file,\n thumb_url: file.thumb_url,\n title: file.file.name,\n type: 'video',\n };\n } else {\n return {\n asset_url: file.url || file.file.uri,\n file_size: file.file.size,\n mime_type: file.file.mimeType,\n originalFile: file.file,\n title: file.file.name,\n type: 'file',\n };\n }\n };\n\n // TODO: Figure out why this is async, as it doesn't await any promise.\n // eslint-disable-next-line require-await\n const sendMessage = async (customMessageData?: Partial<Message<StreamChatGenerics>>) => {\n if (sending.current) {\n return;\n }\n const linkInfos = parseLinksFromText(text);\n\n if (!channelCapabities.sendLinks && linkInfos.length > 0) {\n Alert.alert(t('Links are disabled'), t('Sending links is not allowed in this conversation'));\n\n return;\n }\n\n sending.current = true;\n\n startCooldown();\n\n const prevText = giphyEnabled && giphyActive ? `/giphy ${text}` : text;\n setText('');\n if (inputBoxRef.current) {\n inputBoxRef.current.clear();\n }\n\n const attachments = [] as Attachment<StreamChatGenerics>[];\n for (const image of imageUploads) {\n if (enableOfflineSupport) {\n if (image.state === FileState.NOT_SUPPORTED) {\n return;\n }\n attachments.push(mapImageUploadToAttachment(image));\n continue;\n }\n\n if ((!image || image.state === FileState.UPLOAD_FAILED) && !enableOfflineSupport) {\n continue;\n }\n\n if (image.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n if (value.sendImageAsync) {\n /**\n * If user hit send before image uploaded, push ID into a queue to later\n * be matched with the successful CDN response\n */\n setAsyncIds((prevAsyncIds) => [...prevAsyncIds, image.id]);\n } else {\n sending.current = false;\n return setText(prevText);\n }\n }\n\n // To get the mime type of the image from the file name and send it as an response for an image\n if (image.state === FileState.UPLOADED || image.state === FileState.FINISHED) {\n attachments.push(mapImageUploadToAttachment(image));\n }\n }\n\n for (const file of fileUploads) {\n if (enableOfflineSupport) {\n if (file.state === FileState.NOT_SUPPORTED) {\n return;\n }\n attachments.push(mapFileUploadToAttachment(file));\n continue;\n }\n\n if (!file || file.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n\n if (file.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n sending.current = false;\n return;\n }\n\n if (file.state === FileState.UPLOADED || file.state === FileState.FINISHED) {\n attachments.push(mapFileUploadToAttachment(file));\n }\n }\n\n // Disallow sending message if its empty.\n if (!prevText && attachments.length === 0) {\n sending.current = false;\n return;\n }\n\n const message = value.editing;\n if (message && message.type !== 'error') {\n const updatedMessage = {\n ...message,\n attachments,\n mentioned_users: mentionedUsers,\n quoted_message: undefined,\n text: prevText,\n ...customMessageData,\n } as Parameters<StreamChat<StreamChatGenerics>['updateMessage']>[0];\n\n // TODO: Remove this line and show an error when submit fails\n value.clearEditingState();\n\n const updateMessagePromise = value\n .editMessage(\n // @ts-ignore\n removeReservedFields(updatedMessage),\n )\n .then(value.clearEditingState);\n resetInput(attachments);\n logChatPromiseExecution(updateMessagePromise, 'update message');\n\n sending.current = false;\n } else {\n try {\n /**\n * If the message is bounced by moderation, we firstly remove the message from message list and then send a new message.\n */\n if (message && isBouncedMessage(message as MessageType<StreamChatGenerics>)) {\n removeMessage(message);\n }\n value.sendMessage({\n attachments,\n mentioned_users: uniq(mentionedUsers),\n /** Parent message id - in case of thread */\n parent_id: thread?.id,\n quoted_message_id:\n typeof value.quotedMessage === 'boolean' ? undefined : value.quotedMessage.id,\n show_in_channel: sendThreadMessageInChannel || undefined,\n text: prevText,\n ...customMessageData,\n } as unknown as StreamMessage<StreamChatGenerics>);\n\n value.clearQuotedMessageState();\n sending.current = false;\n resetInput(attachments);\n } catch (_error) {\n sending.current = false;\n if (value.quotedMessage && typeof value.quotedMessage !== 'boolean') {\n value.setQuotedMessageState(value.quotedMessage);\n }\n setText(prevText.slice(giphyEnabled && giphyActive ? 7 : 0)); // 7 because of '/giphy ' length\n console.log('Failed to send message');\n }\n }\n };\n\n const sendMessageAsync = (id: string) => {\n const image = asyncUploads[id];\n if (!image || image.state === FileState.UPLOAD_FAILED) {\n return;\n }\n\n if (image.state === FileState.UPLOADED || image.state === FileState.FINISHED) {\n const attachments = [\n {\n image_url: image.url,\n type: 'image',\n },\n ] as StreamMessage<StreamChatGenerics>['attachments'];\n\n startCooldown();\n try {\n value.sendMessage({\n attachments,\n mentioned_users: [],\n parent_id: thread?.id,\n quoted_message_id:\n typeof value.quotedMessage === 'boolean' ? undefined : value.quotedMessage.id,\n show_in_channel: sendThreadMessageInChannel || undefined,\n text: '',\n } as unknown as Partial<StreamMessage<StreamChatGenerics>>);\n\n setAsyncIds((prevAsyncIds) => prevAsyncIds.splice(prevAsyncIds.indexOf(id), 1));\n setAsyncUploads((prevAsyncUploads) => {\n delete prevAsyncUploads[id];\n return prevAsyncUploads;\n });\n\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n } catch (_error) {\n console.log('Failed');\n }\n }\n };\n\n const setInputBoxRef = (ref: TextInput | null) => {\n inputBoxRef.current = ref;\n if (value.setInputRef) {\n value.setInputRef(ref);\n }\n };\n\n const getTriggerSettings = () => {\n let triggerSettings: TriggerSettings<StreamChatGenerics> = {};\n if (channel) {\n if (value.autoCompleteTriggerSettings) {\n triggerSettings = value.autoCompleteTriggerSettings({\n channel,\n client,\n emojiSearchIndex: value.emojiSearchIndex,\n onMentionSelectItem: onSelectItem,\n });\n } else {\n triggerSettings = ACITriggerSettings<StreamChatGenerics>({\n channel,\n client,\n emojiSearchIndex: value.emojiSearchIndex,\n onMentionSelectItem: onSelectItem,\n });\n }\n }\n return triggerSettings;\n };\n\n const triggerSettings = getTriggerSettings();\n\n const updateMessage = async () => {\n try {\n if (value.editing) {\n await client.updateMessage({\n ...value.editing,\n quoted_message: undefined,\n text: giphyEnabled && giphyActive ? `/giphy ${text}` : text,\n } as Parameters<StreamChat<StreamChatGenerics>['updateMessage']>[0]);\n }\n\n value.clearEditingState();\n resetInput();\n } catch (error) {\n console.log(error);\n }\n };\n\n const regexCondition = /File (extension \\.\\w{2,4}|type \\S+) is not supported/;\n\n const getUploadSetStateAction =\n <UploadType extends ImageUpload | FileUpload>(\n id: string,\n fileState: FileStateValue,\n extraData: Partial<UploadType> = {},\n ): React.SetStateAction<UploadType[]> =>\n (prevUploads: UploadType[]) =>\n prevUploads.map((prevUpload) => {\n if (prevUpload.id === id) {\n return {\n ...prevUpload,\n ...extraData,\n state: fileState,\n };\n }\n return prevUpload;\n });\n\n const handleFileOrImageUploadError = (error: unknown, isImageError: boolean, id: string) => {\n if (isImageError) {\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n if (error instanceof Error) {\n if (regexCondition.test(error.message)) {\n return setImageUploads(getUploadSetStateAction(id, FileState.NOT_SUPPORTED));\n }\n\n return setImageUploads(getUploadSetStateAction(id, FileState.UPLOAD_FAILED));\n }\n } else {\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n\n if (error instanceof Error) {\n if (regexCondition.test(error.message)) {\n return setFileUploads(getUploadSetStateAction(id, FileState.NOT_SUPPORTED));\n }\n return setFileUploads(getUploadSetStateAction(id, FileState.UPLOAD_FAILED));\n }\n }\n };\n\n const uploadFile = async ({ newFile }: { newFile: FileUpload }) => {\n const { file, id } = newFile;\n\n setFileUploads(getUploadSetStateAction(id, FileState.UPLOADING));\n\n let response: Partial<SendFileAPIResponse> = {};\n try {\n if (value.doDocUploadRequest) {\n response = await value.doDocUploadRequest(file, channel);\n } else if (channel && file.uri) {\n uploadAbortControllerRef.current.set(\n file.name,\n client.createAbortControllerForNextRequest(),\n );\n // Compress images selected through file picker when uploading them\n if (file.mimeType?.includes('image')) {\n const compressedUri = await compressedImageURI(file, value.compressImageQuality);\n response = await channel.sendFile(compressedUri, file.name, file.mimeType);\n } else {\n response = await channel.sendFile(file.uri, file.name, file.mimeType);\n }\n uploadAbortControllerRef.current.delete(file.name);\n }\n const extraData: Partial<FileUpload> = { thumb_url: response.thumb_url, url: response.file };\n setFileUploads(getUploadSetStateAction(id, FileState.UPLOADED, extraData));\n } catch (error: unknown) {\n if (\n error instanceof Error &&\n (error.name === 'AbortError' || error.name === 'CanceledError')\n ) {\n // nothing to do\n uploadAbortControllerRef.current.delete(file.name);\n return;\n }\n handleFileOrImageUploadError(error, false, id);\n }\n };\n\n const uploadImage = async ({ newImage }: { newImage: ImageUpload }) => {\n const { file, id } = newImage || {};\n\n if (!file) {\n return;\n }\n\n let response = {} as SendFileAPIResponse;\n\n const uri = file.uri || '';\n const filename = file.name ?? uri.replace(/^(file:\\/\\/|content:\\/\\/)/, '');\n\n try {\n const compressedUri = await compressedImageURI(file, value.compressImageQuality);\n const contentType = lookup(filename) || 'multipart/form-data';\n if (value.doImageUploadRequest) {\n response = await value.doImageUploadRequest(file, channel);\n } else if (compressedUri && channel) {\n if (value.sendImageAsync) {\n uploadAbortControllerRef.current.set(\n filename,\n client.createAbortControllerForNextRequest(),\n );\n channel.sendImage(compressedUri, filename, contentType).then(\n (res) => {\n uploadAbortControllerRef.current.delete(filename);\n if (asyncIds.includes(id)) {\n // Evaluates to true if user hit send before image successfully uploaded\n setAsyncUploads((prevAsyncUploads) => {\n prevAsyncUploads[id] = {\n ...prevAsyncUploads[id],\n state: FileState.UPLOADED,\n url: res.file,\n };\n return prevAsyncUploads;\n });\n } else {\n const newImageUploads = getUploadSetStateAction<ImageUpload>(\n id,\n FileState.UPLOADED,\n {\n url: res.file,\n },\n );\n setImageUploads(newImageUploads);\n }\n },\n () => {\n uploadAbortControllerRef.current.delete(filename);\n },\n );\n } else {\n uploadAbortControllerRef.current.set(\n filename,\n client.createAbortControllerForNextRequest(),\n );\n response = await channel.sendImage(compressedUri, filename, contentType);\n uploadAbortControllerRef.current.delete(filename);\n }\n }\n\n if (Object.keys(response).length) {\n const newImageUploads = getUploadSetStateAction<ImageUpload>(id, FileState.UPLOADED, {\n height: file.height,\n url: response.file,\n width: file.width,\n });\n setImageUploads(newImageUploads);\n }\n } catch (error) {\n if (\n error instanceof Error &&\n (error.name === 'AbortError' || error.name === 'CanceledError')\n ) {\n // nothing to do\n uploadAbortControllerRef.current.delete(filename);\n return;\n }\n handleFileOrImageUploadError(error, true, id);\n }\n };\n\n const uploadNewFile = async (file: File) => {\n const id: string = generateRandomId();\n\n const isBlockedFileExtension: boolean | undefined = blockedFileExtensionTypes?.some(\n (fileExtensionType: string) => file.name?.includes(fileExtensionType),\n );\n const isBlockedFileMimeType: boolean | undefined = blockedFileMimeTypes?.some(\n (mimeType: string) => file.name?.includes(mimeType),\n );\n\n const fileState =\n isBlockedFileExtension || isBlockedFileMimeType\n ? FileState.NOT_SUPPORTED\n : FileState.UPLOADING;\n\n const newFile: FileUpload = {\n duration: 0,\n file,\n id: file.id || id,\n paused: true,\n progress: 0,\n state: fileState,\n };\n\n await Promise.all([\n setFileUploads((prevFileUploads) => prevFileUploads.concat([newFile])),\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads + 1),\n ]);\n\n if (!isBlockedFileExtension) {\n uploadFile({ newFile });\n }\n };\n\n const uploadNewImage = async (image: Partial<Asset>) => {\n const id = generateRandomId();\n\n const isBlockedImageMimeType = blockedImageMimeTypes?.some((mimeType: string) =>\n image.uri?.includes(mimeType),\n );\n\n const isBlockedImageExtension = blockedImageExtensionTypes?.some((imageExtensionType: string) =>\n image.uri?.includes(imageExtensionType),\n );\n\n const imageState =\n isBlockedImageExtension || isBlockedImageMimeType\n ? FileState.NOT_SUPPORTED\n : FileState.UPLOADING;\n\n const newImage: ImageUpload = {\n file: image,\n height: image.height,\n id,\n state: imageState,\n url: image.uri,\n width: image.width,\n };\n\n await Promise.all([\n setImageUploads((prevImageUploads) => prevImageUploads.concat([newImage])),\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads + 1),\n ]);\n\n if (!isBlockedImageExtension) {\n uploadImage({ newImage });\n }\n };\n\n const messageInputContext = useCreateMessageInputContext({\n appendText,\n asyncIds,\n asyncUploads,\n closeAttachmentPicker,\n cooldownEndsAt,\n fileUploads,\n giphyActive,\n imageUploads,\n inputBoxRef,\n isValidMessage,\n mentionedUsers,\n numberOfUploads,\n onChange,\n onSelectItem,\n openAttachmentPicker,\n openCommandsPicker,\n openFilePicker: pickFile,\n openMentionsPicker,\n pickFile,\n removeFile,\n removeImage,\n resetInput,\n selectedPicker,\n sending,\n sendMessageAsync,\n sendThreadMessageInChannel,\n setAsyncIds,\n setAsyncUploads,\n setFileUploads,\n setGiphyActive,\n setImageUploads,\n setInputBoxRef,\n setMentionedUsers,\n setNumberOfUploads,\n setSendThreadMessageInChannel,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n text,\n thread,\n toggleAttachmentPicker,\n triggerSettings,\n updateMessage,\n uploadFile,\n uploadImage,\n uploadNewFile,\n uploadNewImage,\n ...value,\n sendMessage, // overriding the originally passed in sendMessage\n });\n\n return (\n <MessageInputContext.Provider\n value={messageInputContext as unknown as MessageInputContextValue}\n >\n {children}\n </MessageInputContext.Provider>\n );\n};\n\nexport const useMessageInputContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n MessageInputContext,\n ) as unknown as MessageInputContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useMessageInputContext hook was called outside of the MessageInputContext provider. Make sure you have configured Channel component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#channel`,\n );\n }\n\n return contextValue;\n};\n\n/**\n * Typescript currently does not support partial inference so if MessageInputContext\n * typing is desired while using the HOC withMessageInputContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withMessageInputContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof MessageInputContextValue<StreamChatGenerics>>> => {\n const WithMessageInputContextComponent = (\n props: Omit<P, keyof MessageInputContextValue<StreamChatGenerics>>,\n ) => {\n const messageInputContext = useMessageInputContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...messageInputContext} />;\n };\n WithMessageInputContextComponent.displayName = `WithMessageInputContext${getDisplayName(\n Component,\n )}`;\n return WithMessageInputContextComponent;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uniq","_interopRequireDefault","_mimeTypes","_streamChat","_useCreateMessageInputContext","_useMessageDetailsForState","_parseLinks","_useCooldown2","_native","_compressImage","_removeReservedFields","_utils","_AttachmentPickerContext","_ChannelContext","_ChatContext","_MessagesContext","_OwnCapabilitiesContext","_ThreadContext","_TranslationContext","_defaultBaseContextValue","_getDisplayName","_isTestEnvironment","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof3","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","from","test","arr","len","arr2","MessageInputContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","exports","MessageInputProvider","_ref","_getFileUploadConfig","_getFileUploadConfig2","_getImageUploadConfig","_getImageUploadConfig2","children","_useAttachmentPickerC","useAttachmentPickerContext","closePicker","openPicker","selectedPicker","setSelectedPicker","_useChatContext","useChatContext","appSettings","client","enableOfflineSupport","_useMessagesContext","useMessagesContext","removeMessage","getFileUploadConfig","_appSettings$app","fileConfig","app","file_upload_config","undefined","blockedFileExtensionTypes","blocked_file_extensions","blockedFileMimeTypes","blocked_mime_types","getImageUploadConfig","_appSettings$app2","imageConfig","image_upload_config","blockedImageExtensionTypes","blockedImageMimeTypes","channelCapabities","useOwnCapabilitiesContext","_useChannelContext","useChannelContext","channel","giphyEnabled","uploadAbortControllerRef","_useThreadContext","useThreadContext","thread","_useTranslationContex","useTranslationContext","t","inputBoxRef","useRef","sending","_useState","useState","_useState2","_slicedToArray2","asyncIds","setAsyncIds","_useState3","_useState4","asyncUploads","setAsyncUploads","_useState5","_useState6","giphyActive","setGiphyActive","_useState7","_useState8","sendThreadMessageInChannel","setSendThreadMessageInChannel","editing","hasFilePicker","hasImagePicker","initialValue","_useMessageDetailsFor","useMessageDetailsForState","fileUploads","imageUploads","mentionedUsers","numberOfUploads","setFileUploads","setImageUploads","setMentionedUsers","setNumberOfUploads","setShowMoreOptions","setText","showMoreOptions","text","_useCooldown","useCooldown","cooldownEndsAt","endsAt","startCooldown","start","threadId","id","useEffect","appendText","newText","prevText","isValidMessage","trim","imagesAndFiles","concat","_toConsumableArray2","_iterator","_step","file","state","FileState","NOT_SUPPORTED","_iterator2","_step2","UPLOAD_FAILED","UPLOADING","onChange","current","sendTypingEvents","logChatPromiseExecution","keystroke","onChangeText","openCommandsPicker","focus","openMentionsPicker","openAttachmentPicker","Keyboard","dismiss","pickFile","closeAttachmentPicker","toggleAttachmentPicker","onSelectItem","item","prevMentionedUsers","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","result","MEGA_BYTES_TO_BYTES","MAX_FILE_SIZE_TO_UPLOAD_IN_MB","totalFileSize","wrap","_callee$","_context","prev","pickDocument","console","log","abrupt","maxNumberOfFiles","Alert","alert","sent","cancelled","assets","reduce","acc","asset","Number","size","forEach","uploadNewFile","stop","apply","arguments","removeFile","some","prevFileUploads","filter","prevNumberOfUploads","removeImage","image","prevImageUploads","resetInput","pendingAttachments","clearEditingState","mapImageUploadToAttachment","mime_type","lookup","fallback","image_url","url","original_height","height","original_width","width","originalImage","type","mapFileUploadToAttachment","_file$file$mimeType","_file$file$mimeType2","_file$file$mimeType3","mimeType","startsWith","originalFile","asset_url","uri","duration","file_size","title","thumb_url","sendMessage","_ref3","_callee3","customMessageData","linkInfos","attachments","_loop","_iterator3","_step3","_image","_ret","_iterator4","_step4","_file3","message","updatedMessage","updateMessagePromise","_callee3$","_context3","parseLinksFromText","sendLinks","clear","_callee2","_callee2$","_context2","v","push","sendImageAsync","prevAsyncIds","UPLOADED","FINISHED","delegateYield","t0","_typeof2","_extends2","mentioned_users","quoted_message","editMessage","removeReservedFields","then","isBouncedMessage","uniq","parent_id","quoted_message_id","quotedMessage","show_in_channel","clearQuotedMessageState","_error","setQuotedMessageState","_x","sendMessageAsync","splice","indexOf","prevAsyncUploads","setInputBoxRef","ref","setInputRef","getTriggerSettings","triggerSettings","autoCompleteTriggerSettings","emojiSearchIndex","onMentionSelectItem","ACITriggerSettings","updateMessage","_ref4","_callee4","_callee4$","_context4","regexCondition","getUploadSetStateAction","fileState","extraData","prevUploads","map","prevUpload","handleFileOrImageUploadError","error","isImageError","Error","uploadFile","_ref6","_callee5","_ref5","newFile","response","_file$mimeType","compressedUri","_callee5$","_context5","doDocUploadRequest","createAbortControllerForNextRequest","includes","compressedImageURI","compressImageQuality","sendFile","_x2","uploadImage","_ref8","_callee6","_ref7","_file$name","newImage","_ref9","filename","contentType","newImageUploads","_callee6$","_context6","replace","doImageUploadRequest","sendImage","res","keys","_x3","_ref10","_callee7","isBlockedFileExtension","isBlockedFileMimeType","_callee7$","_context7","generateRandomId","fileExtensionType","_file$name2","_file$name3","paused","progress","Promise","all","_x4","uploadNewImage","_ref11","_callee8","isBlockedImageMimeType","isBlockedImageExtension","imageState","_callee8$","_context8","_image$uri","imageExtensionType","_image$uri2","_x5","messageInputContext","useCreateMessageInputContext","openFilePicker","createElement","Provider","__self","__source","fileName","lineNumber","columnNumber","useMessageInputContext","contextValue","useContext","isTestEnvironment","withMessageInputContext","Component","WithMessageInputContextComponent","props","displayName","getDisplayName"],"sources":["MessageInputContext.tsx"],"sourcesContent":["import type { LegacyRef } from 'react';\nimport React, { PropsWithChildren, useContext, useEffect, useRef, useState } from 'react';\nimport type { TextInput, TextInputProps } from 'react-native';\nimport { Alert, Keyboard } from 'react-native';\n\nimport uniq from 'lodash/uniq';\nimport { lookup } from 'mime-types';\nimport {\n Attachment,\n logChatPromiseExecution,\n Message,\n SendFileAPIResponse,\n StreamChat,\n Message as StreamMessage,\n UserFilters,\n UserOptions,\n UserResponse,\n UserSort,\n} from 'stream-chat';\n\nimport { useCreateMessageInputContext } from './hooks/useCreateMessageInputContext';\nimport { useMessageDetailsForState } from './hooks/useMessageDetailsForState';\n\nimport { parseLinksFromText } from '../../components/Message/MessageSimple/utils/parseLinks';\nimport type { AttachButtonProps } from '../../components/MessageInput/AttachButton';\nimport type { CommandsButtonProps } from '../../components/MessageInput/CommandsButton';\nimport type { InputEditingStateHeaderProps } from '../../components/MessageInput/components/InputEditingStateHeader';\nimport type { InputGiphySearchProps } from '../../components/MessageInput/components/InputGiphySearch';\nimport type { InputReplyStateHeaderProps } from '../../components/MessageInput/components/InputReplyStateHeader';\nimport type { CooldownTimerProps } from '../../components/MessageInput/CooldownTimer';\nimport type { FileUploadPreviewProps } from '../../components/MessageInput/FileUploadPreview';\nimport { useCooldown } from '../../components/MessageInput/hooks/useCooldown';\nimport type { ImageUploadPreviewProps } from '../../components/MessageInput/ImageUploadPreview';\nimport type { InputButtonsProps } from '../../components/MessageInput/InputButtons';\nimport type { MessageInputProps } from '../../components/MessageInput/MessageInput';\nimport type { MoreOptionsButtonProps } from '../../components/MessageInput/MoreOptionsButton';\nimport type { SendButtonProps } from '../../components/MessageInput/SendButton';\nimport type { UploadProgressIndicatorProps } from '../../components/MessageInput/UploadProgressIndicator';\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport type { Emoji } from '../../emoji-data';\nimport { pickDocument } from '../../native';\nimport type {\n Asset,\n DefaultStreamChatGenerics,\n File,\n FileUpload,\n ImageUpload,\n UnknownType,\n} from '../../types/types';\nimport { compressedImageURI } from '../../utils/compressImage';\nimport { removeReservedFields } from '../../utils/removeReservedFields';\nimport {\n ACITriggerSettings,\n ACITriggerSettingsParams,\n FileState,\n FileStateValue,\n generateRandomId,\n isBouncedMessage,\n TriggerSettings,\n} from '../../utils/utils';\nimport { useAttachmentPickerContext } from '../attachmentPickerContext/AttachmentPickerContext';\nimport { ChannelContextValue, useChannelContext } from '../channelContext/ChannelContext';\nimport { useChatContext } from '../chatContext/ChatContext';\nimport { useMessagesContext } from '../messagesContext/MessagesContext';\nimport { useOwnCapabilitiesContext } from '../ownCapabilitiesContext/OwnCapabilitiesContext';\nimport { useThreadContext } from '../threadContext/ThreadContext';\nimport { useTranslationContext } from '../translationContext/TranslationContext';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type EmojiSearchIndex = {\n search: (query: string) => PromiseLike<Array<Emoji>> | Array<Emoji> | null;\n};\n\nexport type MentionAllAppUsersQuery<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n filters?: UserFilters<StreamChatGenerics>;\n options?: UserOptions;\n sort?: UserSort<StreamChatGenerics>;\n};\n\nexport type LocalMessageInputContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n appendText: (newText: string) => void;\n asyncIds: string[];\n asyncUploads: {\n [key: string]: {\n state: string;\n url: string;\n };\n };\n closeAttachmentPicker: () => void;\n /** The time at which the active cooldown will end */\n cooldownEndsAt: Date;\n /**\n * An array of file objects which are set for upload. It has the following structure:\n *\n * ```json\n * [\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_1\",\n * \"state\": \"uploading\" // or \"finished\",\n * \"url\": \"https://url1.com\",\n * },\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_2\",\n * \"state\": \"uploading\" // or \"finished\",\n * \"url\": \"https://url1.com\",\n * },\n * ]\n * ```\n *\n */\n fileUploads: FileUpload[];\n giphyActive: boolean;\n /**\n * An array of image objects which are set for upload. It has the following structure:\n *\n * ```json\n * [\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_1\",\n * \"state\": \"uploading\" // or \"finished\",\n * },\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_2\",\n * \"state\": \"uploading\" // or \"finished\",\n * },\n * ]\n * ```\n *\n */\n imageUploads: ImageUpload[];\n inputBoxRef: React.MutableRefObject<TextInput | null>;\n isValidMessage: () => boolean;\n mentionedUsers: string[];\n numberOfUploads: number;\n onChange: (newText: string) => void;\n onSelectItem: (item: UserResponse<StreamChatGenerics>) => void;\n openAttachmentPicker: () => void;\n openCommandsPicker: () => void;\n openFilePicker: () => void;\n openMentionsPicker: () => void;\n pickFile: () => Promise<void>;\n /**\n * Function for removing a file from the upload preview\n *\n * @param id string ID of file in `fileUploads` object in state of MessageInput\n */\n removeFile: (id: string) => void;\n /**\n * Function for removing an image from the upload preview\n *\n * @param id string ID of image in `imageUploads` object in state of MessageInput\n */\n removeImage: (id: string) => void;\n resetInput: (pendingAttachments?: Attachment<StreamChatGenerics>[]) => void;\n selectedPicker: string | undefined;\n sending: React.MutableRefObject<boolean>;\n sendMessage: (customMessageData?: Partial<Message<StreamChatGenerics>>) => Promise<void>;\n sendMessageAsync: (id: string) => void;\n sendThreadMessageInChannel: boolean;\n setAsyncIds: React.Dispatch<React.SetStateAction<string[]>>;\n setAsyncUploads: React.Dispatch<\n React.SetStateAction<{\n [key: string]: {\n state: string;\n url: string;\n };\n }>\n >;\n setFileUploads: React.Dispatch<React.SetStateAction<FileUpload[]>>;\n setGiphyActive: React.Dispatch<React.SetStateAction<boolean>>;\n setImageUploads: React.Dispatch<React.SetStateAction<ImageUpload[]>>;\n /**\n * Ref callback to set reference on input box\n */\n setInputBoxRef: LegacyRef<TextInput> | undefined;\n setMentionedUsers: React.Dispatch<React.SetStateAction<string[]>>;\n setNumberOfUploads: React.Dispatch<React.SetStateAction<number>>;\n setSendThreadMessageInChannel: React.Dispatch<React.SetStateAction<boolean>>;\n setShowMoreOptions: React.Dispatch<React.SetStateAction<boolean>>;\n setText: React.Dispatch<React.SetStateAction<string>>;\n showMoreOptions: boolean;\n /**\n * Text value of the TextInput\n */\n text: string;\n toggleAttachmentPicker: () => void;\n /**\n * Mapping of input triggers to the outputs to be displayed by the AutoCompleteInput\n */\n triggerSettings: TriggerSettings<StreamChatGenerics>;\n updateMessage: () => Promise<void>;\n /** Function for attempting to upload a file */\n uploadFile: ({ newFile }: { newFile: FileUpload }) => Promise<void>;\n /** Function for attempting to upload an image */\n uploadImage: ({ newImage }: { newImage: ImageUpload }) => Promise<void>;\n uploadNewFile: (file: File) => Promise<void>;\n uploadNewImage: (image: Partial<Asset>) => Promise<void>;\n};\n\nexport type InputMessageInputContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelContextValue<StreamChatGenerics>, 'disabled'> & {\n /**\n * Custom UI component for attach button.\n *\n * Defaults to and accepts same props as: [AttachButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/attach-button/)\n */\n AttachButton: React.ComponentType<AttachButtonProps<StreamChatGenerics>>;\n\n clearEditingState: () => void;\n clearQuotedMessageState: () => void;\n /**\n * Custom UI component for commands button.\n *\n * Defaults to and accepts same props as: [CommandsButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/commands-button/)\n */\n CommandsButton: React.ComponentType<CommandsButtonProps<StreamChatGenerics>>;\n /**\n * Custom UI component to display the remaining cooldown a user will have to wait before\n * being allowed to send another message. This component is displayed in place of the\n * send button for the MessageInput component.\n *\n * **default** [CooldownTimer](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/CooldownTimer.tsx)\n */\n CooldownTimer: React.ComponentType<CooldownTimerProps>;\n editMessage: StreamChat<StreamChatGenerics>['updateMessage'];\n\n /**\n * Custom UI component for FileUploadPreview.\n * Defaults to and accepts same props as: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/FileUploadPreview.tsx\n */\n FileUploadPreview: React.ComponentType<FileUploadPreviewProps<StreamChatGenerics>>;\n\n /** When false, CommandsButton will be hidden */\n hasCommands: boolean;\n /** When false, FileSelectorIcon will be hidden */\n hasFilePicker: boolean;\n /** When false, ImageSelectorIcon will be hidden */\n hasImagePicker: boolean;\n /**\n * Custom UI component for ImageUploadPreview.\n * Defaults to and accepts same props as: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/ImageUploadPreview.tsx\n */\n ImageUploadPreview: React.ComponentType<ImageUploadPreviewProps<StreamChatGenerics>>;\n InputEditingStateHeader: React.ComponentType<InputEditingStateHeaderProps<StreamChatGenerics>>;\n InputGiphySearch: React.ComponentType<InputGiphySearchProps<StreamChatGenerics>>;\n InputReplyStateHeader: React.ComponentType<InputReplyStateHeaderProps<StreamChatGenerics>>;\n /** Limit on allowed number of files to attach at a time. */\n maxNumberOfFiles: number;\n /**\n * Custom UI component for more options button.\n *\n * Defaults to and accepts same props as: [MoreOptionsButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/more-options-button/)\n */\n MoreOptionsButton: React.ComponentType<MoreOptionsButtonProps<StreamChatGenerics>>;\n /** Limit on the number of lines in the text input before scrolling */\n numberOfLines: number;\n quotedMessage: boolean | MessageType<StreamChatGenerics>;\n /**\n * Custom UI component for send button.\n *\n * Defaults to and accepts same props as: [SendButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/send-button/)\n */\n SendButton: React.ComponentType<SendButtonProps<StreamChatGenerics>>;\n sendImageAsync: boolean;\n sendMessage: (message: Partial<StreamMessage<StreamChatGenerics>>) => Promise<void>;\n setQuotedMessageState: (message: MessageType<StreamChatGenerics>) => void;\n /**\n * Custom UI component to render checkbox with text (\"Also send to channel\") in Thread's input box.\n * When ticked, message will also be sent in parent channel.\n */\n ShowThreadMessageInChannelButton: React.ComponentType<{\n threadList?: boolean;\n }>;\n /**\n * Custom UI component to render upload progress indicator on attachment preview.\n *\n * **Default** [UploadProgressIndicator](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/UploadProgressIndicator.tsx)\n */\n UploadProgressIndicator: React.ComponentType<UploadProgressIndicatorProps>;\n /**\n * Additional props for underlying TextInput component. These props will be forwarded as it is to TextInput component.\n *\n * @see See https://reactnative.dev/docs/textinput#reference\n */\n additionalTextInputProps?: TextInputProps;\n /** Max number of suggestions to display in autocomplete list. Defaults to 10. */\n autoCompleteSuggestionsLimit?: number;\n /**\n * Mapping of input triggers to the outputs to be displayed by the AutoCompleteInput\n */\n autoCompleteTriggerSettings?: (\n settings: ACITriggerSettingsParams<StreamChatGenerics>,\n ) => TriggerSettings<StreamChatGenerics>;\n /**\n * Compress image with quality (from 0 to 1, where 1 is best quality).\n * On iOS, values larger than 0.8 don't produce a noticeable quality increase in most images,\n * while a value of 0.8 will reduce the file size by about half or less compared to a value of 1.\n * Image picker defaults to 0.8 for iOS and 1 for Android\n */\n compressImageQuality?: number;\n /**\n * Override file upload request\n *\n * @param file File object - { uri: '', name: '' }\n * @param channel Current channel object\n *\n * @overrideType Function\n */\n doDocUploadRequest?: (\n file: File,\n channel: ChannelContextValue<StreamChatGenerics>['channel'],\n ) => Promise<SendFileAPIResponse>;\n /**\n * Override image upload request\n *\n * @param file File object - { uri: '' }\n * @param channel Current channel object\n *\n * @overrideType Function\n */\n doImageUploadRequest?: (\n file: {\n name?: string;\n uri?: string;\n },\n channel: ChannelContextValue<StreamChatGenerics>['channel'],\n ) => Promise<SendFileAPIResponse>;\n\n /**\n * Variable that tracks the editing state.\n * It is defined with message type if the editing state is true, else its undefined.\n */\n editing?: MessageType<StreamChatGenerics>;\n\n /**\n * Prop to override the default emoji search index in auto complete suggestion list.\n */\n emojiSearchIndex?: EmojiSearchIndex;\n\n /** Initial value to set on input */\n initialValue?: string;\n /**\n * Custom UI component for AutoCompleteInput.\n * Has access to all of [MessageInputContext](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/contexts/messageInputContext/MessageInputContext.tsx)\n */\n Input?: React.ComponentType<\n Omit<MessageInputProps<StreamChatGenerics>, 'Input'> &\n InputButtonsProps<StreamChatGenerics> & {\n getUsers: () => UserResponse<StreamChatGenerics>[];\n }\n >;\n /**\n * Custom UI component to override buttons on left side of input box\n * Defaults to [InputButtons](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/InputButtons.tsx),\n * which contain following components/buttons:\n *\n * - AttachButton\n * - CommandsButtom\n *\n * You have access to following prop functions:\n *\n * - closeAttachmentPicker\n * - openAttachmentPicker\n * - openCommandsPicker\n * - toggleAttachmentPicker\n */\n InputButtons?: React.ComponentType<InputButtonsProps<StreamChatGenerics>>;\n maxMessageLength?: number;\n mentionAllAppUsersEnabled?: boolean;\n /** Object containing filters/sort/options overrides for an @mention user query */\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n /**\n * Callback that is called when the text input's text changes. Changed text is passed as a single string argument to the callback handler.\n */\n onChangeText?: (newText: string) => void;\n SendMessageDisallowedIndicator?: React.ComponentType;\n /**\n * ref for input setter function\n *\n * @param ref [Ref object](https://reactjs.org/docs/refs-and-the-dom.html) for underling `TextInput` component.\n *\n * @overrideType Function\n */\n setInputRef?: (ref: TextInput | null) => void;\n};\n\nexport type MessageInputContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = LocalMessageInputContext<StreamChatGenerics> &\n Omit<InputMessageInputContextValue<StreamChatGenerics>, 'sendMessage'>;\n\nexport const MessageInputContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as MessageInputContextValue,\n);\n\nexport const MessageInputProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value: InputMessageInputContextValue<StreamChatGenerics>;\n}>) => {\n const { closePicker, openPicker, selectedPicker, setSelectedPicker } =\n useAttachmentPickerContext();\n const { appSettings, client, enableOfflineSupport } = useChatContext<StreamChatGenerics>();\n const { removeMessage } = useMessagesContext();\n\n const getFileUploadConfig = () => {\n const fileConfig = appSettings?.app?.file_upload_config;\n if (fileConfig !== null || fileConfig !== undefined) {\n return fileConfig;\n } else {\n return {};\n }\n };\n\n const blockedFileExtensionTypes = getFileUploadConfig()?.blocked_file_extensions;\n const blockedFileMimeTypes = getFileUploadConfig()?.blocked_mime_types;\n\n const getImageUploadConfig = () => {\n const imageConfig = appSettings?.app?.image_upload_config;\n if (imageConfig !== null || imageConfig !== undefined) {\n return imageConfig;\n }\n return {};\n };\n\n const blockedImageExtensionTypes = getImageUploadConfig()?.blocked_file_extensions;\n const blockedImageMimeTypes = getImageUploadConfig()?.blocked_mime_types;\n\n const channelCapabities = useOwnCapabilitiesContext();\n\n const { channel, giphyEnabled, uploadAbortControllerRef } =\n useChannelContext<StreamChatGenerics>();\n const { thread } = useThreadContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n const inputBoxRef = useRef<TextInput | null>(null);\n const sending = useRef(false);\n\n const [asyncIds, setAsyncIds] = useState<string[]>([]);\n const [asyncUploads, setAsyncUploads] = useState<{\n [key: string]: {\n state: string;\n url: string;\n };\n }>({});\n const [giphyActive, setGiphyActive] = useState(false);\n const [sendThreadMessageInChannel, setSendThreadMessageInChannel] = useState(false);\n const { editing, hasFilePicker, hasImagePicker, initialValue } = value;\n const {\n fileUploads,\n imageUploads,\n mentionedUsers,\n numberOfUploads,\n setFileUploads,\n setImageUploads,\n setMentionedUsers,\n setNumberOfUploads,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n text,\n } = useMessageDetailsForState<StreamChatGenerics>(editing, initialValue);\n const { endsAt: cooldownEndsAt, start: startCooldown } = useCooldown<StreamChatGenerics>();\n\n const threadId = thread?.id;\n useEffect(() => {\n setSendThreadMessageInChannel(false);\n }, [threadId]);\n\n const appendText = (newText: string) => {\n setText((prevText) => `${prevText}${newText}`);\n };\n\n /** Checks if the message is valid or not. Accordingly we can enable/disable send button */\n const isValidMessage = () => {\n if (text && text.trim()) {\n return true;\n }\n\n const imagesAndFiles = [...imageUploads, ...fileUploads];\n if (imagesAndFiles.length === 0) return false;\n\n if (enableOfflineSupport) {\n // Allow only if none of the attachments have unsupported status\n for (const file of imagesAndFiles) {\n if (file.state === FileState.NOT_SUPPORTED) {\n return false;\n }\n }\n\n return true;\n }\n\n for (const file of imagesAndFiles) {\n if (!file || file.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n if (file.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n return false;\n }\n\n return true;\n }\n\n return false;\n };\n\n const onChange = (newText: string) => {\n if (sending.current) {\n return;\n }\n setText(newText);\n\n if (newText && channel && channelCapabities.sendTypingEvents) {\n logChatPromiseExecution(channel.keystroke(thread?.id), 'start typing event');\n }\n\n if (value.onChangeText) {\n value.onChangeText(newText);\n }\n };\n\n const openCommandsPicker = () => {\n appendText('/');\n if (inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n };\n\n const openMentionsPicker = () => {\n appendText('@');\n if (inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n };\n\n const openAttachmentPicker = () => {\n if (hasImagePicker) {\n Keyboard.dismiss();\n setSelectedPicker('images');\n openPicker();\n } else if (hasFilePicker) {\n pickFile();\n }\n };\n\n const closeAttachmentPicker = () => {\n setSelectedPicker(undefined);\n closePicker();\n };\n\n const toggleAttachmentPicker = () => {\n if (selectedPicker) {\n closeAttachmentPicker();\n } else {\n openAttachmentPicker();\n }\n };\n\n const onSelectItem = (item: UserResponse<StreamChatGenerics>) => {\n setMentionedUsers((prevMentionedUsers) => [...prevMentionedUsers, item.id]);\n };\n\n const pickFile = async () => {\n if (pickDocument === null) {\n console.log(\n 'The file picker is not installed. Check our Getting Started documentation to install it.',\n );\n return;\n }\n\n if (numberOfUploads >= value.maxNumberOfFiles) {\n Alert.alert('Maximum number of files reached');\n return;\n }\n\n const result = await pickDocument({\n maxNumberOfFiles: value.maxNumberOfFiles - numberOfUploads,\n });\n\n const MEGA_BYTES_TO_BYTES = 1024 * 1024;\n const MAX_FILE_SIZE_TO_UPLOAD_IN_MB = 100;\n\n if (!result.cancelled && result.assets) {\n const totalFileSize = result.assets.reduce((acc, asset) => acc + Number(asset.size), 0);\n if (totalFileSize / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB) {\n Alert.alert(\n t(\n `Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.`,\n { MAX_FILE_SIZE_TO_UPLOAD_IN_MB },\n ),\n );\n } else {\n result.assets.forEach((asset) => {\n /**\n * TODO: The current tight coupling of images to the image\n * picker does not allow images picked from the file picker\n * to be rendered in a preview via the uploadNewImage call.\n * This should be updated alongside allowing image a file\n * uploads together.\n */\n uploadNewFile(asset);\n });\n }\n }\n };\n\n const removeFile = (id: string) => {\n if (fileUploads.some((file) => file.id === id)) {\n setFileUploads((prevFileUploads) => prevFileUploads.filter((file) => file.id !== id));\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n }\n };\n\n const removeImage = (id: string) => {\n if (imageUploads.some((image) => image.id === id)) {\n setImageUploads((prevImageUploads) => prevImageUploads.filter((image) => image.id !== id));\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n }\n };\n\n const resetInput = (pendingAttachments: Attachment<StreamChatGenerics>[] = []) => {\n setFileUploads([]);\n setGiphyActive(false);\n setShowMoreOptions(true);\n setImageUploads([]);\n setMentionedUsers([]);\n setNumberOfUploads(\n (prevNumberOfUploads) => prevNumberOfUploads - (pendingAttachments?.length || 0),\n );\n setText('');\n if (value.editing) {\n value.clearEditingState();\n }\n };\n\n const mapImageUploadToAttachment = (image: ImageUpload): Attachment<StreamChatGenerics> => {\n const mime_type: string | boolean = lookup(image.file.name as string);\n const name = image.file.name as string;\n return {\n fallback: name,\n image_url: image.url,\n mime_type: mime_type ? mime_type : undefined,\n original_height: image.height,\n original_width: image.width,\n originalImage: image.file,\n type: 'image',\n };\n };\n\n const mapFileUploadToAttachment = (file: FileUpload): Attachment<StreamChatGenerics> => {\n if (file.file.mimeType?.startsWith('image/')) {\n return {\n fallback: file.file.name,\n image_url: file.url,\n mime_type: file.file.mimeType,\n originalFile: file.file,\n type: 'image',\n };\n } else if (file.file.mimeType?.startsWith('audio/')) {\n return {\n asset_url: file.url || file.file.uri,\n duration: file.file.duration,\n file_size: file.file.size,\n mime_type: file.file.mimeType,\n originalFile: file.file,\n title: file.file.name,\n type: 'audio',\n };\n } else if (file.file.mimeType?.startsWith('video/')) {\n return {\n asset_url: file.url || file.file.uri,\n duration: file.file.duration,\n file_size: file.file.size,\n mime_type: file.file.mimeType,\n originalFile: file.file,\n thumb_url: file.thumb_url,\n title: file.file.name,\n type: 'video',\n };\n } else {\n return {\n asset_url: file.url || file.file.uri,\n file_size: file.file.size,\n mime_type: file.file.mimeType,\n originalFile: file.file,\n title: file.file.name,\n type: 'file',\n };\n }\n };\n\n // TODO: Figure out why this is async, as it doesn't await any promise.\n // eslint-disable-next-line require-await\n const sendMessage = async (customMessageData?: Partial<Message<StreamChatGenerics>>) => {\n if (sending.current) {\n return;\n }\n const linkInfos = parseLinksFromText(text);\n\n if (!channelCapabities.sendLinks && linkInfos.length > 0) {\n Alert.alert(t('Links are disabled'), t('Sending links is not allowed in this conversation'));\n\n return;\n }\n\n sending.current = true;\n\n startCooldown();\n\n const prevText = giphyEnabled && giphyActive ? `/giphy ${text}` : text;\n setText('');\n if (inputBoxRef.current) {\n inputBoxRef.current.clear();\n }\n\n const attachments = [] as Attachment<StreamChatGenerics>[];\n for (const image of imageUploads) {\n if (enableOfflineSupport) {\n if (image.state === FileState.NOT_SUPPORTED) {\n return;\n }\n attachments.push(mapImageUploadToAttachment(image));\n continue;\n }\n\n if ((!image || image.state === FileState.UPLOAD_FAILED) && !enableOfflineSupport) {\n continue;\n }\n\n if (image.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n if (value.sendImageAsync) {\n /**\n * If user hit send before image uploaded, push ID into a queue to later\n * be matched with the successful CDN response\n */\n setAsyncIds((prevAsyncIds) => [...prevAsyncIds, image.id]);\n } else {\n sending.current = false;\n return setText(prevText);\n }\n }\n\n // To get the mime type of the image from the file name and send it as an response for an image\n if (image.state === FileState.UPLOADED || image.state === FileState.FINISHED) {\n attachments.push(mapImageUploadToAttachment(image));\n }\n }\n\n for (const file of fileUploads) {\n if (enableOfflineSupport) {\n if (file.state === FileState.NOT_SUPPORTED) {\n return;\n }\n attachments.push(mapFileUploadToAttachment(file));\n continue;\n }\n\n if (!file || file.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n\n if (file.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n sending.current = false;\n return;\n }\n\n if (file.state === FileState.UPLOADED || file.state === FileState.FINISHED) {\n attachments.push(mapFileUploadToAttachment(file));\n }\n }\n\n // Disallow sending message if its empty.\n if (!prevText && attachments.length === 0) {\n sending.current = false;\n return;\n }\n\n const message = value.editing;\n if (message && message.type !== 'error') {\n const updatedMessage = {\n ...message,\n attachments,\n mentioned_users: mentionedUsers,\n quoted_message: undefined,\n text: prevText,\n ...customMessageData,\n } as Parameters<StreamChat<StreamChatGenerics>['updateMessage']>[0];\n\n // TODO: Remove this line and show an error when submit fails\n value.clearEditingState();\n\n const updateMessagePromise = value\n .editMessage(\n // @ts-ignore\n removeReservedFields(updatedMessage),\n )\n .then(value.clearEditingState);\n resetInput(attachments);\n logChatPromiseExecution(updateMessagePromise, 'update message');\n\n sending.current = false;\n } else {\n try {\n /**\n * If the message is bounced by moderation, we firstly remove the message from message list and then send a new message.\n */\n if (message && isBouncedMessage(message as MessageType<StreamChatGenerics>)) {\n removeMessage(message);\n }\n value.sendMessage({\n attachments,\n mentioned_users: uniq(mentionedUsers),\n /** Parent message id - in case of thread */\n parent_id: thread?.id,\n quoted_message_id:\n typeof value.quotedMessage === 'boolean' ? undefined : value.quotedMessage.id,\n show_in_channel: sendThreadMessageInChannel || undefined,\n text: prevText,\n ...customMessageData,\n } as unknown as StreamMessage<StreamChatGenerics>);\n\n value.clearQuotedMessageState();\n sending.current = false;\n resetInput(attachments);\n } catch (_error) {\n sending.current = false;\n if (value.quotedMessage && typeof value.quotedMessage !== 'boolean') {\n value.setQuotedMessageState(value.quotedMessage);\n }\n setText(prevText.slice(giphyEnabled && giphyActive ? 7 : 0)); // 7 because of '/giphy ' length\n console.log('Failed to send message');\n }\n }\n };\n\n const sendMessageAsync = (id: string) => {\n const image = asyncUploads[id];\n if (!image || image.state === FileState.UPLOAD_FAILED) {\n return;\n }\n\n if (image.state === FileState.UPLOADED || image.state === FileState.FINISHED) {\n const attachments = [\n {\n image_url: image.url,\n type: 'image',\n },\n ] as StreamMessage<StreamChatGenerics>['attachments'];\n\n startCooldown();\n try {\n value.sendMessage({\n attachments,\n mentioned_users: [],\n parent_id: thread?.id,\n quoted_message_id:\n typeof value.quotedMessage === 'boolean' ? undefined : value.quotedMessage.id,\n show_in_channel: sendThreadMessageInChannel || undefined,\n text: '',\n } as unknown as Partial<StreamMessage<StreamChatGenerics>>);\n\n setAsyncIds((prevAsyncIds) => prevAsyncIds.splice(prevAsyncIds.indexOf(id), 1));\n setAsyncUploads((prevAsyncUploads) => {\n delete prevAsyncUploads[id];\n return prevAsyncUploads;\n });\n\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n } catch (_error) {\n console.log('Failed');\n }\n }\n };\n\n const setInputBoxRef = (ref: TextInput | null) => {\n inputBoxRef.current = ref;\n if (value.setInputRef) {\n value.setInputRef(ref);\n }\n };\n\n const getTriggerSettings = () => {\n let triggerSettings: TriggerSettings<StreamChatGenerics> = {};\n if (channel) {\n if (value.autoCompleteTriggerSettings) {\n triggerSettings = value.autoCompleteTriggerSettings({\n channel,\n client,\n emojiSearchIndex: value.emojiSearchIndex,\n onMentionSelectItem: onSelectItem,\n });\n } else {\n triggerSettings = ACITriggerSettings<StreamChatGenerics>({\n channel,\n client,\n emojiSearchIndex: value.emojiSearchIndex,\n onMentionSelectItem: onSelectItem,\n });\n }\n }\n return triggerSettings;\n };\n\n const triggerSettings = getTriggerSettings();\n\n const updateMessage = async () => {\n try {\n if (value.editing) {\n await client.updateMessage({\n ...value.editing,\n quoted_message: undefined,\n text: giphyEnabled && giphyActive ? `/giphy ${text}` : text,\n } as Parameters<StreamChat<StreamChatGenerics>['updateMessage']>[0]);\n }\n\n value.clearEditingState();\n resetInput();\n } catch (error) {\n console.log(error);\n }\n };\n\n const regexCondition = /File (extension \\.\\w{2,4}|type \\S+) is not supported/;\n\n const getUploadSetStateAction =\n <UploadType extends ImageUpload | FileUpload>(\n id: string,\n fileState: FileStateValue,\n extraData: Partial<UploadType> = {},\n ): React.SetStateAction<UploadType[]> =>\n (prevUploads: UploadType[]) =>\n prevUploads.map((prevUpload) => {\n if (prevUpload.id === id) {\n return {\n ...prevUpload,\n ...extraData,\n state: fileState,\n };\n }\n return prevUpload;\n });\n\n const handleFileOrImageUploadError = (error: unknown, isImageError: boolean, id: string) => {\n if (isImageError) {\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n if (error instanceof Error) {\n if (regexCondition.test(error.message)) {\n return setImageUploads(getUploadSetStateAction(id, FileState.NOT_SUPPORTED));\n }\n\n return setImageUploads(getUploadSetStateAction(id, FileState.UPLOAD_FAILED));\n }\n } else {\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n\n if (error instanceof Error) {\n if (regexCondition.test(error.message)) {\n return setFileUploads(getUploadSetStateAction(id, FileState.NOT_SUPPORTED));\n }\n return setFileUploads(getUploadSetStateAction(id, FileState.UPLOAD_FAILED));\n }\n }\n };\n\n const uploadFile = async ({ newFile }: { newFile: FileUpload }) => {\n const { file, id } = newFile;\n\n setFileUploads(getUploadSetStateAction(id, FileState.UPLOADING));\n\n let response: Partial<SendFileAPIResponse> = {};\n try {\n if (value.doDocUploadRequest) {\n response = await value.doDocUploadRequest(file, channel);\n } else if (channel && file.uri) {\n uploadAbortControllerRef.current.set(\n file.name,\n client.createAbortControllerForNextRequest(),\n );\n // Compress images selected through file picker when uploading them\n if (file.mimeType?.includes('image')) {\n const compressedUri = await compressedImageURI(file, value.compressImageQuality);\n response = await channel.sendFile(compressedUri, file.name, file.mimeType);\n } else {\n response = await channel.sendFile(file.uri, file.name, file.mimeType);\n }\n uploadAbortControllerRef.current.delete(file.name);\n }\n const extraData: Partial<FileUpload> = { thumb_url: response.thumb_url, url: response.file };\n setFileUploads(getUploadSetStateAction(id, FileState.UPLOADED, extraData));\n } catch (error: unknown) {\n if (\n error instanceof Error &&\n (error.name === 'AbortError' || error.name === 'CanceledError')\n ) {\n // nothing to do\n uploadAbortControllerRef.current.delete(file.name);\n return;\n }\n handleFileOrImageUploadError(error, false, id);\n }\n };\n\n const uploadImage = async ({ newImage }: { newImage: ImageUpload }) => {\n const { file, id } = newImage || {};\n\n if (!file) {\n return;\n }\n\n let response = {} as SendFileAPIResponse;\n\n const uri = file.uri || '';\n const filename = file.name ?? uri.replace(/^(file:\\/\\/|content:\\/\\/)/, '');\n\n try {\n const compressedUri = await compressedImageURI(file, value.compressImageQuality);\n const contentType = lookup(filename) || 'multipart/form-data';\n if (value.doImageUploadRequest) {\n response = await value.doImageUploadRequest(file, channel);\n } else if (compressedUri && channel) {\n if (value.sendImageAsync) {\n uploadAbortControllerRef.current.set(\n filename,\n client.createAbortControllerForNextRequest(),\n );\n channel.sendImage(compressedUri, filename, contentType).then(\n (res) => {\n uploadAbortControllerRef.current.delete(filename);\n if (asyncIds.includes(id)) {\n // Evaluates to true if user hit send before image successfully uploaded\n setAsyncUploads((prevAsyncUploads) => {\n prevAsyncUploads[id] = {\n ...prevAsyncUploads[id],\n state: FileState.UPLOADED,\n url: res.file,\n };\n return prevAsyncUploads;\n });\n } else {\n const newImageUploads = getUploadSetStateAction<ImageUpload>(\n id,\n FileState.UPLOADED,\n {\n url: res.file,\n },\n );\n setImageUploads(newImageUploads);\n }\n },\n () => {\n uploadAbortControllerRef.current.delete(filename);\n },\n );\n } else {\n uploadAbortControllerRef.current.set(\n filename,\n client.createAbortControllerForNextRequest(),\n );\n response = await channel.sendImage(compressedUri, filename, contentType);\n uploadAbortControllerRef.current.delete(filename);\n }\n }\n\n if (Object.keys(response).length) {\n const newImageUploads = getUploadSetStateAction<ImageUpload>(id, FileState.UPLOADED, {\n height: file.height,\n url: response.file,\n width: file.width,\n });\n setImageUploads(newImageUploads);\n }\n } catch (error) {\n if (\n error instanceof Error &&\n (error.name === 'AbortError' || error.name === 'CanceledError')\n ) {\n // nothing to do\n uploadAbortControllerRef.current.delete(filename);\n return;\n }\n handleFileOrImageUploadError(error, true, id);\n }\n };\n\n const uploadNewFile = async (file: File) => {\n const id: string = generateRandomId();\n\n const isBlockedFileExtension: boolean | undefined = blockedFileExtensionTypes?.some(\n (fileExtensionType: string) => file.name?.includes(fileExtensionType),\n );\n const isBlockedFileMimeType: boolean | undefined = blockedFileMimeTypes?.some(\n (mimeType: string) => file.name?.includes(mimeType),\n );\n\n const fileState =\n isBlockedFileExtension || isBlockedFileMimeType\n ? FileState.NOT_SUPPORTED\n : FileState.UPLOADING;\n\n const newFile: FileUpload = {\n duration: 0,\n file,\n id: file.id || id,\n paused: true,\n progress: 0,\n state: fileState,\n };\n\n await Promise.all([\n setFileUploads((prevFileUploads) => prevFileUploads.concat([newFile])),\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads + 1),\n ]);\n\n if (!isBlockedFileExtension) {\n uploadFile({ newFile });\n }\n };\n\n const uploadNewImage = async (image: Partial<Asset>) => {\n const id = generateRandomId();\n\n const isBlockedImageMimeType = blockedImageMimeTypes?.some((mimeType: string) =>\n image.uri?.includes(mimeType),\n );\n\n const isBlockedImageExtension = blockedImageExtensionTypes?.some((imageExtensionType: string) =>\n image.uri?.includes(imageExtensionType),\n );\n\n const imageState =\n isBlockedImageExtension || isBlockedImageMimeType\n ? FileState.NOT_SUPPORTED\n : FileState.UPLOADING;\n\n const newImage: ImageUpload = {\n file: image,\n height: image.height,\n id,\n state: imageState,\n url: image.uri,\n width: image.width,\n };\n\n await Promise.all([\n setImageUploads((prevImageUploads) => prevImageUploads.concat([newImage])),\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads + 1),\n ]);\n\n if (!isBlockedImageExtension) {\n uploadImage({ newImage });\n }\n };\n\n const messageInputContext = useCreateMessageInputContext({\n appendText,\n asyncIds,\n asyncUploads,\n closeAttachmentPicker,\n cooldownEndsAt,\n fileUploads,\n giphyActive,\n imageUploads,\n inputBoxRef,\n isValidMessage,\n mentionedUsers,\n numberOfUploads,\n onChange,\n onSelectItem,\n openAttachmentPicker,\n openCommandsPicker,\n openFilePicker: pickFile,\n openMentionsPicker,\n pickFile,\n removeFile,\n removeImage,\n resetInput,\n selectedPicker,\n sending,\n sendMessageAsync,\n sendThreadMessageInChannel,\n setAsyncIds,\n setAsyncUploads,\n setFileUploads,\n setGiphyActive,\n setImageUploads,\n setInputBoxRef,\n setMentionedUsers,\n setNumberOfUploads,\n setSendThreadMessageInChannel,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n text,\n thread,\n toggleAttachmentPicker,\n triggerSettings,\n updateMessage,\n uploadFile,\n uploadImage,\n uploadNewFile,\n uploadNewImage,\n ...value,\n sendMessage, // overriding the originally passed in sendMessage\n });\n\n return (\n <MessageInputContext.Provider\n value={messageInputContext as unknown as MessageInputContextValue}\n >\n {children}\n </MessageInputContext.Provider>\n );\n};\n\nexport const useMessageInputContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n MessageInputContext,\n ) as unknown as MessageInputContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useMessageInputContext hook was called outside of the MessageInputContext provider. Make sure you have configured Channel component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#channel`,\n );\n }\n\n return contextValue;\n};\n\n/**\n * Typescript currently does not support partial inference so if MessageInputContext\n * typing is desired while using the HOC withMessageInputContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withMessageInputContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof MessageInputContextValue<StreamChatGenerics>>> => {\n const WithMessageInputContextComponent = (\n props: Omit<P, keyof MessageInputContextValue<StreamChatGenerics>>,\n ) => {\n const messageInputContext = useMessageInputContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...messageInputContext} />;\n };\n WithMessageInputContextComponent.displayName = `WithMessageInputContext${getDisplayName(\n Component,\n )}`;\n return WithMessageInputContextComponent;\n};\n"],"mappings":"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"}
@@ -17,6 +17,7 @@ var useCreateMessageInputContext = function useCreateMessageInputContext(_ref) {
17
17
  compressImageQuality = _ref.compressImageQuality,
18
18
  cooldownEndsAt = _ref.cooldownEndsAt,
19
19
  CooldownTimer = _ref.CooldownTimer,
20
+ disabled = _ref.disabled,
20
21
  doDocUploadRequest = _ref.doDocUploadRequest,
21
22
  doImageUploadRequest = _ref.doImageUploadRequest,
22
23
  editing = _ref.editing,
@@ -121,6 +122,7 @@ var useCreateMessageInputContext = function useCreateMessageInputContext(_ref) {
121
122
  compressImageQuality: compressImageQuality,
122
123
  cooldownEndsAt: cooldownEndsAt,
123
124
  CooldownTimer: CooldownTimer,
125
+ disabled: disabled,
124
126
  doDocUploadRequest: doDocUploadRequest,
125
127
  doImageUploadRequest: doImageUploadRequest,
126
128
  editing: editing,
@@ -195,7 +197,7 @@ var useCreateMessageInputContext = function useCreateMessageInputContext(_ref) {
195
197
  uploadNewImage: uploadNewImage,
196
198
  UploadProgressIndicator: UploadProgressIndicator
197
199
  };
198
- }, [cooldownEndsAt, editingdep, fileUploadsValue, giphyActive, imageUploadsValue, maxMessageLength, mentionedUsersLength, quotedMessageId, selectedPicker, sendThreadMessageInChannel, showMoreOptions, text, threadId]);
200
+ }, [cooldownEndsAt, disabled, editingdep, fileUploadsValue, giphyActive, imageUploadsValue, maxMessageLength, mentionedUsersLength, quotedMessageId, selectedPicker, sendThreadMessageInChannel, showMoreOptions, text, threadId]);
199
201
  return messageInputContext;
200
202
  };
201
203
  exports.useCreateMessageInputContext = useCreateMessageInputContext;