stream-chat-react-native-core 7.0.0-rc.8 → 7.0.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 (498) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/components/Attachment/AudioAttachment.js +19 -9
  3. package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -1
  4. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +3 -1
  5. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
  6. package/lib/commonjs/components/Attachment/Gallery.js +16 -3
  7. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  8. package/lib/commonjs/components/Attachment/ImageReloadIndicator.js.map +1 -1
  9. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +2 -2
  10. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  11. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js +7 -24
  12. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
  13. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +2 -4
  14. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  15. package/lib/commonjs/components/Channel/Channel.js +320 -310
  16. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  17. package/lib/commonjs/components/Channel/hooks/useChannelDataState.js.map +1 -1
  18. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +2 -0
  19. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  20. package/lib/commonjs/components/Channel/hooks/useMessageListPagination.js +133 -147
  21. package/lib/commonjs/components/Channel/hooks/useMessageListPagination.js.map +1 -1
  22. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  23. package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js +8 -13
  24. package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
  25. package/lib/commonjs/components/Message/Message.js +14 -7
  26. package/lib/commonjs/components/Message/Message.js.map +1 -1
  27. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  28. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +70 -54
  29. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  30. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +14 -6
  31. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js.map +1 -1
  32. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  33. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  34. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js +3 -1
  35. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  36. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
  37. package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
  38. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +25 -39
  39. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  40. package/lib/commonjs/components/MessageInput/InputButtons.js +18 -15
  41. package/lib/commonjs/components/MessageInput/InputButtons.js.map +1 -1
  42. package/lib/commonjs/components/MessageInput/MessageInput.js +96 -74
  43. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  44. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js +2 -1
  45. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -1
  46. package/lib/commonjs/components/MessageInput/hooks/useAudioController.js +4 -4
  47. package/lib/commonjs/components/MessageInput/hooks/useAudioController.js.map +1 -1
  48. package/lib/commonjs/components/MessageList/MessageList.js +281 -223
  49. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  50. package/lib/commonjs/components/MessageList/hooks/useMessageList.js +65 -48
  51. package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
  52. package/lib/commonjs/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.js.map +1 -1
  53. package/lib/commonjs/components/MessageList/utils/getGroupStyles.js +1 -1
  54. package/lib/commonjs/components/MessageList/utils/getGroupStyles.js.map +1 -1
  55. package/lib/commonjs/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
  56. package/lib/commonjs/components/MessageList/utils/getReadState.js +20 -0
  57. package/lib/commonjs/components/MessageList/utils/getReadState.js.map +1 -0
  58. package/lib/commonjs/components/MessageMenu/hooks/useFetchReactions.js.map +1 -1
  59. package/lib/commonjs/components/Poll/components/Button.js.map +1 -1
  60. package/lib/commonjs/components/Poll/components/PollResults/PollResultItem.js.map +1 -1
  61. package/lib/commonjs/components/Reply/Reply.js +2 -2
  62. package/lib/commonjs/components/Reply/Reply.js.map +1 -1
  63. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +24 -6
  64. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  65. package/lib/commonjs/components/ThreadList/ThreadListItem.js.map +1 -1
  66. package/lib/commonjs/components/UIComponents/BottomSheetModal.js +10 -6
  67. package/lib/commonjs/components/UIComponents/BottomSheetModal.js.map +1 -1
  68. package/lib/commonjs/components/index.js +15 -4
  69. package/lib/commonjs/components/index.js.map +1 -1
  70. package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
  71. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js +5 -1
  72. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -1
  73. package/lib/commonjs/contexts/debugContext/DebugContext.js.map +1 -1
  74. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  75. package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
  76. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +535 -523
  77. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  78. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +7 -6
  79. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  80. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +37 -41
  81. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  82. package/lib/commonjs/contexts/messageInputContext/utils/utils.js +4 -4
  83. package/lib/commonjs/contexts/messageInputContext/utils/utils.js.map +1 -1
  84. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  85. package/lib/commonjs/contexts/pollContext/pollContext.js.map +1 -1
  86. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +23 -14
  87. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  88. package/lib/commonjs/contexts/themeContext/utils/theme.js +2 -1
  89. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  90. package/lib/commonjs/contexts/threadContext/ThreadContext.js.map +1 -1
  91. package/lib/commonjs/contexts/threadsContext/ThreadListItemContext.js.map +1 -1
  92. package/lib/commonjs/hooks/index.js +22 -0
  93. package/lib/commonjs/hooks/index.js.map +1 -1
  94. package/lib/commonjs/hooks/useAudioPlayer.js +60 -69
  95. package/lib/commonjs/hooks/useAudioPlayer.js.map +1 -1
  96. package/lib/commonjs/hooks/useStableCallback.js +13 -0
  97. package/lib/commonjs/hooks/useStableCallback.js.map +1 -0
  98. package/lib/commonjs/hooks/useTranslatedMessage.js.map +1 -1
  99. package/lib/commonjs/i18n/en.json +3 -0
  100. package/lib/commonjs/i18n/es.json +3 -0
  101. package/lib/commonjs/i18n/fr.json +3 -0
  102. package/lib/commonjs/i18n/he.json +3 -0
  103. package/lib/commonjs/i18n/hi.json +2 -0
  104. package/lib/commonjs/i18n/it.json +3 -0
  105. package/lib/commonjs/i18n/ja.json +1 -0
  106. package/lib/commonjs/i18n/ko.json +1 -0
  107. package/lib/commonjs/i18n/nl.json +2 -0
  108. package/lib/commonjs/i18n/pt-br.json +3 -0
  109. package/lib/commonjs/i18n/ru.json +4 -0
  110. package/lib/commonjs/i18n/tr.json +2 -0
  111. package/lib/commonjs/mock-builders/api/channelMocks.js.map +1 -1
  112. package/lib/commonjs/native.js.map +1 -1
  113. package/lib/commonjs/store/mappers/mapMessageToStorable.js.map +1 -1
  114. package/lib/commonjs/types/types.js.map +1 -1
  115. package/lib/commonjs/utils/compressImage.js +1 -1
  116. package/lib/commonjs/utils/compressImage.js.map +1 -1
  117. package/lib/commonjs/utils/removeReservedFields.js.map +1 -1
  118. package/lib/commonjs/utils/utils.js +17 -4
  119. package/lib/commonjs/utils/utils.js.map +1 -1
  120. package/lib/commonjs/version.json +1 -1
  121. package/lib/module/components/Attachment/AudioAttachment.js +19 -9
  122. package/lib/module/components/Attachment/AudioAttachment.js.map +1 -1
  123. package/lib/module/components/Attachment/FileAttachmentGroup.js +3 -1
  124. package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
  125. package/lib/module/components/Attachment/Gallery.js +16 -3
  126. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  127. package/lib/module/components/Attachment/ImageReloadIndicator.js.map +1 -1
  128. package/lib/module/components/AttachmentPicker/AttachmentPicker.js +2 -2
  129. package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  130. package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js +7 -24
  131. package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
  132. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +2 -4
  133. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  134. package/lib/module/components/Channel/Channel.js +320 -310
  135. package/lib/module/components/Channel/Channel.js.map +1 -1
  136. package/lib/module/components/Channel/hooks/useChannelDataState.js.map +1 -1
  137. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +2 -0
  138. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  139. package/lib/module/components/Channel/hooks/useMessageListPagination.js +133 -147
  140. package/lib/module/components/Channel/hooks/useMessageListPagination.js.map +1 -1
  141. package/lib/module/components/Chat/Chat.js.map +1 -1
  142. package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js +8 -13
  143. package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
  144. package/lib/module/components/Message/Message.js +14 -7
  145. package/lib/module/components/Message/Message.js.map +1 -1
  146. package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  147. package/lib/module/components/Message/MessageSimple/MessageSimple.js +70 -54
  148. package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  149. package/lib/module/components/Message/MessageSimple/MessageStatus.js +14 -6
  150. package/lib/module/components/Message/MessageSimple/MessageStatus.js.map +1 -1
  151. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  152. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  153. package/lib/module/components/Message/hooks/useCreateMessageContext.js +3 -1
  154. package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  155. package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
  156. package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
  157. package/lib/module/components/MessageInput/FileUploadPreview.js +25 -39
  158. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  159. package/lib/module/components/MessageInput/InputButtons.js +18 -15
  160. package/lib/module/components/MessageInput/InputButtons.js.map +1 -1
  161. package/lib/module/components/MessageInput/MessageInput.js +96 -74
  162. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  163. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js +2 -1
  164. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -1
  165. package/lib/module/components/MessageInput/hooks/useAudioController.js +4 -4
  166. package/lib/module/components/MessageInput/hooks/useAudioController.js.map +1 -1
  167. package/lib/module/components/MessageList/MessageList.js +281 -223
  168. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  169. package/lib/module/components/MessageList/hooks/useMessageList.js +65 -48
  170. package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
  171. package/lib/module/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.js.map +1 -1
  172. package/lib/module/components/MessageList/utils/getGroupStyles.js +1 -1
  173. package/lib/module/components/MessageList/utils/getGroupStyles.js.map +1 -1
  174. package/lib/module/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
  175. package/lib/module/components/MessageList/utils/getReadState.js +20 -0
  176. package/lib/module/components/MessageList/utils/getReadState.js.map +1 -0
  177. package/lib/module/components/MessageMenu/hooks/useFetchReactions.js.map +1 -1
  178. package/lib/module/components/Poll/components/Button.js.map +1 -1
  179. package/lib/module/components/Poll/components/PollResults/PollResultItem.js.map +1 -1
  180. package/lib/module/components/Reply/Reply.js +2 -2
  181. package/lib/module/components/Reply/Reply.js.map +1 -1
  182. package/lib/module/components/Thread/components/ThreadFooterComponent.js +24 -6
  183. package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  184. package/lib/module/components/ThreadList/ThreadListItem.js.map +1 -1
  185. package/lib/module/components/UIComponents/BottomSheetModal.js +10 -6
  186. package/lib/module/components/UIComponents/BottomSheetModal.js.map +1 -1
  187. package/lib/module/components/index.js +15 -4
  188. package/lib/module/components/index.js.map +1 -1
  189. package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
  190. package/lib/module/contexts/channelsStateContext/useChannelState.js +5 -1
  191. package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -1
  192. package/lib/module/contexts/debugContext/DebugContext.js.map +1 -1
  193. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  194. package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
  195. package/lib/module/contexts/messageInputContext/MessageInputContext.js +535 -523
  196. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  197. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +7 -6
  198. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  199. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +37 -41
  200. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  201. package/lib/module/contexts/messageInputContext/utils/utils.js +4 -4
  202. package/lib/module/contexts/messageInputContext/utils/utils.js.map +1 -1
  203. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  204. package/lib/module/contexts/pollContext/pollContext.js.map +1 -1
  205. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +23 -14
  206. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  207. package/lib/module/contexts/themeContext/utils/theme.js +2 -1
  208. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  209. package/lib/module/contexts/threadContext/ThreadContext.js.map +1 -1
  210. package/lib/module/contexts/threadsContext/ThreadListItemContext.js.map +1 -1
  211. package/lib/module/hooks/index.js +22 -0
  212. package/lib/module/hooks/index.js.map +1 -1
  213. package/lib/module/hooks/useAudioPlayer.js +60 -69
  214. package/lib/module/hooks/useAudioPlayer.js.map +1 -1
  215. package/lib/module/hooks/useStableCallback.js +13 -0
  216. package/lib/module/hooks/useStableCallback.js.map +1 -0
  217. package/lib/module/hooks/useTranslatedMessage.js.map +1 -1
  218. package/lib/module/i18n/en.json +3 -0
  219. package/lib/module/i18n/es.json +3 -0
  220. package/lib/module/i18n/fr.json +3 -0
  221. package/lib/module/i18n/he.json +3 -0
  222. package/lib/module/i18n/hi.json +2 -0
  223. package/lib/module/i18n/it.json +3 -0
  224. package/lib/module/i18n/ja.json +1 -0
  225. package/lib/module/i18n/ko.json +1 -0
  226. package/lib/module/i18n/nl.json +2 -0
  227. package/lib/module/i18n/pt-br.json +3 -0
  228. package/lib/module/i18n/ru.json +4 -0
  229. package/lib/module/i18n/tr.json +2 -0
  230. package/lib/module/mock-builders/api/channelMocks.js.map +1 -1
  231. package/lib/module/native.js.map +1 -1
  232. package/lib/module/store/mappers/mapMessageToStorable.js.map +1 -1
  233. package/lib/module/types/types.js.map +1 -1
  234. package/lib/module/utils/compressImage.js +1 -1
  235. package/lib/module/utils/compressImage.js.map +1 -1
  236. package/lib/module/utils/removeReservedFields.js.map +1 -1
  237. package/lib/module/utils/utils.js +17 -4
  238. package/lib/module/utils/utils.js.map +1 -1
  239. package/lib/module/version.json +1 -1
  240. package/lib/typescript/components/Attachment/AudioAttachment.d.ts +2 -2
  241. package/lib/typescript/components/Attachment/AudioAttachment.d.ts.map +1 -1
  242. package/lib/typescript/components/Attachment/FileAttachmentGroup.d.ts.map +1 -1
  243. package/lib/typescript/components/Attachment/Gallery.d.ts +3 -3
  244. package/lib/typescript/components/Attachment/Gallery.d.ts.map +1 -1
  245. package/lib/typescript/components/Attachment/ImageReloadIndicator.d.ts +4 -3
  246. package/lib/typescript/components/Attachment/ImageReloadIndicator.d.ts.map +1 -1
  247. package/lib/typescript/components/AttachmentPicker/AttachmentPicker.d.ts.map +1 -1
  248. package/lib/typescript/components/AttachmentPicker/components/AttachmentPickerItem.d.ts +2 -2
  249. package/lib/typescript/components/AttachmentPicker/components/AttachmentPickerItem.d.ts.map +1 -1
  250. package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts +2 -3
  251. package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts.map +1 -1
  252. package/lib/typescript/components/Channel/Channel.d.ts +3 -4
  253. package/lib/typescript/components/Channel/Channel.d.ts.map +1 -1
  254. package/lib/typescript/components/Channel/hooks/useChannelDataState.d.ts +2 -3
  255. package/lib/typescript/components/Channel/hooks/useChannelDataState.d.ts.map +1 -1
  256. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
  257. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts.map +1 -1
  258. package/lib/typescript/components/Channel/hooks/useCreateThreadContext.d.ts +6 -6
  259. package/lib/typescript/components/Channel/hooks/useCreateThreadContext.d.ts.map +1 -1
  260. package/lib/typescript/components/Channel/hooks/useMessageListPagination.d.ts +3 -3
  261. package/lib/typescript/components/Channel/hooks/useMessageListPagination.d.ts.map +1 -1
  262. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewData.d.ts +1 -1
  263. package/lib/typescript/components/ChannelPreview/hooks/useLatestMessagePreview.d.ts +1 -1
  264. package/lib/typescript/components/Chat/Chat.d.ts +0 -9
  265. package/lib/typescript/components/Chat/Chat.d.ts.map +1 -1
  266. package/lib/typescript/components/KeyboardCompatibleView/KeyboardCompatibleView.d.ts +3 -0
  267. package/lib/typescript/components/KeyboardCompatibleView/KeyboardCompatibleView.d.ts.map +1 -1
  268. package/lib/typescript/components/Message/Message.d.ts +4 -5
  269. package/lib/typescript/components/Message/Message.d.ts.map +1 -1
  270. package/lib/typescript/components/Message/MessageSimple/MessageFooter.d.ts +2 -3
  271. package/lib/typescript/components/Message/MessageSimple/MessageFooter.d.ts.map +1 -1
  272. package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts.map +1 -1
  273. package/lib/typescript/components/Message/MessageSimple/MessageStatus.d.ts +1 -1
  274. package/lib/typescript/components/Message/MessageSimple/MessageStatus.d.ts.map +1 -1
  275. package/lib/typescript/components/Message/MessageSimple/MessageTextContainer.d.ts.map +1 -1
  276. package/lib/typescript/components/Message/MessageSimple/utils/renderText.d.ts +2 -2
  277. package/lib/typescript/components/Message/MessageSimple/utils/renderText.d.ts.map +1 -1
  278. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts +1 -1
  279. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts.map +1 -1
  280. package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts.map +1 -1
  281. package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +2 -2
  282. package/lib/typescript/components/Message/hooks/useMessageActions.d.ts.map +1 -1
  283. package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +2 -4
  284. package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts.map +1 -1
  285. package/lib/typescript/components/MessageInput/InputButtons.d.ts +1 -1
  286. package/lib/typescript/components/MessageInput/InputButtons.d.ts.map +1 -1
  287. package/lib/typescript/components/MessageInput/MessageInput.d.ts +1 -1
  288. package/lib/typescript/components/MessageInput/MessageInput.d.ts.map +1 -1
  289. package/lib/typescript/components/MessageInput/hooks/useAudioController.d.ts.map +1 -1
  290. package/lib/typescript/components/MessageList/MessageList.d.ts +4 -4
  291. package/lib/typescript/components/MessageList/MessageList.d.ts.map +1 -1
  292. package/lib/typescript/components/MessageList/MessageSystem.d.ts +2 -2
  293. package/lib/typescript/components/MessageList/MessageSystem.d.ts.map +1 -1
  294. package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts +14 -9
  295. package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts.map +1 -1
  296. package/lib/typescript/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.d.ts +2 -2
  297. package/lib/typescript/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.d.ts.map +1 -1
  298. package/lib/typescript/components/MessageList/utils/getGroupStyles.d.ts.map +1 -1
  299. package/lib/typescript/components/MessageList/utils/getLastReceivedMessage.d.ts +2 -2
  300. package/lib/typescript/components/MessageList/utils/getLastReceivedMessage.d.ts.map +1 -1
  301. package/lib/typescript/components/MessageList/utils/getReadState.d.ts +9 -0
  302. package/lib/typescript/components/MessageList/utils/getReadState.d.ts.map +1 -0
  303. package/lib/typescript/components/MessageMenu/hooks/useFetchReactions.d.ts +2 -3
  304. package/lib/typescript/components/MessageMenu/hooks/useFetchReactions.d.ts.map +1 -1
  305. package/lib/typescript/components/Poll/components/Button.d.ts +2 -3
  306. package/lib/typescript/components/Poll/components/Button.d.ts.map +1 -1
  307. package/lib/typescript/components/Poll/components/PollResults/PollResultItem.d.ts +2 -3
  308. package/lib/typescript/components/Poll/components/PollResults/PollResultItem.d.ts.map +1 -1
  309. package/lib/typescript/components/Reply/Reply.d.ts.map +1 -1
  310. package/lib/typescript/components/Thread/components/ThreadFooterComponent.d.ts.map +1 -1
  311. package/lib/typescript/components/ThreadList/ThreadListItem.d.ts.map +1 -1
  312. package/lib/typescript/components/UIComponents/BottomSheetModal.d.ts.map +1 -1
  313. package/lib/typescript/components/index.d.ts +2 -1
  314. package/lib/typescript/components/index.d.ts.map +1 -1
  315. package/lib/typescript/contexts/attachmentPickerContext/AttachmentPickerContext.d.ts +3 -3
  316. package/lib/typescript/contexts/attachmentPickerContext/AttachmentPickerContext.d.ts.map +1 -1
  317. package/lib/typescript/contexts/channelsStateContext/useChannelState.d.ts.map +1 -1
  318. package/lib/typescript/contexts/debugContext/DebugContext.d.ts +2 -3
  319. package/lib/typescript/contexts/debugContext/DebugContext.d.ts.map +1 -1
  320. package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContext.d.ts +3 -3
  321. package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContext.d.ts.map +1 -1
  322. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +6 -4
  323. package/lib/typescript/contexts/messageContext/MessageContext.d.ts.map +1 -1
  324. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +13 -15
  325. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts.map +1 -1
  326. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
  327. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts.map +1 -1
  328. package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts +3 -3
  329. package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts.map +1 -1
  330. package/lib/typescript/contexts/messageInputContext/utils/utils.d.ts +2 -2
  331. package/lib/typescript/contexts/messageInputContext/utils/utils.d.ts.map +1 -1
  332. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +25 -21
  333. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts.map +1 -1
  334. package/lib/typescript/contexts/pollContext/pollContext.d.ts +2 -3
  335. package/lib/typescript/contexts/pollContext/pollContext.d.ts.map +1 -1
  336. package/lib/typescript/contexts/suggestionsContext/SuggestionsContext.d.ts.map +1 -1
  337. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -0
  338. package/lib/typescript/contexts/themeContext/utils/theme.d.ts.map +1 -1
  339. package/lib/typescript/contexts/threadContext/ThreadContext.d.ts +4 -5
  340. package/lib/typescript/contexts/threadContext/ThreadContext.d.ts.map +1 -1
  341. package/lib/typescript/contexts/threadsContext/ThreadListItemContext.d.ts +3 -4
  342. package/lib/typescript/contexts/threadsContext/ThreadListItemContext.d.ts.map +1 -1
  343. package/lib/typescript/hooks/index.d.ts +2 -0
  344. package/lib/typescript/hooks/index.d.ts.map +1 -1
  345. package/lib/typescript/hooks/useAudioPlayer.d.ts.map +1 -1
  346. package/lib/typescript/hooks/useStableCallback.d.ts +26 -0
  347. package/lib/typescript/hooks/useStableCallback.d.ts.map +1 -0
  348. package/lib/typescript/hooks/useTranslatedMessage.d.ts +59 -58
  349. package/lib/typescript/hooks/useTranslatedMessage.d.ts.map +1 -1
  350. package/lib/typescript/i18n/en.json +3 -0
  351. package/lib/typescript/i18n/es.json +3 -0
  352. package/lib/typescript/i18n/fr.json +3 -0
  353. package/lib/typescript/i18n/he.json +3 -0
  354. package/lib/typescript/i18n/hi.json +2 -0
  355. package/lib/typescript/i18n/it.json +3 -0
  356. package/lib/typescript/i18n/ja.json +1 -0
  357. package/lib/typescript/i18n/ko.json +1 -0
  358. package/lib/typescript/i18n/nl.json +2 -0
  359. package/lib/typescript/i18n/pt-br.json +3 -0
  360. package/lib/typescript/i18n/ru.json +4 -0
  361. package/lib/typescript/i18n/tr.json +2 -0
  362. package/lib/typescript/native.d.ts +8 -11
  363. package/lib/typescript/native.d.ts.map +1 -1
  364. package/lib/typescript/store/apis/insertReaction.d.ts +2 -2
  365. package/lib/typescript/store/apis/insertReaction.d.ts.map +1 -1
  366. package/lib/typescript/store/apis/updateMessage.d.ts +2 -2
  367. package/lib/typescript/store/apis/updateMessage.d.ts.map +1 -1
  368. package/lib/typescript/store/apis/updateReaction.d.ts +2 -2
  369. package/lib/typescript/store/apis/updateReaction.d.ts.map +1 -1
  370. package/lib/typescript/store/mappers/mapMessageToStorable.d.ts +2 -2
  371. package/lib/typescript/store/mappers/mapMessageToStorable.d.ts.map +1 -1
  372. package/lib/typescript/types/types.d.ts +28 -50
  373. package/lib/typescript/types/types.d.ts.map +1 -1
  374. package/lib/typescript/utils/compressImage.d.ts +2 -2
  375. package/lib/typescript/utils/compressImage.d.ts.map +1 -1
  376. package/lib/typescript/utils/i18n/Streami18n.d.ts +3 -0
  377. package/lib/typescript/utils/i18n/Streami18n.d.ts.map +1 -1
  378. package/lib/typescript/utils/removeReservedFields.d.ts +2 -3
  379. package/lib/typescript/utils/removeReservedFields.d.ts.map +1 -1
  380. package/lib/typescript/utils/utils.d.ts +10 -10
  381. package/lib/typescript/utils/utils.d.ts.map +1 -1
  382. package/package.json +4 -3
  383. package/src/components/Attachment/AudioAttachment.tsx +12 -6
  384. package/src/components/Attachment/FileAttachmentGroup.tsx +3 -1
  385. package/src/components/Attachment/Gallery.tsx +22 -7
  386. package/src/components/Attachment/ImageReloadIndicator.tsx +4 -5
  387. package/src/components/AttachmentPicker/AttachmentPicker.tsx +4 -10
  388. package/src/components/AttachmentPicker/components/AttachmentPickerItem.tsx +9 -37
  389. package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +27 -23
  390. package/src/components/AutoCompleteInput/__tests__/AutoCompleteInput.test.js +12 -12
  391. package/src/components/Channel/Channel.tsx +423 -361
  392. package/src/components/Channel/__tests__/Channel.test.js +10 -3
  393. package/src/components/Channel/hooks/useChannelDataState.ts +2 -4
  394. package/src/components/Channel/hooks/useCreateMessagesContext.ts +2 -0
  395. package/src/components/Channel/hooks/useMessageListPagination.tsx +150 -150
  396. package/src/components/Chat/Chat.tsx +0 -9
  397. package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +8 -7
  398. package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +5 -4
  399. package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +5 -4
  400. package/src/components/ImageGallery/__tests__/ImageGalleryOverlay.test.tsx +3 -2
  401. package/src/components/KeyboardCompatibleView/KeyboardCompatibleView.tsx +12 -5
  402. package/src/components/Message/Message.tsx +16 -15
  403. package/src/components/Message/MessageSimple/MessageFooter.tsx +2 -3
  404. package/src/components/Message/MessageSimple/MessageSimple.tsx +112 -70
  405. package/src/components/Message/MessageSimple/MessageStatus.tsx +19 -17
  406. package/src/components/Message/MessageSimple/MessageTextContainer.tsx +3 -3
  407. package/src/components/Message/MessageSimple/__tests__/MessageStatus.test.js +11 -5
  408. package/src/components/Message/MessageSimple/__tests__/MessageTextContainer.test.tsx +5 -4
  409. package/src/components/Message/MessageSimple/utils/renderText.tsx +2 -3
  410. package/src/components/Message/hooks/useCreateMessageContext.ts +3 -0
  411. package/src/components/Message/hooks/useMessageActionHandlers.ts +1 -3
  412. package/src/components/Message/hooks/useMessageActions.tsx +4 -3
  413. package/src/components/MessageInput/FileUploadPreview.tsx +41 -70
  414. package/src/components/MessageInput/ImageUploadPreview.tsx +2 -2
  415. package/src/components/MessageInput/InputButtons.tsx +14 -10
  416. package/src/components/MessageInput/MessageInput.tsx +28 -30
  417. package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +1 -1
  418. package/src/components/MessageInput/__tests__/MessageInput.test.js +3 -1
  419. package/src/components/MessageInput/components/AudioRecorder/AudioRecordingButton.tsx +1 -0
  420. package/src/components/MessageInput/hooks/useAudioController.tsx +6 -5
  421. package/src/components/MessageList/MessageList.tsx +253 -137
  422. package/src/components/MessageList/MessageSystem.tsx +2 -2
  423. package/src/components/MessageList/hooks/useMessageList.ts +82 -64
  424. package/src/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.ts +2 -2
  425. package/src/components/MessageList/utils/getGroupStyles.ts +7 -5
  426. package/src/components/MessageList/utils/getLastReceivedMessage.ts +3 -3
  427. package/src/components/MessageList/utils/getReadState.ts +27 -0
  428. package/src/components/MessageMenu/__tests__/MessageUserReactions.test.tsx +2 -3
  429. package/src/components/MessageMenu/hooks/useFetchReactions.ts +2 -3
  430. package/src/components/Poll/components/Button.tsx +2 -4
  431. package/src/components/Poll/components/PollResults/PollResultItem.tsx +2 -3
  432. package/src/components/Reply/Reply.tsx +1 -2
  433. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +318 -847
  434. package/src/components/Thread/components/ThreadFooterComponent.tsx +31 -9
  435. package/src/components/ThreadList/ThreadListItem.tsx +6 -4
  436. package/src/components/UIComponents/BottomSheetModal.tsx +11 -7
  437. package/src/components/index.ts +2 -1
  438. package/src/contexts/attachmentPickerContext/AttachmentPickerContext.tsx +5 -4
  439. package/src/contexts/channelsStateContext/useChannelState.ts +5 -1
  440. package/src/contexts/debugContext/DebugContext.tsx +2 -4
  441. package/src/contexts/imageGalleryContext/ImageGalleryContext.tsx +5 -4
  442. package/src/contexts/messageContext/MessageContext.tsx +6 -4
  443. package/src/contexts/messageInputContext/MessageInputContext.tsx +295 -262
  444. package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +10 -6
  445. package/src/contexts/messageInputContext/__tests__/sendMessage.test.tsx +6 -5
  446. package/src/contexts/messageInputContext/__tests__/updateMessage.test.tsx +3 -5
  447. package/src/contexts/messageInputContext/__tests__/useMessageDetailsForState.test.tsx +14 -9
  448. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +7 -3
  449. package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +37 -40
  450. package/src/contexts/messageInputContext/utils/utils.ts +6 -8
  451. package/src/contexts/messagesContext/MessagesContext.tsx +26 -20
  452. package/src/contexts/pollContext/pollContext.tsx +2 -4
  453. package/src/contexts/suggestionsContext/SuggestionsContext.tsx +33 -14
  454. package/src/contexts/themeContext/utils/theme.ts +2 -0
  455. package/src/contexts/threadContext/ThreadContext.tsx +4 -6
  456. package/src/contexts/threadsContext/ThreadListItemContext.tsx +3 -5
  457. package/src/hooks/index.ts +2 -0
  458. package/src/hooks/useAudioPlayer.ts +37 -31
  459. package/src/hooks/useStableCallback.ts +37 -0
  460. package/src/hooks/useTranslatedMessage.ts +2 -2
  461. package/src/i18n/en.json +3 -0
  462. package/src/i18n/es.json +3 -0
  463. package/src/i18n/fr.json +3 -0
  464. package/src/i18n/he.json +3 -0
  465. package/src/i18n/hi.json +2 -0
  466. package/src/i18n/it.json +3 -0
  467. package/src/i18n/ja.json +1 -0
  468. package/src/i18n/ko.json +1 -0
  469. package/src/i18n/nl.json +2 -0
  470. package/src/i18n/pt-br.json +3 -0
  471. package/src/i18n/ru.json +4 -0
  472. package/src/i18n/tr.json +2 -0
  473. package/src/mock-builders/api/channelMocks.tsx +2 -8
  474. package/src/native.ts +13 -8
  475. package/src/store/apis/insertReaction.ts +2 -2
  476. package/src/store/apis/updateMessage.ts +2 -2
  477. package/src/store/apis/updateReaction.ts +2 -2
  478. package/src/store/mappers/mapMessageToStorable.ts +2 -2
  479. package/src/types/stream-chat-common-custom-data.d.ts +22 -22
  480. package/src/types/types.ts +35 -54
  481. package/src/utils/compressImage.ts +3 -4
  482. package/src/utils/removeReservedFields.ts +3 -5
  483. package/src/utils/utils.ts +25 -16
  484. package/src/version.json +1 -1
  485. package/lib/commonjs/components/MessageList/hooks/useLastReadData.js +0 -20
  486. package/lib/commonjs/components/MessageList/hooks/useLastReadData.js.map +0 -1
  487. package/lib/commonjs/components/MessageList/utils/getReadStates.js +0 -34
  488. package/lib/commonjs/components/MessageList/utils/getReadStates.js.map +0 -1
  489. package/lib/module/components/MessageList/hooks/useLastReadData.js +0 -20
  490. package/lib/module/components/MessageList/hooks/useLastReadData.js.map +0 -1
  491. package/lib/module/components/MessageList/utils/getReadStates.js +0 -34
  492. package/lib/module/components/MessageList/utils/getReadStates.js.map +0 -1
  493. package/lib/typescript/components/MessageList/hooks/useLastReadData.d.ts +0 -12
  494. package/lib/typescript/components/MessageList/hooks/useLastReadData.d.ts.map +0 -1
  495. package/lib/typescript/components/MessageList/utils/getReadStates.d.ts +0 -5
  496. package/lib/typescript/components/MessageList/utils/getReadStates.d.ts.map +0 -1
  497. package/src/components/MessageList/hooks/useLastReadData.ts +0 -29
  498. package/src/components/MessageList/utils/getReadStates.ts +0 -55
