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
@@ -0,0 +1,23 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type {
3
+ ChannelResponse,
4
+ Event,
5
+ LocalMessage,
6
+ MessageResponse,
7
+ StreamChat,
8
+ } from 'stream-chat';
9
+
10
+ export default (
11
+ client: StreamChat,
12
+ message: MessageResponse | LocalMessage,
13
+ channel: Partial<ChannelResponse> = {},
14
+ ) => {
15
+ client.dispatchEvent(
16
+ fromPartial<Event>({
17
+ channel,
18
+ cid: channel.cid,
19
+ message: message as MessageResponse,
20
+ type: 'message.deleted',
21
+ }),
22
+ );
23
+ };
@@ -0,0 +1,26 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type {
3
+ ChannelResponse,
4
+ Event,
5
+ LocalMessage,
6
+ MessageResponse,
7
+ StreamChat,
8
+ } from 'stream-chat';
9
+
10
+ export default (
11
+ client: StreamChat,
12
+ newMessage: MessageResponse | LocalMessage,
13
+ channel: Partial<ChannelResponse> = {},
14
+ ) => {
15
+ client.dispatchEvent(
16
+ fromPartial<Event>({
17
+ channel,
18
+ channel_id: channel.id,
19
+ channel_type: channel.type,
20
+ cid: channel.cid,
21
+ message: newMessage as MessageResponse,
22
+ type: 'message.new',
23
+ ...(newMessage.user ? { user: newMessage.user } : {}),
24
+ }),
25
+ );
26
+ };
@@ -0,0 +1,23 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { ChannelResponse, Event, StreamChat, UserResponse } from 'stream-chat';
3
+
4
+ export default (
5
+ client: StreamChat,
6
+ user: UserResponse,
7
+ channel: Partial<ChannelResponse> = {},
8
+ payload: Partial<Event> = {},
9
+ ): Event => {
10
+ const newDate = new Date() as unknown as string;
11
+ const event = fromPartial<Event>({
12
+ channel,
13
+ cid: channel.cid,
14
+ created_at: newDate,
15
+ received_at: newDate,
16
+ type: 'message.read',
17
+ user,
18
+ ...payload,
19
+ });
20
+ client.dispatchEvent(event);
21
+
22
+ return event;
23
+ };
@@ -0,0 +1,23 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type {
3
+ ChannelResponse,
4
+ Event,
5
+ LocalMessage,
6
+ MessageResponse,
7
+ StreamChat,
8
+ } from 'stream-chat';
9
+
10
+ export default (
11
+ client: StreamChat,
12
+ newMessage: MessageResponse | LocalMessage,
13
+ channel: Partial<ChannelResponse> = {},
14
+ ) => {
15
+ client.dispatchEvent(
16
+ fromPartial<Event>({
17
+ channel,
18
+ cid: channel.cid,
19
+ message: newMessage as MessageResponse,
20
+ type: 'message.updated',
21
+ }),
22
+ );
23
+ };
@@ -0,0 +1,12 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { ChannelResponse, Event, StreamChat } from 'stream-chat';
3
+
4
+ export default (client: StreamChat, channel: Partial<ChannelResponse> = {}) => {
5
+ client.dispatchEvent(
6
+ fromPartial<Event>({
7
+ channel,
8
+ cid: channel.cid,
9
+ type: 'notification.added_to_channel',
10
+ }),
11
+ );
12
+ };
@@ -0,0 +1,12 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { ChannelResponse, Event, StreamChat } from 'stream-chat';
3
+
4
+ export default (client: StreamChat, channel: Partial<ChannelResponse> = {}) => {
5
+ client.dispatchEvent(
6
+ fromPartial<Event>({
7
+ channel,
8
+ cid: channel.cid,
9
+ type: 'notification.channel_mutes_updated',
10
+ }),
11
+ );
12
+ };
@@ -0,0 +1,12 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { ChannelResponse, Event, StreamChat } from 'stream-chat';
3
+
4
+ export default (client: StreamChat, channel: Partial<ChannelResponse> = {}) => {
5
+ client.dispatchEvent(
6
+ fromPartial<Event>({
7
+ channel,
8
+ cid: channel.cid,
9
+ type: 'notification.mark_read',
10
+ }),
11
+ );
12
+ };
@@ -0,0 +1,22 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { ChannelResponse, Event, StreamChat, UserResponse } from 'stream-chat';
3
+
4
+ export default (
5
+ client: StreamChat,
6
+ channel: Partial<ChannelResponse> = {},
7
+ payload: Partial<Event> = {},
8
+ user: Partial<UserResponse> = {},
9
+ ) => {
10
+ const newDate = new Date() as unknown as string;
11
+ client.dispatchEvent(
12
+ fromPartial<Event>({
13
+ channel,
14
+ cid: channel.cid,
15
+ created_at: newDate,
16
+ received_at: newDate,
17
+ type: 'notification.mark_unread',
18
+ user,
19
+ ...payload,
20
+ }),
21
+ );
22
+ };
@@ -0,0 +1,12 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { ChannelResponse, Event, StreamChat } from 'stream-chat';
3
+
4
+ export default (client: StreamChat, channel: Partial<ChannelResponse> = {}) => {
5
+ client.dispatchEvent(
6
+ fromPartial<Event>({
7
+ channel,
8
+ cid: channel.cid,
9
+ type: 'notification.message_new',
10
+ }),
11
+ );
12
+ };
@@ -0,0 +1,16 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { Event, Mute, StreamChat } from 'stream-chat';
3
+
4
+ export default (client: StreamChat, mutes: Mute[] = []) => {
5
+ client.dispatchEvent(
6
+ fromPartial<Event>({
7
+ created_at: '2020-05-26T07:11:57.968294216Z',
8
+ me: {
9
+ ...client.user,
10
+ channel_mutes: [],
11
+ mutes,
12
+ },
13
+ type: 'notification.mutes_updated',
14
+ }),
15
+ );
16
+ };
@@ -0,0 +1,12 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { ChannelResponse, Event, StreamChat } from 'stream-chat';
3
+
4
+ export default (client: StreamChat, channel: Partial<ChannelResponse> = {}) => {
5
+ client.dispatchEvent(
6
+ fromPartial<Event>({
7
+ channel,
8
+ cid: channel.cid,
9
+ type: 'notification.removed_from_channel',
10
+ }),
11
+ );
12
+ };
@@ -0,0 +1,26 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type {
3
+ ChannelResponse,
4
+ Event,
5
+ LocalMessage,
6
+ MessageResponse,
7
+ ReactionResponse,
8
+ StreamChat,
9
+ } from 'stream-chat';
10
+
11
+ export default (
12
+ client: StreamChat,
13
+ reaction: ReactionResponse,
14
+ message: MessageResponse | LocalMessage,
15
+ channel: Partial<ChannelResponse> = {},
16
+ ) => {
17
+ client.dispatchEvent(
18
+ fromPartial<Event>({
19
+ channel,
20
+ cid: channel.cid,
21
+ message: message as MessageResponse,
22
+ reaction,
23
+ type: 'reaction.deleted',
24
+ }),
25
+ );
26
+ };
@@ -0,0 +1,26 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type {
3
+ ChannelResponse,
4
+ Event,
5
+ LocalMessage,
6
+ MessageResponse,
7
+ ReactionResponse,
8
+ StreamChat,
9
+ } from 'stream-chat';
10
+
11
+ export default (
12
+ client: StreamChat,
13
+ reaction: ReactionResponse,
14
+ message: MessageResponse | LocalMessage,
15
+ channel: Partial<ChannelResponse> = {},
16
+ ) => {
17
+ client.dispatchEvent(
18
+ fromPartial<Event>({
19
+ channel,
20
+ cid: channel.cid,
21
+ message: message as MessageResponse,
22
+ reaction,
23
+ type: 'reaction.new',
24
+ }),
25
+ );
26
+ };
@@ -0,0 +1,26 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type {
3
+ ChannelResponse,
4
+ Event,
5
+ LocalMessage,
6
+ MessageResponse,
7
+ ReactionResponse,
8
+ StreamChat,
9
+ } from 'stream-chat';
10
+
11
+ export default (
12
+ client: StreamChat,
13
+ reaction: ReactionResponse,
14
+ message: MessageResponse | LocalMessage,
15
+ channel: Partial<ChannelResponse> = {},
16
+ ) => {
17
+ client.dispatchEvent(
18
+ fromPartial<Event>({
19
+ channel,
20
+ cid: channel.cid,
21
+ message: message as MessageResponse,
22
+ reaction,
23
+ type: 'reaction.updated',
24
+ }),
25
+ );
26
+ };
@@ -0,0 +1,18 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { ChannelResponse, Event, StreamChat, UserResponse } from 'stream-chat';
3
+
4
+ export default (
5
+ client: StreamChat,
6
+ user: Partial<UserResponse> = {},
7
+ channel: Partial<ChannelResponse> = {},
8
+ ) => {
9
+ client.dispatchEvent(
10
+ fromPartial<Event>({
11
+ channel,
12
+ cid: channel.cid,
13
+ type: 'typing.start',
14
+ user,
15
+ user_id: user.id,
16
+ }),
17
+ );
18
+ };
@@ -0,0 +1,13 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { ChannelResponse, Event, StreamChat, UserResponse } from 'stream-chat';
3
+
4
+ export default (client: StreamChat, user: UserResponse, channel: Partial<ChannelResponse> = {}) => {
5
+ client.dispatchEvent(
6
+ fromPartial<Event>({
7
+ channel,
8
+ cid: channel.cid,
9
+ type: 'user.presence.changed',
10
+ user,
11
+ }),
12
+ );
13
+ };
@@ -0,0 +1,13 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { ChannelResponse, Event, StreamChat, UserResponse } from 'stream-chat';
3
+
4
+ export default (client: StreamChat, user: UserResponse, channel: Partial<ChannelResponse> = {}) => {
5
+ client.dispatchEvent(
6
+ fromPartial<Event>({
7
+ channel,
8
+ cid: channel.cid,
9
+ type: 'user.updated',
10
+ user,
11
+ }),
12
+ );
13
+ };
@@ -1,15 +1,16 @@
1
+ import type { Action, Attachment } from 'stream-chat';
1
2
  import { v4 as uuidv4 } from 'uuid';
