stream-chat-react-native-core 5.36.0-beta.5 → 5.36.0-beta.7

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 (277) hide show
  1. package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -1
  2. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  3. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  4. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  5. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
  6. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  7. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  8. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  9. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  10. package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
  11. package/lib/commonjs/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
  12. package/lib/commonjs/components/Channel/hooks/useCreateThreadContext.js.map +1 -1
  13. package/lib/commonjs/components/Channel/hooks/useCreateTypingContext.js.map +1 -1
  14. package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
  15. package/lib/commonjs/components/ChannelList/Skeleton.js.map +1 -1
  16. package/lib/commonjs/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
  17. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
  18. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
  19. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
  20. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
  21. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
  22. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  23. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
  24. package/lib/commonjs/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
  25. package/lib/commonjs/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
  26. package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
  27. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  28. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
  29. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  30. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
  31. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  32. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
  33. package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  34. package/lib/commonjs/components/Chat/Chat.js +7 -1
  35. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  36. package/lib/commonjs/components/Chat/hooks/useAppSettings.js.map +1 -1
  37. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  38. package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
  39. package/lib/commonjs/components/Chat/hooks/useMutedUsers.js.map +1 -1
  40. package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js.map +1 -1
  41. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  42. package/lib/commonjs/components/ImageGallery/components/ImageGalleryOverlay.js.map +1 -1
  43. package/lib/commonjs/components/Indicators/LoadingDot.js.map +1 -1
  44. package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js.map +1 -1
  45. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  46. package/lib/commonjs/components/Message/hooks/useProcessReactions.js.map +1 -1
  47. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +16 -16
  48. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  49. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  50. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  51. package/lib/commonjs/components/MessageList/StickyHeader.js.map +1 -1
  52. package/lib/commonjs/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.js.map +1 -1
  53. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
  54. package/lib/commonjs/components/MessageOverlay/hooks/useFetchReactions.js.map +1 -1
  55. package/lib/commonjs/components/ProgressControl/ProgressControl.js.map +1 -1
  56. package/lib/commonjs/components/ProgressControl/WaveProgressBar.js.map +1 -1
  57. package/lib/commonjs/components/Spinner/Spinner.js.map +1 -1
  58. package/lib/commonjs/components/Thread/Thread.js.map +1 -1
  59. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
  60. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -1
  61. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  62. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  63. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
  64. package/lib/commonjs/hooks/useScreenDimensions.js.map +1 -1
  65. package/lib/commonjs/hooks/useStreami18n.js.map +1 -1
  66. package/lib/commonjs/hooks/useViewport.js.map +1 -1
  67. package/lib/commonjs/mock-builders/mock.js +2 -1
  68. package/lib/commonjs/mock-builders/mock.js.map +1 -1
  69. package/lib/commonjs/utils/DBSyncManager.js +6 -2
  70. package/lib/commonjs/utils/DBSyncManager.js.map +1 -1
  71. package/lib/commonjs/version.json +1 -1
  72. package/lib/module/components/Attachment/AudioAttachment.js.map +1 -1
  73. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  74. package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  75. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  76. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
  77. package/lib/module/components/Channel/Channel.js.map +1 -1
  78. package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  79. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  80. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  81. package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
  82. package/lib/module/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
  83. package/lib/module/components/Channel/hooks/useCreateThreadContext.js.map +1 -1
  84. package/lib/module/components/Channel/hooks/useCreateTypingContext.js.map +1 -1
  85. package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
  86. package/lib/module/components/ChannelList/Skeleton.js.map +1 -1
  87. package/lib/module/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
  88. package/lib/module/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
  89. package/lib/module/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
  90. package/lib/module/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
  91. package/lib/module/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
  92. package/lib/module/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
  93. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  94. package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
  95. package/lib/module/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
  96. package/lib/module/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
  97. package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
  98. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  99. package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
  100. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  101. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
  102. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  103. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
  104. package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  105. package/lib/module/components/Chat/Chat.js +7 -1
  106. package/lib/module/components/Chat/Chat.js.map +1 -1
  107. package/lib/module/components/Chat/hooks/useAppSettings.js.map +1 -1
  108. package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  109. package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
  110. package/lib/module/components/Chat/hooks/useMutedUsers.js.map +1 -1
  111. package/lib/module/components/Chat/hooks/useSyncDatabase.js.map +1 -1
  112. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  113. package/lib/module/components/ImageGallery/components/ImageGalleryOverlay.js.map +1 -1
  114. package/lib/module/components/Indicators/LoadingDot.js.map +1 -1
  115. package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js.map +1 -1
  116. package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  117. package/lib/module/components/Message/hooks/useProcessReactions.js.map +1 -1
  118. package/lib/module/components/MessageInput/FileUploadPreview.js +16 -16
  119. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  120. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  121. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  122. package/lib/module/components/MessageList/StickyHeader.js.map +1 -1
  123. package/lib/module/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.js.map +1 -1
  124. package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
  125. package/lib/module/components/MessageOverlay/hooks/useFetchReactions.js.map +1 -1
  126. package/lib/module/components/ProgressControl/ProgressControl.js.map +1 -1
  127. package/lib/module/components/ProgressControl/WaveProgressBar.js.map +1 -1
  128. package/lib/module/components/Spinner/Spinner.js.map +1 -1
  129. package/lib/module/components/Thread/Thread.js.map +1 -1
  130. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
  131. package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -1
  132. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  133. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  134. package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
  135. package/lib/module/hooks/useScreenDimensions.js.map +1 -1
  136. package/lib/module/hooks/useStreami18n.js.map +1 -1
  137. package/lib/module/hooks/useViewport.js.map +1 -1
  138. package/lib/module/mock-builders/mock.js +2 -1
  139. package/lib/module/mock-builders/mock.js.map +1 -1
  140. package/lib/module/utils/DBSyncManager.js +6 -2
  141. package/lib/module/utils/DBSyncManager.js.map +1 -1
  142. package/lib/module/version.json +1 -1
  143. package/lib/typescript/components/Attachment/AudioAttachment.d.ts.map +1 -1
  144. package/lib/typescript/components/Attachment/Gallery.d.ts.map +1 -1
  145. package/lib/typescript/components/AttachmentPicker/AttachmentPicker.d.ts.map +1 -1
  146. package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts.map +1 -1
  147. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts.map +1 -1
  148. package/lib/typescript/components/Channel/Channel.d.ts.map +1 -1
  149. package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts.map +1 -1
  150. package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts.map +1 -1
  151. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts.map +1 -1
  152. package/lib/typescript/components/Channel/hooks/useCreateOwnCapabilitiesContext.d.ts.map +1 -1
  153. package/lib/typescript/components/Channel/hooks/useCreatePaginatedMessageListContext.d.ts.map +1 -1
  154. package/lib/typescript/components/Channel/hooks/useCreateThreadContext.d.ts.map +1 -1
  155. package/lib/typescript/components/Channel/hooks/useCreateTypingContext.d.ts.map +1 -1
  156. package/lib/typescript/components/ChannelList/ChannelList.d.ts.map +1 -1
  157. package/lib/typescript/components/ChannelList/Skeleton.d.ts.map +1 -1
  158. package/lib/typescript/components/ChannelList/hooks/listeners/useAddedToChannelNotification.d.ts.map +1 -1
  159. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelDeleted.d.ts.map +1 -1
  160. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelHidden.d.ts.map +1 -1
  161. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelTruncated.d.ts.map +1 -1
  162. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelUpdated.d.ts.map +1 -1
  163. package/lib/typescript/components/ChannelList/hooks/listeners/useChannelVisible.d.ts.map +1 -1
  164. package/lib/typescript/components/ChannelList/hooks/listeners/useNewMessage.d.ts.map +1 -1
  165. package/lib/typescript/components/ChannelList/hooks/listeners/useNewMessageNotification.d.ts.map +1 -1
  166. package/lib/typescript/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.d.ts.map +1 -1
  167. package/lib/typescript/components/ChannelList/hooks/listeners/useUserPresence.d.ts.map +1 -1
  168. package/lib/typescript/components/ChannelList/hooks/useCreateChannelsContext.d.ts.map +1 -1
  169. package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
  170. package/lib/typescript/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
  171. package/lib/typescript/components/ChannelPreview/ChannelPreviewMessenger.d.ts.map +1 -1
  172. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.d.ts.map +1 -1
  173. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayName.d.ts.map +1 -1
  174. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.d.ts.map +1 -1
  175. package/lib/typescript/components/ChannelPreview/hooks/useLatestMessagePreview.d.ts.map +1 -1
  176. package/lib/typescript/components/Chat/Chat.d.ts.map +1 -1
  177. package/lib/typescript/components/Chat/hooks/useAppSettings.d.ts.map +1 -1
  178. package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts.map +1 -1
  179. package/lib/typescript/components/Chat/hooks/useIsOnline.d.ts.map +1 -1
  180. package/lib/typescript/components/Chat/hooks/useMutedUsers.d.ts.map +1 -1
  181. package/lib/typescript/components/Chat/hooks/useSyncDatabase.d.ts.map +1 -1
  182. package/lib/typescript/components/ImageGallery/ImageGallery.d.ts.map +1 -1
  183. package/lib/typescript/components/ImageGallery/components/ImageGalleryOverlay.d.ts.map +1 -1
  184. package/lib/typescript/components/Indicators/LoadingDot.d.ts.map +1 -1
  185. package/lib/typescript/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.d.ts.map +1 -1
  186. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts.map +1 -1
  187. package/lib/typescript/components/Message/hooks/useProcessReactions.d.ts.map +1 -1
  188. package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts.map +1 -1
  189. package/lib/typescript/components/MessageInput/MessageInput.d.ts.map +1 -1
  190. package/lib/typescript/components/MessageList/MessageList.d.ts.map +1 -1
  191. package/lib/typescript/components/MessageList/StickyHeader.d.ts.map +1 -1
  192. package/lib/typescript/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.d.ts.map +1 -1
  193. package/lib/typescript/components/MessageOverlay/MessageOverlay.d.ts.map +1 -1
  194. package/lib/typescript/components/MessageOverlay/hooks/useFetchReactions.d.ts.map +1 -1
  195. package/lib/typescript/components/ProgressControl/ProgressControl.d.ts.map +1 -1
  196. package/lib/typescript/components/ProgressControl/WaveProgressBar.d.ts.map +1 -1
  197. package/lib/typescript/components/Spinner/Spinner.d.ts.map +1 -1
  198. package/lib/typescript/components/Thread/Thread.d.ts.map +1 -1
  199. package/lib/typescript/contexts/channelsStateContext/ChannelsStateContext.d.ts.map +1 -1
  200. package/lib/typescript/contexts/channelsStateContext/useChannelState.d.ts.map +1 -1
  201. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts.map +1 -1
  202. package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts.map +1 -1
  203. package/lib/typescript/contexts/overlayContext/OverlayProvider.d.ts.map +1 -1
  204. package/lib/typescript/hooks/useScreenDimensions.d.ts.map +1 -1
  205. package/lib/typescript/hooks/useStreami18n.d.ts.map +1 -1
  206. package/lib/typescript/hooks/useViewport.d.ts.map +1 -1
  207. package/lib/typescript/utils/DBSyncManager.d.ts +3 -0
  208. package/lib/typescript/utils/DBSyncManager.d.ts.map +1 -1
  209. package/package.json +1 -1
  210. package/src/components/Attachment/AudioAttachment.tsx +1 -0
  211. package/src/components/Attachment/Gallery.tsx +1 -0
  212. package/src/components/AttachmentPicker/AttachmentPicker.tsx +4 -0
  213. package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +1 -0
  214. package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +1 -0
  215. package/src/components/Channel/Channel.tsx +12 -0
  216. package/src/components/Channel/hooks/useCreateChannelContext.ts +1 -0
  217. package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +1 -0
  218. package/src/components/Channel/hooks/useCreateMessagesContext.ts +1 -0
  219. package/src/components/Channel/hooks/useCreateOwnCapabilitiesContext.ts +2 -0
  220. package/src/components/Channel/hooks/useCreatePaginatedMessageListContext.ts +1 -0
  221. package/src/components/Channel/hooks/useCreateThreadContext.ts +1 -0
  222. package/src/components/Channel/hooks/useCreateTypingContext.ts +1 -0
  223. package/src/components/ChannelList/ChannelList.tsx +1 -0
  224. package/src/components/ChannelList/Skeleton.tsx +1 -0
  225. package/src/components/ChannelList/hooks/listeners/useAddedToChannelNotification.ts +1 -0
  226. package/src/components/ChannelList/hooks/listeners/useChannelDeleted.ts +1 -0
  227. package/src/components/ChannelList/hooks/listeners/useChannelHidden.ts +1 -0
  228. package/src/components/ChannelList/hooks/listeners/useChannelTruncated.ts +1 -0
  229. package/src/components/ChannelList/hooks/listeners/useChannelUpdated.ts +1 -0
  230. package/src/components/ChannelList/hooks/listeners/useChannelVisible.ts +1 -0
  231. package/src/components/ChannelList/hooks/listeners/useNewMessage.ts +1 -0
  232. package/src/components/ChannelList/hooks/listeners/useNewMessageNotification.ts +1 -0
  233. package/src/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.ts +1 -0
  234. package/src/components/ChannelList/hooks/listeners/useUserPresence.ts +1 -0
  235. package/src/components/ChannelList/hooks/useCreateChannelsContext.ts +1 -0
  236. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +1 -0
  237. package/src/components/ChannelPreview/ChannelPreview.tsx +4 -0
  238. package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +1 -0
  239. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.ts +1 -0
  240. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayName.ts +1 -0
  241. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.ts +1 -0
  242. package/src/components/ChannelPreview/hooks/useLatestMessagePreview.ts +2 -0
  243. package/src/components/Chat/Chat.tsx +10 -1
  244. package/src/components/Chat/__tests__/Chat.test.js +80 -2
  245. package/src/components/Chat/hooks/useAppSettings.ts +1 -0
  246. package/src/components/Chat/hooks/useCreateChatContext.ts +1 -0
  247. package/src/components/Chat/hooks/useIsOnline.ts +1 -0
  248. package/src/components/Chat/hooks/useMutedUsers.ts +1 -0
  249. package/src/components/Chat/hooks/useSyncDatabase.ts +1 -0
  250. package/src/components/ImageGallery/ImageGallery.tsx +5 -0
  251. package/src/components/ImageGallery/components/ImageGalleryOverlay.tsx +1 -0
  252. package/src/components/Indicators/LoadingDot.tsx +1 -0
  253. package/src/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.tsx +2 -0
  254. package/src/components/Message/hooks/useCreateMessageContext.ts +1 -0
  255. package/src/components/Message/hooks/useProcessReactions.ts +1 -0
  256. package/src/components/MessageInput/FileUploadPreview.tsx +10 -9
  257. package/src/components/MessageInput/MessageInput.tsx +13 -0
  258. package/src/components/MessageList/MessageList.tsx +6 -0
  259. package/src/components/MessageList/StickyHeader.tsx +1 -0
  260. package/src/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.ts +1 -0
  261. package/src/components/MessageOverlay/MessageOverlay.tsx +2 -0
  262. package/src/components/MessageOverlay/hooks/useFetchReactions.ts +3 -0
  263. package/src/components/ProgressControl/ProgressControl.tsx +1 -0
  264. package/src/components/ProgressControl/WaveProgressBar.tsx +2 -0
  265. package/src/components/Spinner/Spinner.tsx +1 -0
  266. package/src/components/Thread/Thread.tsx +2 -0
  267. package/src/contexts/channelsStateContext/ChannelsStateContext.tsx +1 -0
  268. package/src/contexts/channelsStateContext/useChannelState.ts +3 -0
  269. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +1 -0
  270. package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +3 -0
  271. package/src/contexts/overlayContext/OverlayProvider.tsx +1 -0
  272. package/src/hooks/useScreenDimensions.ts +2 -0
  273. package/src/hooks/useStreami18n.ts +1 -0
  274. package/src/hooks/useViewport.ts +2 -0
  275. package/src/mock-builders/mock.js +1 -1
  276. package/src/utils/DBSyncManager.ts +11 -1
  277. package/src/version.json +1 -1
