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
@@ -38,7 +38,7 @@ describe('MessageList', () => {
38
38
 
39
39
  const chatClient = await getTestClientWithUser({ id: 'testID' });
40
40
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
41
- const channel = chatClient.channel('messaging', mockedChannel.id);
41
+ const channel = chatClient.channel('messaging', mockedChannel.channel.id);
42
42
  await channel.watch();
43
43
 
44
44
  const { getByText, queryAllByTestId } = render(
@@ -56,7 +56,7 @@ describe('MessageList', () => {
56
56
 
57
57
  await waitFor(() => {
58
58
  expect(queryAllByTestId('scroll-to-bottom-button')).toHaveLength(0);
59
- expect(getByText(newMessage.text)).toBeTruthy();
59
+ expect(getByText(newMessage.text as string)).toBeTruthy();
60
60
  });
61
61
  }, 10000);
62
62
 
@@ -73,7 +73,7 @@ describe('MessageList', () => {
73
73
 
74
74
  const chatClient = await getTestClientWithUser({ id: 'testID' });
75
75
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
76
- const channel = chatClient.channel('messaging', mockedChannel.id);
76
+ const channel = chatClient.channel('messaging', mockedChannel.channel.id);
77
77
  await channel.watch();
78
78
 
79
79
  const { getByTestId } = render(
@@ -105,7 +105,7 @@ describe('MessageList', () => {
105
105
 
106
106
  const chatClient = await getTestClientWithUser({ id: 'testID' });
107
107
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
108
- const channel = chatClient.channel('messaging', mockedChannel.id);
108
+ const channel = chatClient.channel('messaging', mockedChannel.channel.id);
109
109
  await channel.watch();
110
110
 
111
111
  const { getByTestId, queryByTestId } = render(
@@ -133,7 +133,7 @@ describe('MessageList', () => {
133
133
 
134
134
  const chatClient = await getTestClientWithUser({ id: 'testID' });
135
135
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
136
- const channel = chatClient.channel('messaging', mockedChannel.id);
136
+ const channel = chatClient.channel('messaging', mockedChannel.channel.id);
137
137
  await channel.watch();
138
138
 
139
139
  const { getByTestId, queryAllByTestId } = render(
@@ -165,7 +165,7 @@ describe('MessageList', () => {
165
165
 
166
166
  const chatClient = await getTestClientWithUser({ id: 'testID' });
167
167
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
168
- const channel = chatClient.channel('messaging', mockedChannel.id);
168
+ const channel = chatClient.channel('messaging', mockedChannel.channel.id);
169
169
  await channel.watch();
170
170
 
171
171
  const { getByTestId } = render(
@@ -192,7 +192,7 @@ describe('MessageList', () => {
192
192
 
193
193
  const chatClient = await getTestClientWithUser({ id: 'testID' });
194
194
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
195
- const channel = chatClient.channel('messaging', mockedChannel.id);
195
+ const channel = chatClient.channel('messaging', mockedChannel.channel.id);
196
196
  await channel.watch();
197
197
 
198
198
  const { getByTestId, getByText, queryAllByTestId } = render(
@@ -216,7 +216,7 @@ describe('MessageList', () => {
216
216
  it('should scroll to a message even if out of the loaded window', async () => {
217
217
  const user1 = generateUser();
218
218
 
219
- const mockedLongMessagesList = [];
219
+ const mockedLongMessagesList: ReturnType<typeof generateMessage>[] = [];
220
220
  // we need a long enough list to make sure elements aren't preloaded by the underlying FlatList
221
221
  for (let i = 0; i <= 150; i += 1) {
222
222
  mockedLongMessagesList.push(generateMessage({ timestamp: new Date(), user: user1 }));
@@ -233,7 +233,7 @@ describe('MessageList', () => {
233
233
 
234
234
  const chatClient = await getTestClientWithUser({ id: 'testID' });
235
235
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
236
- const channel = chatClient.channel('messaging', mockedChannel.id);
236
+ const channel = chatClient.channel('messaging', mockedChannel.channel.id);
237
237
  await channel.watch();
238
238
 
239
239
  render(
@@ -247,8 +247,8 @@ describe('MessageList', () => {
247
247
  );
248
248
 
249
249
  await waitFor(() => {
250
- expect(screen.getByText(targetedMessageText)).toBeOnTheScreen();
251
- expect(() => screen.getByText(latestMessageText)).toThrow();
250
+ expect(screen.getByText(targetedMessageText as string)).toBeOnTheScreen();
251
+ expect(() => screen.getByText(latestMessageText as string)).toThrow();
252
252
  });
253
253
  });
254
254
 
@@ -271,7 +271,7 @@ describe('MessageList', () => {
271
271
 
272
272
  const chatClient = await getTestClientWithUser({ id: user1.id });
273
273
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
274
- const channel = chatClient.channel('messaging', mockedChannel.id);
274
+ const channel = chatClient.channel('messaging', mockedChannel.channel.id);
275
275
  await channel.watch();
276
276
 
277
277
  channel.state = {
@@ -279,7 +279,7 @@ describe('MessageList', () => {
279
279
  latestMessages: [],
280
280
  messages,
281
281
  read: read_data,
282
- };
282
+ } as unknown as typeof channel.state;
283
283
 
284
284
  const { queryByLabelText } = render(
285
285
  <OverlayProvider>
@@ -308,25 +308,20 @@ describe('MessageList', () => {
308
308
 
309
309
  const chatClient = await getTestClientWithUser({ id: user1.id });
310
310
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
311
- const channel = chatClient.channel('messaging', mockedChannel.id);
311
+ const channel = chatClient.channel('messaging', mockedChannel.channel.id);
312
312
  await channel.watch();
313
313
 
314
- const channelUnreadState = {
315
- last_read: new Date(),
316
- unread_messages: 0,
317
- };
318
-
319
314
  channel.state = {
320
315
  ...channelInitialState,
321
316
  latestMessages: [],
322
317
  messages,
323
- };
318
+ } as unknown as typeof channel.state;
324
319
 
325
320
  const { queryByLabelText } = render(
326
321
  <OverlayProvider>
327
322
  <Chat client={chatClient}>
328
323
  <Channel channel={channel}>
329
- <MessageList channelUnreadState={channelUnreadState} />
324
+ <MessageList />
330
325
  </Channel>
331
326
  </Chat>
332
327
  </OverlayProvider>,
@@ -345,7 +340,7 @@ describe('MessageList', () => {
345
340
 
346
341
  const chatClient = await getTestClientWithUser({ id: user.id });
347
342
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
348
- const channel = chatClient.channel('messaging', mockedChannel.id);
343
+ const channel = chatClient.channel('messaging', mockedChannel.channel.id);
349
344
  await channel.watch();
350
345
 
351
346
  const user2 = generateUser();
@@ -382,7 +377,7 @@ describe('MessageList', () => {
382
377
 
383
378
  const chatClient = await getTestClientWithUser({ id: user.id });
384
379
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
385
- const channel = chatClient.channel('messaging', mockedChannel.id);
380
+ const channel = chatClient.channel('messaging', mockedChannel.channel.id);
386
381
  await channel.watch();
387
382
 
388
383
  const targetedMessage = messages[15].id;
@@ -391,7 +386,7 @@ describe('MessageList', () => {
391
386
  ...channelInitialState,
392
387
  latestMessages: [],
393
388
  messages,
394
- };
389
+ } as unknown as typeof channel.state;
395
390
 
396
391
  const flatListRefMock = jest
397
392
  .spyOn(FlatList.prototype, 'scrollToIndex')
@@ -428,17 +423,17 @@ describe('MessageList', () => {
428
423
 
429
424
  const chatClient = await getTestClientWithUser({ id: user.id });
430
425
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
431
- const channel = chatClient.channel('messaging', mockedChannel.id);
426
+ const channel = chatClient.channel('messaging', mockedChannel.channel.id);
432
427
  await channel.watch();
433
428
 
434
- const targetedMessage = 21;
429
+ const targetedMessage = '21';
435
430
  const setTargetedMessage = jest.fn();
436
431
 
437
432
  channel.state = {
438
433
  ...channelInitialState,
439
434
  latestMessages: [],
440
435
  messages,
441
- };
436
+ } as unknown as typeof channel.state;
442
437
 
443
438
  const loadChannelAroundMessage = jest.fn(() => Promise.resolve());
444
439
 
@@ -471,7 +466,9 @@ describe('MessageList pagination', () => {
471
466
  jest.clearAllMocks();
472
467
  });
473
468
 
474
- const mockedHook = (values) => {
469
+ const mockedHook = (
470
+ values: Partial<ReturnType<typeof MessageListPaginationHook.useMessageListPagination>>,
471
+ ) => {
475
472
  const messages = Array.from({ length: 100 }, (_, i) =>
476
473
  generateMessage({ text: `message-${i}` }),
477
474
  );
@@ -499,7 +496,7 @@ describe('MessageList pagination', () => {
499
496
 
500
497
  const chatClient = await getTestClientWithUser({ id: 'testID' });
501
498
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
502
- const channel = chatClient.channel('messaging', mockedChannel.id);
499
+ const channel = chatClient.channel('messaging', mockedChannel.channel.id);
503
500
  await channel.watch();
504
501
 
505
502
  const loadMoreRecent = jest.fn(() => Promise.resolve());
@@ -541,7 +538,7 @@ describe('MessageList pagination', () => {
541
538
 
542
539
  const chatClient = await getTestClientWithUser({ id: 'testID' });
543
540
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
544
- const channel = chatClient.channel('messaging', mockedChannel.id);
541
+ const channel = chatClient.channel('messaging', mockedChannel.channel.id);
545
542
  await channel.watch();
546
543
 
547
544
  const loadMore = jest.fn(() => Promise.resolve());
@@ -586,18 +583,18 @@ describe('MessageList pagination', () => {
586
583
 
587
584
  const chatClient = await getTestClientWithUser({ id: 'testID' });
588
585
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
589
- const channel = chatClient.channel('messaging', mockedChannel.id);
586
+ const channel = chatClient.channel('messaging', mockedChannel.channel.id);
590
587
  await channel.watch();
591
588
 
592
589
  channel.state = {
593
590
  ...channelInitialState,
594
591
  latestMessages: [],
595
592
  members: Object.fromEntries(
596
- Array.from({ length: 10 }, (_, i) => [i, generateMember({ id: i })]),
593
+ Array.from({ length: 10 }, (_, i) => [i, generateMember({ user_id: String(i) })]),
597
594
  ),
598
- messages: Array.from({ length: 10 }, (_, i) => generateMessage({ id: i })),
595
+ messages: Array.from({ length: 10 }, (_, i) => generateMessage({ id: String(i) })),
599
596
  messageSets: [{ isCurrent: true, isLatest: true }],
600
- };
597
+ } as unknown as typeof channel.state;
601
598
 
602
599
  const loadLatestMessages = jest.fn(() => Promise.resolve());
603
600
  mockedHook({ loadLatestMessages });
@@ -13,7 +13,7 @@ import { MessageSystem } from '../MessageSystem';
13
13
 
14
14
  afterEach(cleanup);
15
15
 
16
- let i18nInstance;
16
+ let i18nInstance: Streami18n;
17
17
 
18
18
  describe('MessageSystem', () => {
19
19
  beforeAll(() => {
@@ -25,8 +25,12 @@ describe('MessageSystem', () => {
25
25
  const translators = await i18nInstance.getTranslators();
26
26
  const message = generateMessage();
27
27
  const { queryByTestId } = render(
28
- <ThemeProvider style={defaultTheme}>
29
- <TranslationProvider value={translators}>
28
+ <ThemeProvider
29
+ style={defaultTheme as unknown as Parameters<typeof ThemeProvider>[0]['style']}
30
+ >
31
+ <TranslationProvider
32
+ value={translators as unknown as Parameters<typeof TranslationProvider>[0]['value']}
33
+ >
30
34
  <MessageSystem message={message} />
31
35
  </TranslationProvider>
32
36
  </ThemeProvider>,
@@ -42,8 +46,12 @@ describe('MessageSystem', () => {
42
46
  const user = generateStaticUser(0);
43
47
  const message = generateStaticMessage('Hello World', { user });
44
48
  render(
45
- <ThemeProvider style={defaultTheme}>
46
- <TranslationProvider value={translators}>
49
+ <ThemeProvider
50
+ style={defaultTheme as unknown as Parameters<typeof ThemeProvider>[0]['style']}
51
+ >
52
+ <TranslationProvider
53
+ value={translators as unknown as Parameters<typeof TranslationProvider>[0]['value']}
54
+ >
47
55
  <MessageSystem message={message} />
48
56
  </TranslationProvider>
49
57
  </ThemeProvider>,
@@ -3,6 +3,7 @@ import React from 'react';
3
3
  import { cleanup, fireEvent, render, waitFor } from '@testing-library/react-native';
4
4
 
5
5
  import { ThemeProvider } from '../../../contexts/themeContext/ThemeContext';
6
+ import type { TranslationContextValue } from '../../../contexts/translationContext/TranslationContext';
6
7
  import { TranslationProvider } from '../../../contexts/translationContext/TranslationContext';
7
8
  import { Streami18n } from '../../../utils/i18n/Streami18n';
8
9
  import { ScrollToBottomButton } from '../ScrollToBottomButton';
@@ -20,7 +21,7 @@ describe('ScrollToBottomButton', () => {
20
21
  const translators = await i18nInstance.getTranslators();
21
22
  const { queryByTestId } = render(
22
23
  <ThemeProvider>
23
- <TranslationProvider value={translators}>
24
+ <TranslationProvider value={translators as TranslationContextValue}>
24
25
  <ScrollToBottomButton onPress={() => null} showNotification={false} />
25
26
  </TranslationProvider>
26
27
  </ThemeProvider>,
@@ -36,7 +37,7 @@ describe('ScrollToBottomButton', () => {
36
37
  const translators = await i18nInstance.getTranslators();
37
38
  const { queryByTestId } = render(
38
39
  <ThemeProvider>
39
- <TranslationProvider value={translators}>
40
+ <TranslationProvider value={translators as TranslationContextValue}>
40
41
  <ScrollToBottomButton onPress={() => null} showNotification={true} />
41
42
  </TranslationProvider>
42
43
  </ThemeProvider>,
@@ -53,7 +54,7 @@ describe('ScrollToBottomButton', () => {
53
54
  const onPress = jest.fn();
54
55
  const { getByTestId } = render(
55
56
  <ThemeProvider>
56
- <TranslationProvider value={translators}>
57
+ <TranslationProvider value={translators as TranslationContextValue}>
57
58
  <ScrollToBottomButton onPress={onPress} showNotification={true} />
58
59
  </TranslationProvider>
59
60
  </ThemeProvider>,
@@ -63,18 +64,13 @@ describe('ScrollToBottomButton', () => {
63
64
  });
64
65
 
65
66
  it('should display the unread count', async () => {
66
- const t = jest.fn((key) => key);
67
+ const t = jest.fn((key: string) => key);
67
68
  const i18nInstance = new Streami18n();
68
69
  const translators = await i18nInstance.getTranslators();
69
70
  const { getByTestId, getByText } = render(
70
71
  <ThemeProvider>
71
- <TranslationProvider value={{ ...translators, t }}>
72
- <ScrollToBottomButton
73
- onPress={() => null}
74
- showNotification={true}
75
- t={t}
76
- unreadCount={3}
77
- />
72
+ <TranslationProvider value={{ ...translators, t } as unknown as TranslationContextValue}>
73
+ <ScrollToBottomButton onPress={() => null} showNotification={true} unreadCount={3} />
78
74
  </TranslationProvider>
79
75
  </ThemeProvider>,
80
76
  );
@@ -89,7 +85,7 @@ describe('ScrollToBottomButton', () => {
89
85
  const translators = await i18nInstance.getTranslators();
90
86
  const { toJSON } = render(
91
87
  <ThemeProvider>
92
- <TranslationProvider value={translators}>
88
+ <TranslationProvider value={translators as TranslationContextValue}>
93
89
  <ScrollToBottomButton onPress={() => null} showNotification={true} />
94
90
  </TranslationProvider>
95
91
  </ThemeProvider>,
@@ -2,6 +2,8 @@ import React from 'react';
2
2
 
3
3
  import { cleanup, render, waitFor } from '@testing-library/react-native';
4
4
 
5
+ import type { Event, StreamChat } from 'stream-chat';
6
+
5
7
  import { TypingProvider } from '../../../contexts/typingContext/TypingContext';
6
8
 
7
9
  import { generateStaticUser, generateUser } from '../../../mock-builders/generator/user';
@@ -12,7 +14,7 @@ import { TypingIndicator } from '../TypingIndicator';
12
14
  afterEach(cleanup);
13
15
 
14
16
  describe('TypingIndicator', () => {
15
- let chatClient;
17
+ let chatClient: StreamChat;
16
18
 
17
19
  it('should render typing indicator for two users', async () => {
18
20
  const user0 = generateUser();
@@ -25,7 +27,7 @@ describe('TypingIndicator', () => {
25
27
 
26
28
  const { getAllByTestId, getByTestId } = render(
27
29
  <Chat client={chatClient}>
28
- <TypingProvider value={{ typing }}>
30
+ <TypingProvider value={{ typing: typing as unknown as Record<string, Event> }}>
29
31
  <TypingIndicator />
30
32
  </TypingProvider>
31
33
  </Chat>,
@@ -46,7 +48,7 @@ describe('TypingIndicator', () => {
46
48
 
47
49
  const { getAllByTestId, getByTestId } = render(
48
50
  <Chat client={chatClient}>
49
- <TypingProvider value={{ typing }}>
51
+ <TypingProvider value={{ typing: typing as unknown as Record<string, Event> }}>
50
52
  <TypingIndicator />
51
53
  </TypingProvider>
52
54
  </Chat>,
@@ -68,7 +70,7 @@ describe('TypingIndicator', () => {
68
70
 
69
71
  const { toJSON } = render(
70
72
  <Chat client={chatClient}>
71
- <TypingProvider value={{ typing }}>
73
+ <TypingProvider value={{ typing: typing as unknown as Record<string, Event> }}>
72
74
  <TypingIndicator />
73
75
  </TypingProvider>
74
76
  </Chat>,
@@ -27,7 +27,7 @@ beforeEach(async () => {
27
27
 
28
28
  const messages = new Array(10)
29
29
  .fill(undefined)
30
- .map((_: undefined, id: number) => generateMessage({ id }));
30
+ .map((_: undefined, id: number) => generateMessage({ id: String(id) }));
31
31
 
32
32
  const Providers: FC<{ children: React.ReactNode }> = ({ children }) => {
33
33
  const messageListContext = useCreatePaginatedMessageListContext({
@@ -57,7 +57,7 @@ describe('useMessageList', () => {
57
57
  useMessageList({
58
58
  noGroupByUser: true,
59
59
  threadList: false,
60
- }),
60
+ } as unknown as Parameters<typeof useMessageList>[0]),
61
61
  { wrapper: Providers },
62
62
  );
63
63
  const reversedMessages = messages.reverse();
@@ -29,7 +29,7 @@ export const useMessageList = (params: UseMessageListParams) => {
29
29
  const messageList = threadList ? threadMessages : messages;
30
30
 
31
31
  const processedMessageList = useMemo<LocalMessage[]>(() => {
32
- const newMessageList = [];
32
+ const newMessageList: LocalMessage[] = [];
33
33
  for (const message of messageList) {
34
34
  if (isFlashList) {
35
35
  newMessageList.push(message);
@@ -9,11 +9,14 @@ import { render } from '@testing-library/react-native';
9
9
  import { ThemeProvider } from '../../../contexts/themeContext/ThemeContext';
10
10
  import { defaultTheme } from '../../../contexts/themeContext/utils/theme';
11
11
  import { MessageActionList } from '../MessageActionList';
12
+ import type { MessageActionListProps } from '../MessageActionList';
12
13
  import { MessageActionListItemProps } from '../MessageActionListItem';
13
14
 
14
15
  const MockMessageActionListItem = (props: MessageActionListItemProps) => <Text>{props.title}</Text>;
15
16
 
16
- const defaultProps = {
17
+ const defaultProps: MessageActionListProps & {
18
+ MessageActionListItem: typeof MockMessageActionListItem;
19
+ } = {
17
20
  MessageActionListItem: MockMessageActionListItem,
18
21
  messageActions: [
19
22
  { action: jest.fn(), actionType: 'copyMessage', type: 'standard', title: 'Copy Message' },
@@ -18,6 +18,7 @@ describe('MessageActionListItem', () => {
18
18
  actionType: 'copyMessage',
19
19
  icon: <Text>Icon</Text>,
20
20
  title: 'Copy Message',
21
+ type: 'standard' as const,
21
22
  };
22
23
 
23
24
  it('should render correctly with given props', () => {
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
 
3
3
  import { fireEvent, render, cleanup, waitFor } from '@testing-library/react-native';
4
+ import type { StreamChat } from 'stream-chat';
4
5
 
5
6
  import {
6
7
  MessageContextValue,
@@ -39,8 +40,11 @@ const defaultProps = {
39
40
  };
40
41
 
41
42
  describe('MessageReactionPicker', () => {
42
- let client;
43
- let renderComponent;
43
+ let client: StreamChat;
44
+ let renderComponent: (
45
+ props?: Partial<React.ComponentProps<typeof MessageReactionPicker>>,
46
+ ownCapabilities?: Partial<OwnCapabilitiesContextValue>,
47
+ ) => ReturnType<typeof render>;
44
48
 
45
49
  beforeEach(async () => {
46
50
  client = await getTestClientWithUser({ id: 'reaction-test-user' });
@@ -4,7 +4,7 @@ import { Text } from 'react-native';
4
4
 
5
5
  import { fireEvent, render } from '@testing-library/react-native';
6
6
 
7
- import { LocalMessage, ReactionResponse } from 'stream-chat';
7
+ import { ReactionResponse } from 'stream-chat';
8
8
 
9
9
  import { WithComponents } from '../../../contexts/componentsContext/ComponentsContext';
10
10
  import {
@@ -35,7 +35,7 @@ const defaultProps = {
35
35
  message: {
36
36
  ...generateMessage(),
37
37
  reaction_groups: { like: { count: 1, sum_scores: 1 }, love: { count: 1, sum_scores: 1 } },
38
- } as unknown as LocalMessage,
38
+ },
39
39
  supportedReactions: mockSupportedReactions,
40
40
  };
41
41
 
@@ -51,7 +51,7 @@ const renderComponent = (props = {}) =>
51
51
  ),
52
52
  }}
53
53
  >
54
- <MessagesProvider value={{} as unknown as MessagesContextValue}>
54
+ <MessagesProvider value={{} as MessagesContextValue}>
55
55
  <MessageUserReactions {...defaultProps} {...props} />
56
56
  </MessagesProvider>
57
57
  </WithComponents>
@@ -2,6 +2,10 @@ import React from 'react';
2
2
 
3
3
  import { render } from '@testing-library/react-native';
4
4
 
5
+ import type { StreamChat } from 'stream-chat';
6
+
7
+ import type { DeepPartial } from '../../../contexts/themeContext/ThemeContext';
8
+ import type { Theme } from '../../../contexts/themeContext/utils/theme';
5
9
  import { defaultTheme } from '../../../contexts/themeContext/utils/theme';
6
10
  import { getTestClientWithUser } from '../../../mock-builders/mock';
7
11
  import { Chat } from '../../Chat/Chat';
@@ -9,7 +13,7 @@ import { MessageUserReactionsAvatar } from '../MessageUserReactionsAvatar';
9
13
 
10
14
  describe('MessageUserReactionsAvatar', () => {
11
15
  const reaction = { id: 'test-user', image: 'image-url', name: 'Test User', type: 'like' }; // Mock reaction data
12
- let chatClient;
16
+ let chatClient: StreamChat;
13
17
 
14
18
  beforeEach(async () => {
15
19
  chatClient = await getTestClientWithUser({ id: 'me' });
@@ -17,7 +21,7 @@ describe('MessageUserReactionsAvatar', () => {
17
21
 
18
22
  it('should render Avatar with correct image, name, and default size', () => {
19
23
  const { queryByTestId } = render(
20
- <Chat client={chatClient} style={defaultTheme}>
24
+ <Chat client={chatClient} style={defaultTheme as DeepPartial<Theme>}>
21
25
  <MessageUserReactionsAvatar reaction={reaction} />
22
26
  </Chat>,
23
27
  );
@@ -28,7 +32,7 @@ describe('MessageUserReactionsAvatar', () => {
28
32
 
29
33
  it('should render Avatar with correct image, name, and custom size', () => {
30
34
  const { queryByTestId } = render(
31
- <Chat client={chatClient} style={defaultTheme}>
35
+ <Chat client={chatClient} style={defaultTheme as DeepPartial<Theme>}>
32
36
  <MessageUserReactionsAvatar reaction={reaction} size={'lg'} />
33
37
  </Chat>,
34
38
  );
@@ -38,7 +38,8 @@ const renderComponent = async (props = {}, clientUserID = 'user2') =>
38
38
  >
39
39
  <ThemeProvider theme={defaultTheme}>
40
40
  <MessageUserReactionsItem
41
- MessageUserReactionsAvatar={MockOverlayReactionsAvatar}
41
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
+ {...({ MessageUserReactionsAvatar: MockOverlayReactionsAvatar } as any)}
42
43
  reaction={mockReaction}
43
44
  supportedReactions={mockSupportedReactions}
44
45
  {...props}
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
 
3
3
  import { act, cleanup, render, screen, waitFor } from '@testing-library/react-native';
4
+ import type { Channel as ChannelType, LocalMessage, StreamChat } from 'stream-chat';
4
5
  import { v5 as uuidv5 } from 'uuid';
5
6
 
6
7
  import { AttachmentPickerProvider } from '../../../contexts/attachmentPickerContext/AttachmentPickerContext';
@@ -23,11 +24,21 @@ import { Thread } from '../Thread';
23
24
 
24
25
  const StreamReactNativeNamespace = '9b244ee4-7d69-4d7b-ae23-cf89e9f7b035';
25
26
 
26
- const renderComponent = ({ chatClient, channel, props, thread }) => {
27
+ const renderComponent = ({
28
+ chatClient,
29
+ channel,
30
+ props,
31
+ thread,
32
+ }: {
33
+ channel: ChannelType;
34
+ chatClient: StreamChat;
35
+ props?: Partial<React.ComponentProps<typeof Thread>>;
36
+ thread: LocalMessage;
37
+ }) => {
27
38
  return render(
28
39
  <OverlayProvider>
29
40
  <Chat client={chatClient}>
30
- <Channel channel={channel} client={chatClient} thread={thread} threadList>
41
+ <Channel channel={channel} thread={thread} threadList>
31
42
  <Thread {...props} />
32
43
  </Channel>
33
44
  </Chat>
@@ -36,8 +47,8 @@ const renderComponent = ({ chatClient, channel, props, thread }) => {
36
47
  };
37
48
 
38
49
  describe('Thread', () => {
39
- let chatClient;
40
- let channel;
50
+ let chatClient: StreamChat;
51
+ let channel: ChannelType;
41
52
 
42
53
  beforeEach(async () => {
43
54
  const { client: client, channels } = await initiateClientWithChannels();
@@ -64,7 +75,9 @@ describe('Thread', () => {
64
75
  generateMessage({ cid, parent_id }),
65
76
  ];
66
77
 
67
- channel.state.addMessagesSorted(threadResponses);
78
+ channel.state.addMessagesSorted(
79
+ threadResponses as unknown as Parameters<typeof channel.state.addMessagesSorted>[0],
80
+ );
68
81
 
69
82
  renderComponent({ channel, chatClient, props, thread });
70
83
 
@@ -122,19 +135,30 @@ describe('Thread', () => {
122
135
 
123
136
  const chatClient = await getTestClientWithUser({ id: 'testID2' });
124
137
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
125
- const channel = chatClient.channel('messaging', mockedChannel.id);
138
+ const channel = chatClient.channel('messaging', mockedChannel.channel.id);
126
139
  await channel.query();
127
140
 
128
- channel.state.addMessagesSorted(threadResponses);
141
+ channel.state.addMessagesSorted(
142
+ threadResponses as unknown as Parameters<typeof channel.state.addMessagesSorted>[0],
143
+ );
129
144
 
130
- let setLastRead;
145
+ let setLastRead: ((date?: Date) => void) | undefined;
131
146
 
132
147
  const { getByText, toJSON } = render(
133
148
  <ChannelsStateProvider>
134
149
  <Chat client={chatClient} i18nInstance={i18nInstance}>
135
- <AttachmentPickerProvider value={{ closePicker: jest.fn(), openPicker: jest.fn() }}>
136
- <ImageGalleryProvider>
137
- <Channel channel={channel} client={chatClient} thread={thread} threadList>
150
+ <AttachmentPickerProvider
151
+ value={
152
+ {
153
+ closePicker: jest.fn(),
154
+ openPicker: jest.fn(),
155
+ } as unknown as React.ComponentProps<typeof AttachmentPickerProvider>['value']
156
+ }
157
+ >
158
+ <ImageGalleryProvider
159
+ value={{} as React.ComponentProps<typeof ImageGalleryProvider>['value']}
160
+ >
161
+ <Channel channel={channel} thread={thread} threadList>
138
162
  <ChannelContext.Consumer>
139
163
  {(c) => {
140
164
  setLastRead = c.setLastRead;
@@ -154,9 +178,13 @@ describe('Thread', () => {
154
178
  expect(getByText('Message6')).toBeTruthy();
155
179
  });
156
180
 
157
- act(() => setLastRead(new Date('2020-08-17T18:08:03.196Z')));
181
+ act(() => setLastRead!(new Date('2020-08-17T18:08:03.196Z')));
158
182
 
159
- const snapshot = toJSON();
183
+ const snapshot = toJSON() as unknown as {
184
+ children: Array<{
185
+ children: Array<{ children: Array<{ props: { ListFooterComponent: unknown } }> }>;
186
+ }>;
187
+ };
160
188
  snapshot.children[0].children[0].children[0].props.ListFooterComponent = null;
161
189
 
162
190
  await waitFor(() => {