@@ -11,7 +11,6 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _reactNative = require("react-native");
13
13
  var _uniq = _interopRequireDefault(require("lodash/uniq"));
14
- var _mimeTypes = require("mime-types");
15
14
  var _streamChat = require("stream-chat");
16
15
  var _useCreateMessageInputContext = require("./hooks/useCreateMessageInputContext");
17
16
  var _useMessageDetailsForState = require("./hooks/useMessageDetailsForState");
@@ -138,16 +137,19 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
138
137
  var _useCooldown = (0, _useCooldown2.useCooldown)(),
139
138
  cooldownEndsAt = _useCooldown.endsAt,
140
139
  startCooldown = _useCooldown.start;
140
+ var onChangeText = value.onChangeText,
141
+ emojiSearchIndex = value.emojiSearchIndex,
142
+ autoCompleteTriggerSettings = value.autoCompleteTriggerSettings;
141
143
  var threadId = thread == null ? void 0 : thread.id;
142
144
  (0, _react.useEffect)(function () {
143
145
  setSendThreadMessageInChannel(false);
144
146
  }, [threadId]);
145
- var appendText = function appendText(newText) {
147
+ var appendText = useStableCallback(function (newText) {
146
148
  setText(function (prevText) {
147
149
  return "".concat(prevText).concat(newText);
148
150
  });
149
- };
150
- var isValidMessage = function isValidMessage() {
151
+ });
152
+ var isValidMessage = useStableCallback(function () {
151
153
  if (text && text.trim()) {
152
154
  return true;
153
155
  }
@@ -191,8 +193,8 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
191
193
  _iterator2.f();
192
194
  }
193
195
  return false;
194
- };
195
- var onChange = function onChange(newText) {
196
+ });
197
+ var onChange = (0, _react.useCallback)(function (newText) {
196
198
  if (sending.current) {
197
199
  return;
198
200
  }
@@ -200,25 +202,25 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
200
202
  if (newText && channel && channelCapabities.sendTypingEvents && isOnline) {
201
203
  (0, _streamChat.logChatPromiseExecution)(channel.keystroke(thread == null ? void 0 : thread.id), 'start typing event');
202
204
  }
203
- if (value.onChangeText) {
204
- value.onChangeText(newText);
205
+ if (onChangeText) {
206
+ onChangeText(newText);
205
207
  }
206
- };
207
- var openCommandsPicker = function openCommandsPicker() {
208
+ }, [channel, channelCapabities.sendTypingEvents, isOnline, setText, thread == null ? void 0 : thread.id, onChangeText]);
209
+ var openCommandsPicker = useStableCallback(function () {
208
210
  appendText('/');
209
211
  if (inputBoxRef.current) {
210
212
  inputBoxRef.current.focus();
211
213
  }
212
- };
213
- var openMentionsPicker = function openMentionsPicker() {
214
+ });
215
+ var openMentionsPicker = useStableCallback(function () {
214
216
  appendText('@');
215
217
  if (inputBoxRef.current) {
216
218
  inputBoxRef.current.focus();
217
219
  }
218
- };
219
- var takeAndUploadImage = function () {
220
+ });
221
+ var takeAndUploadImage = useStableCallback(function () {
220
222
  var _ref2 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(mediaType) {
221
- var photo;
223
+ var file;
222
224
  return _regenerator["default"].wrap(function _callee$(_context) {
223
225
  while (1) switch (_context.prev = _context.next) {
224
226
  case 0:
@@ -230,8 +232,8 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
230
232
  mediaType: mediaType
231
233
  });
232
234
  case 4:
233
- photo = _context.sent;
234
- if (photo.askToOpenSettings) {
235
+ file = _context.sent;
236
+ if (file.askToOpenSettings) {
235
237
  _reactNative.Alert.alert(t('Allow camera access in device settings'), t('Device camera is used to take photos or videos.'), [{
236
238
  style: 'cancel',
237
239
  text: t('Cancel')
@@ -243,115 +245,111 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
243
245
  text: t('Open Settings')
244
246
  }]);
245
247
  }
246
- if (photo.cancelled) {
248
+ if (file.cancelled) {
247
249
  _context.next = 14;
248
250
  break;
249
251
  }
250
- if (!photo.type.includes('image')) {
252
+ if (!file.type.includes('image')) {
251
253
  _context.next = 12;
252
254
  break;
253
255
  }
254
256
  _context.next = 10;
255
- return uploadNewImage(photo);
257
+ return uploadNewImage(file);
256
258
  case 10:
257
259
  _context.next = 14;
258
260
  break;
259
261
  case 12:
260
262
  _context.next = 14;
261
- return uploadNewFile(Object.assign({}, photo, {
262
- mimeType: photo.type,
263
- type: _types.FileTypes.Video
264
- }));
263
+ return uploadNewFile(file);
265
264
  case 14:
266
265
  case "end":
267
266
  return _context.stop();
268
267
  }
269
268
  }, _callee);
270
269
  }));
271
- return function takeAndUploadImage(_x) {
270
+ return function (_x) {
272
271
  return _ref2.apply(this, arguments);
273
272
  };
274
- }();
275
- var pickAndUploadImageFromNativePicker = function () {
276
- var _ref3 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3() {
277
- var result;
278
- return _regenerator["default"].wrap(function _callee3$(_context3) {
279
- while (1) switch (_context3.prev = _context3.next) {
280
- case 0:
281
- _context3.next = 2;
282
- return _native.NativeHandlers.pickImage();
283
- case 2:
284
- result = _context3.sent;
285
- if (result.askToOpenSettings) {
286
- _reactNative.Alert.alert(t('Allow access to your Gallery'), t('Device gallery permissions is used to take photos or videos.'), [{
287
- style: 'cancel',
288
- text: t('Cancel')
289
- }, {
290
- onPress: function onPress() {
291
- return _reactNative.Linking.openSettings();
292
- },
293
- style: 'default',
294
- text: t('Open Settings')
295
- }]);
296
- }
297
- if (!(numberOfUploads >= value.maxNumberOfFiles)) {
298
- _context3.next = 7;
299
- break;
300
- }
301
- _reactNative.Alert.alert(t('Maximum number of files reached'));
302
- return _context3.abrupt("return");
303
- case 7:
304
- if (!(result.assets && result.assets.length > 0)) {
305
- _context3.next = 12;
306
- break;
307
- }
308
- if (!(result.assets.length > value.maxNumberOfFiles)) {
309
- _context3.next = 11;
310
- break;
311
- }
312
- _reactNative.Alert.alert(t('Maximum number of files reached'));
313
- return _context3.abrupt("return");
314
- case 11:
315
- result.assets.forEach(function () {
316
- var _ref4 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(asset) {
317
- return _regenerator["default"].wrap(function _callee2$(_context2) {
318
- while (1) switch (_context2.prev = _context2.next) {
319
- case 0:
320
- if (!asset.type.includes('image')) {
321
- _context2.next = 5;
322
- break;
323
- }
324
- _context2.next = 3;
325
- return uploadNewImage(asset);
326
- case 3:
327
- _context2.next = 7;
273
+ }());
274
+ var pickAndUploadImageFromNativePicker = useStableCallback((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3() {
275
+ var result;
276
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
277
+ while (1) switch (_context3.prev = _context3.next) {
278
+ case 0:
279
+ _context3.next = 2;
280
+ return _native.NativeHandlers.pickImage();
281
+ case 2:
282
+ result = _context3.sent;
283
+ if (result.askToOpenSettings) {
284
+ _reactNative.Alert.alert(t('Allow access to your Gallery'), t('Device gallery permissions is used to take photos or videos.'), [{
285
+ style: 'cancel',
286
+ text: t('Cancel')
287
+ }, {
288
+ onPress: function onPress() {
289
+ return _reactNative.Linking.openSettings();
290
+ },
291
+ style: 'default',
292
+ text: t('Open Settings')
293
+ }]);
294
+ }
295
+ if (!(numberOfUploads >= value.maxNumberOfFiles)) {
296
+ _context3.next = 7;
297
+ break;
298
+ }
299
+ _reactNative.Alert.alert(t('Maximum number of files reached'));
300
+ return _context3.abrupt("return");
301
+ case 7:
302
+ if (!(result.assets && result.assets.length > 0)) {
303
+ _context3.next = 12;
304
+ break;
305
+ }
306
+ if (!(result.assets.length > value.maxNumberOfFiles)) {
307
+ _context3.next = 11;
308
+ break;
309
+ }
310
+ _reactNative.Alert.alert(t('Maximum number of files reached'));
311
+ return _context3.abrupt("return");
312
+ case 11:
313
+ result.assets.forEach(function () {
314
+ var _ref4 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(asset) {
315
+ var compressedURI;
316
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
317
+ while (1) switch (_context2.prev = _context2.next) {
318
+ case 0:
319
+ if (!asset.type.includes('image')) {
320
+ _context2.next = 8;
328
321
  break;
329
- case 5:
330
- _context2.next = 7;
331
- return uploadNewFile(Object.assign({}, asset, {
332
- mimeType: asset.type,
333
- type: _types.FileTypes.Video
334
- }));
335
- case 7:
336
- case "end":
337
- return _context2.stop();
338
- }
339
- }, _callee2);
340
- }));
341
- return function (_x2) {
342
- return _ref4.apply(this, arguments);
343
- };
344
- }());
345
- case 12:
346
- case "end":
347
- return _context3.stop();
348
- }
349
- }, _callee3);
350
- }));
351
- return function pickAndUploadImageFromNativePicker() {
352
- return _ref3.apply(this, arguments);
353
- };
354
- }();
322
+ }
323
+ _context2.next = 3;
324
+ return (0, _compressImage.compressedImageURI)(asset, value.compressImageQuality);
325
+ case 3:
326
+ compressedURI = _context2.sent;
327
+ _context2.next = 6;
328
+ return uploadNewImage(Object.assign({}, asset, {
329
+ uri: compressedURI
330
+ }));
331
+ case 6:
332
+ _context2.next = 10;
333
+ break;
334
+ case 8:
335
+ _context2.next = 10;
336
+ return uploadNewFile(asset);
337
+ case 10:
338
+ case "end":
339
+ return _context2.stop();
340
+ }
341
+ }, _callee2);
342
+ }));
343
+ return function (_x2) {
344
+ return _ref4.apply(this, arguments);
345
+ };
346
+ }());
347
+ case 12:
348
+ case "end":
349
+ return _context3.stop();
350
+ }
351
+ }, _callee3);
352
+ })));
355
353
  var openAttachmentPicker = (0, _react.useCallback)(function () {
356
354
  _reactNative.Keyboard.dismiss();
357
355
  setSelectedPicker('images');
@@ -368,66 +366,78 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
368
366
  openAttachmentPicker();
369
367
  }
370
368
  }, [closeAttachmentPicker, openAttachmentPicker, selectedPicker]);