2
3
 
3
4
  const image_url = 'http://www.jackblack.com/tenac_iousd.bmp';
4
5
 
5
- export const generateAttachmentAction = (a) => ({
6
+ export const generateAttachmentAction = (a?: Partial<Action>): Action => ({
6
7
  name: uuidv4(),
7
8
  text: uuidv4(),
8
9
  value: uuidv4(),
9
10
  ...a,
10
11
  });
11
12
 
12
- export const generateVideoAttachment = (a) => ({
13
+ export const generateVideoAttachment = (a?: Partial<Attachment>): Attachment => ({
13
14
  asset_url: 'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
14
15
  mime_type: 'video/mp4',
15
16
  thumb_url:
@@ -19,15 +20,20 @@ export const generateVideoAttachment = (a) => ({
19
20
  ...a,
20
21
  });
21
22
 
22
- export const generateImageAttachment = (a) => ({
23
- id: uuidv4(),
23
+ export const generateImageAttachment = (a?: Partial<Attachment>): Attachment => ({
24
24
  image_url: uuidv4(),
25
25
  title: uuidv4(),
26
26
  type: 'image',
27
27
  ...a,
28
28
  });
29
29
 
30
- export const generateImageUploadPreview = (a) => ({
30
+ type UploadPreview = {
31
+ file: { uri?: string; name?: string; type?: string };
32
+ id: string;
33
+ state: string;
34
+ };
35
+
36
+ export const generateImageUploadPreview = (a?: Partial<UploadPreview>): UploadPreview => ({
31
37
  file: {
32
38
  uri: image_url,
33
39
  },
@@ -36,9 +42,8 @@ export const generateImageUploadPreview = (a) => ({
36
42
  ...a,
37
43
  });
38
44
 
39
- export const generateAudioAttachment = (a) => ({
45
+ export const generateAudioAttachment = (a?: Partial<Attachment>): Attachment => ({
40
46
  asset_url: 'http://www.jackblack.com/tribute.mp3',
41
- description: uuidv4(),
42
47
  image_url,
43
48
  text: uuidv4(),
44
49
  title: uuidv4(),
@@ -46,9 +51,8 @@ export const generateAudioAttachment = (a) => ({
46
51
  ...a,
47
52
  });
48
53
 
49
- export const generateFileAttachment = (a) => ({
54
+ export const generateFileAttachment = (a?: Partial<Attachment>): Attachment => ({
50
55
  asset_url: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
51
- description: uuidv4(),
52
56
  file_size: 1337,
53
57
  mime_type: uuidv4(),
54
58
  text: uuidv4(),
@@ -57,7 +61,7 @@ export const generateFileAttachment = (a) => ({
57
61
  ...a,
58
62
  });
59
63
 
60
- export const generateFileUploadPreview = (a) => ({
64
+ export const generateFileUploadPreview = (a?: Partial<UploadPreview>): UploadPreview => ({
61
65
  file: {
62
66
  name: 'dummy.pdf',
63
67
  type: 'file',
@@ -68,7 +72,7 @@ export const generateFileUploadPreview = (a) => ({
68
72
  ...a,
69
73
  });
70
74
 
71
- export const generateCardAttachment = (a) => ({
75
+ export const generateCardAttachment = (a?: Partial<Attachment>): Attachment => ({
72
76
  image_url,
73
77
  og_scrape_url: uuidv4(),
74
78
  text: uuidv4(),
@@ -78,6 +82,6 @@ export const generateCardAttachment = (a) => ({
78
82
  ...a,
79
83
  });
80
84
 
81
- export const generateImgurAttachment = () => generateCardAttachment({ type: 'imgur' });
85
+ export const generateImgurAttachment = (): Attachment => generateCardAttachment({ type: 'imgur' });
82
86
 
83
- export const generateGiphyAttachment = () => generateCardAttachment({ type: 'giphy' });
87
+ export const generateGiphyAttachment = (): Attachment => generateCardAttachment({ type: 'giphy' });
@@ -1,4 +1,10 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
1
+ import type {
2
+ ChannelMemberResponse,
3
+ ChannelResponse,
4
+ LocalMessage,
5
+ MessageResponse,
6
+ ReadResponse,
7
+ } from 'stream-chat';
2
8
  import { v4 as uuidv4 } from 'uuid';
3
9
 
4
10
  import { generateUser, getUserDefaults } from './user';
@@ -29,8 +35,8 @@ const defaultConfig = {
29
35
  {
30
36
  args: '[text]',
31
37
  description: 'Post a random gif to the channel',
32
- name: 'giphy',
33
- set: 'fun_set',
38
+ name: 'giphy' as const,
39
+ set: 'fun_set' as const,
34
40
  },
35
41
  ],
36
42
  connect_events: true,
@@ -41,6 +47,7 @@ const defaultConfig = {
41
47
  name: 'messaging',
42
48
  reactions: true,
43
49
  read_events: true,
50
+ reminders: false,
44
51
  replies: true,
45
52
  search: true,
46
53
  typing_events: true,
@@ -54,54 +61,78 @@ const defaultState = {
54
61
  setIsUpToDate: jest.fn(),
55
62
  };
56
63
 
57
- const getChannelDefaults = (
58
- { id, type }: { [key: string]: any } = { id: uuidv4(), type: 'messaging' },
59
- ) => ({
60
- _client: {},
61
- channel: {
62
- cid: `${type}:${id}`,
63
- config: {
64
- ...defaultConfig,
65
- name: type,
64
+ export type GeneratedChannel = {
65
+ channel: Partial<ChannelResponse> & { config: typeof defaultConfig };
66
+ cid: string;
67
+ id: string;
68
+ messages: Partial<MessageResponse>[];
69
+ state: typeof defaultState;
70
+ type: string;
71
+ };
72
+
73
+ type GeneratedChannelIdType = { id?: string; type?: string };
74
+
75
+ const getChannelDefaults = (opts: GeneratedChannelIdType = {}): GeneratedChannel => {
76
+ const id = opts.id ?? uuidv4();
77
+ const type = opts.type ?? 'messaging';
78
+ return {
79
+ channel: {
80
+ cid: `${type}:${id}`,
81
+ config: {
82
+ ...defaultConfig,
83
+ name: type,
84
+ },
85
+ created_at: '2020-04-28T11:20:48.578147Z',
86
+ created_by: getUserDefaults(),
87
+ frozen: false,
88
+ id,
89
+ own_capabilities: defaultCapabilities,
66
90
  type,
91
+ updated_at: '2020-04-28T11:20:48.578147Z',
67
92
  },
68
- created_at: '2020-04-28T11:20:48.578147Z',
69
- created_by: getUserDefaults(),
70
- frozen: false,
93
+ cid: `${type}:${id}`,
71
94
  id,
72
- own_capabilities: defaultCapabilities,
95
+ messages: [],
96
+ state: defaultState,
73
97
  type,
74
- updated_at: '2020-04-28T11:20:48.578147Z',
75
- },
76
- cid: `${type}:${id}`,
77
- id,
78
- messages: [],
79
- state: defaultState,
80
- type,
81
- });
98
+ };
99
+ };
82
100
 
83
- export const generateChannel = (customValues: { [key: string]: any }) =>
84
- Object.keys(customValues).reduce((accumulated, current) => {
101
+ export const generateChannel = (
102
+ customValues: Partial<GeneratedChannel> & Record<string, unknown> = {},
103
+ ): GeneratedChannel =>
104
+ Object.keys(customValues).reduce<GeneratedChannel>((accumulated, current) => {
105
+ const key = current as keyof GeneratedChannel;
85
106
  if (current in accumulated) {
86
- const key = current as keyof typeof accumulated;
87
- accumulated[key] =
107
+ (accumulated as Record<string, unknown>)[current] =
88
108
  typeof accumulated[key] === 'object'
89
- ? { ...accumulated[key], ...customValues[key] }
90
- : (accumulated[key] = customValues[key]);
109
+ ? { ...(accumulated[key] as object), ...(customValues[current] as object) }
110
+ : customValues[current];
91
111
  return accumulated;
92
112
  }
93
- return { ...accumulated, [current]: customValues[current] };
113
+ return { ...accumulated, [current]: customValues[current] } as GeneratedChannel;
94
114
  }, getChannelDefaults());
95
115
 
116
+ type ChannelResponseMessage = Partial<MessageResponse> | LocalMessage;
117
+
118
+ export type GeneratedChannelResponseCustomValues = {
119
+ channel?: Partial<ChannelResponse>;
120
+ id?: string;
121
+ messages?: ChannelResponseMessage[];
122
+ members?: Partial<ChannelMemberResponse>[];
123
+ read?: Partial<ReadResponse>[];
124
+ type?: string;
125
+ };
126
+
96
127
  export const generateChannelResponse = (
97
- customValues: {
98
- channel?: Record<string, any>;
99
- id?: string;
100
- messages?: Record<string, any>[];
101
- members?: Record<string, any>[];
102
- read?: Record<string, any>[];
103
- type?: string;
104
- } = { channel: {}, id: uuidv4(), members: [], messages: [], read: [], type: 'messaging' },
128
+ customValues: GeneratedChannelResponseCustomValues = {
129
+ channel: {},
130
+ id: uuidv4(),
131
+ members: [],
132
+ messages: [],
133
+ read: [],
134
+ type: 'messaging',
135
+ },
105
136
  ) => {
106
137
  const {
107
138
  channel = {},
@@ -0,0 +1,18 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { ChannelMemberResponse } from 'stream-chat';
3
+
4
+ import { generateUser } from './user';
5
+
6
+ export const generateMember = (
7
+ options: Partial<ChannelMemberResponse> = {},
8
+ ): ChannelMemberResponse => {
9
+ const user = (options && options.user) || generateUser();
10
+ return fromPartial<ChannelMemberResponse>({
11
+ invited: false,
12
+ is_moderator: false,
13
+ role: 'member',
14
+ user,
15
+ user_id: user.id,
16
+ ...options,
17
+ });
18
+ };
@@ -0,0 +1,50 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { LocalMessage } from 'stream-chat';
3
+ import { v4 as uuidv4, v5 as uuidv5 } from 'uuid';
4
+
5
+ import { generateUser } from './user';
6
+
7
+ type GenerateMessageOptions = Partial<LocalMessage> & { timestamp?: Date };
8
+
9
+ // Returns a `LocalMessage`-shaped mock. Components across this SDK consume
10
+ // `LocalMessage` (with `Date` objects for `created_at`/`updated_at`/`pinned_at`/
11
+ // `deleted_at`), so the mock matches that shape. For tests that feed mock data
12
+ // into an API response where the server returns `MessageResponse` (strings for
13
+ // dates), cast at the call site — runtime values are the same either way.
14
+ export const generateMessage = (options: GenerateMessageOptions = {}): LocalMessage => {
15
+ const timestamp =
16
+ options.timestamp || new Date(new Date().getTime() - Math.floor(Math.random() * 100000));
17
+
18
+ return fromPartial<LocalMessage>({
19
+ attachments: [],
20
+ created_at: timestamp,
21
+ deleted_at: null,
22
+ html: '<p>regular</p>',
23
+ id: uuidv4(),
24
+ message_text_updated_at: timestamp.toISOString(),
25
+ pinned_at: null,
26
+ status: 'received',
27
+ text: uuidv4(),
28
+ type: 'regular',
29
+ updated_at: timestamp,
30
+ user: generateUser(),
31
+ ...options,
32
+ });
33
+ };
34
+
35
+ const StreamReactNativeNamespace = '9b244ee4-7d69-4d7b-ae23-cf89e9f7b035';
36
+ export const generateStaticMessage = (
37
+ seed: string,
38
+ options?: GenerateMessageOptions,
39
+ date?: string | Date,
40
+ ): LocalMessage => {
41
+ const staticDate = date ? new Date(date) : new Date('2020-04-27T13:39:49.331742Z');
42
+ return generateMessage({
43
+ created_at: staticDate,
44
+ id: uuidv5(seed, StreamReactNativeNamespace),
45
+ message_text_updated_at: staticDate.toISOString(),
46
+ text: seed,
47
+ updated_at: staticDate,
48
+ ...options,
49
+ });
50
+ };
@@ -0,0 +1,15 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { ReactionResponse } from 'stream-chat';
3
+
4
+ import { generateUser } from './user';
5
+
6
+ export const generateReaction = (options: Partial<ReactionResponse> = {}): ReactionResponse => {
7
+ const user = options.user || generateUser();
8
+ return fromPartial<ReactionResponse>({
9
+ created_at: new Date() as unknown as string,
10
+ type: 'love',
11
+ user,
12
+ user_id: user.id,
13
+ ...options,
14
+ });
15
+ };