@@ -9,7 +9,8 @@ import { useChatContext } from '../../../contexts/chatContext/ChatContext';
9
9
  import { useTranslationContext } from '../../../contexts/translationContext/TranslationContext';
10
10
  import dispatchConnectionChangedEvent from '../../../mock-builders/event/connectionChanged';
11
11
  import dispatchConnectionRecoveredEvent from '../../../mock-builders/event/connectionRecovered';
12
- import { getTestClient } from '../../../mock-builders/mock';
12
+ import { getTestClient, getTestClientWithUser, setUser } from '../../../mock-builders/mock';
13
+ import { DBSyncManager } from '../../../utils/DBSyncManager';
13
14
  import { Streami18n } from '../../../utils/i18n/Streami18n';
14
15
  import { Chat } from '../Chat';
15
16
 
@@ -24,7 +25,10 @@ const TranslationContextConsumer = ({ fn }) => {
24
25
  };
25
26
 
26
27
  describe('Chat', () => {
27
- afterEach(cleanup);
28
+ afterEach(() => {
29
+ cleanup();
30
+ jest.clearAllMocks();
31
+ });
28
32
  const chatClient = getTestClient();
29
33
 
30
34
  it('renders children without crashing', async () => {
@@ -215,5 +219,79 @@ describe('Chat', () => {
215
219
  expect(context.tDateTimeParser).toBe(newI18nInstance.tDateTimeParser);
216
220
  });
217
221
  });
222
+
223
+ it('makes sure DBSyncManager listeners are cleaned up after Chat remount', async () => {
224
+ const chatClientWithUser = await getTestClientWithUser({ id: 'testID' });
225
+ jest.spyOn(DBSyncManager, 'init');
226
+
227
+ // initial mount and render
228
+ const { rerender } = render(
229
+ <Chat client={chatClientWithUser} enableOfflineSupport key={1} />,
230
+ );
231
+
232
+ // the unsubscribe fn changes during init(), so we keep a reference to the spy
233
+ const unsubscribeSpy = jest.spyOn(DBSyncManager.connectionChangedListener, 'unsubscribe');
234
+ const listenersAfterInitialMount = chatClientWithUser.listeners['connection.changed'];
235
+
236
+ // remount
237
+ rerender(<Chat client={chatClientWithUser} enableOfflineSupport key={2} />);
238
+
239
+ await waitFor(() => {
240
+ expect(DBSyncManager.init).toHaveBeenCalledTimes(2);
241
+ expect(unsubscribeSpy).toHaveBeenCalledTimes(2);
242
+ expect(chatClientWithUser.listeners['connection.changed'].length).toBe(
243
+ listenersAfterInitialMount.length,
244
+ );
245
+ });
246
+ });
247
+
248
+ it('makes sure DBSyncManager listeners are cleaned up if the user changes', async () => {
249
+ const chatClientWithUser = await getTestClientWithUser({ id: 'testID1' });
250
+ jest.spyOn(DBSyncManager, 'init');
251
+
252
+ // initial render
253
+ const { rerender } = render(<Chat client={chatClientWithUser} enableOfflineSupport />);
254
+
255
+ // the unsubscribe fn changes during init(), so we keep a reference to the spy
256
+ const unsubscribeSpy = jest.spyOn(DBSyncManager.connectionChangedListener, 'unsubscribe');
257
+ await act(async () => {
258
+ await setUser(chatClientWithUser, { id: 'testID2' });
259
+ });
260
+ const listenersAfterInitialMount = chatClientWithUser.listeners['connection.changed'];
261
+
262
+ // rerender with different user ID
263
+ rerender(<Chat client={chatClientWithUser} enableOfflineSupport />);
264
+
265
+ await waitFor(() => {
266
+ expect(DBSyncManager.init).toHaveBeenCalledTimes(2);
267
+ expect(unsubscribeSpy).toHaveBeenCalledTimes(1);
268
+ expect(chatClientWithUser.listeners['connection.changed'].length).toBe(
269
+ listenersAfterInitialMount.length,
270
+ );
271
+ });
272
+ });
273
+
274
+ it('makes sure DBSyncManager state stays intact during normal rerenders', async () => {
275
+ const chatClientWithUser = await getTestClientWithUser({ id: 'testID' });
276
+ jest.spyOn(DBSyncManager, 'init');
277
+
278
+ // initial render
279
+ const { rerender } = render(<Chat client={chatClientWithUser} enableOfflineSupport />);
280
+
281
+ // the unsubscribe fn changes during init(), so we keep a reference to the spy
282
+ const unsubscribeSpy = jest.spyOn(DBSyncManager.connectionChangedListener, 'unsubscribe');
283
+ const listenersAfterInitialMount = chatClientWithUser.listeners['connection.changed'];
284
+
285
+ // rerender
286
+ rerender(<Chat client={chatClientWithUser} enableOfflineSupport />);
287
+
288
+ await waitFor(() => {
289
+ expect(DBSyncManager.init).toHaveBeenCalledTimes(1);
290
+ expect(unsubscribeSpy).toHaveBeenCalledTimes(0);
291
+ expect(chatClientWithUser.listeners['connection.changed'].length).toBe(
292
+ listenersAfterInitialMount.length,
293
+ );
294
+ });
295
+ });
218
296
  });