371
- var onSelectItem = function onSelectItem(item) {
369
+ var onSelectItem = useStableCallback(function (item) {
372
370
  setMentionedUsers(function (prevMentionedUsers) {
373
371
  return [].concat((0, _toConsumableArray2["default"])(prevMentionedUsers), [item.id]);
374
372
  });
375
- };
376
- var pickFile = function () {
377
- var _ref5 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5() {
378
- var result;
379
- return _regenerator["default"].wrap(function _callee5$(_context5) {
380
- while (1) switch (_context5.prev = _context5.next) {
381
- case 0:
382
- if ((0, _native.isDocumentPickerAvailable)()) {
383
- _context5.next = 3;
384
- break;
385
- }
386
- console.log('The file picker is not installed. Check our Getting Started documentation to install it.');
387
- return _context5.abrupt("return");
388
- case 3:
389
- if (!(numberOfUploads >= value.maxNumberOfFiles)) {
390
- _context5.next = 6;
391
- break;
392
- }
393
- _reactNative.Alert.alert(t('Maximum number of files reached'));
394
- return _context5.abrupt("return");
395
- case 6:
396
- _context5.next = 8;
397
- return _native.NativeHandlers.pickDocument({
398
- maxNumberOfFiles: value.maxNumberOfFiles - numberOfUploads
399
- });
400
- case 8:
401
- result = _context5.sent;
402
- if (!result.cancelled && result.assets) {
403
- result.assets.forEach(function () {
404
- var _ref6 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(asset) {
405
- return _regenerator["default"].wrap(function _callee4$(_context4) {
406
- while (1) switch (_context4.prev = _context4.next) {
407
- case 0:
408
- _context4.next = 2;
409
- return uploadNewFile(asset);
410
- case 2:
411
- case "end":
412
- return _context4.stop();
413
- }
414
- }, _callee4);
415
- }));
416
- return function (_x3) {
417
- return _ref6.apply(this, arguments);
418
- };
419
- }());
420
- }
421
- case 10:
422
- case "end":
423
- return _context5.stop();
424
- }
425
- }, _callee5);
426
- }));
427
- return function pickFile() {
428
- return _ref5.apply(this, arguments);
429
- };
430
- }();
373
+ });
374
+ var pickFile = useStableCallback((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5() {
375
+ var result;
376
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
377
+ while (1) switch (_context5.prev = _context5.next) {
378
+ case 0:
379
+ if ((0, _native.isDocumentPickerAvailable)()) {
380
+ _context5.next = 3;
381
+ break;
382
+ }
383
+ console.log('The file picker is not installed. Check our Getting Started documentation to install it.');
384
+ return _context5.abrupt("return");
385
+ case 3:
386
+ if (!(numberOfUploads >= value.maxNumberOfFiles)) {
387
+ _context5.next = 6;
388
+ break;
389
+ }
390
+ _reactNative.Alert.alert(t('Maximum number of files reached'));
391
+ return _context5.abrupt("return");
392
+ case 6:
393
+ _context5.next = 8;
394
+ return _native.NativeHandlers.pickDocument({
395
+ maxNumberOfFiles: value.maxNumberOfFiles - numberOfUploads
396
+ });
397
+ case 8:
398
+ result = _context5.sent;
399
+ if (!result.cancelled && result.assets) {
400
+ result.assets.forEach(function () {
401
+ var _ref6 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(asset) {
402
+ var compressedURI;
403
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
404
+ while (1) switch (_context4.prev = _context4.next) {
405
+ case 0:
406
+ if (!asset.type.includes('image')) {
407
+ _context4.next = 8;
408
+ break;
409
+ }
410
+ _context4.next = 3;
411
+ return (0, _compressImage.compressedImageURI)(asset, value.compressImageQuality);
412
+ case 3:
413
+ compressedURI = _context4.sent;
414
+ _context4.next = 6;
415
+ return uploadNewImage(Object.assign({}, asset, {
416
+ uri: compressedURI
417
+ }));
418
+ case 6:
419
+ _context4.next = 10;
420
+ break;
421
+ case 8:
422
+ _context4.next = 10;
423
+ return uploadNewFile(asset);
424
+ case 10:
425
+ case "end":
426
+ return _context4.stop();
427
+ }
428
+ }, _callee4);
429
+ }));
430
+ return function (_x3) {
431
+ return _ref6.apply(this, arguments);
432
+ };
433
+ }());
434
+ }
435
+ case 10:
436
+ case "end":
437
+ return _context5.stop();
438
+ }
439
+ }, _callee5);
440
+ })));
431
441
  var removeFile = (0, _react.useCallback)(function (id) {
432
442
  if (fileUploads.some(function (file) {
433
443
  return file.id === id;
@@ -456,7 +466,7 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
456
466
  });
457
467
  }
458
468
  }, [imageUploads, setImageUploads, setNumberOfUploads]);
