stream-chat-react-native-core 9.0.1 → 9.0.2-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/components/Message/MessageItemView/utils/renderText.test.js +1 -1
  3. package/lib/commonjs/components/Message/MessageItemView/utils/renderText.test.js.map +1 -1
  4. package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
  5. package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
  6. package/lib/commonjs/mock-builders/api/channelMocks.js +38 -31
  7. package/lib/commonjs/mock-builders/api/channelMocks.js.map +1 -1
  8. package/lib/commonjs/mock-builders/api/deleteMessage.js.map +1 -1
  9. package/lib/commonjs/mock-builders/api/deleteReaction.js.map +1 -1
  10. package/lib/commonjs/mock-builders/api/error.js.map +1 -1
  11. package/lib/commonjs/mock-builders/api/getOrCreateChannel.js.map +1 -1
  12. package/lib/commonjs/mock-builders/api/initiateClientWithChannels.js +1 -1
  13. package/lib/commonjs/mock-builders/api/initiateClientWithChannels.js.map +1 -1
  14. package/lib/commonjs/mock-builders/api/queryChannels.js.map +1 -1
  15. package/lib/commonjs/mock-builders/api/queryMembers.js +12 -11
  16. package/lib/commonjs/mock-builders/api/queryMembers.js.map +1 -1
  17. package/lib/commonjs/mock-builders/api/sendMessage.js.map +1 -1
  18. package/lib/commonjs/mock-builders/api/sendReaction.js.map +1 -1
  19. package/lib/commonjs/mock-builders/api/threadReplies.js.map +1 -1
  20. package/lib/commonjs/mock-builders/api/useMockedApis.js.map +1 -1
  21. package/lib/commonjs/mock-builders/api/utils.js.map +1 -1
  22. package/lib/commonjs/mock-builders/attachments.js.map +1 -1
  23. package/lib/commonjs/mock-builders/event/channelDeleted.js +3 -2
  24. package/lib/commonjs/mock-builders/event/channelDeleted.js.map +1 -1
  25. package/lib/commonjs/mock-builders/event/channelHidden.js +3 -2
  26. package/lib/commonjs/mock-builders/event/channelHidden.js.map +1 -1
  27. package/lib/commonjs/mock-builders/event/channelTruncated.js +3 -2
  28. package/lib/commonjs/mock-builders/event/channelTruncated.js.map +1 -1
  29. package/lib/commonjs/mock-builders/event/channelUpdated.js +3 -2
  30. package/lib/commonjs/mock-builders/event/channelUpdated.js.map +1 -1
  31. package/lib/commonjs/mock-builders/event/channelVisible.js +3 -2
  32. package/lib/commonjs/mock-builders/event/channelVisible.js.map +1 -1
  33. package/lib/commonjs/mock-builders/event/connectionChanged.js +3 -2
  34. package/lib/commonjs/mock-builders/event/connectionChanged.js.map +1 -1
  35. package/lib/commonjs/mock-builders/event/connectionRecovered.js +3 -2
  36. package/lib/commonjs/mock-builders/event/connectionRecovered.js.map +1 -1
  37. package/lib/commonjs/mock-builders/event/memberAdded.js +3 -2
  38. package/lib/commonjs/mock-builders/event/memberAdded.js.map +1 -1
  39. package/lib/commonjs/mock-builders/event/memberRemoved.js +3 -2
  40. package/lib/commonjs/mock-builders/event/memberRemoved.js.map +1 -1
  41. package/lib/commonjs/mock-builders/event/memberUpdated.js +3 -2
  42. package/lib/commonjs/mock-builders/event/memberUpdated.js.map +1 -1
  43. package/lib/commonjs/mock-builders/event/messageDeleted.js +3 -2
  44. package/lib/commonjs/mock-builders/event/messageDeleted.js.map +1 -1
  45. package/lib/commonjs/mock-builders/event/messageNew.js +3 -2
  46. package/lib/commonjs/mock-builders/event/messageNew.js.map +1 -1
  47. package/lib/commonjs/mock-builders/event/messageRead.js +3 -2
  48. package/lib/commonjs/mock-builders/event/messageRead.js.map +1 -1
  49. package/lib/commonjs/mock-builders/event/messageUpdated.js +3 -2
  50. package/lib/commonjs/mock-builders/event/messageUpdated.js.map +1 -1
  51. package/lib/commonjs/mock-builders/event/notificationAddedToChannel.js +3 -2
  52. package/lib/commonjs/mock-builders/event/notificationAddedToChannel.js.map +1 -1
  53. package/lib/commonjs/mock-builders/event/notificationChannelMutesUpdated.js +3 -2
  54. package/lib/commonjs/mock-builders/event/notificationChannelMutesUpdated.js.map +1 -1
  55. package/lib/commonjs/mock-builders/event/notificationMarkRead.js +3 -2
  56. package/lib/commonjs/mock-builders/event/notificationMarkRead.js.map +1 -1
  57. package/lib/commonjs/mock-builders/event/notificationMarkUnread.js +3 -2
  58. package/lib/commonjs/mock-builders/event/notificationMarkUnread.js.map +1 -1
  59. package/lib/commonjs/mock-builders/event/notificationMessageNew.js +3 -2
  60. package/lib/commonjs/mock-builders/event/notificationMessageNew.js.map +1 -1
  61. package/lib/commonjs/mock-builders/event/notificationMutesUpdated.js +3 -2
  62. package/lib/commonjs/mock-builders/event/notificationMutesUpdated.js.map +1 -1
  63. package/lib/commonjs/mock-builders/event/notificationRemovedFromChannel.js +3 -2
  64. package/lib/commonjs/mock-builders/event/notificationRemovedFromChannel.js.map +1 -1
  65. package/lib/commonjs/mock-builders/event/reactionDeleted.js +3 -2
  66. package/lib/commonjs/mock-builders/event/reactionDeleted.js.map +1 -1
  67. package/lib/commonjs/mock-builders/event/reactionNew.js +3 -2
  68. package/lib/commonjs/mock-builders/event/reactionNew.js.map +1 -1
  69. package/lib/commonjs/mock-builders/event/reactionUpdated.js +3 -2
  70. package/lib/commonjs/mock-builders/event/reactionUpdated.js.map +1 -1
  71. package/lib/commonjs/mock-builders/event/typing.js +3 -2
  72. package/lib/commonjs/mock-builders/event/typing.js.map +1 -1
  73. package/lib/commonjs/mock-builders/event/userPresence.js +3 -2
  74. package/lib/commonjs/mock-builders/event/userPresence.js.map +1 -1
  75. package/lib/commonjs/mock-builders/event/userUpdated.js +3 -2
  76. package/lib/commonjs/mock-builders/event/userUpdated.js.map +1 -1
  77. package/lib/commonjs/mock-builders/generator/attachment.js +0 -3
  78. package/lib/commonjs/mock-builders/generator/attachment.js.map +1 -1
  79. package/lib/commonjs/mock-builders/generator/channel.js +10 -12
  80. package/lib/commonjs/mock-builders/generator/channel.js.map +1 -1
  81. package/lib/commonjs/mock-builders/generator/member.js +3 -2
  82. package/lib/commonjs/mock-builders/generator/member.js.map +1 -1
  83. package/lib/commonjs/mock-builders/generator/message.js +12 -7
  84. package/lib/commonjs/mock-builders/generator/message.js.map +1 -1
  85. package/lib/commonjs/mock-builders/generator/reaction.js +3 -2
  86. package/lib/commonjs/mock-builders/generator/reaction.js.map +1 -1
  87. package/lib/commonjs/mock-builders/generator/user.js +4 -3
  88. package/lib/commonjs/mock-builders/generator/user.js.map +1 -1
  89. package/lib/commonjs/mock-builders/mock.js +15 -11
  90. package/lib/commonjs/mock-builders/mock.js.map +1 -1
  91. package/lib/commonjs/store/apis/addPendingTask.js.map +1 -1
  92. package/lib/commonjs/store/apis/deleteMessage.js.map +1 -1
  93. package/lib/commonjs/store/apis/upsertDraft.js.map +1 -1
  94. package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js.map +1 -1
  95. package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js.map +1 -1
  96. package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
  97. package/lib/commonjs/test-utils/BetterSqlite.js +11 -7
  98. package/lib/commonjs/test-utils/BetterSqlite.js.map +1 -1
  99. package/lib/commonjs/version.json +1 -1
  100. package/lib/module/components/Message/MessageItemView/utils/renderText.test.js +1 -1
  101. package/lib/module/components/Message/MessageItemView/utils/renderText.test.js.map +1 -1
  102. package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
  103. package/lib/module/mock-builders/DB/mock.js.map +1 -1
  104. package/lib/module/mock-builders/api/channelMocks.js +38 -31
  105. package/lib/module/mock-builders/api/channelMocks.js.map +1 -1
  106. package/lib/module/mock-builders/api/deleteMessage.js.map +1 -1
  107. package/lib/module/mock-builders/api/deleteReaction.js.map +1 -1
  108. package/lib/module/mock-builders/api/error.js.map +1 -1
  109. package/lib/module/mock-builders/api/getOrCreateChannel.js.map +1 -1
  110. package/lib/module/mock-builders/api/initiateClientWithChannels.js +1 -1
  111. package/lib/module/mock-builders/api/initiateClientWithChannels.js.map +1 -1
  112. package/lib/module/mock-builders/api/queryChannels.js.map +1 -1
  113. package/lib/module/mock-builders/api/queryMembers.js +12 -11
  114. package/lib/module/mock-builders/api/queryMembers.js.map +1 -1
  115. package/lib/module/mock-builders/api/sendMessage.js.map +1 -1
  116. package/lib/module/mock-builders/api/sendReaction.js.map +1 -1
  117. package/lib/module/mock-builders/api/threadReplies.js.map +1 -1
  118. package/lib/module/mock-builders/api/useMockedApis.js.map +1 -1
  119. package/lib/module/mock-builders/api/utils.js.map +1 -1
  120. package/lib/module/mock-builders/attachments.js.map +1 -1
  121. package/lib/module/mock-builders/event/channelDeleted.js +3 -2
  122. package/lib/module/mock-builders/event/channelDeleted.js.map +1 -1
  123. package/lib/module/mock-builders/event/channelHidden.js +3 -2
  124. package/lib/module/mock-builders/event/channelHidden.js.map +1 -1
  125. package/lib/module/mock-builders/event/channelTruncated.js +3 -2
  126. package/lib/module/mock-builders/event/channelTruncated.js.map +1 -1
  127. package/lib/module/mock-builders/event/channelUpdated.js +3 -2
  128. package/lib/module/mock-builders/event/channelUpdated.js.map +1 -1
  129. package/lib/module/mock-builders/event/channelVisible.js +3 -2
  130. package/lib/module/mock-builders/event/channelVisible.js.map +1 -1
  131. package/lib/module/mock-builders/event/connectionChanged.js +3 -2
  132. package/lib/module/mock-builders/event/connectionChanged.js.map +1 -1
  133. package/lib/module/mock-builders/event/connectionRecovered.js +3 -2
  134. package/lib/module/mock-builders/event/connectionRecovered.js.map +1 -1
  135. package/lib/module/mock-builders/event/memberAdded.js +3 -2
  136. package/lib/module/mock-builders/event/memberAdded.js.map +1 -1
  137. package/lib/module/mock-builders/event/memberRemoved.js +3 -2
  138. package/lib/module/mock-builders/event/memberRemoved.js.map +1 -1
  139. package/lib/module/mock-builders/event/memberUpdated.js +3 -2
  140. package/lib/module/mock-builders/event/memberUpdated.js.map +1 -1
  141. package/lib/module/mock-builders/event/messageDeleted.js +3 -2
  142. package/lib/module/mock-builders/event/messageDeleted.js.map +1 -1
  143. package/lib/module/mock-builders/event/messageNew.js +3 -2
  144. package/lib/module/mock-builders/event/messageNew.js.map +1 -1
  145. package/lib/module/mock-builders/event/messageRead.js +3 -2
  146. package/lib/module/mock-builders/event/messageRead.js.map +1 -1
  147. package/lib/module/mock-builders/event/messageUpdated.js +3 -2
  148. package/lib/module/mock-builders/event/messageUpdated.js.map +1 -1
  149. package/lib/module/mock-builders/event/notificationAddedToChannel.js +3 -2
  150. package/lib/module/mock-builders/event/notificationAddedToChannel.js.map +1 -1
  151. package/lib/module/mock-builders/event/notificationChannelMutesUpdated.js +3 -2
  152. package/lib/module/mock-builders/event/notificationChannelMutesUpdated.js.map +1 -1
  153. package/lib/module/mock-builders/event/notificationMarkRead.js +3 -2
  154. package/lib/module/mock-builders/event/notificationMarkRead.js.map +1 -1
  155. package/lib/module/mock-builders/event/notificationMarkUnread.js +3 -2
  156. package/lib/module/mock-builders/event/notificationMarkUnread.js.map +1 -1
  157. package/lib/module/mock-builders/event/notificationMessageNew.js +3 -2
  158. package/lib/module/mock-builders/event/notificationMessageNew.js.map +1 -1
  159. package/lib/module/mock-builders/event/notificationMutesUpdated.js +3 -2
  160. package/lib/module/mock-builders/event/notificationMutesUpdated.js.map +1 -1
  161. package/lib/module/mock-builders/event/notificationRemovedFromChannel.js +3 -2
  162. package/lib/module/mock-builders/event/notificationRemovedFromChannel.js.map +1 -1
  163. package/lib/module/mock-builders/event/reactionDeleted.js +3 -2
  164. package/lib/module/mock-builders/event/reactionDeleted.js.map +1 -1
  165. package/lib/module/mock-builders/event/reactionNew.js +3 -2
  166. package/lib/module/mock-builders/event/reactionNew.js.map +1 -1
  167. package/lib/module/mock-builders/event/reactionUpdated.js +3 -2
  168. package/lib/module/mock-builders/event/reactionUpdated.js.map +1 -1
  169. package/lib/module/mock-builders/event/typing.js +3 -2
  170. package/lib/module/mock-builders/event/typing.js.map +1 -1
  171. package/lib/module/mock-builders/event/userPresence.js +3 -2
  172. package/lib/module/mock-builders/event/userPresence.js.map +1 -1
  173. package/lib/module/mock-builders/event/userUpdated.js +3 -2
  174. package/lib/module/mock-builders/event/userUpdated.js.map +1 -1
  175. package/lib/module/mock-builders/generator/attachment.js +0 -3
  176. package/lib/module/mock-builders/generator/attachment.js.map +1 -1
  177. package/lib/module/mock-builders/generator/channel.js +10 -12
  178. package/lib/module/mock-builders/generator/channel.js.map +1 -1
  179. package/lib/module/mock-builders/generator/member.js +3 -2
  180. package/lib/module/mock-builders/generator/member.js.map +1 -1
  181. package/lib/module/mock-builders/generator/message.js +12 -7
  182. package/lib/module/mock-builders/generator/message.js.map +1 -1
  183. package/lib/module/mock-builders/generator/reaction.js +3 -2
  184. package/lib/module/mock-builders/generator/reaction.js.map +1 -1
  185. package/lib/module/mock-builders/generator/user.js +4 -3
  186. package/lib/module/mock-builders/generator/user.js.map +1 -1
  187. package/lib/module/mock-builders/mock.js +15 -11
  188. package/lib/module/mock-builders/mock.js.map +1 -1
  189. package/lib/module/store/apis/addPendingTask.js.map +1 -1
  190. package/lib/module/store/apis/deleteMessage.js.map +1 -1
  191. package/lib/module/store/apis/upsertDraft.js.map +1 -1
  192. package/lib/module/store/sqlite-utils/appendOrderByClause.js.map +1 -1
  193. package/lib/module/store/sqlite-utils/appendWhereCluase.js.map +1 -1
  194. package/lib/module/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
  195. package/lib/module/test-utils/BetterSqlite.js +11 -7
  196. package/lib/module/test-utils/BetterSqlite.js.map +1 -1
  197. package/lib/module/version.json +1 -1
  198. package/lib/typescript/components/UIComponents/SwipableWrapper.d.ts +1 -1
  199. package/lib/typescript/components/UIComponents/SwipableWrapper.d.ts.map +1 -1
  200. package/lib/typescript/store/OfflineDB.d.ts +1 -1
  201. package/lib/typescript/store/OfflineDB.d.ts.map +1 -1
  202. package/lib/typescript/store/apis/addPendingTask.d.ts.map +1 -1
  203. package/lib/typescript/store/apis/deleteMessage.d.ts +2 -1
  204. package/lib/typescript/store/apis/deleteMessage.d.ts.map +1 -1
  205. package/lib/typescript/store/apis/upsertDraft.d.ts +1 -1
  206. package/lib/typescript/store/apis/upsertDraft.d.ts.map +1 -1
  207. package/lib/typescript/store/sqlite-utils/createCreateTableQuery.d.ts.map +1 -1
  208. package/lib/typescript/test-utils/BetterSqlite.d.ts +4 -3
  209. package/lib/typescript/test-utils/BetterSqlite.d.ts.map +1 -1
  210. package/package.json +5 -3
  211. package/src/__tests__/offline-support/{offline-feature.js → offline-feature.tsx} +282 -139
  212. package/src/__tests__/offline-support/{optimistic-update.js → optimistic-update.tsx} +154 -84
  213. package/src/components/Attachment/__tests__/{Attachment.test.js → Attachment.test.tsx} +12 -8
  214. package/src/components/Attachment/__tests__/{Gallery.test.js → Gallery.test.tsx} +10 -3
  215. package/src/components/Attachment/__tests__/{Giphy.test.js → Giphy.test.tsx} +48 -19
  216. package/src/components/Attachment/__tests__/{buildGallery.test.js → buildGallery.test.ts} +4 -2
  217. package/src/components/AutoCompleteInput/__tests__/{AutoCompleteInput.test.js → AutoCompleteInput.test.tsx} +21 -11
  218. package/src/components/Channel/__tests__/{Channel.test.js → Channel.test.tsx} +129 -89
  219. package/src/components/Channel/__tests__/{isAttachmentEqualHandler.test.js → isAttachmentEqualHandler.test.tsx} +25 -8
  220. package/src/components/Channel/__tests__/{ownCapabilities.test.js → ownCapabilities.test.tsx} +16 -12
  221. package/src/components/Channel/__tests__/{useMessageListPagination.test.js → useMessageListPagination.test.tsx} +105 -63
  222. package/src/components/ChannelList/__tests__/{ChannelList.test.js → ChannelList.test.tsx} +63 -29
  223. package/src/components/ChannelList/__tests__/{ChannelListView.test.js → ChannelListView.test.tsx} +30 -20
  224. package/src/components/ChannelList/hooks/__tests__/useChannelActionItems.test.tsx +6 -6
  225. package/src/components/ChannelList/hooks/__tests__/useChannelActionItemsById.test.tsx +2 -2
  226. package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +17 -14
  227. package/src/components/ChannelPreview/__tests__/ChannelDetailsBottomSheet.test.tsx +14 -4
  228. package/src/components/ChannelPreview/__tests__/ChannelPreview.test.tsx +23 -12
  229. package/src/components/ChannelPreview/__tests__/{ChannelPreviewView.test.js → ChannelPreviewView.test.tsx} +9 -34
  230. package/src/components/ChannelPreview/__tests__/ChannelSwipableWrapper.test.tsx +4 -2
  231. package/src/components/ChannelPreview/hooks/__tests__/useChannelPreviewDisplayPresence.test.tsx +1 -1
  232. package/src/components/Chat/__tests__/{Chat.test.js → Chat.test.tsx} +37 -30
  233. package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +10 -14
  234. package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +3 -3
  235. package/src/components/ImageGallery/__tests__/ImageGalleryGrid.test.tsx +5 -4
  236. package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +7 -6
  237. package/src/components/ImageGallery/components/__tests__/ImageGalleryHeader.test.tsx +9 -13
  238. package/src/components/Message/MessageItemView/__tests__/{Message.test.js → Message.test.tsx} +20 -11
  239. package/src/components/Message/MessageItemView/__tests__/{MessageAuthor.test.js → MessageAuthor.test.tsx} +10 -12
  240. package/src/components/Message/MessageItemView/__tests__/{MessageContent.test.js → MessageContent.test.tsx} +22 -12
  241. package/src/components/Message/MessageItemView/__tests__/{MessageItemView.test.js → MessageItemView.test.tsx} +11 -4
  242. package/src/components/Message/MessageItemView/__tests__/{MessagePinnedHeader.test.js → MessagePinnedHeader.test.tsx} +5 -3
  243. package/src/components/Message/MessageItemView/__tests__/{MessageReplies.test.js → MessageReplies.test.tsx} +15 -36
  244. package/src/components/Message/MessageItemView/__tests__/{MessageStatus.test.js → MessageStatus.test.tsx} +20 -10
  245. package/src/components/Message/MessageItemView/__tests__/MessageTextContainer.test.tsx +8 -8
  246. package/src/components/Message/MessageItemView/__tests__/{ReactionListBottom.test.js → ReactionListBottom.test.tsx} +19 -8
  247. package/src/components/Message/MessageItemView/__tests__/{ReactionListTop.test.js → ReactionListTop.test.tsx} +8 -4
  248. package/src/components/Message/MessageItemView/utils/renderText.test.tsx +2 -4
  249. package/src/components/Message/MessageItemView/utils/renderText.tsx +1 -1
  250. package/src/components/Message/hooks/__tests__/useShouldUseOverlayStyles.test.tsx +2 -2
  251. package/src/components/MessageInput/__tests__/{AttachButton.test.js → AttachButton.test.tsx} +14 -4
  252. package/src/components/MessageInput/__tests__/{AttachmentUploadPreviewList.test.js → AttachmentUploadPreviewList.test.tsx} +27 -8
  253. package/src/components/MessageInput/__tests__/{AudioAttachmentUploadPreview.test.js → AudioAttachmentUploadPreview.test.tsx} +18 -5
  254. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewExpo.test.tsx +47 -15
  255. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewNative.test.tsx +57 -17
  256. package/src/components/MessageInput/__tests__/{InputButtons.test.js → InputButtons.test.tsx} +14 -4
  257. package/src/components/MessageInput/__tests__/{MessageComposer.test.js → MessageComposer.test.tsx} +28 -20
  258. package/src/components/MessageInput/__tests__/{SendButton.test.js → SendButton.test.tsx} +13 -4
  259. package/src/components/MessageInput/__tests__/{SendMessageDisallowedIndicator.test.js → SendMessageDisallowedIndicator.test.tsx} +47 -31
  260. package/src/components/MessageList/__tests__/{MessageList.test.js → MessageList.test.tsx} +31 -34
  261. package/src/components/MessageList/__tests__/{MessageSystem.test.js → MessageSystem.test.tsx} +13 -5
  262. package/src/components/MessageList/__tests__/{ScrollToBottomButton.test.js → ScrollToBottomButton.test.tsx} +8 -12
  263. package/src/components/MessageList/__tests__/{TypingIndicator.test.js → TypingIndicator.test.tsx} +6 -4
  264. package/src/components/MessageList/__tests__/useMessageList.test.tsx +2 -2
  265. package/src/components/MessageList/hooks/useMessageList.ts +1 -1
  266. package/src/components/MessageMenu/__tests__/MessageActionList.test.tsx +4 -1
  267. package/src/components/MessageMenu/__tests__/MessageActionListItem.test.tsx +1 -0
  268. package/src/components/MessageMenu/__tests__/MessageReactionPicker.test.tsx +6 -2
  269. package/src/components/MessageMenu/__tests__/MessageUserReactions.test.tsx +3 -3
  270. package/src/components/MessageMenu/__tests__/MessageUserReactionsAvatar.test.tsx +7 -3
  271. package/src/components/MessageMenu/__tests__/MessageUserReactionsItem.test.tsx +2 -1
  272. package/src/components/Thread/__tests__/{Thread.test.js → Thread.test.tsx} +41 -13
  273. package/src/components/Thread/__tests__/__snapshots__/{Thread.test.js.snap → Thread.test.tsx.snap} +0 -21
  274. package/src/components/UIComponents/SwipableWrapper.tsx +1 -1
  275. package/src/components/UIComponents/__tests__/SwipableWrapper.test.tsx +1 -1
  276. package/src/contexts/messageInputContext/__tests__/filePickers.test.tsx +31 -10
  277. package/src/contexts/messageInputContext/__tests__/sendMessage.test.tsx +24 -12
  278. package/src/contexts/overlayContext/__tests__/MessageOverlayHostLayer.test.tsx +2 -2
  279. package/src/hooks/__tests__/useTranslatedMessage.test.tsx +4 -4
  280. package/src/mock-builders/DB/mock.ts +1 -1
  281. package/src/mock-builders/api/channelMocks.tsx +39 -29
  282. package/src/mock-builders/api/deleteMessage.ts +21 -0
  283. package/src/mock-builders/api/deleteReaction.ts +23 -0
  284. package/src/mock-builders/api/{error.js → error.ts} +13 -5
  285. package/src/mock-builders/api/getOrCreateChannel.ts +22 -11
  286. package/src/mock-builders/api/{initiateClientWithChannels.js → initiateClientWithChannels.ts} +21 -3
  287. package/src/mock-builders/api/{queryChannels.js → queryChannels.ts} +2 -4
  288. package/src/mock-builders/api/{queryMembers.js → queryMembers.ts} +29 -27
  289. package/src/mock-builders/api/sendMessage.ts +25 -0
  290. package/src/mock-builders/api/sendReaction.ts +9 -5
  291. package/src/mock-builders/api/threadReplies.ts +18 -0
  292. package/src/mock-builders/api/{useMockedApis.js → useMockedApis.ts} +5 -4
  293. package/src/mock-builders/api/utils.ts +16 -0
  294. package/src/mock-builders/{attachments.js → attachments.ts} +24 -8
  295. package/src/mock-builders/event/channelDeleted.ts +12 -0
  296. package/src/mock-builders/event/channelHidden.ts +12 -0
  297. package/src/mock-builders/event/channelTruncated.ts +12 -0
  298. package/src/mock-builders/event/channelUpdated.ts +12 -0
  299. package/src/mock-builders/event/channelVisible.ts +12 -0
  300. package/src/mock-builders/event/connectionChanged.ts +11 -0
  301. package/src/mock-builders/event/connectionRecovered.ts +10 -0
  302. package/src/mock-builders/event/memberAdded.ts +19 -0
  303. package/src/mock-builders/event/memberRemoved.ts +18 -0
  304. package/src/mock-builders/event/memberUpdated.ts +18 -0
  305. package/src/mock-builders/event/messageDeleted.ts +23 -0
  306. package/src/mock-builders/event/messageNew.ts +26 -0
  307. package/src/mock-builders/event/messageRead.ts +23 -0
  308. package/src/mock-builders/event/messageUpdated.ts +23 -0
  309. package/src/mock-builders/event/notificationAddedToChannel.ts +12 -0
  310. package/src/mock-builders/event/notificationChannelMutesUpdated.ts +12 -0
  311. package/src/mock-builders/event/notificationMarkRead.ts +12 -0
  312. package/src/mock-builders/event/notificationMarkUnread.ts +22 -0
  313. package/src/mock-builders/event/notificationMessageNew.ts +12 -0
  314. package/src/mock-builders/event/notificationMutesUpdated.ts +16 -0
  315. package/src/mock-builders/event/notificationRemovedFromChannel.ts +12 -0
  316. package/src/mock-builders/event/reactionDeleted.ts +26 -0
  317. package/src/mock-builders/event/reactionNew.ts +26 -0
  318. package/src/mock-builders/event/reactionUpdated.ts +26 -0
  319. package/src/mock-builders/event/typing.ts +18 -0
  320. package/src/mock-builders/event/userPresence.ts +13 -0
  321. package/src/mock-builders/event/userUpdated.ts +13 -0
  322. package/src/mock-builders/generator/{attachment.js → attachment.ts} +17 -13
  323. package/src/mock-builders/generator/channel.ts +70 -39
  324. package/src/mock-builders/generator/member.ts +18 -0
  325. package/src/mock-builders/generator/message.ts +50 -0
  326. package/src/mock-builders/generator/reaction.ts +15 -0
  327. package/src/mock-builders/generator/{user.js → user.ts} +20 -16
  328. package/src/mock-builders/mock.ts +79 -0
  329. package/src/state-store/__tests__/audio-player.test.ts +3 -1
  330. package/src/state-store/__tests__/image-gallery-state-store.test.ts +31 -28
  331. package/src/state-store/__tests__/video-player-pool.test.ts +9 -9
  332. package/src/store/apis/__tests__/updatePendingTask.test.ts +17 -6
  333. package/src/store/apis/addPendingTask.ts +2 -1
  334. package/src/store/apis/deleteMessage.ts +2 -1
  335. package/src/store/apis/upsertDraft.ts +2 -2
  336. package/src/store/sqlite-utils/appendOrderByClause.ts +1 -1
  337. package/src/store/sqlite-utils/appendWhereCluase.ts +1 -1
  338. package/src/store/sqlite-utils/createCreateTableQuery.ts +7 -5
  339. package/src/test-utils/BetterSqlite.ts +38 -0
  340. package/src/utils/__tests__/{Streami18n.test.js → Streami18n.test.ts} +66 -31
  341. package/src/utils/__tests__/getResizedImageUrl.test.ts +10 -8
  342. package/src/utils/__tests__/{utils.test.js → utils.test.ts} +1 -1
  343. package/src/version.json +1 -1
  344. package/src/mock-builders/api/deleteMessage.js +0 -18
  345. package/src/mock-builders/api/deleteReaction.js +0 -19
  346. package/src/mock-builders/api/sendMessage.js +0 -18
  347. package/src/mock-builders/api/threadReplies.js +0 -16
  348. package/src/mock-builders/api/utils.js +0 -7
  349. package/src/mock-builders/event/channelDeleted.js +0 -7
  350. package/src/mock-builders/event/channelHidden.js +0 -7
  351. package/src/mock-builders/event/channelTruncated.js +0 -7
  352. package/src/mock-builders/event/channelUpdated.js +0 -7
  353. package/src/mock-builders/event/channelVisible.js +0 -7
  354. package/src/mock-builders/event/connectionChanged.js +0 -6
  355. package/src/mock-builders/event/connectionRecovered.js +0 -5
  356. package/src/mock-builders/event/memberAdded.js +0 -10
  357. package/src/mock-builders/event/memberRemoved.js +0 -9
  358. package/src/mock-builders/event/memberUpdated.js +0 -9
  359. package/src/mock-builders/event/messageDeleted.js +0 -8
  360. package/src/mock-builders/event/messageNew.js +0 -11
  361. package/src/mock-builders/event/messageRead.js +0 -15
  362. package/src/mock-builders/event/messageUpdated.js +0 -8
  363. package/src/mock-builders/event/notificationAddedToChannel.js +0 -7
  364. package/src/mock-builders/event/notificationChannelMutesUpdated.js +0 -7
  365. package/src/mock-builders/event/notificationMarkRead.js +0 -7
  366. package/src/mock-builders/event/notificationMarkUnread.js +0 -12
  367. package/src/mock-builders/event/notificationMessageNew.js +0 -7
  368. package/src/mock-builders/event/notificationMutesUpdated.js +0 -11
  369. package/src/mock-builders/event/notificationRemovedFromChannel.js +0 -7
  370. package/src/mock-builders/event/reactionDeleted.js +0 -9
  371. package/src/mock-builders/event/reactionNew.js +0 -9
  372. package/src/mock-builders/event/reactionUpdated.js +0 -9
  373. package/src/mock-builders/event/typing.js +0 -9
  374. package/src/mock-builders/event/userPresence.js +0 -8
  375. package/src/mock-builders/event/userUpdated.js +0 -8
  376. package/src/mock-builders/generator/member.js +0 -13
  377. package/src/mock-builders/generator/message.js +0 -32
  378. package/src/mock-builders/generator/reaction.js +0 -12
  379. package/src/mock-builders/mock.js +0 -57
  380. package/src/test-utils/BetterSqlite.js +0 -36
  381. /package/src/components/Message/MessageItemView/__tests__/__snapshots__/{MessageAuthor.test.js.snap → MessageAuthor.test.tsx.snap} +0 -0
  382. /package/src/components/Message/MessageItemView/__tests__/__snapshots__/{MessagePinnedHeader.test.js.snap → MessagePinnedHeader.test.tsx.snap} +0 -0
  383. /package/src/components/MessageInput/__tests__/__snapshots__/{AttachButton.test.js.snap → AttachButton.test.tsx.snap} +0 -0
  384. /package/src/components/MessageInput/__tests__/__snapshots__/{SendButton.test.js.snap → SendButton.test.tsx.snap} +0 -0
  385. /package/src/components/MessageList/__tests__/__snapshots__/{MessageSystem.test.js.snap → MessageSystem.test.tsx.snap} +0 -0
  386. /package/src/components/MessageList/__tests__/__snapshots__/{ScrollToBottomButton.test.js.snap → ScrollToBottomButton.test.tsx.snap} +0 -0
  387. /package/src/components/MessageList/__tests__/__snapshots__/{TypingIndicator.test.js.snap → TypingIndicator.test.tsx.snap} +0 -0
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { type ComponentProps } from 'react';
2
2
  import { Text } from 'react-native';
