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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/components/Message/MessageItemView/utils/renderText.test.js +1 -1
  3. package/lib/commonjs/components/Message/MessageItemView/utils/renderText.test.js.map +1 -1
  4. package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
  5. package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
  6. package/lib/commonjs/mock-builders/api/channelMocks.js +38 -31
  7. package/lib/commonjs/mock-builders/api/channelMocks.js.map +1 -1
  8. package/lib/commonjs/mock-builders/api/deleteMessage.js.map +1 -1
  9. package/lib/commonjs/mock-builders/api/deleteReaction.js.map +1 -1
  10. package/lib/commonjs/mock-builders/api/error.js.map +1 -1
  11. package/lib/commonjs/mock-builders/api/getOrCreateChannel.js.map +1 -1
  12. package/lib/commonjs/mock-builders/api/initiateClientWithChannels.js +1 -1
  13. package/lib/commonjs/mock-builders/api/initiateClientWithChannels.js.map +1 -1
  14. package/lib/commonjs/mock-builders/api/queryChannels.js.map +1 -1
  15. package/lib/commonjs/mock-builders/api/queryMembers.js +12 -11
  16. package/lib/commonjs/mock-builders/api/queryMembers.js.map +1 -1
  17. package/lib/commonjs/mock-builders/api/sendMessage.js.map +1 -1
  18. package/lib/commonjs/mock-builders/api/sendReaction.js.map +1 -1
  19. package/lib/commonjs/mock-builders/api/threadReplies.js.map +1 -1
  20. package/lib/commonjs/mock-builders/api/useMockedApis.js.map +1 -1
  21. package/lib/commonjs/mock-builders/api/utils.js.map +1 -1
  22. package/lib/commonjs/mock-builders/attachments.js.map +1 -1
  23. package/lib/commonjs/mock-builders/event/channelDeleted.js +3 -2
  24. package/lib/commonjs/mock-builders/event/channelDeleted.js.map +1 -1
  25. package/lib/commonjs/mock-builders/event/channelHidden.js +3 -2
  26. package/lib/commonjs/mock-builders/event/channelHidden.js.map +1 -1
  27. package/lib/commonjs/mock-builders/event/channelTruncated.js +3 -2
  28. package/lib/commonjs/mock-builders/event/channelTruncated.js.map +1 -1
  29. package/lib/commonjs/mock-builders/event/channelUpdated.js +3 -2
  30. package/lib/commonjs/mock-builders/event/channelUpdated.js.map +1 -1
  31. package/lib/commonjs/mock-builders/event/channelVisible.js +3 -2
  32. package/lib/commonjs/mock-builders/event/channelVisible.js.map +1 -1
  33. package/lib/commonjs/mock-builders/event/connectionChanged.js +3 -2
  34. package/lib/commonjs/mock-builders/event/connectionChanged.js.map +1 -1
  35. package/lib/commonjs/mock-builders/event/connectionRecovered.js +3 -2
  36. package/lib/commonjs/mock-builders/event/connectionRecovered.js.map +1 -1
  37. package/lib/commonjs/mock-builders/event/memberAdded.js +3 -2
  38. package/lib/commonjs/mock-builders/event/memberAdded.js.map +1 -1
  39. package/lib/commonjs/mock-builders/event/memberRemoved.js +3 -2
  40. package/lib/commonjs/mock-builders/event/memberRemoved.js.map +1 -1
  41. package/lib/commonjs/mock-builders/event/memberUpdated.js +3 -2
  42. package/lib/commonjs/mock-builders/event/memberUpdated.js.map +1 -1
  43. package/lib/commonjs/mock-builders/event/messageDeleted.js +3 -2
  44. package/lib/commonjs/mock-builders/event/messageDeleted.js.map +1 -1
  45. package/lib/commonjs/mock-builders/event/messageNew.js +3 -2
  46. package/lib/commonjs/mock-builders/event/messageNew.js.map +1 -1
  47. package/lib/commonjs/mock-builders/event/messageRead.js +3 -2
  48. package/lib/commonjs/mock-builders/event/messageRead.js.map +1 -1
  49. package/lib/commonjs/mock-builders/event/messageUpdated.js +3 -2
  50. package/lib/commonjs/mock-builders/event/messageUpdated.js.map +1 -1
  51. package/lib/commonjs/mock-builders/event/notificationAddedToChannel.js +3 -2
  52. package/lib/commonjs/mock-builders/event/notificationAddedToChannel.js.map +1 -1
  53. package/lib/commonjs/mock-builders/event/notificationChannelMutesUpdated.js +3 -2
  54. package/lib/commonjs/mock-builders/event/notificationChannelMutesUpdated.js.map +1 -1
  55. package/lib/commonjs/mock-builders/event/notificationMarkRead.js +3 -2
  56. package/lib/commonjs/mock-builders/event/notificationMarkRead.js.map +1 -1
  57. package/lib/commonjs/mock-builders/event/notificationMarkUnread.js +3 -2
  58. package/lib/commonjs/mock-builders/event/notificationMarkUnread.js.map +1 -1
  59. package/lib/commonjs/mock-builders/event/notificationMessageNew.js +3 -2
  60. package/lib/commonjs/mock-builders/event/notificationMessageNew.js.map +1 -1
  61. package/lib/commonjs/mock-builders/event/notificationMutesUpdated.js +3 -2
  62. package/lib/commonjs/mock-builders/event/notificationMutesUpdated.js.map +1 -1
  63. package/lib/commonjs/mock-builders/event/notificationRemovedFromChannel.js +3 -2
  64. package/lib/commonjs/mock-builders/event/notificationRemovedFromChannel.js.map +1 -1
  65. package/lib/commonjs/mock-builders/event/reactionDeleted.js +3 -2
  66. package/lib/commonjs/mock-builders/event/reactionDeleted.js.map +1 -1
  67. package/lib/commonjs/mock-builders/event/reactionNew.js +3 -2
  68. package/lib/commonjs/mock-builders/event/reactionNew.js.map +1 -1
  69. package/lib/commonjs/mock-builders/event/reactionUpdated.js +3 -2
  70. package/lib/commonjs/mock-builders/event/reactionUpdated.js.map +1 -1
  71. package/lib/commonjs/mock-builders/event/typing.js +3 -2
  72. package/lib/commonjs/mock-builders/event/typing.js.map +1 -1
  73. package/lib/commonjs/mock-builders/event/userPresence.js +3 -2
  74. package/lib/commonjs/mock-builders/event/userPresence.js.map +1 -1
  75. package/lib/commonjs/mock-builders/event/userUpdated.js +3 -2
  76. package/lib/commonjs/mock-builders/event/userUpdated.js.map +1 -1
  77. package/lib/commonjs/mock-builders/generator/attachment.js +0 -3
  78. package/lib/commonjs/mock-builders/generator/attachment.js.map +1 -1
  79. package/lib/commonjs/mock-builders/generator/channel.js +10 -12
  80. package/lib/commonjs/mock-builders/generator/channel.js.map +1 -1
  81. package/lib/commonjs/mock-builders/generator/member.js +3 -2
  82. package/lib/commonjs/mock-builders/generator/member.js.map +1 -1
  83. package/lib/commonjs/mock-builders/generator/message.js +12 -7
  84. package/lib/commonjs/mock-builders/generator/message.js.map +1 -1
  85. package/lib/commonjs/mock-builders/generator/reaction.js +3 -2
  86. package/lib/commonjs/mock-builders/generator/reaction.js.map +1 -1
  87. package/lib/commonjs/mock-builders/generator/user.js +4 -3
  88. package/lib/commonjs/mock-builders/generator/user.js.map +1 -1
  89. package/lib/commonjs/mock-builders/mock.js +15 -11
  90. package/lib/commonjs/mock-builders/mock.js.map +1 -1
  91. package/lib/commonjs/store/apis/addPendingTask.js.map +1 -1
  92. package/lib/commonjs/store/apis/deleteMessage.js.map +1 -1
  93. package/lib/commonjs/store/apis/upsertDraft.js.map +1 -1
  94. package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js.map +1 -1
  95. package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js.map +1 -1
  96. package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
  97. package/lib/commonjs/test-utils/BetterSqlite.js +11 -7
  98. package/lib/commonjs/test-utils/BetterSqlite.js.map +1 -1
  99. package/lib/commonjs/version.json +1 -1
  100. package/lib/module/components/Message/MessageItemView/utils/renderText.test.js +1 -1
  101. package/lib/module/components/Message/MessageItemView/utils/renderText.test.js.map +1 -1
  102. package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
  103. package/lib/module/mock-builders/DB/mock.js.map +1 -1
  104. package/lib/module/mock-builders/api/channelMocks.js +38 -31
  105. package/lib/module/mock-builders/api/channelMocks.js.map +1 -1
  106. package/lib/module/mock-builders/api/deleteMessage.js.map +1 -1
  107. package/lib/module/mock-builders/api/deleteReaction.js.map +1 -1
  108. package/lib/module/mock-builders/api/error.js.map +1 -1
  109. package/lib/module/mock-builders/api/getOrCreateChannel.js.map +1 -1
  110. package/lib/module/mock-builders/api/initiateClientWithChannels.js +1 -1
  111. package/lib/module/mock-builders/api/initiateClientWithChannels.js.map +1 -1
  112. package/lib/module/mock-builders/api/queryChannels.js.map +1 -1
  113. package/lib/module/mock-builders/api/queryMembers.js +12 -11
  114. package/lib/module/mock-builders/api/queryMembers.js.map +1 -1
  115. package/lib/module/mock-builders/api/sendMessage.js.map +1 -1
  116. package/lib/module/mock-builders/api/sendReaction.js.map +1 -1
  117. package/lib/module/mock-builders/api/threadReplies.js.map +1 -1
  118. package/lib/module/mock-builders/api/useMockedApis.js.map +1 -1
  119. package/lib/module/mock-builders/api/utils.js.map +1 -1
  120. package/lib/module/mock-builders/attachments.js.map +1 -1
  121. package/lib/module/mock-builders/event/channelDeleted.js +3 -2
  122. package/lib/module/mock-builders/event/channelDeleted.js.map +1 -1
  123. package/lib/module/mock-builders/event/channelHidden.js +3 -2
  124. package/lib/module/mock-builders/event/channelHidden.js.map +1 -1
  125. package/lib/module/mock-builders/event/channelTruncated.js +3 -2
  126. package/lib/module/mock-builders/event/channelTruncated.js.map +1 -1
  127. package/lib/module/mock-builders/event/channelUpdated.js +3 -2
  128. package/lib/module/mock-builders/event/channelUpdated.js.map +1 -1
  129. package/lib/module/mock-builders/event/channelVisible.js +3 -2
  130. package/lib/module/mock-builders/event/channelVisible.js.map +1 -1
  131. package/lib/module/mock-builders/event/connectionChanged.js +3 -2
  132. package/lib/module/mock-builders/event/connectionChanged.js.map +1 -1
  133. package/lib/module/mock-builders/event/connectionRecovered.js +3 -2
  134. package/lib/module/mock-builders/event/connectionRecovered.js.map +1 -1
  135. package/lib/module/mock-builders/event/memberAdded.js +3 -2
  136. package/lib/module/mock-builders/event/memberAdded.js.map +1 -1
  137. package/lib/module/mock-builders/event/memberRemoved.js +3 -2
  138. package/lib/module/mock-builders/event/memberRemoved.js.map +1 -1
  139. package/lib/module/mock-builders/event/memberUpdated.js +3 -2
  140. package/lib/module/mock-builders/event/memberUpdated.js.map +1 -1
  141. package/lib/module/mock-builders/event/messageDeleted.js +3 -2
  142. package/lib/module/mock-builders/event/messageDeleted.js.map +1 -1
  143. package/lib/module/mock-builders/event/messageNew.js +3 -2
  144. package/lib/module/mock-builders/event/messageNew.js.map +1 -1
  145. package/lib/module/mock-builders/event/messageRead.js +3 -2
  146. package/lib/module/mock-builders/event/messageRead.js.map +1 -1
  147. package/lib/module/mock-builders/event/messageUpdated.js +3 -2
  148. package/lib/module/mock-builders/event/messageUpdated.js.map +1 -1
  149. package/lib/module/mock-builders/event/notificationAddedToChannel.js +3 -2
  150. package/lib/module/mock-builders/event/notificationAddedToChannel.js.map +1 -1
  151. package/lib/module/mock-builders/event/notificationChannelMutesUpdated.js +3 -2
  152. package/lib/module/mock-builders/event/notificationChannelMutesUpdated.js.map +1 -1
  153. package/lib/module/mock-builders/event/notificationMarkRead.js +3 -2
  154. package/lib/module/mock-builders/event/notificationMarkRead.js.map +1 -1
  155. package/lib/module/mock-builders/event/notificationMarkUnread.js +3 -2
  156. package/lib/module/mock-builders/event/notificationMarkUnread.js.map +1 -1
  157. package/lib/module/mock-builders/event/notificationMessageNew.js +3 -2
  158. package/lib/module/mock-builders/event/notificationMessageNew.js.map +1 -1
  159. package/lib/module/mock-builders/event/notificationMutesUpdated.js +3 -2
  160. package/lib/module/mock-builders/event/notificationMutesUpdated.js.map +1 -1
  161. package/lib/module/mock-builders/event/notificationRemovedFromChannel.js +3 -2
  162. package/lib/module/mock-builders/event/notificationRemovedFromChannel.js.map +1 -1
  163. package/lib/module/mock-builders/event/reactionDeleted.js +3 -2
  164. package/lib/module/mock-builders/event/reactionDeleted.js.map +1 -1
  165. package/lib/module/mock-builders/event/reactionNew.js +3 -2
  166. package/lib/module/mock-builders/event/reactionNew.js.map +1 -1
  167. package/lib/module/mock-builders/event/reactionUpdated.js +3 -2
  168. package/lib/module/mock-builders/event/reactionUpdated.js.map +1 -1
  169. package/lib/module/mock-builders/event/typing.js +3 -2
  170. package/lib/module/mock-builders/event/typing.js.map +1 -1
  171. package/lib/module/mock-builders/event/userPresence.js +3 -2
  172. package/lib/module/mock-builders/event/userPresence.js.map +1 -1
  173. package/lib/module/mock-builders/event/userUpdated.js +3 -2
  174. package/lib/module/mock-builders/event/userUpdated.js.map +1 -1
  175. package/lib/module/mock-builders/generator/attachment.js +0 -3
  176. package/lib/module/mock-builders/generator/attachment.js.map +1 -1
  177. package/lib/module/mock-builders/generator/channel.js +10 -12
  178. package/lib/module/mock-builders/generator/channel.js.map +1 -1
  179. package/lib/module/mock-builders/generator/member.js +3 -2
  180. package/lib/module/mock-builders/generator/member.js.map +1 -1
  181. package/lib/module/mock-builders/generator/message.js +12 -7
  182. package/lib/module/mock-builders/generator/message.js.map +1 -1
  183. package/lib/module/mock-builders/generator/reaction.js +3 -2
  184. package/lib/module/mock-builders/generator/reaction.js.map +1 -1
  185. package/lib/module/mock-builders/generator/user.js +4 -3
  186. package/lib/module/mock-builders/generator/user.js.map +1 -1
  187. package/lib/module/mock-builders/mock.js +15 -11
  188. package/lib/module/mock-builders/mock.js.map +1 -1
  189. package/lib/module/store/apis/addPendingTask.js.map +1 -1
  190. package/lib/module/store/apis/deleteMessage.js.map +1 -1
  191. package/lib/module/store/apis/upsertDraft.js.map +1 -1
  192. package/lib/module/store/sqlite-utils/appendOrderByClause.js.map +1 -1
  193. package/lib/module/store/sqlite-utils/appendWhereCluase.js.map +1 -1
  194. package/lib/module/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
  195. package/lib/module/test-utils/BetterSqlite.js +11 -7
  196. package/lib/module/test-utils/BetterSqlite.js.map +1 -1
  197. package/lib/module/version.json +1 -1
  198. package/lib/typescript/components/UIComponents/SwipableWrapper.d.ts +1 -1
  199. package/lib/typescript/components/UIComponents/SwipableWrapper.d.ts.map +1 -1
  200. package/lib/typescript/store/OfflineDB.d.ts +1 -1
  201. package/lib/typescript/store/OfflineDB.d.ts.map +1 -1
  202. package/lib/typescript/store/apis/addPendingTask.d.ts.map +1 -1
  203. package/lib/typescript/store/apis/deleteMessage.d.ts +2 -1
  204. package/lib/typescript/store/apis/deleteMessage.d.ts.map +1 -1
  205. package/lib/typescript/store/apis/upsertDraft.d.ts +1 -1
  206. package/lib/typescript/store/apis/upsertDraft.d.ts.map +1 -1
  207. package/lib/typescript/store/sqlite-utils/createCreateTableQuery.d.ts.map +1 -1
  208. package/lib/typescript/test-utils/BetterSqlite.d.ts +4 -3
  209. package/lib/typescript/test-utils/BetterSqlite.d.ts.map +1 -1
  210. package/package.json +5 -3
  211. package/src/__tests__/offline-support/{offline-feature.js → offline-feature.tsx} +282 -139
  212. package/src/__tests__/offline-support/{optimistic-update.js → optimistic-update.tsx} +154 -84
  213. package/src/components/Attachment/__tests__/{Attachment.test.js → Attachment.test.tsx} +12 -8
  214. package/src/components/Attachment/__tests__/{Gallery.test.js → Gallery.test.tsx} +10 -3
  215. package/src/components/Attachment/__tests__/{Giphy.test.js → Giphy.test.tsx} +48 -19
  216. package/src/components/Attachment/__tests__/{buildGallery.test.js → buildGallery.test.ts} +4 -2
  217. package/src/components/AutoCompleteInput/__tests__/{AutoCompleteInput.test.js → AutoCompleteInput.test.tsx} +21 -11
  218. package/src/components/Channel/__tests__/{Channel.test.js → Channel.test.tsx} +129 -89
  219. package/src/components/Channel/__tests__/{isAttachmentEqualHandler.test.js → isAttachmentEqualHandler.test.tsx} +25 -8
  220. package/src/components/Channel/__tests__/{ownCapabilities.test.js → ownCapabilities.test.tsx} +16 -12
  221. package/src/components/Channel/__tests__/{useMessageListPagination.test.js → useMessageListPagination.test.tsx} +105 -63
  222. package/src/components/ChannelList/__tests__/{ChannelList.test.js → ChannelList.test.tsx} +63 -29
  223. package/src/components/ChannelList/__tests__/{ChannelListView.test.js → ChannelListView.test.tsx} +30 -20
  224. package/src/components/ChannelList/hooks/__tests__/useChannelActionItems.test.tsx +6 -6
  225. package/src/components/ChannelList/hooks/__tests__/useChannelActionItemsById.test.tsx +2 -2
  226. package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +17 -14
  227. package/src/components/ChannelPreview/__tests__/ChannelDetailsBottomSheet.test.tsx +14 -4
  228. package/src/components/ChannelPreview/__tests__/ChannelPreview.test.tsx +23 -12
  229. package/src/components/ChannelPreview/__tests__/{ChannelPreviewView.test.js → ChannelPreviewView.test.tsx} +9 -34
  230. package/src/components/ChannelPreview/__tests__/ChannelSwipableWrapper.test.tsx +4 -2
  231. package/src/components/ChannelPreview/hooks/__tests__/useChannelPreviewDisplayPresence.test.tsx +1 -1
  232. package/src/components/Chat/__tests__/{Chat.test.js → Chat.test.tsx} +37 -30
  233. package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +10 -14
  234. package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +3 -3
  235. package/src/components/ImageGallery/__tests__/ImageGalleryGrid.test.tsx +5 -4
  236. package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +7 -6
  237. package/src/components/ImageGallery/components/__tests__/ImageGalleryHeader.test.tsx +9 -13
  238. package/src/components/Message/MessageItemView/__tests__/{Message.test.js → Message.test.tsx} +20 -11
  239. package/src/components/Message/MessageItemView/__tests__/{MessageAuthor.test.js → MessageAuthor.test.tsx} +10 -12
  240. package/src/components/Message/MessageItemView/__tests__/{MessageContent.test.js → MessageContent.test.tsx} +22 -12
  241. package/src/components/Message/MessageItemView/__tests__/{MessageItemView.test.js → MessageItemView.test.tsx} +11 -4
  242. package/src/components/Message/MessageItemView/__tests__/{MessagePinnedHeader.test.js → MessagePinnedHeader.test.tsx} +5 -3
  243. package/src/components/Message/MessageItemView/__tests__/{MessageReplies.test.js → MessageReplies.test.tsx} +15 -36
  244. package/src/components/Message/MessageItemView/__tests__/{MessageStatus.test.js → MessageStatus.test.tsx} +20 -10
  245. package/src/components/Message/MessageItemView/__tests__/MessageTextContainer.test.tsx +8 -8
  246. package/src/components/Message/MessageItemView/__tests__/{ReactionListBottom.test.js → ReactionListBottom.test.tsx} +19 -8
  247. package/src/components/Message/MessageItemView/__tests__/{ReactionListTop.test.js → ReactionListTop.test.tsx} +8 -4
  248. package/src/components/Message/MessageItemView/utils/renderText.test.tsx +2 -4
  249. package/src/components/Message/MessageItemView/utils/renderText.tsx +1 -1
  250. package/src/components/Message/hooks/__tests__/useShouldUseOverlayStyles.test.tsx +2 -2
  251. package/src/components/MessageInput/__tests__/{AttachButton.test.js → AttachButton.test.tsx} +14 -4
  252. package/src/components/MessageInput/__tests__/{AttachmentUploadPreviewList.test.js → AttachmentUploadPreviewList.test.tsx} +27 -8
  253. package/src/components/MessageInput/__tests__/{AudioAttachmentUploadPreview.test.js → AudioAttachmentUploadPreview.test.tsx} +18 -5
  254. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewExpo.test.tsx +47 -15
  255. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewNative.test.tsx +57 -17
  256. package/src/components/MessageInput/__tests__/{InputButtons.test.js → InputButtons.test.tsx} +14 -4
  257. package/src/components/MessageInput/__tests__/{MessageComposer.test.js → MessageComposer.test.tsx} +28 -20
  258. package/src/components/MessageInput/__tests__/{SendButton.test.js → SendButton.test.tsx} +13 -4
  259. package/src/components/MessageInput/__tests__/{SendMessageDisallowedIndicator.test.js → SendMessageDisallowedIndicator.test.tsx} +47 -31
  260. package/src/components/MessageList/__tests__/{MessageList.test.js → MessageList.test.tsx} +31 -34
  261. package/src/components/MessageList/__tests__/{MessageSystem.test.js → MessageSystem.test.tsx} +13 -5
  262. package/src/components/MessageList/__tests__/{ScrollToBottomButton.test.js → ScrollToBottomButton.test.tsx} +8 -12
  263. package/src/components/MessageList/__tests__/{TypingIndicator.test.js → TypingIndicator.test.tsx} +6 -4
  264. package/src/components/MessageList/__tests__/useMessageList.test.tsx +2 -2
  265. package/src/components/MessageList/hooks/useMessageList.ts +1 -1
  266. package/src/components/MessageMenu/__tests__/MessageActionList.test.tsx +4 -1
  267. package/src/components/MessageMenu/__tests__/MessageActionListItem.test.tsx +1 -0
  268. package/src/components/MessageMenu/__tests__/MessageReactionPicker.test.tsx +6 -2
  269. package/src/components/MessageMenu/__tests__/MessageUserReactions.test.tsx +3 -3
  270. package/src/components/MessageMenu/__tests__/MessageUserReactionsAvatar.test.tsx +7 -3
  271. package/src/components/MessageMenu/__tests__/MessageUserReactionsItem.test.tsx +2 -1
  272. package/src/components/Thread/__tests__/{Thread.test.js → Thread.test.tsx} +41 -13
  273. package/src/components/Thread/__tests__/__snapshots__/{Thread.test.js.snap → Thread.test.tsx.snap} +0 -21
  274. package/src/components/UIComponents/SwipableWrapper.tsx +1 -1
  275. package/src/components/UIComponents/__tests__/SwipableWrapper.test.tsx +1 -1
  276. package/src/contexts/messageInputContext/__tests__/filePickers.test.tsx +31 -10
  277. package/src/contexts/messageInputContext/__tests__/sendMessage.test.tsx +24 -12
  278. package/src/contexts/overlayContext/__tests__/MessageOverlayHostLayer.test.tsx +2 -2
  279. package/src/hooks/__tests__/useTranslatedMessage.test.tsx +4 -4
  280. package/src/mock-builders/DB/mock.ts +1 -1
  281. package/src/mock-builders/api/channelMocks.tsx +39 -29
  282. package/src/mock-builders/api/deleteMessage.ts +21 -0
  283. package/src/mock-builders/api/deleteReaction.ts +23 -0
  284. package/src/mock-builders/api/{error.js → error.ts} +13 -5
  285. package/src/mock-builders/api/getOrCreateChannel.ts +22 -11
  286. package/src/mock-builders/api/{initiateClientWithChannels.js → initiateClientWithChannels.ts} +21 -3
  287. package/src/mock-builders/api/{queryChannels.js → queryChannels.ts} +2 -4
  288. package/src/mock-builders/api/{queryMembers.js → queryMembers.ts} +29 -27
  289. package/src/mock-builders/api/sendMessage.ts +25 -0
  290. package/src/mock-builders/api/sendReaction.ts +9 -5
  291. package/src/mock-builders/api/threadReplies.ts +18 -0
  292. package/src/mock-builders/api/{useMockedApis.js → useMockedApis.ts} +5 -4
  293. package/src/mock-builders/api/utils.ts +16 -0
  294. package/src/mock-builders/{attachments.js → attachments.ts} +24 -8
  295. package/src/mock-builders/event/channelDeleted.ts +12 -0
  296. package/src/mock-builders/event/channelHidden.ts +12 -0
  297. package/src/mock-builders/event/channelTruncated.ts +12 -0
  298. package/src/mock-builders/event/channelUpdated.ts +12 -0
  299. package/src/mock-builders/event/channelVisible.ts +12 -0
  300. package/src/mock-builders/event/connectionChanged.ts +11 -0
  301. package/src/mock-builders/event/connectionRecovered.ts +10 -0
  302. package/src/mock-builders/event/memberAdded.ts +19 -0
  303. package/src/mock-builders/event/memberRemoved.ts +18 -0
  304. package/src/mock-builders/event/memberUpdated.ts +18 -0
  305. package/src/mock-builders/event/messageDeleted.ts +23 -0
  306. package/src/mock-builders/event/messageNew.ts +26 -0
  307. package/src/mock-builders/event/messageRead.ts +23 -0
  308. package/src/mock-builders/event/messageUpdated.ts +23 -0
  309. package/src/mock-builders/event/notificationAddedToChannel.ts +12 -0
  310. package/src/mock-builders/event/notificationChannelMutesUpdated.ts +12 -0
  311. package/src/mock-builders/event/notificationMarkRead.ts +12 -0
  312. package/src/mock-builders/event/notificationMarkUnread.ts +22 -0
  313. package/src/mock-builders/event/notificationMessageNew.ts +12 -0
  314. package/src/mock-builders/event/notificationMutesUpdated.ts +16 -0
  315. package/src/mock-builders/event/notificationRemovedFromChannel.ts +12 -0
  316. package/src/mock-builders/event/reactionDeleted.ts +26 -0
  317. package/src/mock-builders/event/reactionNew.ts +26 -0
  318. package/src/mock-builders/event/reactionUpdated.ts +26 -0
  319. package/src/mock-builders/event/typing.ts +18 -0
  320. package/src/mock-builders/event/userPresence.ts +13 -0
  321. package/src/mock-builders/event/userUpdated.ts +13 -0
  322. package/src/mock-builders/generator/{attachment.js → attachment.ts} +17 -13
  323. package/src/mock-builders/generator/channel.ts +70 -39
  324. package/src/mock-builders/generator/member.ts +18 -0
  325. package/src/mock-builders/generator/message.ts +50 -0
  326. package/src/mock-builders/generator/reaction.ts +15 -0
  327. package/src/mock-builders/generator/{user.js → user.ts} +20 -16
  328. package/src/mock-builders/mock.ts +79 -0
  329. package/src/state-store/__tests__/audio-player.test.ts +3 -1
  330. package/src/state-store/__tests__/image-gallery-state-store.test.ts +31 -28
  331. package/src/state-store/__tests__/video-player-pool.test.ts +9 -9
  332. package/src/store/apis/__tests__/updatePendingTask.test.ts +17 -6
  333. package/src/store/apis/addPendingTask.ts +2 -1
  334. package/src/store/apis/deleteMessage.ts +2 -1
  335. package/src/store/apis/upsertDraft.ts +2 -2
  336. package/src/store/sqlite-utils/appendOrderByClause.ts +1 -1
  337. package/src/store/sqlite-utils/appendWhereCluase.ts +1 -1
  338. package/src/store/sqlite-utils/createCreateTableQuery.ts +7 -5
  339. package/src/test-utils/BetterSqlite.ts +38 -0
  340. package/src/utils/__tests__/{Streami18n.test.js → Streami18n.test.ts} +66 -31
  341. package/src/utils/__tests__/getResizedImageUrl.test.ts +10 -8
  342. package/src/utils/__tests__/{utils.test.js → utils.test.ts} +1 -1
  343. package/src/version.json +1 -1
  344. package/src/mock-builders/api/deleteMessage.js +0 -18
  345. package/src/mock-builders/api/deleteReaction.js +0 -19
  346. package/src/mock-builders/api/sendMessage.js +0 -18
  347. package/src/mock-builders/api/threadReplies.js +0 -16
  348. package/src/mock-builders/api/utils.js +0 -7
  349. package/src/mock-builders/event/channelDeleted.js +0 -7
  350. package/src/mock-builders/event/channelHidden.js +0 -7
  351. package/src/mock-builders/event/channelTruncated.js +0 -7
  352. package/src/mock-builders/event/channelUpdated.js +0 -7
  353. package/src/mock-builders/event/channelVisible.js +0 -7
  354. package/src/mock-builders/event/connectionChanged.js +0 -6
  355. package/src/mock-builders/event/connectionRecovered.js +0 -5
  356. package/src/mock-builders/event/memberAdded.js +0 -10
  357. package/src/mock-builders/event/memberRemoved.js +0 -9
  358. package/src/mock-builders/event/memberUpdated.js +0 -9
  359. package/src/mock-builders/event/messageDeleted.js +0 -8
  360. package/src/mock-builders/event/messageNew.js +0 -11
  361. package/src/mock-builders/event/messageRead.js +0 -15
  362. package/src/mock-builders/event/messageUpdated.js +0 -8
  363. package/src/mock-builders/event/notificationAddedToChannel.js +0 -7
  364. package/src/mock-builders/event/notificationChannelMutesUpdated.js +0 -7
  365. package/src/mock-builders/event/notificationMarkRead.js +0 -7
  366. package/src/mock-builders/event/notificationMarkUnread.js +0 -12
  367. package/src/mock-builders/event/notificationMessageNew.js +0 -7
  368. package/src/mock-builders/event/notificationMutesUpdated.js +0 -11
  369. package/src/mock-builders/event/notificationRemovedFromChannel.js +0 -7
  370. package/src/mock-builders/event/reactionDeleted.js +0 -9
  371. package/src/mock-builders/event/reactionNew.js +0 -9
  372. package/src/mock-builders/event/reactionUpdated.js +0 -9
  373. package/src/mock-builders/event/typing.js +0 -9
  374. package/src/mock-builders/event/userPresence.js +0 -8
  375. package/src/mock-builders/event/userUpdated.js +0 -8
  376. package/src/mock-builders/generator/member.js +0 -13
  377. package/src/mock-builders/generator/message.js +0 -32
  378. package/src/mock-builders/generator/reaction.js +0 -12
  379. package/src/mock-builders/mock.js +0 -57
  380. package/src/test-utils/BetterSqlite.js +0 -36
  381. /package/src/components/Message/MessageItemView/__tests__/__snapshots__/{MessageAuthor.test.js.snap → MessageAuthor.test.tsx.snap} +0 -0
  382. /package/src/components/Message/MessageItemView/__tests__/__snapshots__/{MessagePinnedHeader.test.js.snap → MessagePinnedHeader.test.tsx.snap} +0 -0
  383. /package/src/components/MessageInput/__tests__/__snapshots__/{AttachButton.test.js.snap → AttachButton.test.tsx.snap} +0 -0
  384. /package/src/components/MessageInput/__tests__/__snapshots__/{SendButton.test.js.snap → SendButton.test.tsx.snap} +0 -0
  385. /package/src/components/MessageList/__tests__/__snapshots__/{MessageSystem.test.js.snap → MessageSystem.test.tsx.snap} +0 -0
  386. /package/src/components/MessageList/__tests__/__snapshots__/{ScrollToBottomButton.test.js.snap → ScrollToBottomButton.test.tsx.snap} +0 -0
  387. /package/src/components/MessageList/__tests__/__snapshots__/{TypingIndicator.test.js.snap → TypingIndicator.test.tsx.snap} +0 -0
