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
@@ -18,8 +18,12 @@ exports[`MessageInputContext's sendMessage exit sendMessage when edit message is
18
18
  "html": "<p>regular</p>",
19
19
  "id": "7a85f744-cc89-4f82-a1d4-5456432cc8bf",
20
20
  "mentioned_users": [
21
- "dummy1",
22
- "dummy2",
21
+ {
22
+ "id": "dummy1",
23
+ },
24
+ {
25
+ "id": "dummy2",
26
+ },
23
27
  ],
24
28
  "quoted_message": undefined,
25
29
  "text": "",
@@ -42,7 +46,7 @@ exports[`MessageInputContext's sendMessage exit sendMessage when file upload sta
42
46
  {
43
47
  "asset_url": undefined,
44
48
  "file_size": undefined,
45
- "mime_type": undefined,
49
+ "mime_type": "file",
46
50
  "originalFile": {
47
51
  "name": "dummy.pdf",
48
52
  "state": "uploaded",
@@ -54,7 +58,7 @@ exports[`MessageInputContext's sendMessage exit sendMessage when file upload sta
54
58
  {
55
59
  "asset_url": undefined,
56
60
  "file_size": undefined,
57
- "mime_type": undefined,
61
+ "mime_type": "video/mp4",
58
62
  "originalFile": {
59
63
  "name": "dummy.pdf",
60
64
  "state": "finished",
@@ -66,7 +70,7 @@ exports[`MessageInputContext's sendMessage exit sendMessage when file upload sta
66
70
  {
67
71
  "asset_url": undefined,
68
72
  "file_size": undefined,
69
- "mime_type": undefined,
73
+ "mime_type": "audio/mp3",
70
74
  "originalFile": {
71
75
  "name": "dummy.pdf",
72
76
  "state": "uploaded",
@@ -78,7 +82,7 @@ exports[`MessageInputContext's sendMessage exit sendMessage when file upload sta
78
82
  {
79
83
  "asset_url": undefined,
80
84
  "file_size": undefined,
81
- "mime_type": undefined,
85
+ "mime_type": "image/jpeg",
82
86
  "originalFile": {
83
87
  "name": "dummy.pdf",
84
88
  "state": "finished",
@@ -3,7 +3,8 @@ import { act } from 'react-test-renderer';
3
3
 
4
4
  import { renderHook, waitFor } from '@testing-library/react-native';
5
5
 
6
- import type { MessageType } from '../../../components/MessageList/hooks/useMessageList';
6
+ import { LocalMessage } from 'stream-chat';
7
+
7
8
  import {
8
9
  generateFileUploadPreview,
9
10
  generateImageUploadPreview,
@@ -40,7 +41,7 @@ describe("MessageInputContext's sendMessage", () => {
40
41
  setSelectedFiles: jest.fn(),
41
42
  setSelectedImages: jest.fn(),
42
43
  }));
43
- const message: boolean | MessageType = generateMessage({
44
+ const message: LocalMessage | undefined = generateMessage({
44
45
  created_at: 'Sat Jul 02 2022 23:55:13 GMT+0530 (India Standard Time)',
45
46
  id: '7a85f744-cc89-4f82-a1d4-5456432cc8bf',
46
47
  updated_at: 'Sat Jul 02 2022 23:55:13 GMT+0530 (India Standard Time)',
@@ -49,7 +50,7 @@ describe("MessageInputContext's sendMessage", () => {
49
50
  image: 'fc86ddcb-bac4-400c-9afd-b0c0a1c0cd33',
50
51
  name: '50cbdd0e-ca7e-4478-9e2c-be0f1ac6a995',
51
52
  }),
52
- }) as unknown as MessageType;
53
+ }) as unknown as LocalMessage;
53
54
 
54
55
  it('exit sendMessage when file upload status failed', async () => {
55
56
  const initialProps = {
@@ -223,7 +224,7 @@ describe("MessageInputContext's sendMessage", () => {
223
224
  it('exit sendMessage when image upload has an error and catch block is executed', () => {
224
225
  const setQuotedMessageStateMock = jest.fn();
225
226
  const clearQuotedMessageStateMock = jest.fn();
226
- const generatedQuotedMessage: boolean | MessageType = message;
227
+ const generatedQuotedMessage: boolean | LocalMessage = message;
227
228
  const images = [
228
229
  generateImageUploadPreview({ state: FileState.UPLOADED }),
229
230
  generateImageUploadPreview({ state: FileState.FINISHED }),
@@ -268,7 +269,7 @@ describe("MessageInputContext's sendMessage", () => {
268
269
  const clearEditingStateMock = jest.fn();
269
270
  const editMessageMock = jest.fn().mockResolvedValue({ data: {} });
270
271
  const images = generateImageUploadPreview({ state: FileState.UPLOADED });
271
- const generatedMessage: boolean | MessageType = message;
272
+ const generatedMessage: boolean | LocalMessage = message;
272
273
  const initialProps = {
273
274
  clearEditingState: clearEditingStateMock,
274
275
  clearQuotedMessageState: clearQuotedMessageStateMock,
@@ -3,9 +3,7 @@ import { act } from 'react-test-renderer';
3
3
 
4
4
  import { renderHook } from '@testing-library/react-native';
5
5
 
6
- import type { StreamChat } from 'stream-chat';
7
-
8
- import type { MessageType } from '../../../components/MessageList/hooks/useMessageList';
6
+ import type { LocalMessage, StreamChat } from 'stream-chat';
9
7
 
10
8
  import { ChatContextValue, ChatProvider } from '../../../contexts/chatContext/ChatContext';
11
9
  import { generateMessage } from '../../../mock-builders/generator/message';
@@ -51,7 +49,7 @@ describe("MessageInputContext's updateMessage", () => {
51
49
  setSelectedImages: jest.fn(),
52
50
  }));
53
51
  const clearEditingStateMock = jest.fn();
54
- const generatedMessage: boolean | MessageType = generateMessage({
52
+ const generatedMessage: boolean | LocalMessage = generateMessage({
55
53
  created_at: 'Sat Jul 02 2022 23:55:13 GMT+0530 (India Standard Time)',
56
54
  id: '7a85f744-cc89-4f82-a1d4-5456432cc8bf',
57
55
  text: 'hey',
@@ -61,7 +59,7 @@ describe("MessageInputContext's updateMessage", () => {
61
59
  image: 'fc86ddcb-bac4-400c-9afd-b0c0a1c0cd33',
62
60
  name: '50cbdd0e-ca7e-4478-9e2c-be0f1ac6a995',
63
61
  }),
64
- }) as unknown as MessageType;
62
+ }) as unknown as LocalMessage;
65
63
 
66
64
  it('updateMessage throws error as clearEditingState is not available', async () => {
67
65
  const initialProps = {
@@ -1,6 +1,6 @@
1
1
  import { renderHook } from '@testing-library/react-native';
2
2
 
3
- import type { MessageType } from '../../../components';
3
+ import { LocalMessage } from 'stream-chat';
4
4
 
5
5
  import {
6
6
  generateFileAttachment,
@@ -13,24 +13,29 @@ import { generateUser } from '../../../mock-builders/generator/user';
13
13
  import { useMessageDetailsForState } from '../hooks/useMessageDetailsForState';
14
14
 
15
15
  describe('useMessageDetailsForState', () => {
16
- it.each([[{ message: true }], [{ initialValue: '', message: true }]])(
16
+ const message = generateMessage({ text: 'Dummy text' });
17
+ it.each([[{ message }, { initialValue: '', message }]])(
17
18
  'test state of useMessageDetailsForState when initialProps differ',
18
19
  () => {
19
- const { result } = renderHook(({ message }) => useMessageDetailsForState(message), {
20
- initialProps: { message: true },
21
- });
20
+ const { result } = renderHook(
21
+ ({ message }) => useMessageDetailsForState(message as unknown as LocalMessage),
22
+ {
23
+ initialProps: { message },
24
+ },
25
+ );
22
26
 
23
- expect(result.current.text).toBe('');
27
+ expect(result.current.text).toBe(message.text);
24
28
  },
25
29
  );
26
30
 
27
31
  it('showMoreOptions is true when initialValue and text is same', () => {
28
32
  const { result } = renderHook(
29
- ({ initialValue, message }) => useMessageDetailsForState(message, initialValue),
33
+ ({ initialValue, message }) =>
34
+ useMessageDetailsForState(message as unknown as LocalMessage, initialValue),
30
35
  {
31
36
  initialProps: {
32
37
  initialValue: 'Dummy text',
33
- message: generateMessage({ text: 'Dummy text' }) as MessageType,
38
+ message: generateMessage({ text: 'Dummy text' }),
34
39
  },
35
40
  },
36
41
  );
@@ -41,7 +46,7 @@ describe('useMessageDetailsForState', () => {
41
46
  it('fileUploads, imageUploads and mentionedUsers are not empty when attachments are present in message', () => {
42
47
  const { result } = renderHook(
43
48
  ({ initialValue, message }) =>
44
- useMessageDetailsForState(message as unknown as MessageType | boolean, initialValue),
49
+ useMessageDetailsForState(message as unknown as LocalMessage, initialValue),
45
50
  {
46
51
  initialProps: {
47
52
  initialValue: '',
@@ -38,11 +38,13 @@ export const useCreateMessageInputContext = ({
38
38
  FileUploadPreview,
39
39
  fileUploads,
40
40
  giphyActive,
41
+ giphyEnabled,
41
42
  handleAttachButtonPress,
42
43
  hasCameraPicker,
43
44
  hasCommands,
44
45
  hasFilePicker,
45
46
  hasImagePicker,
47
+ hasText,
46
48
  ImageUploadPreview,
47
49
  imageUploads,
48
50
  initialValue,
@@ -114,9 +116,7 @@ export const useCreateMessageInputContext = ({
114
116
  UploadProgressIndicator,
115
117
  }: MessageInputContextValue & Pick<ThreadContextValue, 'thread'>) => {
116
118
  const editingdep = editing?.id;
117
- const fileUploadsValue = fileUploads
118
- .map(({ duration, paused, progress, state }) => `${state},${paused},${progress},${duration}`)
119
- .join();
119
+ const fileUploadsValue = fileUploads.map(({ state }) => state).join();
120
120
  const imageUploadsValue = imageUploads.map(({ state }) => state).join();
121
121
  const asyncUploadsValue = Object.keys(asyncUploads).join();
122
122
  const mentionedUsersLength = mentionedUsers.length;
@@ -160,11 +160,13 @@ export const useCreateMessageInputContext = ({
160
160
  FileUploadPreview,
161
161
  fileUploads,
162
162
  giphyActive,
163
+ giphyEnabled,
163
164
  handleAttachButtonPress,
164
165
  hasCameraPicker,
165
166
  hasCommands,
166
167
  hasFilePicker,
167
168
  hasImagePicker,
169
+ hasText,
168
170
  ImageUploadPreview,
169
171
  imageUploads,
170
172
  initialValue,
@@ -242,6 +244,8 @@ export const useCreateMessageInputContext = ({
242
244
  editingdep,
243
245
  fileUploadsValue,
244
246
  giphyActive,
247
+ giphyEnabled,
248
+ hasText,
245
249
  imageUploadsValue,
246
250
  maxMessageLength,
247
251
  mentionedUsersLength,
@@ -2,8 +2,8 @@ import { useEffect, useState } from 'react';
2
2
 
3
3
  import { Attachment } from 'stream-chat';
4
4
 
5
- import { FileTypes, FileUpload, ImageUpload } from '../../../types/types';
6
- import { generateRandomId, stringifyMessage } from '../../../utils/utils';
5
+ import { FileTypes, FileUpload } from '../../../types/types';
6
+ import { generateRandomId, getFileTypeFromMimeType, stringifyMessage } from '../../../utils/utils';
7
7
 
8
8
  import type { MessageInputContextValue } from '../MessageInputContext';
9
9
 
@@ -12,23 +12,25 @@ export const useMessageDetailsForState = (
12
12
  initialValue?: string,
13
13
  ) => {
14
14
  const [fileUploads, setFileUploads] = useState<FileUpload[]>([]);
15
- const [imageUploads, setImageUploads] = useState<ImageUpload[]>([]);
15
+ const [imageUploads, setImageUploads] = useState<FileUpload[]>([]);
16
16
  const [mentionedUsers, setMentionedUsers] = useState<string[]>([]);
17
17
  const [numberOfUploads, setNumberOfUploads] = useState(0);
18
- const [showMoreOptions, setShowMoreOptions] = useState(true);
19
18
 
20
19
  const initialTextValue = initialValue || '';
21
20
  const [text, setText] = useState(initialTextValue);
22
21
 
22
+ const isEqualToInitialText = text === initialTextValue;
23
+
24
+ const [showMoreOptions, setShowMoreOptions] = useState(true);
25
+
23
26
  useEffect(() => {
24
- if (text !== initialTextValue) {
27
+ if (!isEqualToInitialText) {
25
28
  setShowMoreOptions(false);
26
29
  }
27
30
  if (fileUploads.length || imageUploads.length) {
28
31
  setShowMoreOptions(false);
29
32
  }
30
- // eslint-disable-next-line react-hooks/exhaustive-deps
31
- }, [text, imageUploads.length, fileUploads.length]);
33
+ }, [isEqualToInitialText, imageUploads.length, fileUploads.length]);
32
34
 
33
35
  const messageValue = message ? stringifyMessage(message) : '';
34
36
 
@@ -46,66 +48,59 @@ export const useMessageDetailsForState = (
46
48
  if (attachment.type === FileTypes.Audio) {
47
49
  return {
48
50
  file: {
49
- duration: attachment.duration,
50
- mimeType: attachment.mime_type,
51
+ duration: attachment.duration || 0,
51
52
  name: attachment.title || '',
52
- size: attachment.file_size,
53
- uri: attachment.asset_url,
53
+ size: attachment.file_size || 0,
54
+ type: attachment.mime_type || '',
55
+ uri: attachment.asset_url || '',
54
56
  },
55
57
  id,
56
58
  state: 'finished',
59
+ type: FileTypes.Audio,
57
60
  url: attachment.asset_url,
58
61
  };
59
62
  } else if (attachment.type === FileTypes.Video) {
60
63
  return {
61
64
  file: {
62
- duration: attachment.duration,
63
- mimeType: attachment.mime_type,
65
+ duration: attachment.duration || 0,
64
66
  name: attachment.title || '',
65
- size: attachment.file_size,
66
- uri: attachment.asset_url,
67
+ size: attachment.file_size || 0,
68
+ thumb_url: attachment.thumb_url || '',
69
+ type: attachment.mime_type || '',
70
+ uri: attachment.asset_url || '',
67
71
  },
68
72
  id,
69
73
  state: 'finished',
70
74
  thumb_url: attachment.thumb_url,
75
+ type: FileTypes.Video,
71
76
  url: attachment.asset_url,
72
77
  };
73
78
  } else if (attachment.type === FileTypes.VoiceRecording) {
74
79
  return {
75
80
  file: {
76
- duration: attachment.duration,
77
- mimeType: attachment.mime_type,
81
+ duration: attachment.duration || 0,
78
82
  name: attachment.title || '',
79
- size: attachment.file_size,
80
- uri: attachment.asset_url,
83
+ size: attachment.file_size || 0,
84
+ type: attachment.mime_type || '',
85
+ uri: attachment.asset_url || '',
81
86
  waveform_data: attachment.waveform_data,
82
87
  },
83
88
  id,
84
89
  state: 'finished',
85
- url: attachment.asset_url,
86
- };
87
- } else if (attachment.type === FileTypes.File) {
88
- return {
89
- file: {
90
- mimeType: attachment.mime_type,
91
- name: attachment.title || '',
92
- size: attachment.file_size,
93
- uri: attachment.asset_url,
94
- },
95
- id,
96
- state: 'finished',
90
+ type: FileTypes.VoiceRecording,
97
91
  url: attachment.asset_url,
98
92
  };
99
93
  } else {
100
94
  return {
101
95
  file: {
102
- mimeType: attachment.mime_type,
103
96
  name: attachment.title || '',
104
- size: attachment.file_size,
105
- uri: attachment.asset_url,
97
+ size: attachment.file_size || 0,
98
+ type: attachment.mime_type || '',
99
+ uri: attachment.asset_url || '',
106
100
  },
107
101
  id,
108
102
  state: 'finished',
103
+ type: getFileTypeFromMimeType(attachment.mime_type || ''),
109
104
  url: attachment.asset_url,
110
105
  };
111
106
  }
@@ -115,7 +110,7 @@ export const useMessageDetailsForState = (
115
110
  if (message) {
116
111
  setText(message?.text || '');
117
112
  const newFileUploads: FileUpload[] = [];
118
- const newImageUploads: ImageUpload[] = [];
113
+ const newImageUploads: FileUpload[] = [];
119
114
 
120
115
  const attachments = Array.isArray(message.attachments) ? message.attachments : [];
121
116
 
@@ -124,14 +119,16 @@ export const useMessageDetailsForState = (
124
119
  const id = generateRandomId();
125
120
  newImageUploads.push({
126
121
  file: {
127
- height: attachment.original_height,
128
- name: attachment.fallback,
129
- size: attachment.file_size,
130
- type: attachment.type,
131
- width: attachment.original_width,
122
+ height: attachment.original_height || 0,
123
+ name: attachment.fallback || '',
124
+ size: attachment.file_size || 0,
125
+ type: attachment.type || '',
126
+ uri: attachment.image_url || '',
127
+ width: attachment.original_width || 0,
132
128
  },
133
129
  id,
134
130
  state: 'finished',
131
+ type: FileTypes.Image,
135
132
  url: attachment.image_url || attachment.asset_url || attachment.thumb_url,
136
133
  });
137
134
  } else {
@@ -1,13 +1,13 @@
1
1
  import { lookup } from 'mime-types';
2
2
  import type { FileUploadConfig } from 'stream-chat';
3
3
 
4
- import { Asset, File } from '../../../types/types';
4
+ import { File } from '../../../types/types';
5
5
 
6
6
  export const MAX_FILE_SIZE_TO_UPLOAD = 100 * 1024 * 1024; // 100 MB
7
7
 
8
8
  type CheckUploadPermissionsParams = {
9
9
  config: FileUploadConfig;
10
- file: File | Partial<Asset>;
10
+ file: File;
11
11
  };
12
12
 
13
13
  /**
@@ -44,10 +44,9 @@ export const isUploadAllowed = ({ config, file }: CheckUploadPermissionsParams)
44
44
  }
45
45
 
46
46
  if (allowed_mime_types?.length) {
47
- if (file.mimeType) {
47
+ if (file.type) {
48
48
  const allowed = allowed_mime_types.some(
49
- (mimeType: string) =>
50
- file.mimeType && file.mimeType.toLowerCase() === mimeType.toLowerCase(),
49
+ (mimeType: string) => file.type && file.type.toLowerCase() === mimeType.toLowerCase(),
51
50
  );
52
51
 
53
52
  if (!allowed) {
@@ -66,10 +65,9 @@ export const isUploadAllowed = ({ config, file }: CheckUploadPermissionsParams)
66
65
  }
67
66
 
68
67
  if (blocked_mime_types?.length) {
69
- if (file.mimeType) {
68
+ if (file.type) {
70
69
  const blocked = blocked_mime_types.some(
71
- (mimeType: string) =>
72
- file.mimeType && file.mimeType.toLowerCase() === mimeType.toLowerCase(),
70
+ (mimeType: string) => file.type && file.type.toLowerCase() === mimeType.toLowerCase(),
73
71
  );
74
72
 
75
73
  if (blocked) {
@@ -2,7 +2,7 @@ import React, { PropsWithChildren, useContext } from 'react';
2
2
 
3
3
  import { PressableProps, ViewProps } from 'react-native';
4
4
 
5
- import type { Attachment, ChannelState, MessageResponse } from 'stream-chat';
5
+ import type { Attachment, ChannelState, LocalMessage, MessageResponse } from 'stream-chat';
6
6
 
7
7
  import type { PollContentProps, StreamingMessageViewProps } from '../../components';
8
8
  import type { AttachmentProps } from '../../components/Attachment/Attachment';
@@ -16,6 +16,7 @@ import type { GalleryProps } from '../../components/Attachment/Gallery';
16
16
  import type { GiphyProps } from '../../components/Attachment/Giphy';
17
17
  import type { ImageLoadingFailedIndicatorProps } from '../../components/Attachment/ImageLoadingFailedIndicator';
18
18
  import type { ImageLoadingIndicatorProps } from '../../components/Attachment/ImageLoadingIndicator';
19
+ import { ImageReloadIndicatorProps } from '../../components/Attachment/ImageReloadIndicator';
19
20
  import type { VideoThumbnailProps } from '../../components/Attachment/VideoThumbnail';
20
21
  import type {
21
22
  MessagePressableHandlerPayload,
@@ -40,7 +41,6 @@ import type { ReactionListTopProps } from '../../components/Message/MessageSimpl
40
41
  import type { MarkdownRules } from '../../components/Message/MessageSimple/utils/renderText';
41
42
  import type { MessageActionsParams } from '../../components/Message/utils/messageActions';
42
43
  import type { DateHeaderProps } from '../../components/MessageList/DateHeader';
43
- import type { MessageType } from '../../components/MessageList/hooks/useMessageList';
44
44
  import type { InlineDateSeparatorProps } from '../../components/MessageList/InlineDateSeparator';
45
45
  import type { MessageListProps } from '../../components/MessageList/MessageList';
46
46
  import type { MessageSystemProps } from '../../components/MessageList/MessageSystem';
@@ -107,7 +107,7 @@ export type MessagesContextValue = Pick<MessageContextValue, 'isMessageAIGenerat
107
107
  * Defaults to: [DateHeader](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageList/DateHeader.tsx)
108
108
  **/
109
109
  DateHeader: React.ComponentType<DateHeaderProps>;
110
- deleteMessage: (message: MessageResponse) => Promise<void>;
110
+ deleteMessage: (message: LocalMessage) => Promise<void>;
111
111
  deleteReaction: (type: string, messageId: string) => Promise<void>;
112
112
 
113
113
  /** Should keyboard be dismissed when messaged is touched */
@@ -151,6 +151,11 @@ export type MessagesContextValue = Pick<MessageContextValue, 'isMessageAIGenerat
151
151
  */
152
152
  ImageLoadingFailedIndicator: React.ComponentType<ImageLoadingFailedIndicatorProps>;
153
153
 
154
+ /**
155
+ * The indicator rendered at the center of an image whenever its loading fails, used to trigger retries.
156
+ */
157
+ ImageReloadIndicator: React.ComponentType<ImageReloadIndicatorProps>;
158
+
154
159
  /**
155
160
  * The indicator rendered when image is loading. By default renders <ActivityIndicator/>
156
161
  */
@@ -289,15 +294,15 @@ export type MessagesContextValue = Pick<MessageContextValue, 'isMessageAIGenerat
289
294
  /**
290
295
  * Override the api request for retry message functionality.
291
296
  */
292
- retrySendMessage: (message: MessageType) => Promise<void>;
297
+ retrySendMessage: (message: LocalMessage) => Promise<void>;
293
298
  /**
294
299
  * UI component for ScrollToBottomButton
295
300
  * Defaults to: [ScrollToBottomButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/scroll-to-bottom-button/)
296
301
  */
297
302
  ScrollToBottomButton: React.ComponentType<ScrollToBottomButtonProps>;
298
303
  sendReaction: (type: string, messageId: string) => Promise<void>;
299
- setEditingState: (message?: MessageType) => void;
300
- setQuotedMessageState: (message?: MessageType) => void;
304
+ setEditingState: (message?: LocalMessage) => void;
305
+ setQuotedMessageState: (message?: LocalMessage) => void;
301
306
  /**
302
307
  * UI component for StreamingMessageView. Displays the text of a message with a typewriter animation.
303
308
  */
@@ -314,12 +319,13 @@ export type MessagesContextValue = Pick<MessageContextValue, 'isMessageAIGenerat
314
319
  TypingIndicatorContainer: React.ComponentType<TypingIndicatorContainerProps>;
315
320
  UnreadMessagesNotification: React.ComponentType<UnreadMessagesNotificationProps>;
316
321
  updateMessage: (
317
- updatedMessage: MessageResponse,
322
+ updatedMessage: MessageResponse | LocalMessage,
318
323
  extraState?: {
319
324
  commands?: SuggestionCommand[];
320
325
  messageInput?: string;
321
326
  threadMessages?: ChannelState['threads'][string];
322
327
  },
328
+ throttled?: boolean,
323
329
  ) => void;
324
330
  /**
325
331
  * Custom UI component to display enriched url preview.
@@ -376,29 +382,29 @@ export type MessagesContextValue = Pick<MessageContextValue, 'isMessageAIGenerat
376
382
  * Handler to access when a ban user action is invoked.
377
383
  * @param message
378
384
  */
379
- handleBan?: (message: MessageType) => Promise<void>;
385
+ handleBan?: (message: LocalMessage) => Promise<void>;
380
386
  /** Handler to access when a copy message action is invoked */
381
- handleCopy?: (message: MessageType) => Promise<void>;
387
+ handleCopy?: (message: LocalMessage) => Promise<void>;
382
388
  /** Handler to access when a delete message action is invoked */
383
- handleDelete?: (message: MessageType) => Promise<void>;
389
+ handleDelete?: (message: LocalMessage) => Promise<void>;
384
390
  /** Handler to access when an edit message action is invoked */
385
- handleEdit?: (message: MessageType) => void;
391
+ handleEdit?: (message: LocalMessage) => void;
386
392
  /** Handler to access when a flag message action is invoked */
387
- handleFlag?: (message: MessageType) => Promise<void>;
393
+ handleFlag?: (message: LocalMessage) => Promise<void>;
388
394
  /** Handler to access when a mark unread action is invoked */
389
- handleMarkUnread?: (message: MessageType) => Promise<void>;
395
+ handleMarkUnread?: (message: LocalMessage) => Promise<void>;
390
396
  /** Handler to access when a mute user action is invoked */
391
- handleMute?: (message: MessageType) => Promise<void>;
397
+ handleMute?: (message: LocalMessage) => Promise<void>;
392
398
  /** Handler to access when a pin/unpin user action is invoked*/
393
- handlePinMessage?: ((message: MessageType) => MessageActionType) | null;
399
+ handlePinMessage?: ((message: LocalMessage) => MessageActionType) | null;
394
400
  /** Handler to access when a quoted reply action is invoked */
395
- handleQuotedReply?: (message: MessageType) => Promise<void>;
401
+ handleQuotedReply?: (message: LocalMessage) => Promise<void>;
396
402
  /** Handler to process a reaction */
397
- handleReaction?: (message: MessageType, reactionType: string) => Promise<void>;
403
+ handleReaction?: (message: LocalMessage, reactionType: string) => Promise<void>;
398
404
  /** Handler to access when a retry action is invoked */
399
- handleRetry?: (message: MessageType) => Promise<void>;
405
+ handleRetry?: (message: LocalMessage) => Promise<void>;
400
406
  /** Handler to access when a thread reply action is invoked */
401
- handleThreadReply?: (message: MessageType) => Promise<void>;
407
+ handleThreadReply?: (message: LocalMessage) => Promise<void>;
402
408
  /** A flag specifying whether the poll creation button is available or not. */
403
409
  hasCreatePoll?: boolean;
404
410
  /** Handler to deal with custom memoization logic of Attachment */
@@ -586,7 +592,7 @@ export type MessagesContextValue = Pick<MessageContextValue, 'isMessageAIGenerat
586
592
  *
587
593
  * Please check [cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#override-or-intercept-message-actions-edit-delete-reaction-reply-etc) for details.
588
594
  * */
589
- selectReaction?: (message: MessageType) => (reactionType: string) => Promise<void>;
595
+ selectReaction?: (message: LocalMessage) => (reactionType: string) => Promise<void>;
590
596
 
591
597
  /**
592
598
  * Boolean to enable/disable the message underlay background when there are unread messages in the Message List.
@@ -1,15 +1,13 @@
1
1
  import React, { PropsWithChildren, useContext } from 'react';
2
2
 
3
- import { Poll } from 'stream-chat';
4
-
5
- import { MessageType } from '../../components';
3
+ import { LocalMessage, Poll } from 'stream-chat';
6
4
 
7
5
  import { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';
8
6
 
9
7
  import { isTestEnvironment } from '../utils/isTestEnvironment';
10
8
 
11
9
  export type PollContextValue = {
12
- message: MessageType;
10
+ message: LocalMessage;
13
11
  poll: Poll;
14
12
  };
15
13
 
@@ -1,4 +1,4 @@
1
- import React, { PropsWithChildren, useContext, useState } from 'react';
1
+ import React, { PropsWithChildren, useCallback, useContext, useMemo, useState } from 'react';
2
2
 
3
3
  import type { CommandResponse, UserResponse } from 'stream-chat';
4
4
 
@@ -70,35 +70,54 @@ export const SuggestionsProvider = ({
70
70
  children,
71
71
  value,
72
72
  }: PropsWithChildren<{ value?: Partial<SuggestionsContextValue> }>) => {
73
+ const { AutoCompleteSuggestionHeader, AutoCompleteSuggestionItem, AutoCompleteSuggestionList } =
74
+ value ?? {};
73
75
  const [triggerType, setTriggerType] = useState<SuggestionComponentType | null>(null);
74
76
  const [suggestions, setSuggestions] = useState<Suggestions>();
75
77
  const [suggestionsViewActive, setSuggestionsViewActive] = useState(false);
76
78
 
77
- const openSuggestions = (component: SuggestionComponentType) => {
79
+ const openSuggestions = useCallback((component: SuggestionComponentType) => {
78
80
  setTriggerType(component);
79
81
  setSuggestionsViewActive(true);
80
- };
81
-
82
- const updateSuggestions = (newSuggestions: Suggestions) => {
83
- setSuggestions(newSuggestions);
84
- setSuggestionsViewActive(!!triggerType);
85
- };
82
+ }, []);
83
+
84
+ const updateSuggestions = useCallback(
85
+ (newSuggestions: Suggestions) => {
86
+ setSuggestions(newSuggestions);
87
+ setSuggestionsViewActive(!!triggerType);
88
+ },
89
+ [triggerType],
90
+ );
86
91
 
87
- const closeSuggestions = () => {
92
+ const closeSuggestions = useCallback(() => {
88
93
  setTriggerType(null);
89
94
  setSuggestions(undefined);
90
95
  setSuggestionsViewActive(false);
91
- };
92
-
93
- const suggestionsContext = {
94
- ...value,
96
+ }, []);
97
+
98
+ const suggestionsContext = useMemo(() => {
99
+ return {
100
+ AutoCompleteSuggestionHeader,
101
+ AutoCompleteSuggestionItem,
102
+ AutoCompleteSuggestionList,
103
+ closeSuggestions,
104
+ openSuggestions,
105
+ suggestions,
106
+ suggestionsViewActive,
107
+ triggerType,
108
+ updateSuggestions,
109
+ };
110
+ }, [
111
+ AutoCompleteSuggestionHeader,
112
+ AutoCompleteSuggestionItem,
113
+ AutoCompleteSuggestionList,
95
114
  closeSuggestions,
96
115
  openSuggestions,
97
116
  suggestions,
98
117
  suggestionsViewActive,
99
118
  triggerType,
100
119
  updateSuggestions,
101
- };
120
+ ]);
102
121
 
103
122
  return (
104
123
  <SuggestionsContext.Provider value={suggestionsContext as unknown as SuggestionsContextValue}>
@@ -674,6 +674,7 @@ export type Theme = {
674
674
  roundedView: ViewStyle;
675
675
  };
676
676
  unreadUnderlayColor?: ColorValue;
677
+ wrapper: ViewStyle;
677
678
  };
678
679
  poll: {
679
680
  allOptions: {
@@ -1466,6 +1467,7 @@ export const defaultTheme: Theme = {
1466
1467
  container: {},
1467
1468
  roundedView: {},
1468
1469
  },
1470
+ wrapper: {},
1469
1471
  },
1470
1472
  poll: {
1471
1473
  allOptions: {