219
297
  });
@@ -47,6 +47,7 @@ export const useAppSettings = <
47
47
  }
48
48
 
49
49
  enforeAppSettings();
50
+ // eslint-disable-next-line react-hooks/exhaustive-deps
50
51
  }, [client, isOnline, initialisedDatabase]);
51
52
 
52
53
  return appSettings;
@@ -38,6 +38,7 @@ export const useCreateChatContext = <
38
38
  resizableCDNHosts,
39
39
  setActiveChannel,
40
40
  }),
41
+ // eslint-disable-next-line react-hooks/exhaustive-deps
41
42
  [appSettings, channelId, clientValues, connectionRecovering, isOnline, mutedUsersLength],
42
43
  );
43
44
 
@@ -102,6 +102,7 @@ export const useIsOnline = <
102
102
  chatListeners.forEach((listener) => listener.unsubscribe?.());
103
103
  unsubscribeNetInfo?.();
104
104
  };
105
+ // eslint-disable-next-line react-hooks/exhaustive-deps
105
106
  }, [clientExists]);
106
107
 
107
108
  return { connectionRecovering, isOnline };
@@ -20,6 +20,7 @@ export const useMutedUsers = <
20
20
 
21
21
  const listener = client?.on('notification.mutes_updated', handleEvent);