@@ -1,21 +1,32 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { mockedApiResponse } from './utils';
1
+ import type {
2
+ ChannelMemberResponse,
3
+ ChannelResponse,
4
+ DraftResponse,
5
+ LocalMessage,
6
+ MessageResponse,
7
+ ReadResponse,
8
+ } from 'stream-chat';
9
+
10
+ import { mockedApiResponse, type MockedApiResponse } from './utils';
11
+
12
+ // Mock message input is either a `MessageResponse` (server shape) or a
13
+ // `LocalMessage` (client shape — what `generateMessage` produces). The
14
+ // downstream stream-chat client formats these interchangeably.
15
+ type MockMessage = Partial<MessageResponse> | LocalMessage;
3
16
 
4
17
  export type GetOrCreateChannelApiParams = {
5
- draft?: Record<string, any>;
6
- channel?: Record<string, any>;
7
- members?: Record<string, any>[];
8
- messages?: Record<string, any>[];
9
- pinnedMessages?: Record<string, any>[];
10
- read?: Record<string, any>[];
18
+ draft?: Partial<DraftResponse>;
19
+ channel?: Partial<ChannelResponse>;
20
+ members?: Partial<ChannelMemberResponse>[];
21
+ messages?: MockMessage[];
22
+ pinnedMessages?: MockMessage[];
23
+ read?: Partial<ReadResponse>[];
11
24
  };
