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

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 (461) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js +6 -2
  3. package/lib/commonjs/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js.map +1 -1
  4. package/lib/commonjs/components/Indicators/EmptyStateIndicator.js +1 -1
  5. package/lib/commonjs/components/Indicators/EmptyStateIndicator.js.map +1 -1
  6. package/lib/commonjs/components/Message/MessageItemView/utils/renderText.test.js +1 -1
  7. package/lib/commonjs/components/Message/MessageItemView/utils/renderText.test.js.map +1 -1
  8. package/lib/commonjs/components/MessageInput/components/AttachmentPreview/AttachmentUploadProgressIndicator.js +8 -3
  9. package/lib/commonjs/components/MessageInput/components/AttachmentPreview/AttachmentUploadProgressIndicator.js.map +1 -1
  10. package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
  11. package/lib/commonjs/components/Poll/CreatePollContent.js +3 -3
  12. package/lib/commonjs/components/Poll/CreatePollContent.js.map +1 -1
  13. package/lib/commonjs/i18n/en.json +8 -0
  14. package/lib/commonjs/i18n/es.json +8 -0
  15. package/lib/commonjs/i18n/fr.json +8 -0
  16. package/lib/commonjs/i18n/he.json +8 -0
  17. package/lib/commonjs/i18n/hi.json +8 -0
  18. package/lib/commonjs/i18n/it.json +8 -0
  19. package/lib/commonjs/i18n/ja.json +8 -0
  20. package/lib/commonjs/i18n/ko.json +8 -0
  21. package/lib/commonjs/i18n/nl.json +8 -0
  22. package/lib/commonjs/i18n/pt-br.json +8 -0
  23. package/lib/commonjs/i18n/ru.json +8 -0
  24. package/lib/commonjs/i18n/tr.json +8 -0
  25. package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
  26. package/lib/commonjs/mock-builders/api/channelMocks.js +38 -31
  27. package/lib/commonjs/mock-builders/api/channelMocks.js.map +1 -1
  28. package/lib/commonjs/mock-builders/api/deleteMessage.js.map +1 -1
  29. package/lib/commonjs/mock-builders/api/deleteReaction.js.map +1 -1
  30. package/lib/commonjs/mock-builders/api/error.js.map +1 -1
  31. package/lib/commonjs/mock-builders/api/getOrCreateChannel.js.map +1 -1
  32. package/lib/commonjs/mock-builders/api/initiateClientWithChannels.js +1 -1
  33. package/lib/commonjs/mock-builders/api/initiateClientWithChannels.js.map +1 -1
  34. package/lib/commonjs/mock-builders/api/queryChannels.js.map +1 -1
  35. package/lib/commonjs/mock-builders/api/queryMembers.js +12 -11
  36. package/lib/commonjs/mock-builders/api/queryMembers.js.map +1 -1
  37. package/lib/commonjs/mock-builders/api/sendMessage.js.map +1 -1
  38. package/lib/commonjs/mock-builders/api/sendReaction.js.map +1 -1
  39. package/lib/commonjs/mock-builders/api/threadReplies.js.map +1 -1
  40. package/lib/commonjs/mock-builders/api/useMockedApis.js.map +1 -1
  41. package/lib/commonjs/mock-builders/api/utils.js.map +1 -1
  42. package/lib/commonjs/mock-builders/attachments.js.map +1 -1
  43. package/lib/commonjs/mock-builders/event/channelDeleted.js +3 -2
  44. package/lib/commonjs/mock-builders/event/channelDeleted.js.map +1 -1
  45. package/lib/commonjs/mock-builders/event/channelHidden.js +3 -2
  46. package/lib/commonjs/mock-builders/event/channelHidden.js.map +1 -1
  47. package/lib/commonjs/mock-builders/event/channelTruncated.js +3 -2
  48. package/lib/commonjs/mock-builders/event/channelTruncated.js.map +1 -1
  49. package/lib/commonjs/mock-builders/event/channelUpdated.js +3 -2
  50. package/lib/commonjs/mock-builders/event/channelUpdated.js.map +1 -1
  51. package/lib/commonjs/mock-builders/event/channelVisible.js +3 -2
  52. package/lib/commonjs/mock-builders/event/channelVisible.js.map +1 -1
  53. package/lib/commonjs/mock-builders/event/connectionChanged.js +3 -2
  54. package/lib/commonjs/mock-builders/event/connectionChanged.js.map +1 -1
  55. package/lib/commonjs/mock-builders/event/connectionRecovered.js +3 -2
  56. package/lib/commonjs/mock-builders/event/connectionRecovered.js.map +1 -1
  57. package/lib/commonjs/mock-builders/event/memberAdded.js +3 -2
  58. package/lib/commonjs/mock-builders/event/memberAdded.js.map +1 -1
  59. package/lib/commonjs/mock-builders/event/memberRemoved.js +3 -2
  60. package/lib/commonjs/mock-builders/event/memberRemoved.js.map +1 -1
  61. package/lib/commonjs/mock-builders/event/memberUpdated.js +3 -2
  62. package/lib/commonjs/mock-builders/event/memberUpdated.js.map +1 -1
  63. package/lib/commonjs/mock-builders/event/messageDeleted.js +3 -2
  64. package/lib/commonjs/mock-builders/event/messageDeleted.js.map +1 -1
  65. package/lib/commonjs/mock-builders/event/messageNew.js +3 -2
  66. package/lib/commonjs/mock-builders/event/messageNew.js.map +1 -1
  67. package/lib/commonjs/mock-builders/event/messageRead.js +3 -2
  68. package/lib/commonjs/mock-builders/event/messageRead.js.map +1 -1
  69. package/lib/commonjs/mock-builders/event/messageUpdated.js +3 -2
  70. package/lib/commonjs/mock-builders/event/messageUpdated.js.map +1 -1
  71. package/lib/commonjs/mock-builders/event/notificationAddedToChannel.js +3 -2
  72. package/lib/commonjs/mock-builders/event/notificationAddedToChannel.js.map +1 -1
  73. package/lib/commonjs/mock-builders/event/notificationChannelMutesUpdated.js +3 -2
  74. package/lib/commonjs/mock-builders/event/notificationChannelMutesUpdated.js.map +1 -1
  75. package/lib/commonjs/mock-builders/event/notificationMarkRead.js +3 -2
  76. package/lib/commonjs/mock-builders/event/notificationMarkRead.js.map +1 -1
  77. package/lib/commonjs/mock-builders/event/notificationMarkUnread.js +3 -2
  78. package/lib/commonjs/mock-builders/event/notificationMarkUnread.js.map +1 -1
  79. package/lib/commonjs/mock-builders/event/notificationMessageNew.js +3 -2
  80. package/lib/commonjs/mock-builders/event/notificationMessageNew.js.map +1 -1
  81. package/lib/commonjs/mock-builders/event/notificationMutesUpdated.js +3 -2
  82. package/lib/commonjs/mock-builders/event/notificationMutesUpdated.js.map +1 -1
  83. package/lib/commonjs/mock-builders/event/notificationRemovedFromChannel.js +3 -2
  84. package/lib/commonjs/mock-builders/event/notificationRemovedFromChannel.js.map +1 -1
  85. package/lib/commonjs/mock-builders/event/reactionDeleted.js +3 -2
  86. package/lib/commonjs/mock-builders/event/reactionDeleted.js.map +1 -1
  87. package/lib/commonjs/mock-builders/event/reactionNew.js +3 -2
  88. package/lib/commonjs/mock-builders/event/reactionNew.js.map +1 -1
  89. package/lib/commonjs/mock-builders/event/reactionUpdated.js +3 -2
  90. package/lib/commonjs/mock-builders/event/reactionUpdated.js.map +1 -1
  91. package/lib/commonjs/mock-builders/event/typing.js +3 -2
  92. package/lib/commonjs/mock-builders/event/typing.js.map +1 -1
  93. package/lib/commonjs/mock-builders/event/userPresence.js +3 -2
  94. package/lib/commonjs/mock-builders/event/userPresence.js.map +1 -1
  95. package/lib/commonjs/mock-builders/event/userUpdated.js +3 -2
  96. package/lib/commonjs/mock-builders/event/userUpdated.js.map +1 -1
  97. package/lib/commonjs/mock-builders/generator/attachment.js +0 -3
  98. package/lib/commonjs/mock-builders/generator/attachment.js.map +1 -1
  99. package/lib/commonjs/mock-builders/generator/channel.js +10 -12
  100. package/lib/commonjs/mock-builders/generator/channel.js.map +1 -1
  101. package/lib/commonjs/mock-builders/generator/member.js +3 -2
  102. package/lib/commonjs/mock-builders/generator/member.js.map +1 -1
  103. package/lib/commonjs/mock-builders/generator/message.js +12 -7
  104. package/lib/commonjs/mock-builders/generator/message.js.map +1 -1
  105. package/lib/commonjs/mock-builders/generator/reaction.js +3 -2
  106. package/lib/commonjs/mock-builders/generator/reaction.js.map +1 -1
  107. package/lib/commonjs/mock-builders/generator/user.js +4 -3
  108. package/lib/commonjs/mock-builders/generator/user.js.map +1 -1
  109. package/lib/commonjs/mock-builders/mock.js +15 -11
  110. package/lib/commonjs/mock-builders/mock.js.map +1 -1
  111. package/lib/commonjs/store/apis/addPendingTask.js.map +1 -1
  112. package/lib/commonjs/store/apis/deleteMessage.js.map +1 -1
  113. package/lib/commonjs/store/apis/upsertDraft.js.map +1 -1
  114. package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js.map +1 -1
  115. package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js.map +1 -1
  116. package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
  117. package/lib/commonjs/test-utils/BetterSqlite.js +11 -7
  118. package/lib/commonjs/test-utils/BetterSqlite.js.map +1 -1
  119. package/lib/commonjs/version.json +1 -1
  120. package/lib/module/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js +6 -2
  121. package/lib/module/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js.map +1 -1
  122. package/lib/module/components/Indicators/EmptyStateIndicator.js +1 -1
  123. package/lib/module/components/Indicators/EmptyStateIndicator.js.map +1 -1
  124. package/lib/module/components/Message/MessageItemView/utils/renderText.test.js +1 -1
  125. package/lib/module/components/Message/MessageItemView/utils/renderText.test.js.map +1 -1
  126. package/lib/module/components/MessageInput/components/AttachmentPreview/AttachmentUploadProgressIndicator.js +8 -3
  127. package/lib/module/components/MessageInput/components/AttachmentPreview/AttachmentUploadProgressIndicator.js.map +1 -1
  128. package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
  129. package/lib/module/components/Poll/CreatePollContent.js +3 -3
  130. package/lib/module/components/Poll/CreatePollContent.js.map +1 -1
  131. package/lib/module/i18n/en.json +8 -0
  132. package/lib/module/i18n/es.json +8 -0
  133. package/lib/module/i18n/fr.json +8 -0
  134. package/lib/module/i18n/he.json +8 -0
  135. package/lib/module/i18n/hi.json +8 -0
  136. package/lib/module/i18n/it.json +8 -0
  137. package/lib/module/i18n/ja.json +8 -0
  138. package/lib/module/i18n/ko.json +8 -0
  139. package/lib/module/i18n/nl.json +8 -0
  140. package/lib/module/i18n/pt-br.json +8 -0
  141. package/lib/module/i18n/ru.json +8 -0
  142. package/lib/module/i18n/tr.json +8 -0
  143. package/lib/module/mock-builders/DB/mock.js.map +1 -1
  144. package/lib/module/mock-builders/api/channelMocks.js +38 -31
  145. package/lib/module/mock-builders/api/channelMocks.js.map +1 -1
  146. package/lib/module/mock-builders/api/deleteMessage.js.map +1 -1
  147. package/lib/module/mock-builders/api/deleteReaction.js.map +1 -1
  148. package/lib/module/mock-builders/api/error.js.map +1 -1
  149. package/lib/module/mock-builders/api/getOrCreateChannel.js.map +1 -1
  150. package/lib/module/mock-builders/api/initiateClientWithChannels.js +1 -1
  151. package/lib/module/mock-builders/api/initiateClientWithChannels.js.map +1 -1
  152. package/lib/module/mock-builders/api/queryChannels.js.map +1 -1
  153. package/lib/module/mock-builders/api/queryMembers.js +12 -11
  154. package/lib/module/mock-builders/api/queryMembers.js.map +1 -1
  155. package/lib/module/mock-builders/api/sendMessage.js.map +1 -1
  156. package/lib/module/mock-builders/api/sendReaction.js.map +1 -1
  157. package/lib/module/mock-builders/api/threadReplies.js.map +1 -1
  158. package/lib/module/mock-builders/api/useMockedApis.js.map +1 -1
  159. package/lib/module/mock-builders/api/utils.js.map +1 -1
  160. package/lib/module/mock-builders/attachments.js.map +1 -1
  161. package/lib/module/mock-builders/event/channelDeleted.js +3 -2
  162. package/lib/module/mock-builders/event/channelDeleted.js.map +1 -1
  163. package/lib/module/mock-builders/event/channelHidden.js +3 -2
  164. package/lib/module/mock-builders/event/channelHidden.js.map +1 -1
  165. package/lib/module/mock-builders/event/channelTruncated.js +3 -2
  166. package/lib/module/mock-builders/event/channelTruncated.js.map +1 -1
  167. package/lib/module/mock-builders/event/channelUpdated.js +3 -2
  168. package/lib/module/mock-builders/event/channelUpdated.js.map +1 -1
  169. package/lib/module/mock-builders/event/channelVisible.js +3 -2
  170. package/lib/module/mock-builders/event/channelVisible.js.map +1 -1
  171. package/lib/module/mock-builders/event/connectionChanged.js +3 -2
  172. package/lib/module/mock-builders/event/connectionChanged.js.map +1 -1
  173. package/lib/module/mock-builders/event/connectionRecovered.js +3 -2
  174. package/lib/module/mock-builders/event/connectionRecovered.js.map +1 -1
  175. package/lib/module/mock-builders/event/memberAdded.js +3 -2
  176. package/lib/module/mock-builders/event/memberAdded.js.map +1 -1
  177. package/lib/module/mock-builders/event/memberRemoved.js +3 -2
  178. package/lib/module/mock-builders/event/memberRemoved.js.map +1 -1
  179. package/lib/module/mock-builders/event/memberUpdated.js +3 -2
  180. package/lib/module/mock-builders/event/memberUpdated.js.map +1 -1
  181. package/lib/module/mock-builders/event/messageDeleted.js +3 -2
  182. package/lib/module/mock-builders/event/messageDeleted.js.map +1 -1
  183. package/lib/module/mock-builders/event/messageNew.js +3 -2
  184. package/lib/module/mock-builders/event/messageNew.js.map +1 -1
  185. package/lib/module/mock-builders/event/messageRead.js +3 -2
  186. package/lib/module/mock-builders/event/messageRead.js.map +1 -1
  187. package/lib/module/mock-builders/event/messageUpdated.js +3 -2
  188. package/lib/module/mock-builders/event/messageUpdated.js.map +1 -1
  189. package/lib/module/mock-builders/event/notificationAddedToChannel.js +3 -2
  190. package/lib/module/mock-builders/event/notificationAddedToChannel.js.map +1 -1
  191. package/lib/module/mock-builders/event/notificationChannelMutesUpdated.js +3 -2
  192. package/lib/module/mock-builders/event/notificationChannelMutesUpdated.js.map +1 -1
  193. package/lib/module/mock-builders/event/notificationMarkRead.js +3 -2
  194. package/lib/module/mock-builders/event/notificationMarkRead.js.map +1 -1
  195. package/lib/module/mock-builders/event/notificationMarkUnread.js +3 -2
  196. package/lib/module/mock-builders/event/notificationMarkUnread.js.map +1 -1
  197. package/lib/module/mock-builders/event/notificationMessageNew.js +3 -2
  198. package/lib/module/mock-builders/event/notificationMessageNew.js.map +1 -1
  199. package/lib/module/mock-builders/event/notificationMutesUpdated.js +3 -2
  200. package/lib/module/mock-builders/event/notificationMutesUpdated.js.map +1 -1
  201. package/lib/module/mock-builders/event/notificationRemovedFromChannel.js +3 -2
  202. package/lib/module/mock-builders/event/notificationRemovedFromChannel.js.map +1 -1
  203. package/lib/module/mock-builders/event/reactionDeleted.js +3 -2
  204. package/lib/module/mock-builders/event/reactionDeleted.js.map +1 -1
  205. package/lib/module/mock-builders/event/reactionNew.js +3 -2
  206. package/lib/module/mock-builders/event/reactionNew.js.map +1 -1
  207. package/lib/module/mock-builders/event/reactionUpdated.js +3 -2
  208. package/lib/module/mock-builders/event/reactionUpdated.js.map +1 -1
  209. package/lib/module/mock-builders/event/typing.js +3 -2
  210. package/lib/module/mock-builders/event/typing.js.map +1 -1
  211. package/lib/module/mock-builders/event/userPresence.js +3 -2
  212. package/lib/module/mock-builders/event/userPresence.js.map +1 -1
  213. package/lib/module/mock-builders/event/userUpdated.js +3 -2
  214. package/lib/module/mock-builders/event/userUpdated.js.map +1 -1
  215. package/lib/module/mock-builders/generator/attachment.js +0 -3
  216. package/lib/module/mock-builders/generator/attachment.js.map +1 -1
  217. package/lib/module/mock-builders/generator/channel.js +10 -12
  218. package/lib/module/mock-builders/generator/channel.js.map +1 -1
  219. package/lib/module/mock-builders/generator/member.js +3 -2
  220. package/lib/module/mock-builders/generator/member.js.map +1 -1
  221. package/lib/module/mock-builders/generator/message.js +12 -7
  222. package/lib/module/mock-builders/generator/message.js.map +1 -1
  223. package/lib/module/mock-builders/generator/reaction.js +3 -2
  224. package/lib/module/mock-builders/generator/reaction.js.map +1 -1
  225. package/lib/module/mock-builders/generator/user.js +4 -3
  226. package/lib/module/mock-builders/generator/user.js.map +1 -1
  227. package/lib/module/mock-builders/mock.js +15 -11
  228. package/lib/module/mock-builders/mock.js.map +1 -1
  229. package/lib/module/store/apis/addPendingTask.js.map +1 -1
  230. package/lib/module/store/apis/deleteMessage.js.map +1 -1
  231. package/lib/module/store/apis/upsertDraft.js.map +1 -1
  232. package/lib/module/store/sqlite-utils/appendOrderByClause.js.map +1 -1
  233. package/lib/module/store/sqlite-utils/appendWhereCluase.js.map +1 -1
  234. package/lib/module/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
  235. package/lib/module/test-utils/BetterSqlite.js +11 -7
  236. package/lib/module/test-utils/BetterSqlite.js.map +1 -1
  237. package/lib/module/version.json +1 -1
  238. package/lib/typescript/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.d.ts.map +1 -1
  239. package/lib/typescript/components/Indicators/EmptyStateIndicator.d.ts.map +1 -1
  240. package/lib/typescript/components/MessageInput/components/AttachmentPreview/AttachmentUploadProgressIndicator.d.ts.map +1 -1
  241. package/lib/typescript/components/Poll/CreatePollContent.d.ts.map +1 -1
  242. package/lib/typescript/components/UIComponents/SwipableWrapper.d.ts +1 -1
  243. package/lib/typescript/components/UIComponents/SwipableWrapper.d.ts.map +1 -1
  244. package/lib/typescript/i18n/en.json +8 -0
  245. package/lib/typescript/i18n/es.json +8 -0
  246. package/lib/typescript/i18n/fr.json +8 -0
  247. package/lib/typescript/i18n/he.json +8 -0
  248. package/lib/typescript/i18n/hi.json +8 -0
  249. package/lib/typescript/i18n/it.json +8 -0
  250. package/lib/typescript/i18n/ja.json +8 -0
  251. package/lib/typescript/i18n/ko.json +8 -0
  252. package/lib/typescript/i18n/nl.json +8 -0
  253. package/lib/typescript/i18n/pt-br.json +8 -0
  254. package/lib/typescript/i18n/ru.json +8 -0
  255. package/lib/typescript/i18n/tr.json +8 -0
  256. package/lib/typescript/store/OfflineDB.d.ts +1 -1
  257. package/lib/typescript/store/OfflineDB.d.ts.map +1 -1
  258. package/lib/typescript/store/apis/addPendingTask.d.ts.map +1 -1
  259. package/lib/typescript/store/apis/deleteMessage.d.ts +2 -1
  260. package/lib/typescript/store/apis/deleteMessage.d.ts.map +1 -1
  261. package/lib/typescript/store/apis/upsertDraft.d.ts +1 -1
  262. package/lib/typescript/store/apis/upsertDraft.d.ts.map +1 -1
  263. package/lib/typescript/store/sqlite-utils/createCreateTableQuery.d.ts.map +1 -1
  264. package/lib/typescript/test-utils/BetterSqlite.d.ts +4 -3
  265. package/lib/typescript/test-utils/BetterSqlite.d.ts.map +1 -1
  266. package/lib/typescript/utils/i18n/Streami18n.d.ts +8 -0
  267. package/lib/typescript/utils/i18n/Streami18n.d.ts.map +1 -1
  268. package/package.json +5 -3
  269. package/src/__tests__/offline-support/{offline-feature.js → offline-feature.tsx} +282 -139
  270. package/src/__tests__/offline-support/{optimistic-update.js → optimistic-update.tsx} +154 -84
  271. package/src/components/Attachment/__tests__/{Attachment.test.js → Attachment.test.tsx} +12 -8
  272. package/src/components/Attachment/__tests__/{Gallery.test.js → Gallery.test.tsx} +10 -3
  273. package/src/components/Attachment/__tests__/{Giphy.test.js → Giphy.test.tsx} +48 -19
  274. package/src/components/Attachment/__tests__/{buildGallery.test.js → buildGallery.test.ts} +4 -2
  275. package/src/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.tsx +4 -2
  276. package/src/components/AutoCompleteInput/__tests__/{AutoCompleteInput.test.js → AutoCompleteInput.test.tsx} +21 -11
  277. package/src/components/Channel/__tests__/{Channel.test.js → Channel.test.tsx} +129 -89
  278. package/src/components/Channel/__tests__/{isAttachmentEqualHandler.test.js → isAttachmentEqualHandler.test.tsx} +25 -8
  279. package/src/components/Channel/__tests__/{ownCapabilities.test.js → ownCapabilities.test.tsx} +16 -12
  280. package/src/components/Channel/__tests__/{useMessageListPagination.test.js → useMessageListPagination.test.tsx} +105 -63
  281. package/src/components/ChannelList/__tests__/{ChannelList.test.js → ChannelList.test.tsx} +63 -29
  282. package/src/components/ChannelList/__tests__/{ChannelListView.test.js → ChannelListView.test.tsx} +30 -20
  283. package/src/components/ChannelList/hooks/__tests__/useChannelActionItems.test.tsx +6 -6
  284. package/src/components/ChannelList/hooks/__tests__/useChannelActionItemsById.test.tsx +2 -2
  285. package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +17 -14
  286. package/src/components/ChannelPreview/__tests__/ChannelDetailsBottomSheet.test.tsx +14 -4
  287. package/src/components/ChannelPreview/__tests__/ChannelPreview.test.tsx +23 -12
  288. package/src/components/ChannelPreview/__tests__/{ChannelPreviewView.test.js → ChannelPreviewView.test.tsx} +9 -34
  289. package/src/components/ChannelPreview/__tests__/ChannelSwipableWrapper.test.tsx +4 -2
  290. package/src/components/ChannelPreview/hooks/__tests__/useChannelPreviewDisplayPresence.test.tsx +1 -1
  291. package/src/components/Chat/__tests__/{Chat.test.js → Chat.test.tsx} +37 -30
  292. package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +10 -14
  293. package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +3 -3
  294. package/src/components/ImageGallery/__tests__/ImageGalleryGrid.test.tsx +5 -4
  295. package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +7 -6
  296. package/src/components/ImageGallery/components/__tests__/ImageGalleryHeader.test.tsx +9 -13
  297. package/src/components/Indicators/EmptyStateIndicator.tsx +3 -1
  298. package/src/components/Message/MessageItemView/__tests__/{Message.test.js → Message.test.tsx} +20 -11
  299. package/src/components/Message/MessageItemView/__tests__/{MessageAuthor.test.js → MessageAuthor.test.tsx} +10 -12
  300. package/src/components/Message/MessageItemView/__tests__/{MessageContent.test.js → MessageContent.test.tsx} +22 -12
  301. package/src/components/Message/MessageItemView/__tests__/{MessageItemView.test.js → MessageItemView.test.tsx} +11 -4
  302. package/src/components/Message/MessageItemView/__tests__/{MessagePinnedHeader.test.js → MessagePinnedHeader.test.tsx} +5 -3
  303. package/src/components/Message/MessageItemView/__tests__/{MessageReplies.test.js → MessageReplies.test.tsx} +15 -36
  304. package/src/components/Message/MessageItemView/__tests__/{MessageStatus.test.js → MessageStatus.test.tsx} +20 -10
  305. package/src/components/Message/MessageItemView/__tests__/MessageTextContainer.test.tsx +8 -8
  306. package/src/components/Message/MessageItemView/__tests__/{ReactionListBottom.test.js → ReactionListBottom.test.tsx} +19 -8
  307. package/src/components/Message/MessageItemView/__tests__/{ReactionListTop.test.js → ReactionListTop.test.tsx} +8 -4
  308. package/src/components/Message/MessageItemView/utils/renderText.test.tsx +2 -4
  309. package/src/components/Message/MessageItemView/utils/renderText.tsx +1 -1
  310. package/src/components/Message/hooks/__tests__/useShouldUseOverlayStyles.test.tsx +2 -2
  311. package/src/components/MessageInput/__tests__/{AttachButton.test.js → AttachButton.test.tsx} +14 -4
  312. package/src/components/MessageInput/__tests__/{AttachmentUploadPreviewList.test.js → AttachmentUploadPreviewList.test.tsx} +27 -8
  313. package/src/components/MessageInput/__tests__/{AudioAttachmentUploadPreview.test.js → AudioAttachmentUploadPreview.test.tsx} +18 -5
  314. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewExpo.test.tsx +47 -15
  315. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewNative.test.tsx +57 -17
  316. package/src/components/MessageInput/__tests__/{InputButtons.test.js → InputButtons.test.tsx} +14 -4
  317. package/src/components/MessageInput/__tests__/{MessageComposer.test.js → MessageComposer.test.tsx} +28 -20
  318. package/src/components/MessageInput/__tests__/{SendButton.test.js → SendButton.test.tsx} +13 -4
  319. package/src/components/MessageInput/__tests__/{SendMessageDisallowedIndicator.test.js → SendMessageDisallowedIndicator.test.tsx} +47 -31
  320. package/src/components/MessageInput/components/AttachmentPreview/AttachmentUploadProgressIndicator.tsx +8 -3
  321. package/src/components/MessageList/__tests__/{MessageList.test.js → MessageList.test.tsx} +31 -34
  322. package/src/components/MessageList/__tests__/{MessageSystem.test.js → MessageSystem.test.tsx} +13 -5
  323. package/src/components/MessageList/__tests__/{ScrollToBottomButton.test.js → ScrollToBottomButton.test.tsx} +8 -12
  324. package/src/components/MessageList/__tests__/{TypingIndicator.test.js → TypingIndicator.test.tsx} +6 -4
  325. package/src/components/MessageList/__tests__/useMessageList.test.tsx +2 -2
  326. package/src/components/MessageList/hooks/useMessageList.ts +1 -1
  327. package/src/components/MessageMenu/__tests__/MessageActionList.test.tsx +4 -1
  328. package/src/components/MessageMenu/__tests__/MessageActionListItem.test.tsx +1 -0
  329. package/src/components/MessageMenu/__tests__/MessageReactionPicker.test.tsx +6 -2
  330. package/src/components/MessageMenu/__tests__/MessageUserReactions.test.tsx +3 -3
  331. package/src/components/MessageMenu/__tests__/MessageUserReactionsAvatar.test.tsx +7 -3
  332. package/src/components/MessageMenu/__tests__/MessageUserReactionsItem.test.tsx +2 -1
  333. package/src/components/Poll/CreatePollContent.tsx +5 -3
  334. package/src/components/Thread/__tests__/{Thread.test.js → Thread.test.tsx} +41 -13
  335. package/src/components/Thread/__tests__/__snapshots__/{Thread.test.js.snap → Thread.test.tsx.snap} +0 -21
  336. package/src/components/UIComponents/SwipableWrapper.tsx +1 -1
  337. package/src/components/UIComponents/__tests__/SwipableWrapper.test.tsx +1 -1
  338. package/src/contexts/messageInputContext/__tests__/filePickers.test.tsx +31 -10
  339. package/src/contexts/messageInputContext/__tests__/sendMessage.test.tsx +24 -12
  340. package/src/contexts/overlayContext/__tests__/MessageOverlayHostLayer.test.tsx +2 -2
  341. package/src/hooks/__tests__/useTranslatedMessage.test.tsx +4 -4
  342. package/src/i18n/en.json +8 -0
  343. package/src/i18n/es.json +8 -0
  344. package/src/i18n/fr.json +8 -0
  345. package/src/i18n/he.json +8 -0
  346. package/src/i18n/hi.json +8 -0
  347. package/src/i18n/it.json +8 -0
  348. package/src/i18n/ja.json +8 -0
  349. package/src/i18n/ko.json +8 -0
  350. package/src/i18n/nl.json +8 -0
  351. package/src/i18n/pt-br.json +8 -0
  352. package/src/i18n/ru.json +8 -0
  353. package/src/i18n/tr.json +8 -0
  354. package/src/mock-builders/DB/mock.ts +1 -1
  355. package/src/mock-builders/api/channelMocks.tsx +39 -29
  356. package/src/mock-builders/api/deleteMessage.ts +21 -0
  357. package/src/mock-builders/api/deleteReaction.ts +23 -0
  358. package/src/mock-builders/api/{error.js → error.ts} +13 -5
  359. package/src/mock-builders/api/getOrCreateChannel.ts +22 -11
  360. package/src/mock-builders/api/{initiateClientWithChannels.js → initiateClientWithChannels.ts} +21 -3
  361. package/src/mock-builders/api/{queryChannels.js → queryChannels.ts} +2 -4
  362. package/src/mock-builders/api/{queryMembers.js → queryMembers.ts} +29 -27
  363. package/src/mock-builders/api/sendMessage.ts +25 -0
  364. package/src/mock-builders/api/sendReaction.ts +9 -5
  365. package/src/mock-builders/api/threadReplies.ts +18 -0
  366. package/src/mock-builders/api/{useMockedApis.js → useMockedApis.ts} +5 -4
  367. package/src/mock-builders/api/utils.ts +16 -0
  368. package/src/mock-builders/{attachments.js → attachments.ts} +24 -8
  369. package/src/mock-builders/event/channelDeleted.ts +12 -0
  370. package/src/mock-builders/event/channelHidden.ts +12 -0
  371. package/src/mock-builders/event/channelTruncated.ts +12 -0
  372. package/src/mock-builders/event/channelUpdated.ts +12 -0
  373. package/src/mock-builders/event/channelVisible.ts +12 -0
  374. package/src/mock-builders/event/connectionChanged.ts +11 -0
  375. package/src/mock-builders/event/connectionRecovered.ts +10 -0
  376. package/src/mock-builders/event/memberAdded.ts +19 -0
  377. package/src/mock-builders/event/memberRemoved.ts +18 -0
  378. package/src/mock-builders/event/memberUpdated.ts +18 -0
  379. package/src/mock-builders/event/messageDeleted.ts +23 -0
  380. package/src/mock-builders/event/messageNew.ts +26 -0
  381. package/src/mock-builders/event/messageRead.ts +23 -0
  382. package/src/mock-builders/event/messageUpdated.ts +23 -0
  383. package/src/mock-builders/event/notificationAddedToChannel.ts +12 -0
  384. package/src/mock-builders/event/notificationChannelMutesUpdated.ts +12 -0
  385. package/src/mock-builders/event/notificationMarkRead.ts +12 -0
  386. package/src/mock-builders/event/notificationMarkUnread.ts +22 -0
  387. package/src/mock-builders/event/notificationMessageNew.ts +12 -0
  388. package/src/mock-builders/event/notificationMutesUpdated.ts +16 -0
  389. package/src/mock-builders/event/notificationRemovedFromChannel.ts +12 -0
  390. package/src/mock-builders/event/reactionDeleted.ts +26 -0
  391. package/src/mock-builders/event/reactionNew.ts +26 -0
  392. package/src/mock-builders/event/reactionUpdated.ts +26 -0
  393. package/src/mock-builders/event/typing.ts +18 -0
  394. package/src/mock-builders/event/userPresence.ts +13 -0
  395. package/src/mock-builders/event/userUpdated.ts +13 -0
  396. package/src/mock-builders/generator/{attachment.js → attachment.ts} +17 -13
  397. package/src/mock-builders/generator/channel.ts +70 -39
  398. package/src/mock-builders/generator/member.ts +18 -0
  399. package/src/mock-builders/generator/message.ts +50 -0
  400. package/src/mock-builders/generator/reaction.ts +15 -0
  401. package/src/mock-builders/generator/{user.js → user.ts} +20 -16
  402. package/src/mock-builders/mock.ts +79 -0
  403. package/src/state-store/__tests__/audio-player.test.ts +3 -1
  404. package/src/state-store/__tests__/image-gallery-state-store.test.ts +31 -28
  405. package/src/state-store/__tests__/video-player-pool.test.ts +9 -9
  406. package/src/store/apis/__tests__/updatePendingTask.test.ts +17 -6
  407. package/src/store/apis/addPendingTask.ts +2 -1
  408. package/src/store/apis/deleteMessage.ts +2 -1
  409. package/src/store/apis/upsertDraft.ts +2 -2
  410. package/src/store/sqlite-utils/appendOrderByClause.ts +1 -1
  411. package/src/store/sqlite-utils/appendWhereCluase.ts +1 -1
  412. package/src/store/sqlite-utils/createCreateTableQuery.ts +7 -5
  413. package/src/test-utils/BetterSqlite.ts +38 -0
  414. package/src/utils/__tests__/{Streami18n.test.js → Streami18n.test.ts} +66 -31
  415. package/src/utils/__tests__/getResizedImageUrl.test.ts +10 -8
  416. package/src/utils/__tests__/{utils.test.js → utils.test.ts} +1 -1
  417. package/src/version.json +1 -1
  418. package/src/mock-builders/api/deleteMessage.js +0 -18
  419. package/src/mock-builders/api/deleteReaction.js +0 -19
  420. package/src/mock-builders/api/sendMessage.js +0 -18
  421. package/src/mock-builders/api/threadReplies.js +0 -16
  422. package/src/mock-builders/api/utils.js +0 -7
  423. package/src/mock-builders/event/channelDeleted.js +0 -7
  424. package/src/mock-builders/event/channelHidden.js +0 -7
  425. package/src/mock-builders/event/channelTruncated.js +0 -7
  426. package/src/mock-builders/event/channelUpdated.js +0 -7
  427. package/src/mock-builders/event/channelVisible.js +0 -7
  428. package/src/mock-builders/event/connectionChanged.js +0 -6
  429. package/src/mock-builders/event/connectionRecovered.js +0 -5
  430. package/src/mock-builders/event/memberAdded.js +0 -10
  431. package/src/mock-builders/event/memberRemoved.js +0 -9
  432. package/src/mock-builders/event/memberUpdated.js +0 -9
  433. package/src/mock-builders/event/messageDeleted.js +0 -8
  434. package/src/mock-builders/event/messageNew.js +0 -11
  435. package/src/mock-builders/event/messageRead.js +0 -15
  436. package/src/mock-builders/event/messageUpdated.js +0 -8
  437. package/src/mock-builders/event/notificationAddedToChannel.js +0 -7
  438. package/src/mock-builders/event/notificationChannelMutesUpdated.js +0 -7
  439. package/src/mock-builders/event/notificationMarkRead.js +0 -7
  440. package/src/mock-builders/event/notificationMarkUnread.js +0 -12
  441. package/src/mock-builders/event/notificationMessageNew.js +0 -7
  442. package/src/mock-builders/event/notificationMutesUpdated.js +0 -11
  443. package/src/mock-builders/event/notificationRemovedFromChannel.js +0 -7
  444. package/src/mock-builders/event/reactionDeleted.js +0 -9
  445. package/src/mock-builders/event/reactionNew.js +0 -9
  446. package/src/mock-builders/event/reactionUpdated.js +0 -9
  447. package/src/mock-builders/event/typing.js +0 -9
  448. package/src/mock-builders/event/userPresence.js +0 -8
  449. package/src/mock-builders/event/userUpdated.js +0 -8
  450. package/src/mock-builders/generator/member.js +0 -13
  451. package/src/mock-builders/generator/message.js +0 -32
  452. package/src/mock-builders/generator/reaction.js +0 -12
  453. package/src/mock-builders/mock.js +0 -57
  454. package/src/test-utils/BetterSqlite.js +0 -36
  455. /package/src/components/Message/MessageItemView/__tests__/__snapshots__/{MessageAuthor.test.js.snap → MessageAuthor.test.tsx.snap} +0 -0
  456. /package/src/components/Message/MessageItemView/__tests__/__snapshots__/{MessagePinnedHeader.test.js.snap → MessagePinnedHeader.test.tsx.snap} +0 -0
  457. /package/src/components/MessageInput/__tests__/__snapshots__/{AttachButton.test.js.snap → AttachButton.test.tsx.snap} +0 -0
  458. /package/src/components/MessageInput/__tests__/__snapshots__/{SendButton.test.js.snap → SendButton.test.tsx.snap} +0 -0
  459. /package/src/components/MessageList/__tests__/__snapshots__/{MessageSystem.test.js.snap → MessageSystem.test.tsx.snap} +0 -0
  460. /package/src/components/MessageList/__tests__/__snapshots__/{ScrollToBottomButton.test.js.snap → ScrollToBottomButton.test.tsx.snap} +0 -0
  461. /package/src/components/MessageList/__tests__/__snapshots__/{TypingIndicator.test.js.snap → TypingIndicator.test.tsx.snap} +0 -0
