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
@@ -114,7 +114,9 @@ const FileAttachmentGroupWithContext = (props: FileAttachmentGroupPropsWithConte
114
114
  duration: file.duration,
115
115
  file: {
116
116
  name: file.title as string,
117
- uri: file.asset_url,
117
+ size: file.file_size || 0,
118
+ type: file.mime_type || '',
119
+ uri: file.asset_url || '',
118
120
  waveform_data: file.waveform_data,
119
121
  },
120
122
  id: index.toString(),
@@ -1,10 +1,9 @@
1
1
  import React, { useMemo } from 'react';
2
2
  import { Pressable, StyleSheet, Text, View } from 'react-native';
3
3
 
4
- import type { Attachment } from 'stream-chat';
4
+ import type { Attachment, LocalMessage } from 'stream-chat';
5
5
 
6
6
  import { GalleryImage } from './GalleryImage';
7
- import { ImageReloadIndicator } from './ImageReloadIndicator';
8
7
  import { buildGallery } from './utils/buildGallery/buildGallery';
9
8
 
10
9
  import type { Thumbnail } from './utils/buildGallery/types';
@@ -12,7 +11,7 @@ import { getGalleryImageBorderRadius } from './utils/getGalleryImageBorderRadius
12
11
 
13
12
  import { openUrlSafely } from './utils/openUrlSafely';
14
13
 
15
- import type { MessageType } from '../../components/MessageList/hooks/useMessageList';
14
+ import { useTranslationContext } from '../../contexts';
16
15
  import { useChatConfigContext } from '../../contexts/chatConfigContext/ChatConfigContext';
17
16
  import {
18
17
  ImageGalleryContextValue,
@@ -59,6 +58,7 @@ export type GalleryPropsWithContext = Pick<
59
58
  | 'VideoThumbnail'
60
59
  | 'ImageLoadingIndicator'
61
60
  | 'ImageLoadingFailedIndicator'
61
+ | 'ImageReloadIndicator'
62
62
  | 'myMessageTheme'
63
63
  > &
64
64
  Pick<OverlayContextValue, 'setOverlay'> & {
@@ -76,7 +76,7 @@ export type GalleryPropsWithContext = Pick<
76
76
  *
77
77
  * TODO: Fix circular dependencies of imports
78
78
  */
79
- message?: MessageType;
79
+ message?: LocalMessage;
80
80
  };
81
81
 
82
82
  const GalleryWithContext = (props: GalleryPropsWithContext) => {
@@ -87,6 +87,7 @@ const GalleryWithContext = (props: GalleryPropsWithContext) => {
87
87
  hasThreadReplies,
88
88
  ImageLoadingFailedIndicator,
89
89
  ImageLoadingIndicator,
90
+ ImageReloadIndicator,
90
91
  images,
91
92
  legacyImageViewerSwipeBehaviour,
92
93
  message,
@@ -204,6 +205,7 @@ const GalleryWithContext = (props: GalleryPropsWithContext) => {
204
205
  colIndex={colIndex}
205
206
  ImageLoadingFailedIndicator={ImageLoadingFailedIndicator}
206
207
  ImageLoadingIndicator={ImageLoadingIndicator}
208
+ ImageReloadIndicator={ImageReloadIndicator}
207
209
  imagesAndVideos={imagesAndVideos}
208
210
  invertedDirections={invertedDirections || false}
209
211
  key={rowIndex}
@@ -241,7 +243,7 @@ type GalleryThumbnailProps = {
241
243
  colIndex: number;
242
244
  imagesAndVideos: Attachment[];
243
245
  invertedDirections: boolean;
244
- message: MessageType;
246
+ message: LocalMessage;
245
247
  numOfColumns: number;
246
248
  numOfRows: number;
247
249
  rowIndex: number;
@@ -253,6 +255,7 @@ type GalleryThumbnailProps = {
253
255
  | 'VideoThumbnail'
254
256
  | 'ImageLoadingIndicator'
255
257
  | 'ImageLoadingFailedIndicator'
258
+ | 'ImageReloadIndicator'
256
259
  > &
257
260
  Pick<ImageGalleryContextValue, 'setSelectedMessage' | 'setMessages'> &
258
261
  Pick<MessageContextValue, 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'> &
@@ -264,6 +267,7 @@ const GalleryThumbnail = ({
264
267
  colIndex,
265
268
  ImageLoadingFailedIndicator,
266
269
  ImageLoadingIndicator,
270
+ ImageReloadIndicator,
267
271
  imagesAndVideos,
268
272
  invertedDirections,
269
273
  legacyImageViewerSwipeBehaviour,
@@ -296,6 +300,7 @@ const GalleryThumbnail = ({
296
300
  },
297
301
  },
298
302
  } = useTheme();
303
+ const { t } = useTranslationContext();
299
304
 
300
305
  const openImageViewer = () => {
301
306
  if (!legacyImageViewerSwipeBehaviour && message) {
@@ -387,6 +392,7 @@ const GalleryThumbnail = ({
387
392
  borderRadius={imageBorderRadius ?? borderRadius}
388
393
  ImageLoadingFailedIndicator={ImageLoadingFailedIndicator}
389
394
  ImageLoadingIndicator={ImageLoadingIndicator}
395
+ ImageReloadIndicator={ImageReloadIndicator}
390
396
  thumbnail={thumbnail}
391
397
  />
392
398
  </View>
@@ -401,7 +407,7 @@ const GalleryThumbnail = ({
401
407
  ]}
402
408
  >
403
409
  <Text style={[styles.moreImagesText, moreImagesText]}>
404
- {`+${imagesAndVideos.length - 4}`}
410
+ {String(t('+{{count}}', { count: imagesAndVideos.length - 4 }))}
405
411
  </Text>
406
412
  </View>
407
413
  ) : null}
@@ -413,10 +419,15 @@ const GalleryImageThumbnail = ({
413
419
  borderRadius,
414
420
  ImageLoadingFailedIndicator,
415
421
  ImageLoadingIndicator,
422
+ ImageReloadIndicator,
416
423
  thumbnail,
417
424
  }: Pick<
418
425
  GalleryThumbnailProps,
419
- 'ImageLoadingFailedIndicator' | 'ImageLoadingIndicator' | 'thumbnail' | 'borderRadius'
426
+ | 'ImageLoadingFailedIndicator'
427
+ | 'ImageLoadingIndicator'
428
+ | 'ImageReloadIndicator'
429
+ | 'thumbnail'
430
+ | 'borderRadius'
420
431
  >) => {
421
432
  const {
422
433
  isLoadingImage,
@@ -564,6 +575,7 @@ export const Gallery = (props: GalleryProps) => {
564
575
  hasThreadReplies,
565
576
  ImageLoadingFailedIndicator: PropImageLoadingFailedIndicator,
566
577
  ImageLoadingIndicator: PropImageLoadingIndicator,
578
+ ImageReloadIndicator: PropImageReloadIndicator,
567
579
  images: propImages,
568
580
  message: propMessage,
569
581
  myMessageTheme: propMyMessageTheme,
@@ -595,6 +607,7 @@ export const Gallery = (props: GalleryProps) => {
595
607
  additionalPressableProps: contextAdditionalPressableProps,
596
608
  ImageLoadingFailedIndicator: ContextImageLoadingFailedIndicator,
597
609
  ImageLoadingIndicator: ContextImageLoadingIndicator,
610
+ ImageReloadIndicator: ContextImageReloadIndicator,
598
611
  legacyImageViewerSwipeBehaviour,
599
612
  myMessageTheme: contextMyMessageTheme,
600
613
  VideoThumbnail: ContextVideoThumnbnail,
@@ -624,6 +637,7 @@ export const Gallery = (props: GalleryProps) => {
624
637
  const ImageLoadingFailedIndicator =
625
638
  PropImageLoadingFailedIndicator || ContextImageLoadingFailedIndicator;
626
639
  const ImageLoadingIndicator = PropImageLoadingIndicator || ContextImageLoadingIndicator;
640
+ const ImageReloadIndicator = PropImageReloadIndicator || ContextImageReloadIndicator;
627
641
  const myMessageTheme = propMyMessageTheme || contextMyMessageTheme;
628
642
 
629
643
  return (
@@ -636,6 +650,7 @@ export const Gallery = (props: GalleryProps) => {
636
650
  hasThreadReplies: hasThreadReplies || !!message?.reply_count,
637
651
  ImageLoadingFailedIndicator,
638
652
  ImageLoadingIndicator,
653
+ ImageReloadIndicator,
639
654
  images,
640
655
  legacyImageViewerSwipeBehaviour,
641
656
  message,
@@ -6,13 +6,12 @@ import { Refresh } from '../../icons';
6
6
 
7
7
  const REFRESH_ICON_SIZE = 24;
8
8
 
9
- export const ImageReloadIndicator = ({
10
- onReloadImage,
11
- style,
12
- }: {
9
+ export type ImageReloadIndicatorProps = {
13
10
  onReloadImage: () => void;
14
11
  style: React.ComponentProps<typeof Pressable>['style'];
15
- }) => {
12
+ };
13
+
14
+ export const ImageReloadIndicator = ({ onReloadImage, style }: ImageReloadIndicatorProps) => {
16
15
  const {
17
16
  theme: {
18
17
  colors: { grey_dark },
@@ -18,7 +18,7 @@ import {
18
18
  import { useTheme } from '../../contexts/themeContext/ThemeContext';
19
19
  import { useScreenDimensions } from '../../hooks/useScreenDimensions';
20
20
  import { NativeHandlers } from '../../native';
21
- import type { Asset } from '../../types/types';
21
+ import type { File } from '../../types/types';
22
22
  import { BottomSheet } from '../BottomSheetCompatibility/BottomSheet';
23
23
  import { BottomSheetFlatList } from '../BottomSheetCompatibility/BottomSheetFlatList';
24
24
 
@@ -108,7 +108,7 @@ export const AttachmentPicker = React.forwardRef(
108
108
  const [iOSLimited, setIosLimited] = useState(false);
109
109
  const hasNextPageRef = useRef(true);
110
110
  const [loadingPhotos, setLoadingPhotos] = useState(false);
111
- const [photos, setPhotos] = useState<Asset[]>([]);
111
+ const [photos, setPhotos] = useState<File[]>([]);
112
112
  const attemptedToLoadPhotosOnOpenRef = useRef(false);
113
113
 
114
114
  const getMorePhotos = useCallback(async () => {
@@ -245,14 +245,8 @@ export const AttachmentPicker = React.forwardRef(
245
245
  numberOfUploads: selectedFiles.length + selectedImages.length,
246
246
  // `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`
247
247
  selected:
248
- selectedImages.some((image) =>
249
- image.id
250
- ? image.id === asset.id
251
- : image.uri === asset.uri || image.originalUri === asset.uri,
252
- ) ||
253
- selectedFiles.some((file) =>
254
- file.id ? file.id === asset.id : file.uri === asset.uri || file.originalUri === asset.uri,
255
- ),
248
+ selectedImages.some((image) => image.uri === asset.uri) ||
249
+ selectedFiles.some((file) => file.uri === asset.uri),
256
250
  selectedFiles,
257
251
  selectedImages,
258
252
  setSelectedFiles,
@@ -2,22 +2,19 @@ import React from 'react';
2
2
 
3
3
  import { Alert, ImageBackground, StyleSheet, Text, View } from 'react-native';
4
4
 
5
- import { lookup } from 'mime-types';
6
-
7
5
  import { AttachmentPickerContextValue } from '../../../contexts/attachmentPickerContext/AttachmentPickerContext';
8
6
  import { useTheme } from '../../../contexts/themeContext/ThemeContext';
9
7
  import { useTranslationContext } from '../../../contexts/translationContext/TranslationContext';
10
8
  import { useViewport } from '../../../hooks/useViewport';
11
9
  import { Recorder } from '../../../icons';
12
- import type { Asset, File } from '../../../types/types';
10
+ import type { File } from '../../../types/types';
13
11
  import { getDurationLabelFromDuration } from '../../../utils/utils';
14
12
  import { BottomSheetTouchableOpacity } from '../../BottomSheetCompatibility/BottomSheetTouchableOpacity';
15
-
16
13
  type AttachmentPickerItemType = Pick<
17
14
  AttachmentPickerContextValue,
18
15
  'selectedFiles' | 'setSelectedFiles' | 'setSelectedImages' | 'selectedImages' | 'maxNumberOfFiles'
19
16
  > & {
20
- asset: Asset;
17
+ asset: File;
21
18
  ImageOverlaySelectedComponent: React.ComponentType;
22
19
  numberOfUploads: number;
23
20
  selected: boolean;
@@ -48,46 +45,25 @@ const AttachmentVideo = (props: AttachmentVideoProps) => {
48
45
  },
49
46
  } = useTheme();
50
47
 
51
- const { duration: videoDuration, id: assetId, originalUri, uri } = asset;
48
+ const { duration: videoDuration, thumb_url, uri } = asset;
52
49
 
53
- const durationLabel = getDurationLabelFromDuration(videoDuration);
50
+ const durationLabel = videoDuration ? getDurationLabelFromDuration(videoDuration) : '00:00';
54
51
 
55
52
  const size = vw(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;
56
53
 
57
- /* Patches video files with uri and mimetype */
58
- const patchVideoFile = (files: File[]) => {
59
- // We need a mime-type to upload a video file.
60
- const mimeType = lookup(asset.name) || 'multipart/form-data';
61
- return [
62
- ...files,
63
- {
64
- duration: asset.duration,
65
- id: asset.id,
66
- mimeType,
67
- name: asset.name,
68
- originalUri,
69
- size: asset.size,
70
- uri,
71
- },
72
- ];
73
- };
74
-
75
54
  const updateSelectedFiles = () => {
76
55
  if (numberOfUploads >= maxNumberOfFiles) {
77
56
  Alert.alert(t('Maximum number of files reached'));
78
57
  return;
79
58
  }
80
- const files = patchVideoFile(selectedFiles);
81
- setSelectedFiles(files);
59
+ setSelectedFiles([...selectedFiles, asset]);
82
60
  };
83
61
 
84
62
  const onPressVideo = () => {
85
63
  if (selected) {
86
64
  setSelectedFiles((files) =>
87
65
  // `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`
88
- files.filter((file) =>
89
- file.id ? file.id !== assetId : file.uri !== uri && file.originalUri !== uri,
90
- ),
66
+ files.filter((file) => file.uri !== uri),
91
67
  );
92
68
  } else {
93
69
  updateSelectedFiles();
@@ -97,7 +73,7 @@ const AttachmentVideo = (props: AttachmentVideoProps) => {
97
73
  return (
98
74
  <BottomSheetTouchableOpacity onPress={onPressVideo}>
99
75
  <ImageBackground
100
- source={{ uri: originalUri }}
76
+ source={{ uri: thumb_url }}
101
77
  style={[
102
78
  {
103
79
  height: size,
@@ -147,7 +123,7 @@ const AttachmentImage = (props: AttachmentImageProps) => {
147
123
 
148
124
  const size = vw(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;
149
125
 
150
- const { id: assetId, originalUri, uri } = asset;
126
+ const { uri } = asset;
151
127
 
152
128
  const updateSelectedImages = () => {
153
129
  if (numberOfUploads >= maxNumberOfFiles) {
@@ -160,11 +136,7 @@ const AttachmentImage = (props: AttachmentImageProps) => {
160
136
  const onPressImage = () => {
161
137
  if (selected) {
162
138
  // `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`
163
- setSelectedImages((images) =>
164
- images.filter((image) =>
165
- assetId ? image.id !== assetId : image.uri !== uri && originalUri !== uri,
166
- ),
167
- );
139
+ setSelectedImages((images) => images.filter((image) => image.uri !== uri));
168
140
  } else {
169
141
  updateSelectedImages();
170
142
  }
@@ -3,10 +3,6 @@ import { I18nManager, StyleSheet, TextInput, TextInputProps } from 'react-native
3
3
 
4
4
  import throttle from 'lodash/throttle';
5
5
 
6
- import {
7
- ChannelContextValue,
8
- useChannelContext,
9
- } from '../../contexts/channelContext/ChannelContext';
10
6
  import {
11
7
  MessageInputContextValue,
12
8
  useMessageInputContext,
@@ -51,22 +47,22 @@ const computeCaretPosition = (token: string, startOfTokenPosition: number) =>
51
47
 
52
48
  const isCommand = (text: string) => text[0] === '/' && text.split(' ').length <= 1;
53
49
 
54
- type AutoCompleteInputPropsWithContext = Pick<ChannelContextValue, 'giphyEnabled'> &
55
- Pick<
56
- MessageInputContextValue,
57
- | 'additionalTextInputProps'
58
- | 'autoCompleteSuggestionsLimit'
59
- | 'giphyActive'
60
- | 'maxMessageLength'
61
- | 'mentionAllAppUsersEnabled'
62
- | 'mentionAllAppUsersQuery'
63
- | 'numberOfLines'
64
- | 'onChange'
65
- | 'setGiphyActive'
66
- | 'setInputBoxRef'
67
- | 'text'
68
- | 'triggerSettings'
69
- > &
50
+ type AutoCompleteInputPropsWithContext = Pick<
51
+ MessageInputContextValue,
52
+ | 'additionalTextInputProps'
53
+ | 'autoCompleteSuggestionsLimit'
54
+ | 'giphyActive'
55
+ | 'giphyEnabled'
56
+ | 'maxMessageLength'
57
+ | 'mentionAllAppUsersEnabled'
58
+ | 'mentionAllAppUsersQuery'
59
+ | 'numberOfLines'
60
+ | 'onChange'
61
+ | 'setGiphyActive'
62
+ | 'setInputBoxRef'
63
+ | 'text'
64
+ | 'triggerSettings'
65
+ > &
70
66
  Pick<SuggestionsContextValue, 'closeSuggestions' | 'openSuggestions' | 'updateSuggestions'> &
71
67
  Pick<TranslationContextValue, 't'> & {
72
68
  /**
@@ -76,7 +72,15 @@ type AutoCompleteInputPropsWithContext = Pick<ChannelContextValue, 'giphyEnabled
76
72
  cooldownActive?: boolean;
77
73
  };
78
74
 
79
- export type AutoCompleteInputProps = Partial<AutoCompleteInputPropsWithContext>;
75
+ export type AutoCompleteInputProps = Partial<
76
+ Omit<
77
+ AutoCompleteInputPropsWithContext,
78
+ | 'triggerSettings'
79
+ | 'mentionAllAppUsersQuery'
80
+ | 'mentionAllAppUsersEnabled'
81
+ | 'autoCompleteSuggestionsLimit'
82
+ >
83
+ >;
80
84
 
81
85
  const AutoCompleteInputWithContext = (props: AutoCompleteInputPropsWithContext) => {
82
86
  const {
@@ -86,9 +90,9 @@ const AutoCompleteInputWithContext = (props: AutoCompleteInputPropsWithContext)
86
90
  cooldownActive = false,
87
91
  giphyActive,
88
92
  giphyEnabled,
89
- maxMessageLength,
90
93
  mentionAllAppUsersEnabled,
91
94
  mentionAllAppUsersQuery,
95
+ maxMessageLength,
92
96
  numberOfLines,
93
97
  onChange,
94
98
  openSuggestions,
@@ -463,8 +467,8 @@ const MemoizedAutoCompleteInput = React.memo(
463
467
  ) as typeof AutoCompleteInputWithContext;
464
468
 
465
469
  export const AutoCompleteInput = (props: AutoCompleteInputProps) => {
466
- const { giphyEnabled } = useChannelContext();
467
470
  const {
471
+ giphyEnabled,
468
472
  additionalTextInputProps,
469
473
  autoCompleteSuggestionsLimit,
470
474
  giphyActive,
@@ -9,6 +9,7 @@ import { generateChannelResponse } from '../../../mock-builders/generator/channe
9
9
  import { generateUser } from '../../../mock-builders/generator/user';
10
10
  import { getTestClientWithUser } from '../../../mock-builders/mock';
11
11
  import { ACITriggerSettings } from '../../../utils/ACITriggerSettings';
12
+ import { Channel } from '../../Channel/Channel';
12
13
  import { Chat } from '../../Chat/Chat';
13
14
  import { AutoCompleteInput } from '../AutoCompleteInput';
14
15
 
@@ -19,18 +20,17 @@ describe('AutoCompleteInput', () => {
19
20
 
20
21
  const getComponent = (props = {}) => (
21
22
  <Chat client={chatClient}>
22
- <SuggestionsProvider value={props}>
23
- <AutoCompleteInput
24
- giphyEnabled
25
- onChange={jest.fn}
26
- text={props.text}
27
- triggerSettings={ACITriggerSettings({
28
- channel,
29
- onMentionSelectItem: jest.fn(),
30
- t: jest.fn(),
31
- })}
32
- />
33
- </SuggestionsProvider>
23
+ <Channel
24
+ channel={channel}
25
+ triggerSettings={ACITriggerSettings({
26
+ channel,
27
+ onMentionSelectItem: jest.fn(),
28
+ t: jest.fn(),
29
+ })}
30
+ >
31
+ <AutoCompleteInput giphyEnabled onChange={jest.fn} text={props.text} />
32
+ <SuggestionsProvider value={props} />
33
+ </Channel>
34
34
  </Chat>
35
35
  );
36
36