12
25
 
13
26
  /**
14
27
  * Returns the api response for queryChannel api.
15
28
  *
16
29
  * api - /channels/{type}/{id}/query
17
- *
18
- * @param {*} channel
19
30
  */
20
31
  export const getOrCreateChannelApi = (
21
32
  channel: GetOrCreateChannelApiParams = {
@@ -26,7 +37,7 @@ export const getOrCreateChannelApi = (
26
37
  pinnedMessages: [],
27
38
  read: [],
28
39
  },
29
- ) => {
40
+ ): MockedApiResponse => {
30
41
  const result = {
31
42
  channel: channel.channel,
32
43
  draft: channel.draft,
@@ -1,3 +1,5 @@
1
+ import type { Channel, StreamChat, UserResponse } from 'stream-chat';
2
+
1
3
  import { getOrCreateChannelApi } from './getOrCreateChannel';
2
4
  import { useMockedApis } from './useMockedApis';
3
5
 
@@ -6,14 +8,24 @@ import { generateMember } from '../generator/member';
6
8
  import { generateUser } from '../generator/user';
7
9
  import { getTestClientWithUser } from '../mock';
8
10
 
9
- const initChannelFromData = async ({ channelData, client, defaultGenerateChannelOptions }) => {
11
+ type ChannelData = Parameters<typeof generateChannel>[0];
12
+
13
+ const initChannelFromData = async ({
14
+ channelData,
15
+ client,
16
+ defaultGenerateChannelOptions,
17
+ }: {
18
+ channelData: ChannelData;
19
+ client: StreamChat;
20
+ defaultGenerateChannelOptions: ChannelData;
21
+ }): Promise<Channel> => {
10
22
  const mockedChannelData = generateChannel({
11
23
  ...defaultGenerateChannelOptions,
12
24
  ...channelData,
13
25
  });
14
26
 
15
27
  useMockedApis(client, [getOrCreateChannelApi(mockedChannelData)]);
16
- const channel = client.channel(mockedChannelData.channel.type, mockedChannelData.channel.id);
28
+ const channel = client.channel(mockedChannelData.type, mockedChannelData.id);
17
29
  await channel.watch();
18
30
  jest.spyOn(channel, 'getConfig').mockImplementation(() => mockedChannelData.channel.config);
19
31
  // jest
@@ -22,7 +34,13 @@ const initChannelFromData = async ({ channelData, client, defaultGenerateChannel
22
34
  return channel;
23
35
  };
24
36
 
25
- export const initiateClientWithChannels = async ({ channelsData, customUser } = {}) => {
37
+ export const initiateClientWithChannels = async ({
38
+ channelsData,
39
+ customUser,
40
+ }: {
41
+ channelsData?: ChannelData[];
42
+ customUser?: UserResponse;
43
+ } = {}): Promise<{ channels: Channel[]; client: StreamChat }> => {
26
44
  const user = customUser || generateUser();
27
45
  const client = await getTestClientWithUser(user);
28
46
 
@@ -1,13 +1,11 @@
1
- import { mockedApiResponse } from './utils';
1
+ import { mockedApiResponse, type MockedApiResponse } from './utils';
2
2
 
3
3
  /**
4
4
  * Returns the api response for queryChannels api
5
5
  *
6
6
  * api - /channels
7
- *
8
- * @param {*} channels Array of channel objects.
9
7
  */
10
- export const queryChannelsApi = (channels = []) => {
8
+ export const queryChannelsApi = (channels: unknown[] = []): MockedApiResponse => {
11
9
  const result = {
12
10
  channels,
13
11
  duration: 0.01,
@@ -1,13 +1,14 @@
1
- import { mockedApiResponse } from './utils';
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { ChannelMemberResponse } from 'stream-chat';
3
+
4
+ import { mockedApiResponse, type MockedApiResponse } from './utils';
2
5
 
3
6
  /**
4
7
  * Returns the api response for queryMembers api
5
8
  *
6
9
  * api - /query_members
7
- *
8
- * @param {*} members Array of User objects.
9
10
  */
10
- export const queryMembersApi = (members = []) => {
11
+ export const queryMembersApi = (members: ChannelMemberResponse[] = []): MockedApiResponse => {
11
12
  const result = {
12
13
  members,
13
14
  };
@@ -15,8 +16,8 @@ export const queryMembersApi = (members = []) => {
15
16
  return mockedApiResponse(result, 'get');
16
17
  };
17
18
 
18
- export const CHANNEL_MEMBERS = [
19
- {
19
+ export const CHANNEL_MEMBERS: ChannelMemberResponse[] = [
20
+ fromPartial<ChannelMemberResponse>({
20
21
  banned: false,
21
22
  channel_role: 'channel_member',
22
23
  created_at: '2021-01-27T11:54:34.173125Z',
@@ -28,8 +29,8 @@ export const CHANNEL_MEMBERS = [
28
29
  name: 'ben',
29
30
  },
30
31
  user_id: 'ben',
31
- },
32
- {
32
+ }),
33
+ fromPartial<ChannelMemberResponse>({
33
34
  banned: false,
34
35
  channel_role: 'channel_member',
35
36
  created_at: '2021-01-27T11:54:34.173125Z',
@@ -41,8 +42,8 @@ export const CHANNEL_MEMBERS = [
41
42
  name: 'nick',
42
43
  },
43
44
  user_id: 'nick',
44
- },
45
- {
45
+ }),
46
+ fromPartial<ChannelMemberResponse>({
46
47
  banned: false,
47
48
  channel_role: 'channel_member',
48
49
  created_at: '2021-01-27T11:54:34.173125Z',
@@ -54,8 +55,8 @@ export const CHANNEL_MEMBERS = [
54
55
  name: 'okechukwu nwagba',
55
56
  },
56
57
  user_id: 'okechukwu nwagba',
57
- },
58
- {
58
+ }),
59
+ fromPartial<ChannelMemberResponse>({
59
60
  banned: false,
60
61
  channel_role: 'channel_member',
61
62
  created_at: '2021-01-28T09:08:43.274508Z',
@@ -67,9 +68,9 @@ export const CHANNEL_MEMBERS = [
67
68
  name: 'qatest1',
68
69
  },
69
70
  user_id: 'qatest1',
70
- },
71
+ }),
71
72
 
72
- {
73
+ fromPartial<ChannelMemberResponse>({
73
74
  banned: false,
74
75
  channel_role: 'channel_member',
75
76
  created_at: '2021-01-27T11:54:34.173125Z',
@@ -81,11 +82,11 @@ export const CHANNEL_MEMBERS = [
81
82
  name: 'thierry',
82
83
  },
83
84
  user_id: 'thierry',
84
- },
85
+ }),
85
86
  ];
86
87
 
87
- export const ONE_CHANNEL_MEMBER = [
88
- {
88
+ export const ONE_CHANNEL_MEMBER: ChannelMemberResponse[] = [
89
+ fromPartial<ChannelMemberResponse>({
89
90
  banned: false,
90
91
  channel_role: 'channel_member',
91
92
  created_at: '2021-01-27T11:54:34.173125Z',
@@ -97,20 +98,21 @@ export const ONE_CHANNEL_MEMBER = [
97
98
  name: 'okechukwu nwagba martin',
98
99
  },
99
100
  user_id: 'okechukwu nwagba martin',
100
- },
101
+ }),
101
102
  ];
102
103
 
103
- export const ONE_CHANNEL_MEMBER_MOCK = {
104
+ export const ONE_CHANNEL_MEMBER_MOCK: Record<string, ChannelMemberResponse> = {
104
105
  okey: ONE_CHANNEL_MEMBER[0],
105
106
  };
106
107
 
107
- export const GROUP_CHANNEL_MEMBERS_MOCK = CHANNEL_MEMBERS.reduce((acc, member) => {
108
- acc[member.user_id] = member;
109
- return acc;
110
- }, {});
108
+ export const GROUP_CHANNEL_MEMBERS_MOCK: Record<string, ChannelMemberResponse> =
109
+ CHANNEL_MEMBERS.reduce<Record<string, ChannelMemberResponse>>((acc, member) => {
110
+ if (member.user_id) acc[member.user_id] = member;
111
+ return acc;
112
+ }, {});
111
113
 
112
- export const ONE_MEMBER_WITH_EMPTY_USER = [
113
- {
114
+ export const ONE_MEMBER_WITH_EMPTY_USER: ChannelMemberResponse[] = [
115
+ fromPartial<ChannelMemberResponse>({
114
116
  banned: false,
115
117
  channel_role: 'channel_member',
116
118
  created_at: '2021-01-27T11:54:34.173125Z',
@@ -119,9 +121,9 @@ export const ONE_MEMBER_WITH_EMPTY_USER = [
119
121
  updated_at: '2021-02-12T12:12:35.862282Z',
120
122
  user: {},
121
123
  user_id: 'okechukwu nwagba martin',
122
- },
124
+ }),
123
125
  ];
124
126
 
125
- export const ONE_MEMBER_WITH_EMPTY_USER_MOCK = {
127
+ export const ONE_MEMBER_WITH_EMPTY_USER_MOCK: Record<string, ChannelMemberResponse> = {
126
128
  okey: ONE_MEMBER_WITH_EMPTY_USER[0],
127
129
  };
@@ -0,0 +1,25 @@
1
+ import type { LocalMessage, MessageResponse } from 'stream-chat';
2
+
3
+ import { mockedApiResponse, type MockedApiResponse } from './utils';
4
+
5
+ import { generateMessage } from '../generator/message';
6
+
7
+ /**
8
+ * Returns the api response for sendMessage api.
9
+ *
10
+ * api - /channels/{type}/{id}/message
11
+ *
12
+ * Accepts either `MessageResponse` or `LocalMessage`; the mock infra treats
13
+ * them interchangeably at runtime, even though the real API shape is
14
+ * `MessageResponse`.
15
+ */
16
+ export const sendMessageApi = (
17
+ message: MessageResponse | LocalMessage = generateMessage(),
18
+ ): MockedApiResponse => {
19
+ const result = {
20
+ duration: 0.01,
21
+ message,
22
+ };
23
+
24
+ return mockedApiResponse(result, 'post');
25
+ };
@@ -1,14 +1,18 @@
1
- import { mockedApiResponse } from './utils';
1
+ import type { LocalMessage, MessageResponse, ReactionResponse } from 'stream-chat';
2
+
3
+ import { mockedApiResponse, type MockedApiResponse } from './utils';
2
4
 
3
5
  import { generateReaction } from '../generator/reaction';
6
+
4
7
  /**
5
- * Returns the api response for sendMessage api.
8
+ * Returns the api response for sendReaction api.
6
9
  *
7
10
  * api - /messages/{id}/reaction
8
- *
9
- * @param {*} message
10
11
  */
11
- export const sendReactionApi = (message, reaction = generateReaction()) => {
12
+ export const sendReactionApi = (
13
+ message: MessageResponse | LocalMessage,
14
+ reaction: ReactionResponse = generateReaction(),
15
+ ): MockedApiResponse => {
12
16
  const result = {
13
17
  duration: 0.01,
14
18
  message,
@@ -0,0 +1,18 @@
1
+ import type { LocalMessage, MessageResponse } from 'stream-chat';
2
+
3
+ import { mockedApiResponse, type MockedApiResponse } from './utils';
4
+
5
+ /**
6
+ * Returns the api response for thread replies api
7
+ *
8
+ * api - /messages/${parent_id}/replies
9
+ */
10
+ export const threadRepliesApi = (
11
+ replies: Array<MessageResponse | LocalMessage> = [],
12
+ ): MockedApiResponse => {
13
+ const result = {
14
+ messages: replies,
15
+ };
16
+
17
+ return mockedApiResponse(result, 'get');
18
+ };
@@ -1,13 +1,14 @@
1
+ import type { StreamChat } from 'stream-chat';
2
+
3
+ import type { MockedApiResponse } from './utils';
4
+
1
5
  /**
2
6
  * Hook to mock the calls made through axios module.
3
7
  * You should provide the responses of Apis in order that they will be called.
4
8
  * You should use api functions from current directory to build these responses.
5
9
  * e.g., queryChannelsApi, sendMessageApi
6
- *
7
- * @param {StreamClient} client
8
- * @param {*} apiResponses
9
10
  */
10
- export const useMockedApis = (client, apiResponses) => {
11
+ export const useMockedApis = (client: StreamChat, apiResponses: MockedApiResponse[]) => {
11
12
  apiResponses.forEach(({ response, type }) => {
12
13
  jest.spyOn(client.axiosInstance, type).mockImplementation().mockResolvedValue(response);
13
14
  });
@@ -0,0 +1,16 @@
1
+ export type MockedApiResponse = {
2
+ response: { data: unknown; status: number };
3
+ type: 'get' | 'post' | 'put' | 'delete';
4
+ };
5
+
6
+ export const mockedApiResponse = (
7
+ response: unknown,
8
+ type: MockedApiResponse['type'] = 'get',
9
+ status = 200,
10
+ ): MockedApiResponse => ({
11
+ response: {
12
+ data: response,
13
+ status,
14
+ },
15
+ type,
16
+ });
@@ -1,43 +1,59 @@
1
+ import type { Attachment } from 'stream-chat';
2
+
1
3
  import { generateRandomId } from '../utils/utils';
2
4
 
3
- export const generateLocalAttachmentData = () => ({
5
+ type FileReference = {
6
+ name: string;
7
+ size: number;
8
+ type: string;
9
+ uri: string;
10
+ };
11
+
12
+ type LocalAttachmentData = {
13
+ localMetadata: { id: string };
14
+ };
15
+
16
+ export const generateLocalAttachmentData = (): LocalAttachmentData => ({
4
17
  localMetadata: {
5
18
  id: generateRandomId(),
6
19
  },
7
20
  });
8
21
 
9
- export const generateLocalFileUploadAttachmentData = (overrides, attachmentData) => ({
22
+ export const generateLocalFileUploadAttachmentData = (
23
+ overrides?: Partial<LocalAttachmentData & { file: Partial<FileReference> }>,
24
+ attachmentData?: Partial<Attachment>,
25
+ ) => ({
10
26
  localMetadata: {
11
27
  ...generateLocalAttachmentData().localMetadata,
12
28
  ...overrides,
13
29
  file: generateFileReference(overrides?.file ?? {}),
14
30
  },
15
- type: 'file',
31
+ type: 'file' as const,
16
32
  ...attachmentData,
17
33
  });
18
34
 
19
- export const generateImageAttachment = (a) => ({
35
+ export const generateImageAttachment = (a?: Partial<Attachment>): Attachment => ({
20
36
  fallback: generateRandomId() + '.png',
21
37
  image_url: 'https://' + generateRandomId() + '.png',
22
38
  type: 'image',
23
39
  ...a,
24
40
  });
25
41
 
26
- export const generateAudioAttachment = (a) => ({
42
+ export const generateAudioAttachment = (a?: Partial<Attachment>): Attachment => ({
27
43
  asset_url: 'https://' + generateRandomId() + '.mp3',
28
44
  fallback: generateRandomId() + '.mp3',
29
45
  type: 'audio',
30
46
  ...a,
31
47
  });
32
48
 
33
- export const generateFileAttachment = (a) => ({
49
+ export const generateFileAttachment = (a?: Partial<Attachment>): Attachment => ({
34
50
  asset_url: 'https://' + generateRandomId() + '.xls',
35
51
  fallback: generateRandomId() + '.xls',
36
52
  type: 'file',
37
53
  ...a,
38
54
  });
39
55
 
40
- export const generateVideoAttachment = (a) => ({
56
+ export const generateVideoAttachment = (a?: Partial<Attachment>): Attachment => ({
41
57
  fallback: generateRandomId() + '.mp4',
42
58
  image_url: 'https://' + generateRandomId() + '.mp4',
43
59
  type: 'video',
@@ -46,7 +62,7 @@ export const generateVideoAttachment = (a) => ({
46
62
 
47
63
  const fileName = generateRandomId() + '.png';
48
64
 
49
- export const generateFileReference = (a) => ({
65
+ export const generateFileReference = (a?: Partial<FileReference>): FileReference => ({
50
66
  name: fileName,
51
67
  size: 1000,
52
68
  type: 'image/png',
@@ -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: 'channel.deleted',
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: 'channel.hidden',
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: 'channel.truncated',
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: 'channel.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: 'channel.visible',
10
+ }),
11
+ );
12
+ };
@@ -0,0 +1,11 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { Event, StreamChat } from 'stream-chat';
3
+
4
+ export default (client: StreamChat, online = true) => {
5
+ client.dispatchEvent(
6
+ fromPartial<Event>({
7
+ online,
8
+ type: 'connection.changed',
9
+ }),
10
+ );
11
+ };
@@ -0,0 +1,10 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { Event, StreamChat } from 'stream-chat';
3
+
4
+ export default (client: StreamChat) => {
5
+ client.dispatchEvent(
6
+ fromPartial<Event>({
7
+ type: 'connection.recovered',
8
+ }),
9
+ );
10
+ };
@@ -0,0 +1,19 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { ChannelMemberResponse, ChannelResponse, Event, StreamChat } from 'stream-chat';
3
+
4
+ export default (
5
+ client: StreamChat,
6
+ member: ChannelMemberResponse,
7
+ channel: Partial<ChannelResponse> = {},
8
+ ) => {
9
+ client.dispatchEvent(
10
+ fromPartial<Event>({
11
+ channel_id: channel.id,
12
+ channel_type: channel.type,
13
+ cid: channel.cid,
14
+ member,
15
+ type: 'member.added',
16
+ user: member.user,
17
+ }),
18
+ );
19
+ };
@@ -0,0 +1,18 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { ChannelMemberResponse, ChannelResponse, Event, StreamChat } from 'stream-chat';
3
+
4
+ export default (
5
+ client: StreamChat,
6
+ member: ChannelMemberResponse,
7
+ channel: Partial<ChannelResponse> = {},
8
+ ) => {
9
+ client.dispatchEvent(
10
+ fromPartial<Event>({
11
+ channel,
12
+ cid: channel.cid,
13
+ member,
14
+ type: 'member.removed',
15
+ user: member.user,
16
+ }),
17
+ );
18
+ };
@@ -0,0 +1,18 @@
1
+ import { fromPartial } from '@total-typescript/shoehorn';
2
+ import type { ChannelMemberResponse, ChannelResponse, Event, StreamChat } from 'stream-chat';
3
+
4
+ export default (
5
+ client: StreamChat,
6
+ member: ChannelMemberResponse,
7
+ channel: Partial<ChannelResponse> = {},
8
+ ) => {
9
+ client.dispatchEvent(
10
+ fromPartial<Event>({
11
+ channel,
12
+ cid: channel.cid,
13
+ member,
14
+ type: 'member.updated',
15
+ user: member.user,
16
+ }),
17
+ );
18
+ };
@@ -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
+ };