@@ -10,6 +10,7 @@ import {
10
10
  waitFor,
11
11
  within,
12
12
  } from '@testing-library/react-native';
13
+ import type { Channel as ChannelType, StreamChat } from 'stream-chat';
13
14
 
14
15
  import { useChannelsContext } from '../../../contexts/channelsContext/ChannelsContext';
15
16
  import {
@@ -37,21 +38,22 @@ import { getTestClientWithUser } from '../../../mock-builders/mock';
37
38
  import { Chat } from '../../Chat/Chat';
38
39
  import { ChannelList } from '../ChannelList';
39
40
 
40
- const mockChannelSwipableWrapper = jest.fn(({ children }) => (
41
+ const mockChannelSwipableWrapper = jest.fn(({ children }: { children: React.ReactNode }) => (
41
42
  <View testID='swipe-wrapper'>{children}</View>
42
43
  ));
43
44
 
44
45
  jest.mock('../../ChannelPreview/ChannelSwipableWrapper', () => ({
45
- ChannelSwipableWrapper: (...args) => mockChannelSwipableWrapper(...args),
46
+ ChannelSwipableWrapper: (...args: Parameters<typeof mockChannelSwipableWrapper>) =>
47
+ mockChannelSwipableWrapper(...args),
46
48
  }));
47
49
 
48
50
  /**
49
51
  * Custom ChannelPreview component used via WithComponents to verify channel rendering.
50
52
  * Receives { channel, muted, unread, lastMessage } from ChannelPreview.
51
53
  */
52
- const ChannelPreviewComponent = ({ channel }) => (
54
+ const ChannelPreviewComponent = ({ channel }: { channel: ChannelType }) => (
53
55
  <View accessibilityLabel='list-item' testID={channel.id}>
54
- <Text>{channel.data?.name}</Text>
56
+ <Text>{(channel.data as { name?: string } | undefined)?.name}</Text>
55
57
  <Text>{channel.state.messages[0]?.text}</Text>
56
58
  </View>
57
59
  );
@@ -73,9 +75,11 @@ const RefreshingProbe = () => {
73
75
  return <Text testID='refreshing'>{`${refreshing}`}</Text>;
74
76
  };
75
77
 
76
- const ChannelPreviewContent = ({ unread }) => <Text testID='preview-unread'>{`${unread}`}</Text>;
78
+ const ChannelPreviewContent = ({ unread }: { unread?: number }) => (
79
+ <Text testID='preview-unread'>{`${unread}`}</Text>
80
+ );
77
81
 
78
- let expectedChannelDetailsBottomSheetOverride;
82
+ let expectedChannelDetailsBottomSheetOverride: unknown;
79
83
  const ChannelDetailsBottomSheetProbe = () => {
80
84
  const { ChannelDetailsBottomSheet } = useComponentsContext();
81
85
  return (
@@ -85,9 +89,13 @@ const ChannelDetailsBottomSheetProbe = () => {
85
89
  );
86
90
  };
87
91
 
88
- class DeferredPromise {
92
+ class DeferredPromise<T = unknown> {
93
+ promise: Promise<T>;
94
+ resolve!: (value: T | PromiseLike<T>) => void;
95
+ reject!: (reason?: unknown) => void;
96
+
89
97
  constructor() {
90
- this.promise = new Promise((resolve, reject) => {
98
+ this.promise = new Promise<T>((resolve, reject) => {
91
99
  this.resolve = resolve;
92
100
  this.reject = reject;
93
101
  });
@@ -95,11 +103,11 @@ class DeferredPromise {
95
103
  }
96
104
 
97
105
  describe('ChannelList', () => {
98
- let chatClient;
99
- let testChannel1;
100
- let testChannel2;
101
- let testChannel3;
102
- const props = {
106
+ let chatClient: StreamChat;
107
+ let testChannel1: ReturnType<typeof generateChannelResponse>;
108
+ let testChannel2: ReturnType<typeof generateChannelResponse>;
109
+ let testChannel3: ReturnType<typeof generateChannelResponse>;
110
+ const props: Partial<React.ComponentProps<typeof ChannelList>> = {
103
111
  filters: {},
104
112
  };
105
113
 
@@ -163,7 +171,10 @@ describe('ChannelList', () => {
163
171
  screen.rerender(
164
172
  <Chat client={chatClient}>
165
173
  <WithComponents overrides={{ ChannelPreview: ChannelPreviewComponent }}>
166
- <ChannelList {...props} filters={{ dummyFilter: true }} />
174
+ <ChannelList
175
+ {...props}
176
+ filters={{ dummyFilter: true } as React.ComponentProps<typeof ChannelList>['filters']}
177
+ />
167
178
  </WithComponents>
168
179
  </Chat>,
169
180
  );
@@ -178,12 +189,17 @@ describe('ChannelList', () => {
178
189
  const deferredCallForFreshFilter = new DeferredPromise();
179
190
  const staleFilter = { 'initial-filter': { a: { $gt: 'c' } } };
180
191
  const freshFilter = { 'new-filter': { a: { $gt: 'c' } } };
181
- const createMockChannel = (id) => {
192
+ const createMockChannel = (id: string) => {
182
193
  const channel = generateChannel({
183
194
  data: { name: id },
184
195
  id,
185
196
  state: { latestMessages: [], members: {}, messages: [], setIsUpToDate: jest.fn() },
186
- });
197
+ } as unknown as Parameters<typeof generateChannel>[0]) as unknown as {
198
+ countUnread: () => number;
199
+ messageComposer: { registerDraftEventSubscriptions: () => () => void };
200
+ muteStatus: () => { muted: boolean };
201
+ on: jest.Mock;
202
+ };
187
203
  channel.countUnread = () => 0;
188
204
  channel.muteStatus = () => ({ muted: false });
189
205
  channel.on = jest.fn(() => ({ unsubscribe: jest.fn() }));
@@ -195,17 +211,20 @@ describe('ChannelList', () => {
195
211
  const staleChannel = [createMockChannel('stale-channel')];
196
212
  const freshChannel = [createMockChannel('new-channel')];
197
213
  const spy = jest.spyOn(chatClient, 'queryChannels');
198
- spy.mockImplementation((filters = {}) => {
214
+ spy.mockImplementation(((filters: Parameters<typeof chatClient.queryChannels>[0] = {}) => {
199
215
  if (Object.prototype.hasOwnProperty.call(filters, 'new-filter')) {
200
216
  return deferredCallForFreshFilter.promise;
201
217
  }
202
218
  return deferredCallForStaleFilter.promise;
203
- });
219
+ }) as typeof chatClient.queryChannels);
204
220
 
205
221
  const { rerender, queryByTestId } = render(
206
222
  <Chat client={chatClient}>
207
223
  <WithComponents overrides={{ ChannelPreview: ChannelPreviewComponent }}>
208
- <ChannelList {...props} filters={staleFilter} />
224
+ <ChannelList
225
+ {...props}
226
+ filters={staleFilter as React.ComponentProps<typeof ChannelList>['filters']}
227
+ />
209
228
  </WithComponents>
210
229
  </Chat>,
211
230
  );
@@ -225,7 +244,10 @@ describe('ChannelList', () => {
225
244
  rerender(
226
245
  <Chat client={chatClient}>
227
246
  <WithComponents overrides={{ ChannelPreview: ChannelPreviewComponent }}>
228
- <ChannelList {...props} filters={freshFilter} />
247
+ <ChannelList
248
+ {...props}
249
+ filters={freshFilter as React.ComponentProps<typeof ChannelList>['filters']}
250
+ />
229
251
  </WithComponents>
230
252
  </Chat>,
231
253
  );
@@ -406,13 +428,13 @@ describe('ChannelList', () => {
406
428
  const newMessage = sendNewMessageOnChannel3();
407
429
 
408
430
  await waitFor(() => {
409
- expect(screen.getByText(newMessage.text)).toBeTruthy();
431
+ expect(screen.getByText(newMessage.text as string)).toBeTruthy();
410
432
  });
411
433
 
412
434
  const items = screen.getAllByLabelText('list-item');
413
435
 
414
436
  await waitFor(() => {
415
- expect(within(items[0]).getByText(newMessage.text)).toBeTruthy();
437
+ expect(within(items[0]).getByText(newMessage.text as string)).toBeTruthy();
416
438
  });
417
439
  });
418
440
 
@@ -436,13 +458,13 @@ describe('ChannelList', () => {
436
458
  const newMessage = sendNewMessageOnChannel3();
437
459
 
438
460
  await waitFor(() => {
439
- expect(screen.getByText(newMessage.text)).toBeTruthy();
461
+ expect(screen.getByText(newMessage.text as string)).toBeTruthy();
440
462
  });
441
463
 
442
464
  const items = screen.getAllByLabelText('list-item');
443
465
 
444
466
  await waitFor(() => {
445
- expect(within(items[0]).getByText(newMessage.text)).toBeTruthy();
467
+ expect(within(items[0]).getByText(newMessage.text as string)).toBeTruthy();
446
468
  });
447
469
  });
448
470
 
@@ -462,13 +484,13 @@ describe('ChannelList', () => {
462
484
  const newMessage = sendNewMessageOnChannel3();
463
485
 
464
486
  await waitFor(() => {
465
- expect(screen.getByText(newMessage.text)).toBeTruthy();
487
+ expect(screen.getByText(newMessage.text as string)).toBeTruthy();
466
488
  });
467
489
 
468
490
  const items = screen.getAllByLabelText('list-item');
469
491
 
470
492
  await waitFor(() => {
471
- expect(within(items[2]).getByText(newMessage.text)).toBeTruthy();
493
+ expect(within(items[2]).getByText(newMessage.text as string)).toBeTruthy();
472
494
  });
473
495
  });
474
496
  it('should call the `onNewMessage` function prop, if provided', async () => {
@@ -485,7 +507,12 @@ describe('ChannelList', () => {
485
507
  expect(screen.getByTestId('channel-list-view')).toBeTruthy();
486
508
  });
487
509
 
488
- act(() => dispatchMessageNewEvent(chatClient, testChannel2.channel));
510
+ act(() =>
511
+ dispatchMessageNewEvent(
512
+ chatClient,
513
+ testChannel2.channel as unknown as Parameters<typeof dispatchMessageNewEvent>[1],
514
+ ),
515
+ );
489
516
 
490
517
  await waitFor(() => {
491
518
  expect(onNewMessage).toHaveBeenCalledTimes(1);
@@ -538,7 +565,12 @@ describe('ChannelList', () => {
538
565
  expect(screen.getByTestId('channel-list-view')).toBeTruthy();
539
566
  });
540
567
 
541
- act(() => dispatchMessageNewEvent(chatClient, testChannel2.channel));
568
+ act(() =>
569
+ dispatchMessageNewEvent(
570
+ chatClient,
571
+ testChannel2.channel as unknown as Parameters<typeof dispatchMessageNewEvent>[1],
572
+ ),
573
+ );
542
574
 
543
575
  await waitFor(() => {
544
576
  expect(onNewMessage).toHaveBeenCalledTimes(1);
@@ -884,7 +916,9 @@ describe('ChannelList', () => {
884
916
  expect(screen.getByTestId('refreshing').children[0]).toBe('false');
885
917
  });
886
918
 
887
- chatClient.queryChannels = jest.fn(() => deferredPromise.promise);
919
+ chatClient.queryChannels = jest.fn(
920
+ () => deferredPromise.promise,
921
+ ) as typeof chatClient.queryChannels;
888
922
 
889
923
  act(() => dispatchConnectionChangedEvent(chatClient, false));
890
924
  act(() => dispatchConnectionChangedEvent(chatClient, true));
@@ -1,7 +1,9 @@
1
1
  import React from 'react';
2
2
 
3
3
  import { cleanup, render, waitFor } from '@testing-library/react-native';
4
+ import type { StreamChat } from 'stream-chat';
4
5
 
6
+ import type { ChannelsContextValue } from '../../../contexts/channelsContext/ChannelsContext';
5
7
  import { ChannelsProvider } from '../../../contexts/channelsContext/ChannelsContext';
6
8
  import { ChatContext, ChatProvider } from '../../../contexts/chatContext/ChatContext';
7
9
  import { getOrCreateChannelApi } from '../../../mock-builders/api/getOrCreateChannel';
@@ -13,7 +15,7 @@ import { Chat } from '../../Chat/Chat';
13
15
  import { ChannelList } from '../ChannelList';
14
16
  import { ChannelListView } from '../ChannelListView';
15
17
 
16
- let chatClient;
18
+ let chatClient: StreamChat;
17
19
 
18
20
  /**
19
21
  * Renders the full ChannelList (which now always uses ChannelListView internally).
@@ -42,30 +44,38 @@ const noop = () => {};
42
44
  * Renders ChannelListView directly with a mock ChannelsContext for testing
43
45
  * error and loading states.
44
46
  */
45
- const ComponentWithContextOverrides = ({ error, loadingChannels }) => (
47
+ const ComponentWithContextOverrides = ({
48
+ error,
49
+ loadingChannels,
50
+ }: {
51
+ error: boolean;
52
+ loadingChannels: boolean;
53
+ }) => (
46
54
  <Chat client={chatClient}>
47
55
  <ChatContext.Consumer>
48
56
  {(context) => (
49
57
  <ChatProvider value={{ ...context, isOnline: true }}>
50
58
  <ChannelsProvider
51
- value={{
52
- additionalFlatListProps: {},
53
- channelListInitialized: !loadingChannels && !error,
54
- channels: error ? null : [],
55
- error: error ? new Error('test error') : undefined,
56
- forceUpdate: 0,
57
- hasNextPage: false,
58
- loadingChannels,
59
- loadingNextPage: false,
60
- loadMoreThreshold: 0.1,
61
- loadNextPage: noop,
62
- maxUnreadCount: 255,
63
- numberOfSkeletons: 8,
64
- refreshing: false,
65
- refreshList: noop,
66
- reloadList: noop,
67
- setFlatListRef: noop,
68
- }}
59
+ value={
60
+ {
61
+ additionalFlatListProps: {},
62
+ channelListInitialized: !loadingChannels && !error,
63
+ channels: error ? null : [],
64
+ error: error ? new Error('test error') : undefined,
65
+ forceUpdate: 0,
66
+ hasNextPage: false,
67
+ loadingChannels,
68
+ loadingNextPage: false,
69
+ loadMoreThreshold: 0.1,
70
+ loadNextPage: noop,
71
+ maxUnreadCount: 255,
72
+ numberOfSkeletons: 8,
73
+ refreshing: false,
74
+ refreshList: noop,
75
+ reloadList: noop,
76
+ setFlatListRef: noop,
77
+ } as unknown as ChannelsContextValue
78
+ }
69
79
  >
70
80
  <ChannelListView />
71
81
  </ChannelsProvider>
@@ -149,7 +149,7 @@ describe('getChannelActionItems', () => {
149
149
  isDirectChat: false,
150
150
  isPinned: false,
151
151
  muteActive: false,
152
- t: (value) => value,
152
+ t: ((value: string) => value) as TranslationContextValue['t'],
153
153
  });
154
154
  const actionItems = getChannelActionItems({
155
155
  context: {
@@ -159,7 +159,7 @@ describe('getChannelActionItems', () => {
159
159
  isDirectChat: false,
160
160
  isPinned: false,
161
161
  muteActive: false,
162
- t: (value) => value,
162
+ t: ((value: string) => value) as TranslationContextValue['t'],
163
163
  },
164
164
  defaultItems,
165
165
  });
@@ -186,7 +186,7 @@ describe('getChannelActionItems', () => {
186
186
  isDirectChat: true,
187
187
  isPinned: false,
188
188
  muteActive: true,
189
- t: (value) => value,
189
+ t: ((value: string) => value) as TranslationContextValue['t'],
190
190
  });
191
191
 
192
192
  expect(actionItems.map((item) => item.id)).toEqual(['mute', 'block', 'leave', 'deleteChannel']);
@@ -213,7 +213,7 @@ describe('getChannelActionItems', () => {
213
213
  isDirectChat: false,
214
214
  isPinned: false,
215
215
  muteActive: false,
216
- t: (value) => value,
216
+ t: ((value: string) => value) as TranslationContextValue['t'],
217
217
  });
218
218
 
219
219
  expect(actionItems.map((item) => item.id)).toEqual(['mute', 'leave']);
@@ -228,7 +228,7 @@ describe('getChannelActionItems', () => {
228
228
  isDirectChat: false,
229
229
  isPinned: false,
230
230
  muteActive: true,
231
- t: (value) => value,
231
+ t: ((value: string) => value) as TranslationContextValue['t'],
232
232
  });
233
233
 
234
234
  expect(actionItems[0].action).toBe(channelActions.unmuteChannel);
@@ -251,7 +251,7 @@ describe('getChannelActionItems', () => {
251
251
  isDirectChat: false,
252
252
  isPinned: false,
253
253
  muteActive: false,
254
- t: (value) => value,
254
+ t: ((value: string) => value) as TranslationContextValue['t'],
255
255
  });
256
256
 
257
257
  const deleteItem = actionItems.find((item) => item.id === 'deleteChannel');
@@ -21,7 +21,7 @@ describe('useChannelActionItemsById', () => {
21
21
  const channelActionItems: useChannelActionItemsModule.ChannelActionItem[] = [
22
22
  {
23
23
  action: jest.fn(),
24
- Icon: <></>,
24
+ Icon: () => <></>,
25
25
  id: 'pin',
26
26
  label: '',
27
27
  placement: 'both',
@@ -29,7 +29,7 @@ describe('useChannelActionItemsById', () => {
29
29
  },
30
30
  {
31
31
  action: jest.fn(),
32
- Icon: <></>,
32
+ Icon: () => <></>,
33
33
  id: 'deleteChannel',
34
34
  label: '',
35
35
  placement: 'both',
@@ -4,6 +4,7 @@ import { Image, Text } from 'react-native';
4
4
  import { act, render, waitFor } from '@testing-library/react-native';
5
5
  import type { Channel, ChannelResponse, Event, StreamChat } from 'stream-chat';
6
6
 
7
+ import type { ChatContextValue } from '../../../../../contexts/chatContext/ChatContext';
7
8
  import { ChatContext, useChannelUpdated } from '../../../../../index';
8
9
 
9
10
  describe('useChannelUpdated', () => {
@@ -33,16 +34,16 @@ describe('useChannelUpdated', () => {
33
34
  } as unknown as StreamChat;
34
35
 
35
36
  const TestComponent = () => {
36
- const [channels, setChannels] = useState<Channel[] | null>([mockChannel]);
37
+ const [channels, setChannels] = useState<Channel[]>([mockChannel]);
37
38
 
38
39
  useChannelUpdated({ setChannels });
39
40
 
40
41
  if (
41
42
  channels &&
42
43
  channels[0].data?.own_capabilities &&
43
- Object.keys(channels[0].data?.own_capabilities as { [key: string]: boolean }).includes(
44
- 'send_messages',
45
- )
44
+ Object.keys(
45
+ channels[0].data?.own_capabilities as unknown as { [key: string]: boolean },
46
+ ).includes('send_messages')
46
47
  ) {
47
48
  return <Text>Send messages enabled</Text>;
48
49
  }
@@ -53,16 +54,18 @@ describe('useChannelUpdated', () => {
53
54
  const { getByText } = await waitFor(() =>
54
55
  render(
55
56
  <ChatContext.Provider
56
- value={{
57
- appSettings: null,
58
- client: mockClient,
59
- connectionRecovering: false,
60
- enableOfflineSupport: false,
61
- ImageComponent: Image,
62
- isOnline: true,
63
- mutedUsers: [],
64
- setActiveChannel: () => null,
65
- }}
57
+ value={
58
+ {
59
+ appSettings: null,
60
+ client: mockClient,
61
+ connectionRecovering: false,
62
+ enableOfflineSupport: false,
63
+ ImageComponent: Image,
64
+ isOnline: true,
65
+ mutedUsers: [],
66
+ setActiveChannel: () => null,
67
+ } as unknown as ChatContextValue
68
+ }
66
69
  >
67
70
  <TestComponent />
68
71
  </ChatContext.Provider>,
@@ -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 { render } from '@testing-library/react-native';
@@ -7,13 +7,19 @@ import type { Channel } from 'stream-chat';
7
7
  import { ThemeProvider, defaultTheme } from '../../../contexts';
8
8
  import { WithComponents } from '../../../contexts/componentsContext/ComponentsContext';
9
9
  import type { ChannelActionItem } from '../../ChannelList/hooks/useChannelActionItems';
10
+ import { StreamBottomSheetModalFlatList } from '../../UIComponents/StreamBottomSheetModalFlatList';
10
11
  import type { ChannelDetailsHeaderProps } from '../ChannelDetailsBottomSheet';
11
12
  import { ChannelDetailsBottomSheet } from '../ChannelDetailsBottomSheet';
12
13
 
13
- const mockStreamBottomSheetModalFlatList = jest.fn(() => null);
14
+ type StreamBottomSheetModalFlatListProps = ComponentProps<typeof StreamBottomSheetModalFlatList>;
15
+
16
+ const mockStreamBottomSheetModalFlatList = jest.fn(
17
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
18
+ (_props: StreamBottomSheetModalFlatListProps) => null,
19
+ );
14
20
 
15
21
  jest.mock('../../UIComponents/StreamBottomSheetModalFlatList', () => ({
16
- StreamBottomSheetModalFlatList: (...args: unknown[]) =>
22
+ StreamBottomSheetModalFlatList: (...args: [StreamBottomSheetModalFlatListProps]) =>
17
23
  mockStreamBottomSheetModalFlatList(...args),
18
24
  }));
19
25
 
@@ -73,7 +79,11 @@ describe('ChannelDetailsBottomSheet', () => {
73
79
  );
74
80
 
75
81
  expect(mockStreamBottomSheetModalFlatList).toHaveBeenCalled();
76
- const flatListProps = mockStreamBottomSheetModalFlatList.mock.calls[0]?.[0];
82
+ const flatListProps = (
83
+ mockStreamBottomSheetModalFlatList.mock.calls[0] as unknown as [
84
+ StreamBottomSheetModalFlatListProps,
85
+ ]
86
+ )?.[0];
77
87
  expect(flatListProps).toEqual(
78
88
  expect.objectContaining({
79
89
  onEndReached,
@@ -41,7 +41,8 @@ const mockChannelSwipableWrapper = jest.fn(({ children }: React.PropsWithChildre
41
41
  ));
42
42
 
43
43
  jest.mock('../ChannelSwipableWrapper', () => ({
44
- ChannelSwipableWrapper: (...args: unknown[]) => mockChannelSwipableWrapper(...args),
44
+ ChannelSwipableWrapper: (...args: [React.PropsWithChildren]) =>
45
+ mockChannelSwipableWrapper(...args),
45
46
  }));
46
47
 
47
48
  const ChannelPreviewUIComponent = (props: ChannelPreviewUIComponentProps) => {
@@ -56,7 +57,7 @@ const ChannelPreviewUIComponent = (props: ChannelPreviewUIComponentProps) => {
56
57
 
57
58
  const initChannelFromData = async (
58
59
  chatClient: StreamChat,
59
- overrides: Record<string, unknown> = {},
60
+ overrides: Parameters<typeof generateChannelResponse>[0] = {},
60
61
  ) => {
61
62
  const mockedChannel = generateChannelResponse(overrides);
62
63
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
@@ -84,21 +85,27 @@ describe('ChannelPreview', () => {
84
85
 
85
86
  return (
86
87
  <Chat client={chatClient}>
87
- <WithComponents overrides={{ ChannelPreview: ChannelPreviewUIComponent }}>
88
+ <WithComponents
89
+ overrides={{
90
+ ChannelPreview: ChannelPreviewUIComponent as unknown as React.ComponentType<
91
+ React.ComponentProps<typeof ChannelPreview>
92
+ >,
93
+ }}
94
+ >
88
95
  <ChannelPreview {...props} channel={channel} client={chatClient} />
89
96
  </WithComponents>
90
97
  </Chat>
91
98
  );
92
99
  };
93
100
 
94
- const generateChannelWrapper = (overrides: Record<string, unknown>) =>
101
+ const generateChannelWrapper = (overrides: Partial<Channel>) =>
95
102
  generateChannel({
96
103
  countUnread: jest.fn().mockReturnValue(0),
97
104
  initialized: true,
98
105
  lastMessage: jest.fn().mockReturnValue(generateMessage()),
99
106
  muteStatus: jest.fn().mockReturnValue({ muted: false }),
100
107
  ...overrides,
101
- });
108
+ } as unknown as Parameters<typeof generateChannel>[0]);
102
109
 
103
110
  const useInitializeChannel = async (c: GetOrCreateChannelApiParams) => {
104
111
  useMockedApis(chatClient, [getOrCreateChannelApi(c)]);
@@ -308,7 +315,7 @@ describe('ChannelPreview', () => {
308
315
  const c = generateChannelResponse();
309
316
  await useInitializeChannel(c);
310
317
 
311
- channel.muteStatus = jest.fn().mockReturnValue({ muted: true });
318
+ if (channel) channel.muteStatus = jest.fn().mockReturnValue({ muted: true });
312
319
 
313
320
  const { getByTestId } = render(<TestComponent />);
314
321
 
@@ -362,7 +369,7 @@ describe('ChannelPreview', () => {
362
369
  });
363
370
 
364
371
  await waitFor(() => {
365
- expect(getByTestId('latest-message')).toHaveTextContent(message.text);
372
+ expect(getByTestId('latest-message')).toHaveTextContent(message.text as string);
366
373
  });
367
374
  });
368
375
 
@@ -400,7 +407,9 @@ describe('ChannelPreview', () => {
400
407
  },
401
408
  text: 'Hello world!',
402
409
  };
403
- const channel = generateChannelResponse({ messages: [message] });
410
+ const channel = generateChannelResponse({
411
+ messages: [message] as unknown as GetOrCreateChannelApiParams['messages'],
412
+ });
404
413
  await useInitializeChannel(channel);
405
414
 
406
415
  const { getByText } = render(<TestComponent />);
@@ -435,10 +444,12 @@ describe('ChannelPreview', () => {
435
444
  return (
436
445
  <Chat client={chatClient}>
437
446
  <WithComponents
438
- overrides={{
439
- ChannelDetailsBottomSheet: channelDetailsBottomSheet,
440
- ChannelPreview: SwipePreview,
441
- }}
447
+ overrides={
448
+ {
449
+ ChannelDetailsBottomSheet: channelDetailsBottomSheet,
450
+ ChannelPreview: SwipePreview,
451
+ } as unknown as React.ComponentProps<typeof WithComponents>['overrides']
452
+ }
442
453
  >
443
454
  <ChannelsProvider
444
455
  value={
@@ -2,6 +2,7 @@ import React from 'react';
2
2
 
3
3
  import { fireEvent, render, screen, waitFor } from '@testing-library/react-native';
4
4
  import truncate from 'lodash/truncate';
5
+ import type { Channel as ChannelType, StreamChat } from 'stream-chat';
5
6
 
6
7
  import { getOrCreateChannelApi } from '../../../mock-builders/api/getOrCreateChannel';
7
8
  import { useMockedApis } from '../../../mock-builders/api/useMockedApis';
@@ -15,32 +16,16 @@ import { ChannelPreviewView } from '../ChannelPreviewView';
15
16
 
16
17
  describe('ChannelPreviewView', () => {
17
18
  const clientUser = generateUser();
18
- let chatClient;
19
- let channel;
19
+ let chatClient: StreamChat;
20
+ let channel: ChannelType | null;
20
21
 
21
- const getComponent = (props = {}) => (
22
+ const getComponent = (props: Partial<React.ComponentProps<typeof ChannelPreviewView>> = {}) => (
22
23
  <Chat client={chatClient}>
23
- <ChannelPreviewView
24
- channel={channel}
25
- client={chatClient}
26
- latestMessagePreview={{
27
- created_at: '',
28
- messageObject: generateMessage(),
29
- previews: [
30
- {
31
- bold: true,
32
- text: 'This is the message preview text',
33
- },
34
- ],
35
- status: 1, // read states of latest message.
36
- }}
37
- onSelect={jest.fn()}
38
- {...props}
39
- />
24
+ <ChannelPreviewView channel={channel as ChannelType} onSelect={jest.fn()} {...props} />
40
25
  </Chat>
41
26
  );
42
27
 
43
- const initializeChannel = async (c) => {
28
+ const initializeChannel = async (c: ReturnType<typeof generateChannelResponse>) => {
44
29
  useMockedApis(chatClient, [getOrCreateChannelApi(c)]);
45
30
 
46
31
  channel = chatClient.channel('messaging');
@@ -60,12 +45,7 @@ describe('ChannelPreviewView', () => {
60
45
  const onSelect = jest.fn();
61
46
  await initializeChannel(generateChannelResponse());
62
47
 
63
- render(
64
- getComponent({
65
- onSelect,
66
- watchers: {},
67
- }),
68
- );
48
+ render(getComponent({ onSelect }));
69
49
 
70
50
  await waitFor(() => screen.getByTestId('channel-preview-button'));
71
51
 
@@ -101,7 +81,7 @@ describe('ChannelPreviewView', () => {
101
81
  );
102
82
 
103
83
  render(getComponent());
104
- const expectedDisplayName = `${m1.user.name}, ${m2.user.name}, ${m3.user.name}`;
84
+ const expectedDisplayName = `${m1.user!.name}, ${m2.user!.name}, ${m3.user!.name}`;
105
85
 
106
86
  await waitFor(() => screen.queryByText(expectedDisplayName));
107
87
  });
@@ -110,12 +90,7 @@ describe('ChannelPreviewView', () => {
110
90
  const message = generateMessage();
111
91
  await initializeChannel(generateChannelResponse());
112
92
 
113
- render(
114
- getComponent({
115
- latestMessage: message,
116
- latestMessageLength: 6,
117
- }),
118
- );
93
+ render(getComponent());
119
94
 
120
95
  const expectedMessagePreview = truncate(message.text, { length: 6 });
121
96
  await waitFor(() => screen.queryByText(expectedMessagePreview));