459
- var resetInput = function resetInput() {
469
+ var resetInput = useStableCallback(function () {
460
470
  var pendingAttachments = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
461
471
  if ((0, _native.isImageMediaLibraryAvailable)()) {
462
472
  setSelectedFiles([]);
@@ -474,26 +484,26 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
474
484
  if (value.editing) {
475
485
  value.clearEditingState();
476
486
  }
477
- };
478
- var mapImageUploadToAttachment = function mapImageUploadToAttachment(image) {
479
- var mime_type = (0, _mimeTypes.lookup)(image.file.name);
480
- var name = image.file.name;
487
+ });
488
+ var mapImageUploadToAttachment = useStableCallback(function (image) {
481
489
  return {
482
- fallback: name,
490
+ fallback: image.file.name,
483
491
  image_url: image.url,
484
- mime_type: mime_type ? mime_type : undefined,
485
- original_height: image.height,
486
- original_width: image.width,
492
+ mime_type: image.file.type,
493
+ original_height: image.file.height,
494
+ original_width: image.file.width,
487
495
  originalImage: image.file,
488
496
  type: _types.FileTypes.Image
489
497
  };
490
- };
491
- var mapFileUploadToAttachment = function mapFileUploadToAttachment(file) {
498
+ });
499
+ var mapFileUploadToAttachment = useStableCallback(function (file) {
492
500
  if (file.type === _types.FileTypes.Image) {
493
501
  return {
494
502
  fallback: file.file.name,
495
503
  image_url: file.url,
496
- mime_type: file.file.mimeType,
504
+ mime_type: file.file.type,
505
+ original_height: file.file.height,
506
+ original_width: file.file.width,
497
507
  originalFile: file.file,
498
508
  type: _types.FileTypes.Image
499
509
  };
@@ -502,7 +512,7 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
502
512
  asset_url: file.url || file.file.uri,
503
513
  duration: file.file.duration,
504
514
  file_size: file.file.size,
505
- mime_type: file.file.mimeType,
515
+ mime_type: file.file.type,
506
516
  originalFile: file.file,
507
517
  title: file.file.name,
508
518
  type: _types.FileTypes.Audio
@@ -512,7 +522,7 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
512
522
  asset_url: file.url || file.file.uri,
513
523
  duration: file.file.duration,
514
524
  file_size: file.file.size,
515
- mime_type: file.file.mimeType,
525
+ mime_type: file.file.type,
516
526
  originalFile: file.file,
517
527
  thumb_url: file.thumb_url,
518
528
  title: file.file.name,
@@ -523,7 +533,7 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
523
533
  asset_url: file.url || file.file.uri,
524
534
  duration: file.file.duration,
525
535
  file_size: file.file.size,
526
- mime_type: file.file.mimeType,
536
+ mime_type: file.file.type,
527
537
  originalFile: file.file,
528
538
  title: file.file.name,
529
539
  type: _types.FileTypes.VoiceRecording,
@@ -533,269 +543,268 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
533
543
  return {
534
544
  asset_url: file.url || file.file.uri,
535
545
  file_size: file.file.size,
536
- mime_type: file.file.mimeType,
546
+ mime_type: file.file.type,
537
547
  originalFile: file.file,
538
548
  title: file.file.name,
539
549
  type: _types.FileTypes.File
540
550
  };
541
551
  }
542
- };
543
- var sendMessage = function () {
544
- var _ref7 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6() {
545
- var _ref8,
546
- customMessageData,
547
- linkInfos,
548
- prevText,
549
- attachments,
550
- _loop,
551
- _ret,
552
- _iterator3,
553
- _step3,
554
- image,
555
- _iterator4,
556
- _step4,
557
- file,
558
- message,
559
- updatedMessage,
560
- updateMessagePromise,
561
- _args7 = arguments;
562
- return _regenerator["default"].wrap(function _callee6$(_context7) {
563
- while (1) switch (_context7.prev = _context7.next) {
564
- case 0:
565
- _ref8 = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : {}, customMessageData = _ref8.customMessageData;
566
- if (!sending.current) {
567
- _context7.next = 3;
568
- break;
569
- }
570
- return _context7.abrupt("return");
571
- case 3:
572
- linkInfos = (0, _parseLinks.parseLinksFromText)(text);
573
- if (!(!channelCapabities.sendLinks && linkInfos.length > 0)) {
574
- _context7.next = 7;
575
- break;
576
- }
577
- _reactNative.Alert.alert(t('Links are disabled'), t('Sending links is not allowed in this conversation'));
578
- return _context7.abrupt("return");
579
- case 7:
580
- sending.current = true;
581
- startCooldown();
582
- prevText = giphyEnabled && giphyActive ? "/giphy ".concat(text) : text;
583
- setText('');
584
- if (inputBoxRef.current) {
585
- inputBoxRef.current.clear();
586
- }
587
- attachments = [];
588
- _loop = _regenerator["default"].mark(function _loop(image) {
589
- return _regenerator["default"].wrap(function _loop$(_context6) {
590
- while (1) switch (_context6.prev = _context6.next) {
591
- case 0:
592
- if (!enableOfflineSupport) {
593
- _context6.next = 5;
594
- break;
595
- }
596
- if (!(image.state === _utils2.FileState.NOT_SUPPORTED)) {
597
- _context6.next = 3;
598
- break;
599
- }
600
- return _context6.abrupt("return", {
601
- v: void 0
602
- });
603
- case 3:
604
- attachments.push(mapImageUploadToAttachment(image));
605
- return _context6.abrupt("return", 0);
606
- case 5:
607
- if (!((!image || image.state === _utils2.FileState.UPLOAD_FAILED) && !enableOfflineSupport)) {
608
- _context6.next = 7;
609
- break;
610
- }
611
- return _context6.abrupt("return", 0);
612
- case 7:
613
- if (!(image.state === _utils2.FileState.UPLOADING)) {
614
- _context6.next = 14;
615
- break;
616
- }
617
- if (!value.sendImageAsync) {
618
- _context6.next = 12;
619
- break;
620
- }
621
- setAsyncIds(function (prevAsyncIds) {
622
- return [].concat((0, _toConsumableArray2["default"])(prevAsyncIds), [image.id]);
623
- });
552
+ });
553
+ var sendMessage = useStableCallback((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6() {
554
+ var _ref8,
555
+ customMessageData,
556
+ linkInfos,
557
+ prevText,
558
+ attachments,
559
+ _loop,
560
+ _ret,
561
+ _iterator3,
562
+ _step3,
563
+ image,
564
+ _iterator4,
565
+ _step4,
566
+ file,
567
+ message,
568
+ updatedMessage,
569
+ updateMessagePromise,
570
+ _args7 = arguments;
571
+ return _regenerator["default"].wrap(function _callee6$(_context7) {
572
+ while (1) switch (_context7.prev = _context7.next) {
573
+ case 0:
574
+ _ref8 = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : {}, customMessageData = _ref8.customMessageData;
575
+ if (!sending.current) {
576
+ _context7.next = 3;
577
+ break;
578
+ }
579
+ return _context7.abrupt("return");
580
+ case 3:
581
+ linkInfos = (0, _parseLinks.parseLinksFromText)(text);
582
+ if (!(!channelCapabities.sendLinks && linkInfos.length > 0)) {
583
+ _context7.next = 7;
584
+ break;
585
+ }
586
+ _reactNative.Alert.alert(t('Links are disabled'), t('Sending links is not allowed in this conversation'));
587
+ return _context7.abrupt("return");
588
+ case 7:
589
+ sending.current = true;
590
+ startCooldown();
591
+ prevText = giphyEnabled && giphyActive ? "/giphy ".concat(text) : text;
592
+ setText('');
593
+ if (inputBoxRef.current) {
594
+ inputBoxRef.current.clear();
595
+ }
596
+ attachments = [];
597
+ _loop = _regenerator["default"].mark(function _loop(image) {
598
+ return _regenerator["default"].wrap(function _loop$(_context6) {
599
+ while (1) switch (_context6.prev = _context6.next) {
600
+ case 0:
601
+ if (!enableOfflineSupport) {
602
+ _context6.next = 5;
603
+ break;
604
+ }
605
+ if (!(image.state === _utils2.FileState.NOT_SUPPORTED)) {
606
+ _context6.next = 3;
607
+ break;
608
+ }
609
+ return _context6.abrupt("return", {
610
+ v: void 0
611
+ });
612
+ case 3:
613
+ attachments.push(mapImageUploadToAttachment(image));
614
+ return _context6.abrupt("return", 0);
615
+ case 5:
616
+ if (!((!image || image.state === _utils2.FileState.UPLOAD_FAILED) && !enableOfflineSupport)) {
617
+ _context6.next = 7;
618
+ break;
619
+ }
620
+ return _context6.abrupt("return", 0);
621
+ case 7:
622
+ if (!(image.state === _utils2.FileState.UPLOADING)) {
624
623
  _context6.next = 14;
625
624
  break;
626
- case 12:
627
- sending.current = false;
628
- return _context6.abrupt("return", {
629
- v: setText(prevText)
630
- });
631
- case 14:
632
- if (image.state === _utils2.FileState.UPLOADED || image.state === _utils2.FileState.FINISHED) {
633
- attachments.push(mapImageUploadToAttachment(image));
634
- }
635
- case 15:
636
- case "end":
637
- return _context6.stop();
638
- }
639
- }, _loop);
640
- });
641
- _iterator3 = _createForOfIteratorHelper(imageUploads);
642
- _context7.prev = 15;
643
- _iterator3.s();
644
- case 17:
645
- if ((_step3 = _iterator3.n()).done) {
646
- _context7.next = 27;
647
- break;
648
- }
649
- image = _step3.value;
650
- return _context7.delegateYield(_loop(image), "t0", 20);
651
- case 20:
652
- _ret = _context7.t0;
653
- if (!(_ret === 0)) {
654
- _context7.next = 23;
655
- break;
656
- }
657
- return _context7.abrupt("continue", 25);
658
- case 23:
659
- if (!_ret) {
660
- _context7.next = 25;
661
- break;
662
- }
663
- return _context7.abrupt("return", _ret.v);
664
- case 25:
665
- _context7.next = 17;
625
+ }
626
+ if (!value.sendImageAsync) {
627
+ _context6.next = 12;
628
+ break;
629
+ }
630
+ setAsyncIds(function (prevAsyncIds) {
631
+ return [].concat((0, _toConsumableArray2["default"])(prevAsyncIds), [image.id]);
632
+ });
633
+ _context6.next = 14;
634
+ break;
635
+ case 12:
636
+ sending.current = false;
637
+ return _context6.abrupt("return", {
638
+ v: setText(prevText)
639
+ });
640
+ case 14:
641
+ if (image.state === _utils2.FileState.UPLOADED || image.state === _utils2.FileState.FINISHED) {
642
+ attachments.push(mapImageUploadToAttachment(image));
643
+ }
644
+ case 15:
645
+ case "end":
646
+ return _context6.stop();
647
+ }
648
+ }, _loop);
649
+ });
650
+ _iterator3 = _createForOfIteratorHelper(imageUploads);
651
+ _context7.prev = 15;
652
+ _iterator3.s();
653
+ case 17:
654
+ if ((_step3 = _iterator3.n()).done) {
655
+ _context7.next = 27;
666
656
  break;
667
- case 27:
668
- _context7.next = 32;
657
+ }
658
+ image = _step3.value;
659
+ return _context7.delegateYield(_loop(image), "t0", 20);
660
+ case 20:
661
+ _ret = _context7.t0;
662
+ if (!(_ret === 0)) {
663
+ _context7.next = 23;
669
664
  break;
670
- case 29:
671
- _context7.prev = 29;
672
- _context7.t1 = _context7["catch"](15);
673
- _iterator3.e(_context7.t1);
674
- case 32:
675
- _context7.prev = 32;
676
- _iterator3.f();
677
- return _context7.finish(32);
678
- case 35:
679
- _iterator4 = _createForOfIteratorHelper(fileUploads);
680
- _context7.prev = 36;
681
- _iterator4.s();
682
- case 38:
683
- if ((_step4 = _iterator4.n()).done) {
684
- _context7.next = 53;
685
- break;
686
- }
687
- file = _step4.value;
688
- if (!enableOfflineSupport) {
689
- _context7.next = 45;
690
- break;
691
- }
692
- if (!(file.state === _utils2.FileState.NOT_SUPPORTED)) {
693
- _context7.next = 43;
694
- break;
695
- }
696
- return _context7.abrupt("return");
697
- case 43:
698
- attachments.push(mapFileUploadToAttachment(file));
699
- return _context7.abrupt("continue", 51);
700
- case 45:
701
- if (!(!file || file.state === _utils2.FileState.UPLOAD_FAILED)) {
702
- _context7.next = 47;
703
- break;
704
- }
705
- return _context7.abrupt("continue", 51);
706
- case 47:
707
- if (!(file.state === _utils2.FileState.UPLOADING)) {
708
- _context7.next = 50;
709
- break;
710
- }
711
- sending.current = false;
712
- return _context7.abrupt("return");
713
- case 50:
714
- if (file.state === _utils2.FileState.UPLOADED || file.state === _utils2.FileState.FINISHED) {
715
- attachments.push(mapFileUploadToAttachment(file));
716
- }
717
- case 51:
718
- _context7.next = 38;
665
+ }
666
+ return _context7.abrupt("continue", 25);
667
+ case 23:
668
+ if (!_ret) {
669
+ _context7.next = 25;
719
670
  break;
720
- case 53:
721
- _context7.next = 58;
671
+ }
672
+ return _context7.abrupt("return", _ret.v);
673
+ case 25:
674
+ _context7.next = 17;
675
+ break;
676
+ case 27:
677
+ _context7.next = 32;
678
+ break;
679
+ case 29:
680
+ _context7.prev = 29;
681
+ _context7.t1 = _context7["catch"](15);
682
+ _iterator3.e(_context7.t1);
683
+ case 32:
684
+ _context7.prev = 32;
685
+ _iterator3.f();
686
+ return _context7.finish(32);
687
+ case 35:
688
+ _iterator4 = _createForOfIteratorHelper(fileUploads);
689
+ _context7.prev = 36;
690
+ _iterator4.s();
691
+ case 38:
692
+ if ((_step4 = _iterator4.n()).done) {
693
+ _context7.next = 53;
722
694
  break;
723
- case 55:
724
- _context7.prev = 55;
725
- _context7.t2 = _context7["catch"](36);
726
- _iterator4.e(_context7.t2);
727
- case 58:
728
- _context7.prev = 58;
729
- _iterator4.f();
730
- return _context7.finish(58);
731
- case 61:
732
- if (!(!prevText && attachments.length === 0 && !(customMessageData != null && customMessageData.poll_id))) {
733
- _context7.next = 64;
734
- break;
735
- }
736
- sending.current = false;
737
- return _context7.abrupt("return");
738
- case 64:
739
- message = value.editing;
740
- if (!(message && message.type !== 'error')) {
741
- _context7.next = 74;
742
- break;
743
- }
744
- updatedMessage = Object.assign({}, message, {
745
- attachments: attachments,
746
- mentioned_users: mentionedUsers,
747
- quoted_message: undefined,
748
- text: prevText
749
- }, customMessageData);
750
- value.clearEditingState();
751
- updateMessagePromise = value.editMessage((0, _removeReservedFields.removeReservedFields)(updatedMessage)).then(value.clearEditingState);
752
- resetInput(attachments);
753
- (0, _streamChat.logChatPromiseExecution)(updateMessagePromise, 'update message');
754
- sending.current = false;
755
- _context7.next = 90;
695
+ }
696
+ file = _step4.value;
697
+ if (!enableOfflineSupport) {
698
+ _context7.next = 45;
756
699
  break;
757
- case 74:
758
- _context7.prev = 74;
759
- if (!(message && (0, _utils2.isBouncedMessage)(message))) {
760
- _context7.next = 78;
761
- break;
762
- }
700
+ }
701
+ if (!(file.state === _utils2.FileState.NOT_SUPPORTED)) {
702
+ _context7.next = 43;
703
+ break;
704
+ }
705
+ return _context7.abrupt("return");
706
+ case 43:
707
+ attachments.push(mapFileUploadToAttachment(file));
708
+ return _context7.abrupt("continue", 51);
709
+ case 45:
710
+ if (!(!file || file.state === _utils2.FileState.UPLOAD_FAILED)) {
711
+ _context7.next = 47;
712
+ break;
713
+ }
714
+ return _context7.abrupt("continue", 51);
715
+ case 47:
716
+ if (!(file.state === _utils2.FileState.UPLOADING)) {
717
+ _context7.next = 50;
718
+ break;
719
+ }
720
+ sending.current = false;
721
+ return _context7.abrupt("return");
722
+ case 50:
723
+ if (file.state === _utils2.FileState.UPLOADED || file.state === _utils2.FileState.FINISHED) {
724
+ attachments.push(mapFileUploadToAttachment(file));
725
+ }
726
+ case 51:
727
+ _context7.next = 38;
728
+ break;
729
+ case 53:
730
+ _context7.next = 58;
731
+ break;
732
+ case 55:
733
+ _context7.prev = 55;
734
+ _context7.t2 = _context7["catch"](36);
735
+ _iterator4.e(_context7.t2);
736
+ case 58:
737
+ _context7.prev = 58;
738
+ _iterator4.f();
739
+ return _context7.finish(58);
740
+ case 61:
741
+ if (!(!prevText && attachments.length === 0 && !(customMessageData != null && customMessageData.poll_id))) {
742
+ _context7.next = 64;
743
+ break;
744
+ }
745
+ sending.current = false;
746
+ return _context7.abrupt("return");
747
+ case 64:
748
+ message = value.editing;
749
+ if (!(message && message.type !== 'error')) {
750
+ _context7.next = 74;
751
+ break;
752
+ }
753
+ updatedMessage = Object.assign({}, message, {
754
+ attachments: attachments,
755
+ mentioned_users: mentionedUsers.map(function (userId) {
756
+ return {
757
+ id: userId
758
+ };
759
+ }),
760
+ quoted_message: undefined,
761
+ text: prevText
762
+ }, customMessageData);
763
+ value.clearEditingState();
764
+ updateMessagePromise = value.editMessage((0, _removeReservedFields.removeReservedFields)(updatedMessage)).then(value.clearEditingState);
765
+ (0, _streamChat.logChatPromiseExecution)(updateMessagePromise, 'update message');
766
+ resetInput(attachments);
767
+ sending.current = false;
768
+ _context7.next = 90;
769
+ break;
770
+ case 74:
771
+ _context7.prev = 74;
772
+ if (!(message && (0, _utils2.isBouncedMessage)(message))) {
763
773
  _context7.next = 78;
764
- return removeMessage(message);
765
- case 78:
766
- value.sendMessage(Object.assign({
767
- attachments: attachments,
768
- mentioned_users: (0, _uniq["default"])(mentionedUsers),
769
- parent_id: thread == null ? void 0 : thread.id,
770
- quoted_message_id: value.quotedMessage ? value.quotedMessage.id : undefined,
771
- show_in_channel: sendThreadMessageInChannel || undefined,
772
- text: prevText
773
- }, customMessageData));
774
- value.clearQuotedMessageState();
775
- sending.current = false;
776
- resetInput(attachments);
777
- _context7.next = 90;
778
774
  break;
779
- case 84:
780
- _context7.prev = 84;
781
- _context7.t3 = _context7["catch"](74);
782
- sending.current = false;
783
- if (value.quotedMessage && typeof value.quotedMessage !== 'boolean') {
784
- value.setQuotedMessageState(value.quotedMessage);
785
- }
786
- setText(prevText.slice(giphyEnabled && giphyActive ? 7 : 0));
787
- console.log('Failed to send message');
788
- case 90:
789
- case "end":
790
- return _context7.stop();
791
- }
792
- }, _callee6, null, [[15, 29, 32, 35], [36, 55, 58, 61], [74, 84]]);
793
- }));
794
- return function sendMessage() {
795
- return _ref7.apply(this, arguments);
796
- };
797
- }();
798
- var sendMessageAsync = function sendMessageAsync(id) {
775
+ }
776
+ _context7.next = 78;
777
+ return removeMessage(message);
778
+ case 78:
779
+ value.sendMessage(Object.assign({
780
+ attachments: attachments,
781
+ mentioned_users: (0, _uniq["default"])(mentionedUsers),
782
+ parent_id: thread == null ? void 0 : thread.id,
783
+ quoted_message_id: value.quotedMessage ? value.quotedMessage.id : undefined,
784
+ show_in_channel: sendThreadMessageInChannel || undefined,
785
+ text: prevText
786
+ }, customMessageData));
787
+ value.clearQuotedMessageState();
788
+ sending.current = false;
789
+ resetInput(attachments);
790
+ _context7.next = 90;
791
+ break;
792
+ case 84:
793
+ _context7.prev = 84;
794
+ _context7.t3 = _context7["catch"](74);
795
+ sending.current = false;
796
+ if (value.quotedMessage && typeof value.quotedMessage !== 'boolean') {
797
+ value.setQuotedMessageState(value.quotedMessage);
798
+ }
799
+ setText(prevText.slice(giphyEnabled && giphyActive ? 7 : 0));
800
+ console.log('Failed to send message');
801
+ case 90:
802
+ case "end":
803
+ return _context7.stop();
804
+ }
805
+ }, _callee6, null, [[15, 29, 32, 35], [36, 55, 58, 61], [74, 84]]);
806
+ })));
807
+ var sendMessageAsync = useStableCallback(function (id) {
799
808
  var image = asyncUploads[id];
800
809
  if (!image || image.state === _utils2.FileState.UPLOAD_FAILED) {
801
810
  return;
@@ -829,29 +838,29 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
829
838
  console.log('Failed');
830
839
  }
831
840
  }
832
- };
833
- var setInputBoxRef = function setInputBoxRef(ref) {
841
+ });
842
+ var setInputBoxRef = useStableCallback(function (ref) {
834
843
  inputBoxRef.current = ref;
835
844
  if (value.setInputRef) {
836
845
  value.setInputRef(ref);
837
846
  }
838
- };
839
- var getTriggerSettings = function getTriggerSettings() {
847
+ });
848
+ var triggerSettings = (0, _react.useMemo)(function () {
840
849
  try {
841
850
  var _triggerSettings = {};
842
851
  if (channel) {
843
- if (value.autoCompleteTriggerSettings) {
844
- _triggerSettings = value.autoCompleteTriggerSettings({
852
+ if (autoCompleteTriggerSettings) {
853
+ _triggerSettings = autoCompleteTriggerSettings({
845
854
  channel: channel,
846
855
  client: client,
847
- emojiSearchIndex: value.emojiSearchIndex,
856
+ emojiSearchIndex: emojiSearchIndex,
848
857
  onMentionSelectItem: onSelectItem
849
858
  });
850
859
  } else {
851
860
  _triggerSettings = (0, _ACITriggerSettings.ACITriggerSettings)({
852
861
  channel: channel,
853
862
  client: client,
854
- emojiSearchIndex: value.emojiSearchIndex,
863
+ emojiSearchIndex: emojiSearchIndex,
855
864
  onMentionSelectItem: onSelectItem
856
865
  });
857
866
  }
@@ -861,44 +870,38 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
861
870
  console.warn('Error in getting trigger settings', error);
862
871
  throw error;
863
872
  }
864
- };
865
- var triggerSettings = getTriggerSettings();
866
- var updateMessage = function () {
867
- var _ref9 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7() {
868
- return _regenerator["default"].wrap(function _callee7$(_context8) {
869
- while (1) switch (_context8.prev = _context8.next) {
870
- case 0:
871
- _context8.prev = 0;
872
- if (!value.editing) {
873
- _context8.next = 4;
874
- break;
875
- }
873
+ }, [channel, client, onSelectItem, autoCompleteTriggerSettings, emojiSearchIndex]);
874
+ var updateMessage = useStableCallback((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7() {
875
+ return _regenerator["default"].wrap(function _callee7$(_context8) {
876
+ while (1) switch (_context8.prev = _context8.next) {
877
+ case 0:
878
+ _context8.prev = 0;
879
+ if (!value.editing) {
876
880
  _context8.next = 4;
877
- return client.updateMessage(Object.assign({}, value.editing, {
878
- quoted_message: undefined,
879
- text: giphyEnabled && giphyActive ? "/giphy ".concat(text) : text
880
- }));
881
- case 4:
882
- value.clearEditingState();
883
- resetInput();
884
- _context8.next = 11;
885
881
  break;
886
- case 8:
887
- _context8.prev = 8;
888
- _context8.t0 = _context8["catch"](0);
889
- console.log(_context8.t0);
890
- case 11:
891
- case "end":
892
- return _context8.stop();
893
- }
894
- }, _callee7, null, [[0, 8]]);
895
- }));
896
- return function updateMessage() {
897
- return _ref9.apply(this, arguments);
898
- };
899
- }();
882
+ }
883
+ _context8.next = 4;
884
+ return client.updateMessage(Object.assign({}, value.editing, {
885
+ quoted_message: undefined,
886
+ text: giphyEnabled && giphyActive ? "/giphy ".concat(text) : text
887
+ }));
888
+ case 4:
889
+ value.clearEditingState();
890
+ resetInput();
891
+ _context8.next = 11;
892
+ break;
893
+ case 8:
894
+ _context8.prev = 8;
895
+ _context8.t0 = _context8["catch"](0);
896
+ console.log(_context8.t0);
897
+ case 11:
898
+ case "end":
899
+ return _context8.stop();
900
+ }
901
+ }, _callee7, null, [[0, 8]]);
902
+ })));
900
903
  var regexCondition = /File (extension \.\w{2,4}|type \S+) is not supported/;