22
22
  return () => listener?.unsubscribe();
23
+ // eslint-disable-next-line react-hooks/exhaustive-deps
23
24
  }, [setMutedUsers]);
24
25
 
25
26
  return mutedUsers;
@@ -28,5 +28,6 @@ export const useSyncDatabase = <
28
28
  return () => {
29
29
  listener?.unsubscribe();
30
30
  };
31
+ // eslint-disable-next-line react-hooks/exhaustive-deps
31
32
  }, [client, initialisedDatabase]);
32
33
  };
@@ -160,6 +160,7 @@ export const ImageGallery = <
160
160
  const quarterScreenHeight = fullWindowHeight / 4;
161
161
  const snapPoints = React.useMemo(
162
162
  () => [(fullWindowHeight * 3) / 4, fullWindowHeight - imageGalleryGridHandleHeight],
163
+ // eslint-disable-next-line react-hooks/exhaustive-deps
163
164
  [],
164
165
  );
165
166
 
@@ -193,6 +194,7 @@ export const ImageGallery = <
193
194
  useEffect(() => {
194
195
  Keyboard.dismiss();
195
196
  showScreen();
197
+ // eslint-disable-next-line react-hooks/exhaustive-deps
196
198
  }, []);
197
199
 
198
200
  /**
@@ -295,6 +297,7 @@ export const ImageGallery = <
295
297
 
296
298
  useEffect(() => {
297
299
  setImageGalleryAttachments(photos);
300
+ // eslint-disable-next-line react-hooks/exhaustive-deps
298
301
  }, []);
299
302
 
300
303
  /**
@@ -324,6 +327,7 @@ export const ImageGallery = <
324
327
  );
325
328
 
326
329
  runOnUI(updatePosition)(newIndex);
330
+ // eslint-disable-next-line react-hooks/exhaustive-deps
327
331
  }, [selectedMessage, photoLength]);
328
332
 
329
333
  /**
@@ -351,6 +355,7 @@ export const ImageGallery = <
351
355
  });
352
356
  }
353
357
  }
358
+ // eslint-disable-next-line react-hooks/exhaustive-deps
354
359
  }, [uriForCurrentImage]);
355
360
 
356
361
  const { onDoubleTap, onPan, onPinch, onSingleTap } = useImageGalleryGestures({
@@ -54,6 +54,7 @@ export const ImageGalleryOverlay = (props: Props) => {
54
54
  opacity.value = 0;
55
55
  setFadedIn(false);
56
56
  }
57
+ // eslint-disable-next-line react-hooks/exhaustive-deps
57
58
  }, [currentBottomSheetIndex]);
58
59
 
59
60
  const showOverlayStyle = useAnimatedStyle<ViewStyle>(
@@ -42,6 +42,7 @@ export const LoadingDot = (props: Props) => {
42
42
  -1,
43
43
  ),
44
44
  );
45
+ // eslint-disable-next-line react-hooks/exhaustive-deps
45
46
  }, []);
46
47
 
47
48
  const dotStyle = useAnimatedStyle<ViewStyle>(
@@ -108,10 +108,12 @@ export const KeyboardCompatibleView = ({
108
108
 
109
109
  unsetKeyboardListeners();
110
110
  };
111
+ // eslint-disable-next-line react-hooks/exhaustive-deps
111
112
  }, []);
112
113
 
113
114
  useEffect(() => {
114
115
  updateBottomIfNecessary();
116
+ // eslint-disable-next-line react-hooks/exhaustive-deps
115
117
  }, [keyboardEvent.current]);
116
118
 
117
119
  const dismissKeyboard: () => Promise<void> | undefined = () => {
@@ -100,6 +100,7 @@ export const useCreateMessageContext = <
100
100
  threadList,
101
101
  videos,
102
102
  }),
103
+ // eslint-disable-next-line react-hooks/exhaustive-deps
103
104
  [
104
105
  actionsEnabled,
105
106
  quotedMessageDeletedValue,
@@ -112,5 +112,6 @@ export const useProcessReactions = <
112
112
  hasReactions: unsortedReactions.length > 0,
113
113
  totalReactionCount: unsortedReactions.reduce((total, { count }) => total + count, 0),
114
114
  };
115
+ // eslint-disable-next-line react-hooks/exhaustive-deps
115
116
  }, [reaction_groups, own_reactions?.length, latest_reactions?.length, sortReactions]);
116
117
  };
@@ -158,6 +158,7 @@ const FileUploadPreviewWithContext = <
158
158
  progress: 0,
159
159
  })),
160
160
  );
161
+ // eslint-disable-next-line react-hooks/exhaustive-deps
161
162
  }, [fileUploads.length]);
162
163
 
163
164
  // Handler triggered when an audio is loaded in the message input. The initial state is defined for the audio here and the duration is set.
@@ -284,16 +285,16 @@ const FileUploadPreviewWithContext = <
284
285
  </View>
285
286
  </View>
286
287
  )}
287
- <TouchableOpacity
288
- onPress={() => {
289
- removeFile(item.id);
290
- }}
291
- style={[styles.dismiss, { backgroundColor: grey_gainsboro }, dismiss]}
292
- testID='remove-file-upload-preview'
293
- >
294
- <Close pathFill={grey_dark} />
295
- </TouchableOpacity>
296
288
  </UploadProgressIndicator>
289
+ <TouchableOpacity
290
+ onPress={() => {
291
+ removeFile(item.id);
292
+ }}
293
+ style={[styles.dismiss, { backgroundColor: grey_gainsboro }, dismiss]}
294
+ testID='remove-file-upload-preview'
295
+ >
296
+ <Close pathFill={grey_dark} />
297
+ </TouchableOpacity>
297
298
  </>
298
299
  );
299
300
  };
@@ -268,6 +268,7 @@ const MessageInputWithContext = <
268
268
  setMaxNumberOfFiles(maxNumberOfFiles ?? 10);
269
269
 
270
270
  return closeAttachmentPicker;
271
+ // eslint-disable-next-line react-hooks/exhaustive-deps
271
272
  }, []);
272
273
 
273
274
  const [hasResetImages, setHasResetImages] = useState(false);
@@ -288,6 +289,7 @@ const MessageInputWithContext = <
288
289
  imageUploads.forEach((image) => removeImage(image.id));
289
290
  }
290
291
  return () => setSelectedImages([]);
292
+ // eslint-disable-next-line react-hooks/exhaustive-deps
291
293
  }, []);
292
294
 
293
295
  /**
@@ -300,24 +302,28 @@ const MessageInputWithContext = <
300
302
  }
301
303
 
302
304
  return () => setSelectedFiles([]);
305
+ // eslint-disable-next-line react-hooks/exhaustive-deps
303
306
  }, []);
304
307
 
305
308
  useEffect(() => {
306
309
  if (hasResetImages === false && imageUploadsLength === 0 && selectedImagesLength === 0) {
307
310
  setHasResetImages(true);
308
311
  }
312
+ // eslint-disable-next-line react-hooks/exhaustive-deps
309
313
  }, [imageUploadsLength, selectedImagesLength]);
310
314
 
311
315
  useEffect(() => {
312
316
  if (hasResetFiles === false && fileUploadsLength === 0 && selectedFilesLength === 0) {
313
317
  setHasResetFiles(true);
314
318
  }
319
+ // eslint-disable-next-line react-hooks/exhaustive-deps
315
320
  }, [fileUploadsLength, selectedFilesLength]);
316
321
 
317
322
  useEffect(() => {
318
323
  if (imagesForInput === false && imageUploadsLength) {
319
324
  imageUploads.forEach((image) => removeImage(image.id));
320
325
  }
326
+ // eslint-disable-next-line react-hooks/exhaustive-deps
321
327
  }, [imagesForInput, imageUploadsLength]);
322
328
 
323
329
  const uploadImagesHandler = () => {
@@ -353,6 +359,7 @@ const MessageInputWithContext = <
353
359
  removeImagesHandler();
354
360
  }
355
361
  }
362
+ // eslint-disable-next-line react-hooks/exhaustive-deps
356
363
  }, [selectedImagesLength]);
357
364
 
358
365
  useEffect(() => {
@@ -377,6 +384,7 @@ const MessageInputWithContext = <
377
384
  );
378
385
  filesToRemove.forEach((file) => removeFile(file.id));
379
386
  }
387
+ // eslint-disable-next-line react-hooks/exhaustive-deps
380
388
  }, [selectedFilesLength]);
381
389
 
382
390
  useEffect(() => {
@@ -409,6 +417,7 @@ const MessageInputWithContext = <
409
417
  );
410
418
  }
411
419
  }
420
+ // eslint-disable-next-line react-hooks/exhaustive-deps
412
421
  }, [imageUploadsLength, hasImagePicker]);
413
422
 
414
423
  useEffect(() => {
@@ -440,6 +449,7 @@ const MessageInputWithContext = <
440
449
  );
441
450
  }
442
451
  }
452
+ // eslint-disable-next-line react-hooks/exhaustive-deps
443
453
  }, [fileUploadsLength, hasImagePicker]);
444
454
 
445
455
  const editingExists = !!editing;
@@ -468,6 +478,7 @@ const MessageInputWithContext = <
468
478
  ) {
469
479
  resetInput();
470
480
  }
481
+ // eslint-disable-next-line react-hooks/exhaustive-deps
471
482
  }, [editingExists]);
472
483
 
473
484
  const asyncIdsString = asyncIds.join();
@@ -484,6 +495,7 @@ const MessageInputWithContext = <
484
495
  asyncIds.forEach((id) => sendMessageAsync(id));
485
496
  sending.current = false;
486
497
  }
498
+ // eslint-disable-next-line react-hooks/exhaustive-deps
487
499
  }, [asyncIdsString, asyncUploadsString, sendMessageAsync]);
488
500
 
489
501
  const getMembers = () => {
@@ -544,6 +556,7 @@ const MessageInputWithContext = <
544
556
  if (setFocused) setFocused(true);
545
557
  },
546
558
  }),
559
+ // eslint-disable-next-line react-hooks/exhaustive-deps
547
560
  [additionalTextInputProps],
548
561
  );
549
562
 
@@ -290,6 +290,7 @@ const MessageListWithContext = <
290
290
 
291
291
  const modifiedTheme = useMemo(
292
292
  () => mergeThemes({ style: myMessageTheme, theme }),
293
+ // eslint-disable-next-line react-hooks/exhaustive-deps
293
294
  [myMessageThemeString, theme],
294
295
  );
295
296
 
@@ -469,6 +470,7 @@ const MessageListWithContext = <
469
470
  if (getShouldMarkReadAutomatically()) {
470
471
  markRead();
471
472
  }
473
+ // eslint-disable-next-line react-hooks/exhaustive-deps
472
474
  }, [loading, scrollToBottomButtonVisible, isInitialScrollDone]);
473
475
 
474
476
  useEffect(() => {
@@ -535,6 +537,7 @@ const MessageListWithContext = <
535
537
 
536
538
  messageListLengthBeforeUpdate.current = messageListLengthAfterUpdate;
537
539
  topMessageBeforeUpdate.current = topMessageAfterUpdate;
540
+ // eslint-disable-next-line react-hooks/exhaustive-deps
538
541
  }, [
539
542
  threadList,
540
543
  hasNoMoreRecentMessagesToLoad,
@@ -582,6 +585,7 @@ const MessageListWithContext = <
582
585
  }, 150); // flatlist might take a bit to update, so a small delay is needed
583
586
  }
584
587
  }
588
+ // eslint-disable-next-line react-hooks/exhaustive-deps
585
589
  }, [rawMessageList, threadList]);
586
590
 
587
591
  // TODO: do not apply on RN 0.73 and above
@@ -966,6 +970,7 @@ const MessageListWithContext = <
966
970
  // the message we want to scroll to has not been loaded in the state yet
967
971
  loadChannelAroundMessage({ messageId: messageIdToScroll });
968
972
  }, 50);
973
+ // eslint-disable-next-line react-hooks/exhaustive-deps
969
974
  }, [targetedMessage, initialScrollToFirstUnreadMessage]);
970
975
 
971
976
  const messagesWithImages =
@@ -1011,6 +1016,7 @@ const MessageListWithContext = <
1011
1016
  ) {
1012
1017
  setMessages(messagesWithImages as MessageType<StreamChatGenerics>[]);
1013
1018
  }
1019
+ // eslint-disable-next-line react-hooks/exhaustive-deps
1014
1020
  }, [
1015
1021
  imageString,
1016
1022
  isListActive,
@@ -34,6 +34,7 @@ export const StickyHeader = ({ date, DateHeader, dateString }: StickyHeaderProps
34
34
  tDateTimeParser,
35
35
  timestampTranslationKey: 'timestamp/StickyHeader',
36
36
  });
37
+ // eslint-disable-next-line react-hooks/exhaustive-deps
37
38
  }, [date]);
38
39
 
39
40
  if (!date) return null;
@@ -38,6 +38,7 @@ export function useShouldScrollToRecentOnNewOwnMessage<
38
38
  }
39
39
  }
40
40
  }
41
+ // eslint-disable-next-line react-hooks/exhaustive-deps
41
42
  }, [rawMessageList]);
42
43
 
43
44
  return isMyOwnNewMessageRef;
@@ -163,6 +163,7 @@ const MessageOverlayWithContext = <
163
163
 
164
164
  const modifiedTheme = useMemo(
165
165
  () => mergeThemes({ style: myMessageTheme, theme }),
166
+ // eslint-disable-next-line react-hooks/exhaustive-deps
166
167
  [myMessageThemeString, theme],
167
168
  );
168
169
 
@@ -206,6 +207,7 @@ const MessageOverlayWithContext = <
206
207
  useEffect(() => {
207
208
  Keyboard.dismiss();
208
209
  fadeScreen();
210
+ // eslint-disable-next-line react-hooks/exhaustive-deps
209
211
  }, []);
210
212
 
211
213
  const onPan = useAnimatedGestureHandler<PanGestureHandlerGestureEvent>({
@@ -69,16 +69,19 @@ export const useFetchReactions = <
69
69
  } catch (error) {
70
70
  console.log('Error fetching reactions: ', error);
71
71
  }
72
+ // eslint-disable-next-line react-hooks/exhaustive-deps
72
73
  }, [client, messageId, reactionType, sortString, next, enableOfflineSupport]);
73
74
 
74
75
  const loadNextPage = useCallback(async () => {
75
76
  if (next) {
76
77
  await fetchReactions();
77
78
  }
79
+ // eslint-disable-next-line react-hooks/exhaustive-deps
78
80
  }, [fetchReactions]);
79
81
 
80
82
  useEffect(() => {
81
83
  fetchReactions();
84
+ // eslint-disable-next-line react-hooks/exhaustive-deps
82
85
  }, [messageId, reactionType, sortString]);
83
86
 
84
87
  return { loading, loadNextPage, reactions };
@@ -72,6 +72,7 @@ export const ProgressControl = React.memo(
72
72
  state.value = progress * widthInNumbers;
73
73
  translateX.value = progress * widthInNumbers;
74
74
  }
75
+ // eslint-disable-next-line react-hooks/exhaustive-deps
75
76
  }, [progress, widthInNumbers]);
76
77
 
77
78
  const animatedStyles = useAnimatedStyle(() => ({
@@ -75,12 +75,14 @@ export const WaveProgressBar = React.memo(
75
75
  state.value = stageProgress * (WAVEFORM_WIDTH * 2);
76
76
  setEndPosition(state.value);
77
77
  setCurrentWaveformProgress(stageProgress);
78
+ // eslint-disable-next-line react-hooks/exhaustive-deps
78
79
  }, [progress]);
79
80
 
80
81
  const stringifiedWaveformData = waveformData.toString();
81
82
 
82
83
  const resampledWaveformData = useMemo(
83
84
  () => resampleWaveformData(waveformData, amplitudesCount),
85
+ // eslint-disable-next-line react-hooks/exhaustive-deps
84
86
  [amplitudesCount, stringifiedWaveformData],
85
87
  );
86
88
 
@@ -53,6 +53,7 @@ export const Spinner = (props: SpinnerProps) => {
53
53
  }),
54
54
  -1,
55
55
  );
56
+ // eslint-disable-next-line react-hooks/exhaustive-deps
56
57
  }, []);
57
58
 
58
59
  return (
@@ -80,6 +80,7 @@ const ThreadWithContext = <
80
80
  if (thread?.id && thread.reply_count) {
81
81
  loadMoreThreadAsync();
82
82
  }
83
+ // eslint-disable-next-line react-hooks/exhaustive-deps
83
84
  }, []);
84
85
 
85
86
  useEffect(
@@ -91,6 +92,7 @@ const ThreadWithContext = <
91
92
  onThreadDismount();
92
93
  }
93
94
  },
95
+ // eslint-disable-next-line react-hooks/exhaustive-deps
94
96
  [],
95
97
  );
96
98
 
@@ -166,6 +166,7 @@ export const ChannelsStateProvider = <
166
166
  setState,
167
167
  state,
168
168
  }),
169
+ // eslint-disable-next-line react-hooks/exhaustive-deps
169
170
  [state],
170
171
  );
171
172
 
@@ -39,12 +39,14 @@ function useStateManager<
39
39
  >,
40
40
  initialValue?: ChannelState<StreamChatGenerics>[Key],
41
41
  ) {
42
+ // eslint-disable-next-line react-hooks/exhaustive-deps
42
43
  const memoizedInitialValue = useMemo(() => initialValue, []);
43
44
  const value =
44
45
  state[cid]?.[key] || (memoizedInitialValue as ChannelState<StreamChatGenerics>[Key]);
45
46
 
46
47
  const setValue = useCallback(
47
48
  (value: ChannelState<StreamChatGenerics>[Key]) => setState({ cid, key, value }),
49
+ // eslint-disable-next-line react-hooks/exhaustive-deps
48
50
  [cid, key],
49
51
  );
50
52
 
@@ -86,6 +88,7 @@ export function useChannelState<
86
88
  return () => {
87
89
  decreaseSubscriberCount({ cid });
88
90
  };
91
+ // eslint-disable-next-line react-hooks/exhaustive-deps
89
92
  }, []);
90
93
 
91
94
  const [members, setMembers] = useStateManager(
@@ -232,6 +232,7 @@ export const useCreateMessageInputContext = <
232
232
  uploadNewImage,
233
233
  UploadProgressIndicator,
234
234
  }),
235
+ // eslint-disable-next-line react-hooks/exhaustive-deps
235
236
  [
236
237
  asyncIdsLength,
237
238
  asyncUploadsValue,
@@ -34,6 +34,7 @@ export const useMessageDetailsForState = <
34
34
  if (fileUploads.length || imageUploads.length) {
35
35
  setShowMoreOptions(false);
36
36
  }
37
+ // eslint-disable-next-line react-hooks/exhaustive-deps
37
38
  }, [text, imageUploads.length, fileUploads.length]);
38
39
 
39
40
  const messageValue =
@@ -44,6 +45,7 @@ export const useMessageDetailsForState = <
44
45
  const mentionedUsers = message.mentioned_users.map((user) => user.id);
45
46
  setMentionedUsers(mentionedUsers);
46
47
  }
48
+ // eslint-disable-next-line react-hooks/exhaustive-deps
47
49
  }, [messageValue]);
48
50
 
49
51
  const mapAttachmentToFileUpload = (attachment: Attachment<StreamChatGenerics>): FileUpload => {
@@ -148,6 +150,7 @@ export const useMessageDetailsForState = <
148
150
  setImageUploads(newImageUploads);
149
151
  }
150
152
  }
153
+ // eslint-disable-next-line react-hooks/exhaustive-deps
151
154
  }, [messageValue]);
152
155
 
153
156
  return {
@@ -189,6 +189,7 @@ export const OverlayProvider = <
189
189
  } else {
190
190
  overlayOpacity.value = withTiming(0);
191
191
  }
192
+ // eslint-disable-next-line react-hooks/exhaustive-deps
192
193
  }, [overlay]);
193
194
 
194
195
  const attachmentPickerContext = {
@@ -25,11 +25,13 @@ export const useScreenDimensions = (rounded?: boolean) => {
25
25
  return () => subscriptions?.remove();
26
26
  }, []);
27
27
 
28
+ // eslint-disable-next-line react-hooks/exhaustive-deps
28
29
  const vw = (percentageWidth: number) => {
29
30
  const value = screenDimensions.width * (percentageWidth / 100);
30
31
  return rounded ? Math.round(value) : value;
31
32
  };
32
33
 
34
+ // eslint-disable-next-line react-hooks/exhaustive-deps
33
35
  const vh = (percentageHeight: number) => {
34
36
  const value = screenDimensions.height * (percentageHeight / 100);
35
37
  return rounded ? Math.round(value) : value;
@@ -45,6 +45,7 @@ export const useStreami18n = (i18nInstance?: Streami18n) => {
45
45
  unsubscribeOnTFuncOverrideListener();
46
46
  unsubscribeOnLanguageChangeListener();
47
47
  };
48
+ // eslint-disable-next-line react-hooks/exhaustive-deps
48
49
  }, [i18nInstance]);
49
50
 
50
51
  return translators;
@@ -25,11 +25,13 @@ export const useViewport = (rounded?: boolean) => {
25
25
  return () => subscriptions?.remove();
26
26
  }, []);
27
27
 
28
+ // eslint-disable-next-line react-hooks/exhaustive-deps
28
29
  const vw = (percentageWidth: number) => {
29
30
  const value = viewportDimensions.width * (percentageWidth / 100);
30
31
  return rounded ? Math.round(value) : value;
31
32
  };
32
33
 
34
+ // eslint-disable-next-line react-hooks/exhaustive-deps
33
35
  const vh = (percentageHeight: number) => {
34
36
  const value = viewportDimensions.height * (percentageHeight / 100);
35
37
  return rounded ? Math.round(value) : value;
@@ -6,7 +6,7 @@ import { StreamChat } from 'stream-chat';
6
6
  const apiKey = 'API_KEY';
7
7
  const token = 'dummy_token';
8
8
 
9
- const setUser = (client, user) =>
9
+ export const setUser = (client, user) =>
10
10
  new Promise((resolve) => {
11
11
  client.connectionId = 'dumm_connection_id';
12
12
  client.user = user;