3
3
 
4
4
  import { act, render } from '@testing-library/react-native';
@@ -8,6 +8,7 @@ import { WithComponents } from '../../../contexts/componentsContext/ComponentsCo
8
8
  import type { ChannelActionItem } from '../../ChannelList/hooks/useChannelActionItems';
9
9
  import * as ChannelActionItemsModule from '../../ChannelList/hooks/useChannelActionItems';
10
10
  import * as ChannelActionsModule from '../../ChannelList/hooks/useChannelActions';
11
+ import { SwipableWrapper } from '../../UIComponents/SwipableWrapper';
11
12
  import { ChannelSwipableWrapper } from '../ChannelSwipableWrapper';
12
13
  import * as UseIsChannelMutedModule from '../hooks/useIsChannelMuted';
13
14
 
@@ -60,7 +61,8 @@ jest.mock('../../UIComponents/SwipableWrapper', () => ({
60
61
  rightActionsProbe.items = items;
61
62
  return null;
62
63
  },
63
- SwipableWrapper: (...args: unknown[]) => mockSwipableWrapper(...args),
64
+ SwipableWrapper: (...args: [ComponentProps<typeof SwipableWrapper>]) =>
65
+ mockSwipableWrapper(...args),
64
66
  }));
65
67
 
66
68
  describe('ChannelSwipableWrapper', () => {
@@ -19,7 +19,7 @@ describe('useChannelPreviewDisplayPresence', () => {
19
19
  chatClient = await getTestClientWithUser({
20
20
  id: currentUserId,
21
21
  userID: currentUserId,
22
- });
22
+ } as unknown as Parameters<typeof getTestClientWithUser>[0]);
23
23
 
24
24
  // Create mock channel
25
25
  mockChannel = {
@@ -5,8 +5,10 @@ import NetInfo from '@react-native-community/netinfo';
5
5
 
6
6
  import { act, cleanup, render, waitFor } from '@testing-library/react-native';
7
7
 
8
+ import type { ChatContextValue } from '../../../contexts/chatContext/ChatContext';
8
9
  import { useChatContext } from '../../../contexts/chatContext/ChatContext';
9
10
 
11
+ import type { TranslationContextValue } from '../../../contexts/translationContext/TranslationContext';
10
12
  import { useTranslationContext } from '../../../contexts/translationContext/TranslationContext';
11
13
  import dispatchConnectionChangedEvent from '../../../mock-builders/event/connectionChanged';
12
14
  import dispatchConnectionRecoveredEvent from '../../../mock-builders/event/connectionRecovered';
@@ -14,12 +16,12 @@ import { getTestClient, getTestClientWithUser, setUser } from '../../../mock-bui
14
16
  import { Streami18n } from '../../../utils/i18n/Streami18n';
15
17
  import { Chat } from '../Chat';
16
18
 
17
- const ChatContextConsumer = ({ fn }) => {
19
+ const ChatContextConsumer = ({ fn }: { fn: (ctx: ChatContextValue) => void }) => {
18
20
  fn(useChatContext());
19
21
  return <View testID='children' />;
20
22
  };
21
23
 
22
- const TranslationContextConsumer = ({ fn }) => {
24
+ const TranslationContextConsumer = ({ fn }: { fn: (ctx: TranslationContextValue) => void }) => {
23
25
  fn(useTranslationContext());
24
26
  return <View testID='children' />;
25
27
  };
@@ -42,7 +44,7 @@ describe('Chat', () => {
42
44
  });
43
45
 
44
46
  it('listens and updates state on a connection changed event', async () => {
45
- let context;
47
+ let context: ChatContextValue = {} as ChatContextValue;
46
48
 
47
49
  render(
48
50
  <Chat client={chatClient}>
@@ -65,7 +67,7 @@ describe('Chat', () => {
65
67
  });
66
68
 
67
69
  it('listens and updates state on a connection recovered event', async () => {
68
- let context;
70
+ let context: ChatContextValue = {} as ChatContextValue;
69
71
 
70
72
  render(
71
73
  <Chat client={chatClient}>
@@ -87,7 +89,7 @@ describe('ChatContext', () => {
87
89
  afterEach(cleanup);
88
90
  const chatClient = getTestClient();
89
91
  it('exposes the chat context', async () => {
90
- let context;
92
+ let context: ChatContextValue = {} as ChatContextValue;
91
93
 
92
94
  render(
93
95
  <Chat client={chatClient}>
@@ -109,7 +111,7 @@ describe('ChatContext', () => {
109
111
  });
110
112
 
111
113
  it('calls setActiveChannel to set a new channel in context', async () => {
112
- let context;
114
+ let context: ChatContextValue = {} as ChatContextValue;
113
115
 
114
116
  render(
115
117
  <Chat client={chatClient}>
@@ -124,7 +126,11 @@ describe('ChatContext', () => {
124
126
  const channel = { cid: 'cid', id: 'cid', query: jest.fn() };
125
127
 
126
128
  await waitFor(() => expect(context.channel).toBeUndefined());
127
- act(() => context.setActiveChannel(channel));
129
+ act(() =>
130
+ context.setActiveChannel(
131
+ channel as unknown as Parameters<typeof context.setActiveChannel>[0],
132
+ ),
133
+ );
128
134
 
129
135
  await waitFor(() => expect(context.channel).toStrictEqual(channel));
130
136
  });
@@ -138,7 +144,7 @@ describe('TranslationContext', () => {
138
144
 
139
145
  const chatClient = getTestClient();
140
146
  it('exposes the translation context', async () => {
141
- let context;
147
+ let context: TranslationContextValue = {} as TranslationContextValue;
142
148
 
143
149
  render(
144
150
  <Chat client={chatClient}>
@@ -158,12 +164,12 @@ describe('TranslationContext', () => {
158
164
  });
159
165
 
160
166
  it('uses the i18nInstance provided in props', async () => {
161
- let context;
167
+ let context: TranslationContextValue = {} as TranslationContextValue;
162
168
  const i18nInstance = new Streami18n();
163
169
  const { t, tDateTimeParser } = await i18nInstance.getTranslators();
164
170
 
165
- i18nInstance.t = () => 't';
166
- i18nInstance.tDateTimeParser = () => 'tDateTimeParser';
171
+ i18nInstance.t = (() => 't') as typeof i18nInstance.t;
172
+ i18nInstance.tDateTimeParser = (() => 'tDateTimeParser') as typeof i18nInstance.tDateTimeParser;
167
173
 
168
174
  render(
169
175
  <Chat client={chatClient} i18nInstance={i18nInstance}>
@@ -184,11 +190,11 @@ describe('TranslationContext', () => {
184
190
  });
185
191
 
186
192
  it('updates the context when props change', async () => {
187
- let context;
193
+ let context: TranslationContextValue = {} as TranslationContextValue;
188
194
  const i18nInstance = new Streami18n();
189
195
 
190
- i18nInstance.t = () => 't';
191
- i18nInstance.tDateTimeParser = () => 'tDateTimeParser';
196
+ i18nInstance.t = (() => 't') as typeof i18nInstance.t;
197
+ i18nInstance.tDateTimeParser = (() => 'tDateTimeParser') as typeof i18nInstance.tDateTimeParser;
192
198
 
193
199
  const { rerender } = render(
194
200
  <Chat client={chatClient} i18nInstance={i18nInstance}>
@@ -207,8 +213,9 @@ describe('TranslationContext', () => {
207
213
 
208
214
  const newI18nInstance = new Streami18n();
209
215
 
210
- newI18nInstance.t = () => 'newT';
211
- newI18nInstance.tDateTimeParser = () => 'newtDateTimeParser';
216
+ newI18nInstance.t = (() => 'newT') as typeof newI18nInstance.t;
217
+ newI18nInstance.tDateTimeParser = (() =>
218
+ 'newtDateTimeParser') as typeof newI18nInstance.tDateTimeParser;
212
219
 
213
220
  rerender(
214
221
  <Chat client={chatClient} i18nInstance={newI18nInstance}>
@@ -233,15 +240,15 @@ describe('TranslationContext', () => {
233
240
  // initial mount and render
234
241
  const { rerender } = render(<Chat client={chatClientWithUser} enableOfflineSupport key={1} />);
235
242
 
236
- let unsubscribeSpy;
237
- let listenersAfterInitialMount;
238
- const initSpy = jest.spyOn(chatClientWithUser.offlineDb.syncManager, 'init');
243
+ let unsubscribeSpy: jest.SpyInstance | undefined;
244
+ let listenersAfterInitialMount: Array<unknown> = [];
245
+ const initSpy = jest.spyOn(chatClientWithUser.offlineDb!.syncManager, 'init');
239
246
 
240
247
  await waitFor(() => {
241
248
  // the unsubscribe fn changes during init(), so we keep a reference to the spy
242
249
  unsubscribeSpy = jest.spyOn(
243
- chatClientWithUser.offlineDb.syncManager.connectionChangedListener,
244
- 'unsubscribe',
250
+ chatClientWithUser.offlineDb!.syncManager.connectionChangedListener as object,
251
+ 'unsubscribe' as never,
245
252
  );
246
253
  listenersAfterInitialMount = chatClientWithUser.listeners['connection.changed'];
247
254
  });
@@ -264,15 +271,15 @@ describe('TranslationContext', () => {
264
271
  // initial render
265
272
  const { rerender } = render(<Chat client={chatClientWithUser} enableOfflineSupport />);
266
273
 
267
- let unsubscribeSpy;
268
- let listenersAfterInitialMount;
269
- const initSpy = jest.spyOn(chatClientWithUser.offlineDb.syncManager, 'init');
274
+ let unsubscribeSpy: jest.SpyInstance | undefined;
275
+ let listenersAfterInitialMount: Array<unknown> = [];
276
+ const initSpy = jest.spyOn(chatClientWithUser.offlineDb!.syncManager, 'init');
270
277
 
271
278
  await waitFor(() => {
272
279
  // the unsubscribe fn changes during init(), so we keep a reference to the spy
273
280
  unsubscribeSpy = jest.spyOn(
274
- chatClientWithUser.offlineDb.syncManager.connectionChangedListener,
275
- 'unsubscribe',
281
+ chatClientWithUser.offlineDb!.syncManager.connectionChangedListener as object,
282
+ 'unsubscribe' as never,
276
283
  );
277
284
  listenersAfterInitialMount = chatClientWithUser.listeners['connection.changed'];
278
285
  });
@@ -299,14 +306,14 @@ describe('TranslationContext', () => {
299
306
  // initial render
300
307
  const { rerender } = render(<Chat client={chatClientWithUser} enableOfflineSupport />);
301
308
 
302
- let unsubscribeSpy;
303
- const initSpy = jest.spyOn(chatClientWithUser.offlineDb.syncManager, 'init');
309
+ let unsubscribeSpy: jest.SpyInstance | undefined;
310
+ const initSpy = jest.spyOn(chatClientWithUser.offlineDb!.syncManager, 'init');
304
311
 
305
312
  await waitFor(() => {
306
313
  // the unsubscribe fn changes during init(), so we keep a reference to the spy
307
314
  unsubscribeSpy = jest.spyOn(
308
- chatClientWithUser.offlineDb.syncManager.connectionChangedListener,
309
- 'unsubscribe',
315
+ chatClientWithUser.offlineDb!.syncManager.connectionChangedListener as object,
316
+ 'unsubscribe' as never,
310
317
  );
311
318
  });
312
319
 
@@ -88,15 +88,13 @@ describe('ImageGallery', () => {
88
88
  it('render image gallery component', async () => {
89
89
  render(
90
90
  <ImageGalleryComponent
91
- message={
92
- generateMessage({
93
- attachments: [
94
- generateImageAttachment(),
95
- generateGiphyAttachment(),
96
- generateVideoAttachment({ type: 'video' }),
97
- ],
98
- }) as unknown as LocalMessage
99
- }
91
+ message={generateMessage({
92
+ attachments: [
93
+ generateImageAttachment(),
94
+ generateGiphyAttachment(),
95
+ generateVideoAttachment({ type: 'video' }),
96
+ ],
97
+ })}
100
98
  />,
101
99
  );
102
100
 
@@ -111,11 +109,9 @@ describe('ImageGallery', () => {
111
109
 
112
110
  render(
113
111
  <ImageGalleryComponent
114
- message={
115
- generateMessage({
116
- attachments: [generateImageAttachment()],
117
- }) as unknown as LocalMessage
118
- }
112
+ message={generateMessage({
113
+ attachments: [generateImageAttachment()],
114
+ })}
119
115
  />,
120
116
  );
121
117
 
@@ -4,7 +4,7 @@ import type { SharedValue } from 'react-native-reanimated';
4
4
 
5
5
  import { render, screen, userEvent, waitFor } from '@testing-library/react-native';
6
6
 
7
- import { Attachment, LocalMessage } from 'stream-chat';
7
+ import { Attachment } from 'stream-chat';
8
8
 
9
9
  import { WithComponents } from '../../../contexts/componentsContext/ComponentsContext';
10
10
  import {
@@ -53,7 +53,7 @@ const ImageGalleryComponentVideo = (props: ImageGalleryProps) => {
53
53
  messages: [
54
54
  generateMessage({
55
55
  attachments: [attachment],
56
- }) as unknown as LocalMessage,
56
+ }),
57
57
  ],
58
58
  selectedAttachmentUrl: attachment.asset_url,
59
59
  });
@@ -95,7 +95,7 @@ const ImageGalleryComponentImage = (
95
95
  messages: [
96
96
  generateMessage({
97
97
  attachments: [props.attachment],
98
- }) as unknown as LocalMessage,
98
+ }),
99
99
  ],
100
100
  selectedAttachmentUrl: props.attachment.image_url as string,
101
101
  });
@@ -17,7 +17,8 @@ import {
17
17
  } from '../../../mock-builders/generator/attachment';
18
18
  import { generateMessage } from '../../../mock-builders/generator/message';
19
19
  import { ImageGalleryStateStore } from '../../../state-store/image-gallery-state-store';
20
- import { ImageGalleryGrid, ImageGalleryGridProps } from '../components/ImageGrid';
20
+ import { ImageGalleryGrid } from '../components/ImageGrid';
21
+ import type { ImageGalleryGridProps } from '../components/types';
21
22
 
22
23
  const ImageGalleryGridComponent = (
23
24
  props: Partial<ImageGalleryGridProps> & { message: LocalMessage },
@@ -54,7 +55,7 @@ describe('ImageGalleryGrid', () => {
54
55
  it('should render ImageGalleryGrid', async () => {
55
56
  const message = generateMessage({
56
57
  attachments: [generateImageAttachment(), generateImageAttachment()],
57
- }) as unknown as LocalMessage;
58
+ });
58
59
 
59
60
  render(<ImageGalleryGridComponent message={message} />);
60
61
 
@@ -66,7 +67,7 @@ describe('ImageGalleryGrid', () => {
66
67
  it('should render ImageGalleryGrid individual images', async () => {
67
68
  const message = generateMessage({
68
69
  attachments: [generateImageAttachment(), generateVideoAttachment({ type: 'video' })],
69
- }) as unknown as LocalMessage;
70
+ });
70
71
 
71
72
  render(<ImageGalleryGridComponent message={message} />);
72
73
 
@@ -81,7 +82,7 @@ describe('ImageGalleryGrid', () => {
81
82
 
82
83
  const message = generateMessage({
83
84
  attachments: [generateImageAttachment(), generateVideoAttachment({ type: 'video' })],
84
- }) as unknown as LocalMessage;
85
+ });
85
86
 
86
87
  render(<ImageGalleryGridComponent closeGridView={closeGridViewMock} message={message} />);
87
88
 
@@ -4,8 +4,6 @@ import type { SharedValue } from 'react-native-reanimated';
4
4
 
5
5
  import { render, screen, userEvent, waitFor } from '@testing-library/react-native';
6
6
 
7
- import { LocalMessage } from 'stream-chat';
8
-
9
7
  import { ImageGalleryHeader as ImageGalleryHeaderDefault } from '../../../components/ImageGallery/components/ImageGalleryHeader';
10
8
  import {
11
9
  ImageGalleryContext,
@@ -36,7 +34,7 @@ const ImageGalleryComponent = (props: ImageGalleryProps) => {
36
34
  const [imageGalleryStateStore] = useState(() => new ImageGalleryStateStore());
37
35
  const attachment = generateImageAttachment();
38
36
  imageGalleryStateStore.openImageGallery({
39
- messages: [generateMessage({ attachments: [attachment] }) as unknown as LocalMessage],
37
+ messages: [generateMessage({ attachments: [attachment] })],
40
38
  selectedAttachmentUrl: attachment.image_url,
41
39
  });
42
40
 
@@ -77,9 +75,12 @@ describe('ImageGalleryHeader', () => {
77
75
  const setOverlayMock = jest.fn();
78
76
  const user = userEvent.setup();
79
77
 
80
- jest.spyOn(overlayContext, 'useOverlayContext').mockImplementation(() => ({
81
- setOverlay: setOverlayMock,
82
- }));
78
+ jest.spyOn(overlayContext, 'useOverlayContext').mockImplementation(
79
+ () =>
80
+ ({
81
+ setOverlay: setOverlayMock,
82
+ }) as unknown as ReturnType<typeof overlayContext.useOverlayContext>,
83
+ );
83
84
 
84
85
  render(<ImageGalleryComponent />);
85
86
 
@@ -3,8 +3,6 @@ import { SharedValue, useSharedValue } from 'react-native-reanimated';
3
3
 
4
4
  import { render, renderHook, waitFor } from '@testing-library/react-native';
5
5
 
6
- import { LocalMessage } from 'stream-chat';
7
-
8
6
  import {
9
7
  ImageGalleryContext,
10
8
  ImageGalleryContextValue,
@@ -19,11 +17,14 @@ const ImageGalleryComponentWrapper = ({ children }: PropsWithChildren) => {
19
17
  const initialImageGalleryStateStore = new ImageGalleryStateStore();
20
18
  const attachment = generateImageAttachment();
21
19
  initialImageGalleryStateStore.openImageGallery({
22
- message: generateMessage({
23
- attachments: [attachment],
24
- user: {},
25
- }) as unknown as LocalMessage,
26
- selectedAttachmentUrl: attachment.url,
20
+ messages: [
21
+ generateMessage({
22
+ attachments: [attachment],
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
+ user: {} as any,
25
+ }),
26
+ ],
27
+ selectedAttachmentUrl: (attachment as unknown as { url?: string }).url,
27
28
  });
28
29
 
29
30
  const [imageGalleryStateStore] = useState(initialImageGalleryStateStore);
@@ -49,12 +50,7 @@ it('doesnt fail if fromNow is not available on first render', async () => {
49
50
  });
50
51
  const { getAllByText } = render(
51
52
  <ImageGalleryComponentWrapper>
52
- <ImageGalleryHeader
53
- // @ts-ignore
54
- opacity={sharedValueOpacity}
55
- // @ts-ignore
56
- visible={sharedValueVisible}
57
- />
53
+ <ImageGalleryHeader opacity={sharedValueOpacity!} visible={sharedValueVisible!} />
58
54
  </ImageGalleryComponentWrapper>,
59
55
  );
60
56
  await waitFor(() => {
@@ -4,7 +4,9 @@ import { Pressable, Text, View } from 'react-native';
4
4
  import { SafeAreaProvider } from 'react-native-safe-area-context';
5
5
 
6
6
  import { cleanup, fireEvent, render, waitFor } from '@testing-library/react-native';
7
+ import type { Channel as ChannelType, StreamChat } from 'stream-chat';
7
8
 
9
+ import type { ComponentOverrides } from '../../../../contexts/componentsContext/ComponentsContext';
8
10
  import { WithComponents } from '../../../../contexts/componentsContext/ComponentsContext';
9
11
  import { useMessageContext } from '../../../../contexts/messageContext/MessageContext';
10
12
  import { MessageListItemProvider } from '../../../../contexts/messageListItemContext/MessageListItemContext';
@@ -24,7 +26,7 @@ import { useShouldUseOverlayStyles } from '../../hooks/useShouldUseOverlayStyles
24
26
  import { Message } from '../../Message';
25
27
  import { MessageOverlayWrapper } from '../../MessageOverlayWrapper';
26
28
 
27
- const OverlayStateText = ({ label }) => {
29
+ const OverlayStateText = ({ label }: { label: string }) => {
28
30
  const shouldUseOverlayStyles = useShouldUseOverlayStyles();
29
31
 
30
32
  return <Text>{`${label}:${shouldUseOverlayStyles ? 'overlay' : 'normal'}`}</Text>;
@@ -54,9 +56,14 @@ const CustomMessageItemView = () => (
54
56
  );
55
57
 
56
58
  describe('Message', () => {
57
- let channel;
58
- let chatClient;
59
- let renderMessage;
59
+ let channel: ChannelType;
60
+ let chatClient: StreamChat;
61
+ let renderMessage: (
62
+ options: Omit<React.ComponentProps<typeof Message>, 'groupStyles'> &
63
+ Partial<Pick<React.ComponentProps<typeof Message>, 'groupStyles'>>,
64
+ channelProps?: Partial<React.ComponentProps<typeof Channel>>,
65
+ componentOverrides?: ComponentOverrides,
66
+ ) => ReturnType<typeof render>;
60
67
 
61
68
  const user = generateUser({ id: 'id', name: 'name' });
62
69
  const messages = [generateMessage({ user })];
@@ -70,19 +77,21 @@ describe('Message', () => {
70
77
 
71
78
  chatClient = await getTestClientWithUser(user);
72
79
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
73
- channel = chatClient.channel('messaging', mockedChannel.id);
80
+ channel = chatClient.channel('messaging', mockedChannel.channel.id);
74
81
 
75
82
  renderMessage = (options, channelProps, componentOverrides) =>
76
83
  render(
77
84
  <SafeAreaProvider>
78
85
  <OverlayProvider>
79
86
  <MessageListItemProvider
80
- value={{
81
- goToMessage: jest.fn(),
82
- modifiedTheme: {},
83
- onThreadSelect: jest.fn(),
84
- setNativeScrollability: jest.fn(),
85
- }}
87
+ value={
88
+ {
89
+ goToMessage: jest.fn(),
90
+ modifiedTheme: {},
91
+ onThreadSelect: jest.fn(),
92
+ setNativeScrollability: jest.fn(),
93
+ } as unknown as React.ComponentProps<typeof MessageListItemProvider>['value']
94
+ }
86
95
  >
87
96
  <Chat client={chatClient}>
88
97
  {componentOverrides ? (
@@ -1,7 +1,10 @@
1
1
  import React from 'react';
2
2
 
3
3
  import { cleanup, render, screen, waitFor } from '@testing-library/react-native';
4
+ import type { StreamChat } from 'stream-chat';
4
5
 
6
+ import type { DeepPartial } from '../../../../contexts/themeContext/ThemeContext';
7
+ import type { Theme } from '../../../../contexts/themeContext/utils/theme';
5
8
  import { defaultTheme } from '../../../../contexts/themeContext/utils/theme';
6
9
  import {
7
10
  generateMessage,
@@ -15,7 +18,7 @@ import { MessageAuthor } from '../MessageAuthor';
15
18
  afterEach(cleanup);
16
19
 
17
20
  describe('MessageAuthor', () => {
18
- let chatClient;
21
+ let chatClient: StreamChat;
19
22
 
20
23
  beforeEach(async () => {
21
24
  chatClient = await getTestClientWithUser({ id: 'me' });
@@ -27,8 +30,8 @@ describe('MessageAuthor', () => {
27
30
  user: { ...staticUser, image: undefined },
28
31
  });
29
32
  render(
30
- <Chat client={chatClient} style={defaultTheme}>
31
- <MessageAuthor alignment='right' groupStyles={['bottom']} message={message} />
33
+ <Chat client={chatClient} style={defaultTheme as DeepPartial<Theme>}>
34
+ <MessageAuthor message={message} />
32
35
  </Chat>,
33
36
  );
34
37
 
@@ -37,8 +40,8 @@ describe('MessageAuthor', () => {
37
40
  });
38
41
 
39
42
  screen.rerender(
40
- <Chat client={chatClient} style={defaultTheme}>
41
- <MessageAuthor alignment='right' groupStyles={[]} message={message} />
43
+ <Chat client={chatClient} style={defaultTheme as DeepPartial<Theme>}>
44
+ <MessageAuthor message={message} />
42
45
  </Chat>,
43
46
  );
44
47
 
@@ -52,13 +55,8 @@ describe('MessageAuthor', () => {
52
55
  });
53
56
 
54
57
  screen.rerender(
55
- <Chat client={chatClient} style={defaultTheme}>
56
- <MessageAuthor
57
- alignment='left'
58
- groupStyles={['single']}
59
- message={staticMessage}
60
- showAvatar
61
- />
58
+ <Chat client={chatClient} style={defaultTheme as DeepPartial<Theme>}>
59
+ <MessageAuthor message={staticMessage} showAvatar />
62
60
  </Chat>,
63
61
  );
64
62
 
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { StyleSheet, View } from 'react-native';
3
3
 
4
4
  import { cleanup, render, screen, waitFor } from '@testing-library/react-native';
5
+ import type { Channel as ChannelType, StreamChat } from 'stream-chat';
5
6
 
6
7
  import { ChannelsStateProvider } from '../../../../contexts/channelsStateContext/ChannelsStateContext';
7
8
  import { WithComponents } from '../../../../contexts/componentsContext/ComponentsContext';
@@ -22,10 +23,16 @@ import { getTestClientWithUser } from '../../../../mock-builders/mock';
22
23
  import { Channel } from '../../../Channel/Channel';
23
24
  import { Chat } from '../../../Chat/Chat';
24
25
  import { Message } from '../../Message';
26
+ import type { MessageFooterProps } from '../MessageFooter';
27
+ import type { MessageHeaderProps } from '../MessageHeader';
28
+
25
29
  describe('MessageContent', () => {
26
- let channel;
27
- let chatClient;
28
- let renderMessage;
30
+ let channel: ChannelType;
31
+ let chatClient: StreamChat;
32
+ let renderMessage: (
33
+ options: Omit<React.ComponentProps<typeof Message>, 'groupStyles'> &
34
+ Partial<Pick<React.ComponentProps<typeof Message>, 'groupStyles'>>,
35
+ ) => ReturnType<typeof render>;
29
36
 
30
37
  const user = generateUser({ id: 'id', name: 'name' });
31
38
  const messages = [generateMessage({ user })];
@@ -39,7 +46,7 @@ describe('MessageContent', () => {
39
46
 
40
47
  chatClient = await getTestClientWithUser(user);
41
48
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
42
- channel = chatClient.channel('messaging', mockedChannel.id);
49
+ channel = chatClient.channel('messaging', mockedChannel.channel.id);
43
50
 
44
51
  renderMessage = (options) =>
45
52
  render(
@@ -112,7 +119,9 @@ describe('MessageContent', () => {
112
119
  const user = generateUser();
113
120
  const message = generateMessage({ user });
114
121
 
115
- const ContextMessageHeader = (props) => <View {...props} testID='message-header' />;
122
+ const ContextMessageHeader = (props: MessageHeaderProps) => (
123
+ <View {...props} testID='message-header' />
124
+ );
116
125
 
117
126
  render(
118
127
  <ChannelsStateProvider>
@@ -136,7 +145,9 @@ describe('MessageContent', () => {
136
145
  const user = generateUser();
137
146
  const message = generateMessage({ user });
138
147
 
139
- const ContextMessageFooter = (props) => <View {...props} testID='message-footer' />;
148
+ const ContextMessageFooter = (props: MessageFooterProps) => (
149
+ <View {...props} testID='message-footer' />
150
+ );
140
151
 
141
152
  render(
142
153
  <ChannelsStateProvider>
@@ -272,10 +283,7 @@ describe('MessageContent', () => {
272
283
  const user = generateUser();
273
284
  const message = generateMessage({ user });
274
285
 
275
- renderMessage({
276
- message,
277
- MessageFooter: null,
278
- });
286
+ renderMessage({ message });
279
287
 
280
288
  await waitFor(() => {
281
289
  expect(screen.getByTestId('message-content-wrapper')).toBeTruthy();
@@ -441,7 +449,9 @@ describe('MessageContent', () => {
441
449
  const user = generateUser();
442
450
  const reaction = generateReaction();
443
451
  const message = generateMessage({
444
- reaction_groups: { [reaction.type]: reaction },
452
+ reaction_groups: { [reaction.type]: reaction } as unknown as ReturnType<
453
+ typeof generateMessage
454
+ >['reaction_groups'],
445
455
  user,
446
456
  });
447
457
 
@@ -449,7 +459,7 @@ describe('MessageContent', () => {
449
459
  <ChannelsStateProvider>
450
460
  <Chat client={chatClient}>
451
461
  <Channel channel={channel}>
452
- <Message groupStyles={['bottom']} message={message} reactionsEnabled />
462
+ <Message groupStyles={['bottom']} message={message} />
453
463
  </Channel>
454
464
  </Chat>
455
465
  </ChannelsStateProvider>,
@@ -4,8 +4,10 @@ import { StyleSheet, Text } from 'react-native';
4
4
  import { GestureDetector } from 'react-native-gesture-handler';
5
5
 
6
6
  import { cleanup, render, screen, waitFor } from '@testing-library/react-native';
7
+ import type { Channel as ChannelType, StreamChat } from 'stream-chat';
7
8
 
8
9
  import { ChannelsStateProvider } from '../../../../contexts/channelsStateContext/ChannelsStateContext';
10
+ import type { ComponentOverrides } from '../../../../contexts/componentsContext/ComponentsContext';
9
11
  import { WithComponents } from '../../../../contexts/componentsContext/ComponentsContext';
10
12
  import { useMessageContext } from '../../../../contexts/messageContext/MessageContext';
11
13
 
@@ -25,9 +27,14 @@ import { Chat } from '../../../Chat/Chat';
25
27
  import { Message } from '../../Message';
26
28
 
27
29
  describe('MessageItemView', () => {
28
- let channel;
29
- let chatClient;
30
- let renderMessage;
30
+ let channel: ChannelType;
31
+ let chatClient: StreamChat;
32
+ let renderMessage: (
33
+ options: Omit<React.ComponentProps<typeof Message>, 'groupStyles'> &
34
+ Partial<Pick<React.ComponentProps<typeof Message>, 'groupStyles'>>,
35
+ channelProps?: Partial<React.ComponentProps<typeof Channel>>,
36
+ componentOverrides?: ComponentOverrides,
37
+ ) => ReturnType<typeof render>;
31
38
 
32
39
  const user = generateUser({ id: 'id', name: 'name' });
33
40
  const messages = [generateMessage({ user })];
@@ -41,7 +48,7 @@ describe('MessageItemView', () => {
41
48
 
42
49
  chatClient = await getTestClientWithUser(user);
43
50
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
44
- channel = chatClient.channel('messaging', mockedChannel.id);
51
+ channel = chatClient.channel('messaging', mockedChannel.channel.id);
45
52
 
46
53
  renderMessage = (options, channelProps, componentOverrides) =>
47
54
  render(