901
- var getUploadSetStateAction = function getUploadSetStateAction(id, fileState) {
904
+ var getUploadSetStateAction = useStableCallback(function (id, fileState) {
902
905
  var extraData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
903
906
  return function (prevUploads) {
904
907
  return prevUploads.map(function (prevUpload) {
@@ -910,8 +913,8 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
910
913
  return prevUpload;
911
914
  });
912
915
  };
913
- };
914
- var handleFileOrImageUploadError = function handleFileOrImageUploadError(error, isImageError, id) {
916
+ });
917
+ var handleFileOrImageUploadError = useStableCallback(function (error, isImageError, id) {
915
918
  if (isImageError) {
916
919
  setNumberOfUploads(function (prevNumberOfUploads) {
917
920
  return prevNumberOfUploads - 1;
@@ -933,10 +936,10 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
933
936
  return setFileUploads(getUploadSetStateAction(id, _utils2.FileState.UPLOAD_FAILED));
934
937
  }
935
938
  }
936
- };
937
- var uploadFile = function () {
939
+ });
940
+ var uploadFile = useStableCallback(function () {
938
941
  var _ref11 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee8(_ref10) {
939
- var newFile, file, id, filename, response, _file$mimeType, compressedUri, extraData;
942
+ var newFile, file, id, filename, response, _file$type, compressedUri, extraData;
940
943
  return _regenerator["default"].wrap(function _callee8$(_context9) {
941
944
  while (1) switch (_context9.prev = _context9.next) {
942
945
  case 0:
@@ -962,7 +965,7 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
962
965
  break;
963
966
  }
964
967
  uploadAbortControllerRef.current.set(filename, client.createAbortControllerForNextRequest());
965
- if (!((_file$mimeType = file.mimeType) != null && _file$mimeType.includes('image'))) {
968
+ if (!((_file$type = file.type) != null && _file$type.includes('image'))) {
966
969
  _context9.next = 23;
967
970
  break;
968
971
  }
@@ -971,14 +974,14 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
971
974
  case 17:
972
975
  compressedUri = _context9.sent;
973
976
  _context9.next = 20;
974
- return channel.sendFile(compressedUri, filename, file.mimeType);
977
+ return channel.sendFile(compressedUri, filename, file.type);
975
978
  case 20:
976
979
  response = _context9.sent;
977
980
  _context9.next = 26;
978
981
  break;
979
982
  case 23:
980
983
  _context9.next = 25;
981
- return channel.sendFile(file.uri, filename, file.mimeType);
984
+ return channel.sendFile(file.uri, filename, file.type);
982
985
  case 25:
983
986
  response = _context9.sent;
984
987
  case 26:
@@ -1008,14 +1011,14 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
1008
1011
  }
1009
1012
  }, _callee8, null, [[5, 31]]);
1010
1013
  }));
1011
- return function uploadFile(_x4) {
1014
+ return function (_x4) {
1012
1015
  return _ref11.apply(this, arguments);
1013
1016
  };
1014
- }();
1015
- var uploadImage = function () {
1017
+ }());
1018
+ var uploadImage = useStableCallback(function () {
1016
1019
  var _ref13 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee9(_ref12) {
1017
1020
  var _file$name;
1018
- var newImage, _ref14, file, id, response, uri, filename, compressedUri, contentType, newImageUploads;
1021
+ var newImage, _ref14, file, id, response, uri, filename, contentType, newImageUploads;
1019
1022
  return _regenerator["default"].wrap(function _callee9$(_context10) {
1020
1023
  while (1) switch (_context10.prev = _context10.next) {
1021
1024
  case 0:
@@ -1031,32 +1034,28 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
1031
1034
  uri = file.uri || '';
1032
1035
  filename = escapeRegExp((_file$name = file.name) != null ? _file$name : (0, _utils2.getFileNameFromPath)(uri));
1033
1036
  _context10.prev = 7;
1034
- _context10.next = 10;
1035
- return (0, _compressImage.compressedImageURI)(file, value.compressImageQuality);
1036
- case 10:
1037
- compressedUri = _context10.sent;
1038
- contentType = (0, _mimeTypes.lookup)(filename) || 'multipart/form-data';
1037
+ contentType = file.type || 'multipart/form-data';
1039
1038
  if (!value.doImageUploadRequest) {
1040
- _context10.next = 18;
1039
+ _context10.next = 15;
1041
1040
  break;
1042
1041
  }
1043
- _context10.next = 15;
1042
+ _context10.next = 12;
1044
1043
  return value.doImageUploadRequest(file, channel);
1045
- case 15:
1044
+ case 12:
1046
1045
  response = _context10.sent;
1047
- _context10.next = 29;
1046
+ _context10.next = 26;
1048
1047
  break;
1049
- case 18:
1050
- if (!(compressedUri && channel)) {
1051
- _context10.next = 29;
1048
+ case 15:
1049
+ if (!channel) {
1050
+ _context10.next = 26;
1052
1051
  break;
1053
1052
  }
1054
1053
  if (!value.sendImageAsync) {
1055
- _context10.next = 24;
1054
+ _context10.next = 21;
1056
1055
  break;
1057
1056
  }
1058
1057
  uploadAbortControllerRef.current.set(filename, client.createAbortControllerForNextRequest());
1059
- channel.sendImage(compressedUri, filename, contentType).then(function (res) {
1058
+ channel.sendImage(file.uri, filename, contentType).then(function (res) {
1060
1059
  uploadAbortControllerRef.current["delete"](filename);
1061
1060
  if (asyncIds.includes(id)) {
1062
1061
  setAsyncUploads(function (prevAsyncUploads) {
@@ -1075,16 +1074,16 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
1075
1074
  }, function () {
1076
1075
  uploadAbortControllerRef.current["delete"](filename);
1077
1076
  });
1078
- _context10.next = 29;
1077
+ _context10.next = 26;
1079
1078
  break;
1080
- case 24:
1079
+ case 21:
1081
1080
  uploadAbortControllerRef.current.set(filename, client.createAbortControllerForNextRequest());
1082
- _context10.next = 27;
1083
- return channel.sendImage(compressedUri, filename, contentType);
1084
- case 27:
1081
+ _context10.next = 24;
1082
+ return channel.sendImage(file.uri, filename, contentType);
1083
+ case 24:
1085
1084
  response = _context10.sent;
1086
1085
  uploadAbortControllerRef.current["delete"](filename);
1087
- case 29:
1086
+ case 26:
1088
1087
  if (Object.keys(response).length) {
1089
1088
  newImageUploads = getUploadSetStateAction(id, _utils2.FileState.UPLOADED, {
1090
1089
  height: file.height,
@@ -1093,32 +1092,32 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
1093
1092
  });
1094
1093
  setImageUploads(newImageUploads);
1095
1094
  }
1096
- _context10.next = 38;
1095
+ _context10.next = 35;
1097
1096
  break;
1098
- case 32:
1099
- _context10.prev = 32;
1097
+ case 29:
1098
+ _context10.prev = 29;
1100
1099
  _context10.t0 = _context10["catch"](7);
1101
1100
  if (!(_context10.t0 instanceof Error && (_context10.t0.name === 'AbortError' || _context10.t0.name === 'CanceledError'))) {
1102
- _context10.next = 37;
1101
+ _context10.next = 34;
1103
1102
  break;
1104
1103
  }
1105
1104
  uploadAbortControllerRef.current["delete"](filename);
1106
1105
  return _context10.abrupt("return");
1107
- case 37:
1106
+ case 34:
1108
1107
  handleFileOrImageUploadError(_context10.t0, true, id);
1109
- case 38:
1108
+ case 35:
1110
1109
  case "end":
1111
1110
  return _context10.stop();
1112
1111
  }
1113
- }, _callee9, null, [[7, 32]]);
1112
+ }, _callee9, null, [[7, 29]]);
1114
1113
  }));
1115
- return function uploadImage(_x5) {
1114
+ return function (_x5) {
1116
1115
  return _ref13.apply(this, arguments);
1117
1116
  };
1118
- }();
1119
- var uploadNewFile = function () {
1120
- var _ref15 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee10(file) {
1121
- var _file$mimeType2, id, fileConfig, size_limit, isAllowed, sizeLimit, fileState, fileType, newFile;
1117
+ }());
1118
+ var uploadNewFile = useStableCallback(function () {
1119
+ var _ref15 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee10(file, fileType) {
1120
+ var id, fileConfig, size_limit, isAllowed, sizeLimit, fileState, derivedFileType, newFile;
1122
1121
  return _regenerator["default"].wrap(function _callee10$(_context11) {
1123
1122
  while (1) switch (_context11.prev = _context11.next) {
1124
1123
  case 0:
@@ -1145,13 +1144,15 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
1145
1144
  return _context11.abrupt("return");
1146
1145
  case 10:
1147
1146
  fileState = isAllowed ? _utils2.FileState.UPLOADING : _utils2.FileState.NOT_SUPPORTED;
1148
- fileType = file.type || ((_file$mimeType2 = file.mimeType) == null ? void 0 : _file$mimeType2.split('/')[0]);
1147
+ derivedFileType = fileType != null ? fileType : (0, _utils2.getFileTypeFromMimeType)(file.type);
1149
1148
  newFile = {
1150
1149
  duration: file.duration || 0,
1151
1150
  file: file,
1152
- id: file.id || id,
1151
+ id: id,
1152
+ mime_type: file.type,
1153
1153
  state: fileState,
1154
- type: fileType,
1154
+ thumb_url: file.thumb_url,
1155
+ type: derivedFileType,
1155
1156
  url: file.uri
1156
1157
  };
1157
1158
  _context11.next = 15;
@@ -1182,11 +1183,11 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
1182
1183
  }
1183
1184
  }, _callee10, null, [[0, 20]]);
1184
1185
  }));
1185
- return function uploadNewFile(_x6) {
1186
+ return function (_x6, _x7) {
1186
1187
  return _ref15.apply(this, arguments);
1187
1188
  };
1188
- }();
1189
- var uploadNewImage = function () {
1189
+ }());
1190
+ var uploadNewImage = useStableCallback(function () {
1190
1191
  var _ref16 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee11(image) {
1191
1192
  var id, imageUploadConfig, size_limit, isAllowed, sizeLimit, imageState, newImage;
1192
1193
  return _regenerator["default"].wrap(function _callee11$(_context12) {
@@ -1219,7 +1220,9 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
1219
1220
  file: image,
1220
1221
  height: image.height,
1221
1222
  id: id,
1223
+ mime_type: image.type,
1222
1224
  state: imageState,
1225
+ type: _types.FileTypes.Image,
1223
1226
  url: image.uri,
1224
1227
  width: image.width
1225
1228
  };
@@ -1251,11 +1254,11 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
1251
1254
  }
1252
1255
  }, _callee11, null, [[0, 19]]);
1253
1256
  }));
1254
- return function uploadNewImage(_x7) {
1257
+ return function (_x8) {
1255
1258
  return _ref16.apply(this, arguments);
1256
1259
  };
1257
- }();
1258
- var openPollCreationDialog = function openPollCreationDialog() {
1260
+ }());
1261
+ var openPollCreationDialog = useStableCallback(function () {
1259
1262
  if (openPollCreationDialogFromContext) {
1260
1263
  openPollCreationDialogFromContext({
1261
1264
  sendMessage: sendMessage
@@ -1263,7 +1266,7 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
1263
1266
  return;
1264
1267
  }
1265
1268
  defaultOpenPollCreationDialog();
1266
- };
1269
+ });
1267
1270
  var messageInputContext = (0, _useCreateMessageInputContext.useCreateMessageInputContext)(Object.assign({
1268
1271
  appendText: appendText,
1269
1272
  asyncIds: asyncIds,
@@ -1272,6 +1275,7 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
1272
1275
  cooldownEndsAt: cooldownEndsAt,
1273
1276
  fileUploads: fileUploads,
1274
1277
  giphyActive: giphyActive,
1278
+ giphyEnabled: giphyEnabled,
1275
1279
  imageUploads: imageUploads,
1276
1280
  inputBoxRef: inputBoxRef,
1277
1281
  isValidMessage: isValidMessage,
@@ -1316,6 +1320,7 @@ var MessageInputProvider = exports.MessageInputProvider = function MessageInputP
1316
1320
  uploadNewImage: uploadNewImage
1317
1321
  }, value, {
1318
1322
  closePollCreationDialog: closePollCreationDialog,
1323
+ hasText: !!text,
1319
1324
  openPollCreationDialog: openPollCreationDialog,
1320
1325
  sendMessage: sendMessage,
1321
1326
  showPollCreationDialog: showPollCreationDialog,
@@ -1333,4 +1338,11 @@ var useMessageInputContext = exports.useMessageInputContext = function useMessag
1333
1338
  }
1334
1339
  return contextValue;
1335
1340
  };
1341
+ var useStableCallback = function useStableCallback(callback) {
1342
+ var ref = (0, _react.useRef)(callback);
1343
+ ref.current = callback;
1344
+ return (0, _react.useCallback)(function () {
1345
+ return ref.current.apply(ref, arguments);
1346
+ }, []);
1347
+ };
1336
1348
  //# sourceMappingURL=MessageInputContext.js.map