stream-chat-react-native-core 5.0.0-offline-support.12 → 5.0.0

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 (264) hide show
  1. package/lib/commonjs/components/{MessageInput/AudioAttachmentUploadPreview.js → Attachment/AudioAttachment.js} +38 -64
  2. package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -0
  3. package/lib/commonjs/components/Attachment/Card.js +1 -0
  4. package/lib/commonjs/components/Attachment/Card.js.map +1 -1
  5. package/lib/commonjs/components/Attachment/FileAttachment.js +16 -7
  6. package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
  7. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +132 -12
  8. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
  9. package/lib/commonjs/components/Attachment/Gallery.js +41 -35
  10. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  11. package/lib/commonjs/components/Attachment/Giphy.js +17 -13
  12. package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
  13. package/lib/commonjs/components/Attachment/VideoThumbnail.js +12 -6
  14. package/lib/commonjs/components/Attachment/VideoThumbnail.js.map +1 -1
  15. package/lib/commonjs/components/Attachment/utils/getGiphyMimeType.js +15 -0
  16. package/lib/commonjs/components/Attachment/utils/getGiphyMimeType.js.map +1 -0
  17. package/lib/commonjs/components/Channel/Channel.js +19 -19
  18. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  19. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +0 -2
  20. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  21. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +2 -0
  22. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  23. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js +16 -4
  24. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  25. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +12 -7
  26. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  27. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +10 -6
  28. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
  29. package/lib/commonjs/components/ImageGallery/ImageGallery.js +38 -30
  30. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  31. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +11 -10
  32. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  33. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +2 -2
  34. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
  35. package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js +6 -0
  36. package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
  37. package/lib/commonjs/components/Message/Message.js +7 -7
  38. package/lib/commonjs/components/Message/Message.js.map +1 -1
  39. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +7 -3
  40. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  41. package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js +1 -1
  42. package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js.map +1 -1
  43. package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.test.js +1 -1
  44. package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.test.js.map +1 -1
  45. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +1 -1
  46. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  47. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +38 -44
  48. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  49. package/lib/commonjs/components/MessageList/MessageList.js +5 -5
  50. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  51. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +10 -9
  52. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
  53. package/lib/commonjs/components/index.js +13 -13
  54. package/lib/commonjs/components/index.js.map +1 -1
  55. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js +13 -14
  56. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  57. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.md +1 -1
  58. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +2 -2
  59. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  60. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +0 -2
  61. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  62. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
  63. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  64. package/lib/commonjs/contexts/themeContext/utils/theme.js +2 -2
  65. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  66. package/lib/commonjs/index.js +13 -1
  67. package/lib/commonjs/index.js.map +1 -1
  68. package/lib/commonjs/mock-builders/DB/mock.js +1 -13
  69. package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
  70. package/lib/commonjs/mock-builders/event/messageNew.js +2 -0
  71. package/lib/commonjs/mock-builders/event/messageNew.js.map +1 -1
  72. package/lib/commonjs/store/QuickSqliteClient.js +7 -3
  73. package/lib/commonjs/store/QuickSqliteClient.js.map +1 -1
  74. package/lib/commonjs/store/apis/getChannels.js +2 -15
  75. package/lib/commonjs/store/apis/getChannels.js.map +1 -1
  76. package/lib/commonjs/store/apis/getChannelsForFilterSort.js +37 -0
  77. package/lib/commonjs/store/apis/getChannelsForFilterSort.js.map +1 -0
  78. package/lib/commonjs/store/apis/index.js +264 -0
  79. package/lib/commonjs/store/apis/index.js.map +1 -0
  80. package/lib/commonjs/store/apis/queries/selectChannelIdsForFilterSort.js +1 -1
  81. package/lib/commonjs/store/apis/queries/selectChannelIdsForFilterSort.js.map +1 -1
  82. package/lib/commonjs/store/apis/queries/selectChannels.js +2 -2
  83. package/lib/commonjs/store/apis/queries/selectChannels.js.map +1 -1
  84. package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js +1 -2
  85. package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js.map +1 -1
  86. package/lib/commonjs/test-utils/BetterSqlite.js +54 -0
  87. package/lib/commonjs/test-utils/BetterSqlite.js.map +1 -0
  88. package/lib/commonjs/version.json +1 -1
  89. package/lib/module/components/{MessageInput/AudioAttachmentUploadPreview.js → Attachment/AudioAttachment.js} +38 -64
  90. package/lib/module/components/Attachment/AudioAttachment.js.map +1 -0
  91. package/lib/module/components/Attachment/Card.js +1 -0
  92. package/lib/module/components/Attachment/Card.js.map +1 -1
  93. package/lib/module/components/Attachment/FileAttachment.js +16 -7
  94. package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
  95. package/lib/module/components/Attachment/FileAttachmentGroup.js +132 -12
  96. package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
  97. package/lib/module/components/Attachment/Gallery.js +41 -35
  98. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  99. package/lib/module/components/Attachment/Giphy.js +17 -13
  100. package/lib/module/components/Attachment/Giphy.js.map +1 -1
  101. package/lib/module/components/Attachment/VideoThumbnail.js +12 -6
  102. package/lib/module/components/Attachment/VideoThumbnail.js.map +1 -1
  103. package/lib/module/components/Attachment/utils/getGiphyMimeType.js +15 -0
  104. package/lib/module/components/Attachment/utils/getGiphyMimeType.js.map +1 -0
  105. package/lib/module/components/Channel/Channel.js +19 -19
  106. package/lib/module/components/Channel/Channel.js.map +1 -1
  107. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +0 -2
  108. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  109. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +2 -0
  110. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  111. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js +16 -4
  112. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  113. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +12 -7
  114. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  115. package/lib/module/components/ChannelPreview/ChannelPreview.js +10 -6
  116. package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
  117. package/lib/module/components/ImageGallery/ImageGallery.js +38 -30
  118. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  119. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +11 -10
  120. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  121. package/lib/module/components/ImageGallery/components/ImageGrid.js +2 -2
  122. package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
  123. package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js +6 -0
  124. package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
  125. package/lib/module/components/Message/Message.js +7 -7
  126. package/lib/module/components/Message/Message.js.map +1 -1
  127. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +7 -3
  128. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  129. package/lib/module/components/Message/MessageSimple/utils/parseLinks.js +1 -1
  130. package/lib/module/components/Message/MessageSimple/utils/parseLinks.js.map +1 -1
  131. package/lib/module/components/Message/MessageSimple/utils/parseLinks.test.js +1 -1
  132. package/lib/module/components/Message/MessageSimple/utils/parseLinks.test.js.map +1 -1
  133. package/lib/module/components/Message/MessageSimple/utils/renderText.js +1 -1
  134. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  135. package/lib/module/components/MessageInput/FileUploadPreview.js +38 -44
  136. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  137. package/lib/module/components/MessageList/MessageList.js +5 -5
  138. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  139. package/lib/module/components/MessageOverlay/MessageOverlay.js +10 -9
  140. package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
  141. package/lib/module/components/index.js +13 -13
  142. package/lib/module/components/index.js.map +1 -1
  143. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js +13 -14
  144. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  145. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.md +1 -1
  146. package/lib/module/contexts/messageInputContext/MessageInputContext.js +2 -2
  147. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  148. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +0 -2
  149. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  150. package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
  151. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  152. package/lib/module/contexts/themeContext/utils/theme.js +2 -2
  153. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  154. package/lib/module/index.js +13 -1
  155. package/lib/module/index.js.map +1 -1
  156. package/lib/module/mock-builders/DB/mock.js +1 -13
  157. package/lib/module/mock-builders/DB/mock.js.map +1 -1
  158. package/lib/module/mock-builders/event/messageNew.js +2 -0
  159. package/lib/module/mock-builders/event/messageNew.js.map +1 -1
  160. package/lib/module/store/QuickSqliteClient.js +7 -3
  161. package/lib/module/store/QuickSqliteClient.js.map +1 -1
  162. package/lib/module/store/apis/getChannels.js +2 -15
  163. package/lib/module/store/apis/getChannels.js.map +1 -1
  164. package/lib/module/store/apis/getChannelsForFilterSort.js +37 -0
  165. package/lib/module/store/apis/getChannelsForFilterSort.js.map +1 -0
  166. package/lib/module/store/apis/index.js +264 -0
  167. package/lib/module/store/apis/index.js.map +1 -0
  168. package/lib/module/store/apis/queries/selectChannelIdsForFilterSort.js +1 -1
  169. package/lib/module/store/apis/queries/selectChannelIdsForFilterSort.js.map +1 -1
  170. package/lib/module/store/apis/queries/selectChannels.js +2 -2
  171. package/lib/module/store/apis/queries/selectChannels.js.map +1 -1
  172. package/lib/module/store/sqlite-utils/appendWhereCluase.js +1 -2
  173. package/lib/module/store/sqlite-utils/appendWhereCluase.js.map +1 -1
  174. package/lib/module/test-utils/BetterSqlite.js +54 -0
  175. package/lib/module/test-utils/BetterSqlite.js.map +1 -0
  176. package/lib/module/version.json +1 -1
  177. package/lib/typescript/components/Attachment/AudioAttachment.d.ts +23 -0
  178. package/lib/typescript/components/Attachment/FileAttachmentGroup.d.ts +1 -1
  179. package/lib/typescript/components/Attachment/Gallery.d.ts +1 -1
  180. package/lib/typescript/components/Attachment/Giphy.d.ts +1 -1
  181. package/lib/typescript/components/Attachment/utils/getGiphyMimeType.d.ts +6 -0
  182. package/lib/typescript/components/Channel/Channel.d.ts +1 -1
  183. package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +1 -1
  184. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
  185. package/lib/typescript/components/ImageGallery/components/ImageGrid.d.ts +1 -1
  186. package/lib/typescript/components/ImageGallery/hooks/useImageGalleryGestures.d.ts +2 -1
  187. package/lib/typescript/components/Message/Message.d.ts +9 -3
  188. package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +1 -1
  189. package/lib/typescript/components/MessageList/MessageList.d.ts +1 -1
  190. package/lib/typescript/components/index.d.ts +1 -1
  191. package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContext.d.ts +9 -10
  192. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +1 -1
  193. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +1 -4
  194. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
  195. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +3 -0
  196. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +2 -2
  197. package/lib/typescript/index.d.ts +2 -0
  198. package/lib/typescript/store/QuickSqliteClient.d.ts +4 -0
  199. package/lib/typescript/store/apis/getChannels.d.ts +13 -5
  200. package/lib/typescript/store/apis/getChannelsForFilterSort.d.ts +17 -0
  201. package/lib/typescript/store/apis/index.d.ts +20 -0
  202. package/lib/typescript/store/apis/queries/selectChannelIdsForFilterSort.d.ts +10 -1
  203. package/lib/typescript/{__tests__/utils → test-utils}/BetterSqlite.d.ts +1 -1
  204. package/package.json +5 -4
  205. package/src/__tests__/offline-feature.test.js +1 -2
  206. package/src/components/{MessageInput/AudioAttachmentUploadPreview.tsx → Attachment/AudioAttachment.tsx} +82 -131
  207. package/src/components/Attachment/Card.tsx +1 -0
  208. package/src/components/Attachment/FileAttachment.tsx +3 -0
  209. package/src/components/Attachment/FileAttachmentGroup.tsx +119 -9
  210. package/src/components/Attachment/Gallery.tsx +30 -19
  211. package/src/components/Attachment/Giphy.tsx +15 -8
  212. package/src/components/Attachment/VideoThumbnail.tsx +3 -2
  213. package/src/components/Attachment/utils/getGiphyMimeType.ts +13 -0
  214. package/src/components/Channel/Channel.tsx +5 -4
  215. package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +0 -2
  216. package/src/components/Channel/hooks/useCreateMessagesContext.ts +2 -0
  217. package/src/components/ChannelList/__tests__/ChannelList.test.js +28 -0
  218. package/src/components/ChannelList/hooks/listeners/useNewMessage.ts +18 -5
  219. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +19 -10
  220. package/src/components/ChannelPreview/ChannelPreview.tsx +6 -3
  221. package/src/components/ImageGallery/ImageGallery.tsx +32 -19
  222. package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +6 -6
  223. package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +3 -3
  224. package/src/components/ImageGallery/__tests__/ImageGalleryGrid.test.tsx +3 -3
  225. package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +3 -3
  226. package/src/components/ImageGallery/components/ImageGalleryVideoControl.tsx +12 -7
  227. package/src/components/ImageGallery/components/ImageGrid.tsx +3 -3
  228. package/src/components/ImageGallery/hooks/useImageGalleryGestures.tsx +16 -0
  229. package/src/components/Message/Message.tsx +10 -2
  230. package/src/components/Message/MessageSimple/MessageTextContainer.tsx +22 -2
  231. package/src/components/Message/MessageSimple/__tests__/MessageContent.test.js +4 -2
  232. package/src/components/Message/MessageSimple/__tests__/__snapshots__/MessageAvatar.test.js.snap +1 -0
  233. package/src/components/Message/MessageSimple/utils/parseLinks.test.ts +4 -0
  234. package/src/components/Message/MessageSimple/utils/parseLinks.ts +1 -1
  235. package/src/components/Message/MessageSimple/utils/renderText.tsx +1 -1
  236. package/src/components/MessageInput/FileUploadPreview.tsx +34 -26
  237. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewExpo.test.tsx +15 -8
  238. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewNative.test.tsx +15 -8
  239. package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +5 -5
  240. package/src/components/MessageList/MessageList.tsx +6 -6
  241. package/src/components/MessageOverlay/MessageOverlay.tsx +1 -0
  242. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +4 -0
  243. package/src/components/index.ts +1 -1
  244. package/src/contexts/imageGalleryContext/ImageGalleryContext.md +1 -1
  245. package/src/contexts/imageGalleryContext/ImageGalleryContext.tsx +19 -14
  246. package/src/contexts/messageInputContext/MessageInputContext.tsx +0 -6
  247. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +0 -2
  248. package/src/contexts/messagesContext/MessagesContext.tsx +3 -0
  249. package/src/contexts/themeContext/utils/theme.ts +4 -4
  250. package/src/index.ts +3 -0
  251. package/src/mock-builders/DB/mock.ts +4 -9
  252. package/src/mock-builders/event/messageNew.js +2 -0
  253. package/src/store/QuickSqliteClient.ts +11 -7
  254. package/src/store/apis/getChannels.ts +17 -14
  255. package/src/store/apis/getChannelsForFilterSort.ts +45 -0
  256. package/src/store/apis/index.ts +20 -0
  257. package/src/store/apis/queries/selectChannelIdsForFilterSort.ts +12 -2
  258. package/src/store/apis/queries/selectChannels.ts +9 -3
  259. package/src/store/sqlite-utils/appendWhereCluase.ts +1 -2
  260. package/src/{__tests__/utils → test-utils}/BetterSqlite.js +1 -1
  261. package/src/version.json +1 -1
  262. package/lib/commonjs/components/MessageInput/AudioAttachmentUploadPreview.js.map +0 -1
  263. package/lib/module/components/MessageInput/AudioAttachmentUploadPreview.js.map +0 -1
  264. package/lib/typescript/components/MessageInput/AudioAttachmentUploadPreview.d.ts +0 -26
@@ -8,7 +8,6 @@ var _react = require("react");
8
8
  var useCreateInputMessageInputContext = function useCreateInputMessageInputContext(_ref) {
9
9
  var additionalTextInputProps = _ref.additionalTextInputProps,
10
10
  AttachButton = _ref.AttachButton,
11
- AudioAttachmentUploadPreview = _ref.AudioAttachmentUploadPreview,
12
11
  autoCompleteSuggestionsLimit = _ref.autoCompleteSuggestionsLimit,
13
12
  autoCompleteTriggerSettings = _ref.autoCompleteTriggerSettings,
14
13
  channelId = _ref.channelId,
@@ -54,7 +53,6 @@ var useCreateInputMessageInputContext = function useCreateInputMessageInputConte
54
53
  return {
55
54
  additionalTextInputProps: additionalTextInputProps,
56
55
  AttachButton: AttachButton,
57
- AudioAttachmentUploadPreview: AudioAttachmentUploadPreview,
58
56
  autoCompleteSuggestionsLimit: autoCompleteSuggestionsLimit,
59
57
  autoCompleteTriggerSettings: autoCompleteTriggerSettings,
60
58
  clearEditingState: clearEditingState,
@@ -1 +1 @@
1
- {"version":3,"sources":["useCreateInputMessageInputContext.ts"],"names":["useCreateInputMessageInputContext","additionalTextInputProps","AttachButton","AudioAttachmentUploadPreview","autoCompleteSuggestionsLimit","autoCompleteTriggerSettings","channelId","clearEditingState","clearQuotedMessageState","CommandsButton","compressImageQuality","CooldownTimer","doDocUploadRequest","doImageUploadRequest","editing","editMessage","FileUploadPreview","hasCommands","hasFilePicker","hasImagePicker","ImageUploadPreview","initialValue","Input","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","maxMessageLength","maxNumberOfFiles","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","MoreOptionsButton","numberOfLines","onChangeText","quotedMessage","SendButton","sendImageAsync","sendMessage","SendMessageDisallowedIndicator","setInputRef","setQuotedMessageState","ShowThreadMessageInChannelButton","UploadProgressIndicator","editingExists","quotedMessageId","id","inputMessageInputContext"],"mappings":"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","sourcesContent":["import { useMemo } from 'react';\n\nimport type { InputMessageInputContextValue } from '../../../contexts/messageInputContext/MessageInputContext';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nexport const useCreateInputMessageInputContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTextInputProps,\n AttachButton,\n AudioAttachmentUploadPreview,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n channelId,\n clearEditingState,\n clearQuotedMessageState,\n CommandsButton,\n compressImageQuality,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n initialValue,\n Input,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n MoreOptionsButton,\n numberOfLines,\n onChangeText,\n quotedMessage,\n SendButton,\n sendImageAsync,\n sendMessage,\n SendMessageDisallowedIndicator,\n setInputRef,\n setQuotedMessageState,\n ShowThreadMessageInChannelButton,\n UploadProgressIndicator,\n}: InputMessageInputContextValue<StreamChatGenerics> & {\n /**\n * To ensure we allow re-render, when channel is changed\n */\n channelId?: string;\n}) => {\n const editingExists = !!editing;\n const quotedMessageId = quotedMessage\n ? typeof quotedMessage === 'boolean'\n ? ''\n : quotedMessage.id\n : '';\n\n const inputMessageInputContext: InputMessageInputContextValue<StreamChatGenerics> = useMemo(\n () => ({\n additionalTextInputProps,\n AttachButton,\n AudioAttachmentUploadPreview,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n clearEditingState,\n clearQuotedMessageState,\n CommandsButton,\n compressImageQuality,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n initialValue,\n Input,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n MoreOptionsButton,\n numberOfLines,\n onChangeText,\n quotedMessage,\n SendButton,\n sendImageAsync,\n sendMessage,\n SendMessageDisallowedIndicator,\n setInputRef,\n setQuotedMessageState,\n ShowThreadMessageInChannelButton,\n UploadProgressIndicator,\n }),\n [\n compressImageQuality,\n channelId,\n editingExists,\n initialValue,\n maxMessageLength,\n quotedMessageId,\n ],\n );\n\n return inputMessageInputContext;\n};\n"]}
1
+ {"version":3,"sources":["useCreateInputMessageInputContext.ts"],"names":["useCreateInputMessageInputContext","additionalTextInputProps","AttachButton","autoCompleteSuggestionsLimit","autoCompleteTriggerSettings","channelId","clearEditingState","clearQuotedMessageState","CommandsButton","compressImageQuality","CooldownTimer","doDocUploadRequest","doImageUploadRequest","editing","editMessage","FileUploadPreview","hasCommands","hasFilePicker","hasImagePicker","ImageUploadPreview","initialValue","Input","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","maxMessageLength","maxNumberOfFiles","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","MoreOptionsButton","numberOfLines","onChangeText","quotedMessage","SendButton","sendImageAsync","sendMessage","SendMessageDisallowedIndicator","setInputRef","setQuotedMessageState","ShowThreadMessageInChannelButton","UploadProgressIndicator","editingExists","quotedMessageId","id","inputMessageInputContext"],"mappings":"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","sourcesContent":["import { useMemo } from 'react';\n\nimport type { InputMessageInputContextValue } from '../../../contexts/messageInputContext/MessageInputContext';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nexport const useCreateInputMessageInputContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTextInputProps,\n AttachButton,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n channelId,\n clearEditingState,\n clearQuotedMessageState,\n CommandsButton,\n compressImageQuality,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n initialValue,\n Input,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n MoreOptionsButton,\n numberOfLines,\n onChangeText,\n quotedMessage,\n SendButton,\n sendImageAsync,\n sendMessage,\n SendMessageDisallowedIndicator,\n setInputRef,\n setQuotedMessageState,\n ShowThreadMessageInChannelButton,\n UploadProgressIndicator,\n}: InputMessageInputContextValue<StreamChatGenerics> & {\n /**\n * To ensure we allow re-render, when channel is changed\n */\n channelId?: string;\n}) => {\n const editingExists = !!editing;\n const quotedMessageId = quotedMessage\n ? typeof quotedMessage === 'boolean'\n ? ''\n : quotedMessage.id\n : '';\n\n const inputMessageInputContext: InputMessageInputContextValue<StreamChatGenerics> = useMemo(\n () => ({\n additionalTextInputProps,\n AttachButton,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n clearEditingState,\n clearQuotedMessageState,\n CommandsButton,\n compressImageQuality,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n initialValue,\n Input,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n MoreOptionsButton,\n numberOfLines,\n onChangeText,\n quotedMessage,\n SendButton,\n sendImageAsync,\n sendMessage,\n SendMessageDisallowedIndicator,\n setInputRef,\n setQuotedMessageState,\n ShowThreadMessageInChannelButton,\n UploadProgressIndicator,\n }),\n [\n compressImageQuality,\n channelId,\n editingExists,\n initialValue,\n maxMessageLength,\n quotedMessageId,\n ],\n );\n\n return inputMessageInputContext;\n};\n"]}
@@ -9,6 +9,7 @@ var useCreateMessagesContext = function useCreateMessagesContext(_ref) {
9
9
  var additionalTouchableProps = _ref.additionalTouchableProps,
10
10
  Attachment = _ref.Attachment,
11
11
  AttachmentActions = _ref.AttachmentActions,
12
+ AudioAttachment = _ref.AudioAttachment,
12
13
  Card = _ref.Card,
13
14
  CardCover = _ref.CardCover,
14
15
  CardFooter = _ref.CardFooter,
@@ -92,6 +93,7 @@ var useCreateMessagesContext = function useCreateMessagesContext(_ref) {
92
93
  additionalTouchableProps: additionalTouchableProps,
93
94
  Attachment: Attachment,
94
95
  AttachmentActions: AttachmentActions,
96
+ AudioAttachment: AudioAttachment,
95
97
  Card: Card,
96
98
  CardCover: CardCover,
97
99
  CardFooter: CardFooter,
@@ -1 +1 @@
1
- {"version":3,"sources":["useCreateMessagesContext.ts"],"names":["useCreateMessagesContext","additionalTouchableProps","Attachment","AttachmentActions","Card","CardCover","CardFooter","CardHeader","channelId","DateHeader","deletedMessagesVisibilityType","disableTypingIndicator","dismissKeyboardOnMessageTouch","enableMessageGroupingByUser","FileAttachment","FileAttachmentGroup","FileAttachmentIcon","FlatList","forceAlignMessages","formatDate","Gallery","Giphy","giphyVersion","handleBlock","handleCopy","handleDelete","handleEdit","handleFlag","handleMute","handlePinMessage","handleQuotedReply","handleReaction","handleRetry","handleThreadReply","ImageLoadingFailedIndicator","ImageLoadingIndicator","initialScrollToFirstUnreadMessage","InlineDateSeparator","InlineUnreadIndicator","isAttachmentEqual","legacyImageViewerSwipeBehaviour","markdownRules","Message","messageActions","MessageAvatar","MessageContent","messageContentOrder","MessageDeleted","MessageFooter","MessageHeader","MessageList","MessagePinnedHeader","MessageReplies","MessageRepliesAvatars","MessageSimple","MessageStatus","MessageSystem","MessageText","myMessageTheme","onLongPressMessage","onPressInMessage","onPressMessage","OverlayReactionList","ReactionList","removeMessage","Reply","retrySendMessage","ScrollToBottomButton","selectReaction","setEditingState","setQuotedMessageState","supportedReactions","targetedMessage","TypingIndicator","TypingIndicatorContainer","updateMessage","UrlPreview","VideoThumbnail","additionalTouchablePropsLength","Object","keys","length","markdownRulesLength","messageContentOrderValue","join","supportedReactionsLength","messagesContext"],"mappings":"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","sourcesContent":["import { useMemo } from 'react';\n\nimport type { MessagesContextValue } from '../../../contexts/messagesContext/MessagesContext';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nexport const useCreateMessagesContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTouchableProps,\n Attachment,\n AttachmentActions,\n Card,\n CardCover,\n CardFooter,\n CardHeader,\n channelId,\n DateHeader,\n deletedMessagesVisibilityType,\n disableTypingIndicator,\n dismissKeyboardOnMessageTouch,\n enableMessageGroupingByUser,\n FileAttachment,\n FileAttachmentGroup,\n FileAttachmentIcon,\n FlatList,\n forceAlignMessages,\n formatDate,\n Gallery,\n Giphy,\n giphyVersion,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction,\n handleRetry,\n handleThreadReply,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n isAttachmentEqual,\n legacyImageViewerSwipeBehaviour,\n markdownRules,\n Message,\n messageActions,\n MessageAvatar,\n MessageContent,\n messageContentOrder,\n MessageDeleted,\n MessageFooter,\n MessageHeader,\n MessageList,\n MessagePinnedHeader,\n MessageReplies,\n MessageRepliesAvatars,\n MessageSimple,\n MessageStatus,\n MessageSystem,\n MessageText,\n myMessageTheme,\n onLongPressMessage,\n onPressInMessage,\n onPressMessage,\n OverlayReactionList,\n ReactionList,\n removeMessage,\n Reply,\n retrySendMessage,\n ScrollToBottomButton,\n selectReaction,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n targetedMessage,\n TypingIndicator,\n TypingIndicatorContainer,\n updateMessage,\n UrlPreview,\n VideoThumbnail,\n}: MessagesContextValue<StreamChatGenerics> & {\n /**\n * To ensure we allow re-render, when channel is changed\n */\n channelId?: string;\n}) => {\n const additionalTouchablePropsLength = Object.keys(additionalTouchableProps || {}).length;\n const markdownRulesLength = Object.keys(markdownRules || {}).length;\n const messageContentOrderValue = messageContentOrder.join();\n const supportedReactionsLength = supportedReactions.length;\n\n const messagesContext: MessagesContextValue<StreamChatGenerics> = useMemo(\n () => ({\n additionalTouchableProps,\n Attachment,\n AttachmentActions,\n Card,\n CardCover,\n CardFooter,\n CardHeader,\n DateHeader,\n deletedMessagesVisibilityType,\n disableTypingIndicator,\n dismissKeyboardOnMessageTouch,\n enableMessageGroupingByUser,\n FileAttachment,\n FileAttachmentGroup,\n FileAttachmentIcon,\n FlatList,\n forceAlignMessages,\n formatDate,\n Gallery,\n Giphy,\n giphyVersion,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction,\n handleRetry,\n handleThreadReply,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n isAttachmentEqual,\n legacyImageViewerSwipeBehaviour,\n markdownRules,\n Message,\n messageActions,\n MessageAvatar,\n MessageContent,\n messageContentOrder,\n MessageDeleted,\n MessageFooter,\n MessageHeader,\n MessageList,\n MessagePinnedHeader,\n MessageReplies,\n MessageRepliesAvatars,\n MessageSimple,\n MessageStatus,\n MessageSystem,\n MessageText,\n myMessageTheme,\n onLongPressMessage,\n onPressInMessage,\n onPressMessage,\n OverlayReactionList,\n ReactionList,\n removeMessage,\n Reply,\n retrySendMessage,\n ScrollToBottomButton,\n selectReaction,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n targetedMessage,\n TypingIndicator,\n TypingIndicatorContainer,\n updateMessage,\n UrlPreview,\n VideoThumbnail,\n }),\n [\n additionalTouchablePropsLength,\n channelId,\n disableTypingIndicator,\n dismissKeyboardOnMessageTouch,\n initialScrollToFirstUnreadMessage,\n markdownRulesLength,\n messageContentOrderValue,\n supportedReactionsLength,\n targetedMessage,\n ],\n );\n\n return messagesContext;\n};\n"]}
1
+ {"version":3,"sources":["useCreateMessagesContext.ts"],"names":["useCreateMessagesContext","additionalTouchableProps","Attachment","AttachmentActions","AudioAttachment","Card","CardCover","CardFooter","CardHeader","channelId","DateHeader","deletedMessagesVisibilityType","disableTypingIndicator","dismissKeyboardOnMessageTouch","enableMessageGroupingByUser","FileAttachment","FileAttachmentGroup","FileAttachmentIcon","FlatList","forceAlignMessages","formatDate","Gallery","Giphy","giphyVersion","handleBlock","handleCopy","handleDelete","handleEdit","handleFlag","handleMute","handlePinMessage","handleQuotedReply","handleReaction","handleRetry","handleThreadReply","ImageLoadingFailedIndicator","ImageLoadingIndicator","initialScrollToFirstUnreadMessage","InlineDateSeparator","InlineUnreadIndicator","isAttachmentEqual","legacyImageViewerSwipeBehaviour","markdownRules","Message","messageActions","MessageAvatar","MessageContent","messageContentOrder","MessageDeleted","MessageFooter","MessageHeader","MessageList","MessagePinnedHeader","MessageReplies","MessageRepliesAvatars","MessageSimple","MessageStatus","MessageSystem","MessageText","myMessageTheme","onLongPressMessage","onPressInMessage","onPressMessage","OverlayReactionList","ReactionList","removeMessage","Reply","retrySendMessage","ScrollToBottomButton","selectReaction","setEditingState","setQuotedMessageState","supportedReactions","targetedMessage","TypingIndicator","TypingIndicatorContainer","updateMessage","UrlPreview","VideoThumbnail","additionalTouchablePropsLength","Object","keys","length","markdownRulesLength","messageContentOrderValue","join","supportedReactionsLength","messagesContext"],"mappings":"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","sourcesContent":["import { useMemo } from 'react';\n\nimport type { MessagesContextValue } from '../../../contexts/messagesContext/MessagesContext';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nexport const useCreateMessagesContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTouchableProps,\n Attachment,\n AttachmentActions,\n AudioAttachment,\n Card,\n CardCover,\n CardFooter,\n CardHeader,\n channelId,\n DateHeader,\n deletedMessagesVisibilityType,\n disableTypingIndicator,\n dismissKeyboardOnMessageTouch,\n enableMessageGroupingByUser,\n FileAttachment,\n FileAttachmentGroup,\n FileAttachmentIcon,\n FlatList,\n forceAlignMessages,\n formatDate,\n Gallery,\n Giphy,\n giphyVersion,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction,\n handleRetry,\n handleThreadReply,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n isAttachmentEqual,\n legacyImageViewerSwipeBehaviour,\n markdownRules,\n Message,\n messageActions,\n MessageAvatar,\n MessageContent,\n messageContentOrder,\n MessageDeleted,\n MessageFooter,\n MessageHeader,\n MessageList,\n MessagePinnedHeader,\n MessageReplies,\n MessageRepliesAvatars,\n MessageSimple,\n MessageStatus,\n MessageSystem,\n MessageText,\n myMessageTheme,\n onLongPressMessage,\n onPressInMessage,\n onPressMessage,\n OverlayReactionList,\n ReactionList,\n removeMessage,\n Reply,\n retrySendMessage,\n ScrollToBottomButton,\n selectReaction,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n targetedMessage,\n TypingIndicator,\n TypingIndicatorContainer,\n updateMessage,\n UrlPreview,\n VideoThumbnail,\n}: MessagesContextValue<StreamChatGenerics> & {\n /**\n * To ensure we allow re-render, when channel is changed\n */\n channelId?: string;\n}) => {\n const additionalTouchablePropsLength = Object.keys(additionalTouchableProps || {}).length;\n const markdownRulesLength = Object.keys(markdownRules || {}).length;\n const messageContentOrderValue = messageContentOrder.join();\n const supportedReactionsLength = supportedReactions.length;\n\n const messagesContext: MessagesContextValue<StreamChatGenerics> = useMemo(\n () => ({\n additionalTouchableProps,\n Attachment,\n AttachmentActions,\n AudioAttachment,\n Card,\n CardCover,\n CardFooter,\n CardHeader,\n DateHeader,\n deletedMessagesVisibilityType,\n disableTypingIndicator,\n dismissKeyboardOnMessageTouch,\n enableMessageGroupingByUser,\n FileAttachment,\n FileAttachmentGroup,\n FileAttachmentIcon,\n FlatList,\n forceAlignMessages,\n formatDate,\n Gallery,\n Giphy,\n giphyVersion,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction,\n handleRetry,\n handleThreadReply,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n isAttachmentEqual,\n legacyImageViewerSwipeBehaviour,\n markdownRules,\n Message,\n messageActions,\n MessageAvatar,\n MessageContent,\n messageContentOrder,\n MessageDeleted,\n MessageFooter,\n MessageHeader,\n MessageList,\n MessagePinnedHeader,\n MessageReplies,\n MessageRepliesAvatars,\n MessageSimple,\n MessageStatus,\n MessageSystem,\n MessageText,\n myMessageTheme,\n onLongPressMessage,\n onPressInMessage,\n onPressMessage,\n OverlayReactionList,\n ReactionList,\n removeMessage,\n Reply,\n retrySendMessage,\n ScrollToBottomButton,\n selectReaction,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n targetedMessage,\n TypingIndicator,\n TypingIndicatorContainer,\n updateMessage,\n UrlPreview,\n VideoThumbnail,\n }),\n [\n additionalTouchablePropsLength,\n channelId,\n disableTypingIndicator,\n dismissKeyboardOnMessageTouch,\n initialScrollToFirstUnreadMessage,\n markdownRulesLength,\n messageContentOrderValue,\n supportedReactionsLength,\n targetedMessage,\n ],\n );\n\n return messagesContext;\n};\n"]}
@@ -23,11 +23,23 @@ var useNewMessage = function useNewMessage(_ref) {
23
23
  (0, _react.useEffect)(function () {
24
24
  var handleEvent = function handleEvent(event) {
25
25
  setChannels(function (channels) {
26
- if (!lockChannelOrder && event.cid) {
27
- return (0, _utils.moveChannelUp)({
28
- channels: channels,
29
- cid: event.cid
26
+ if (!lockChannelOrder && event.cid && event.channel_type && event.channel_id) {
27
+ var targetChannelIndex = channels.findIndex(function (c) {
28
+ return c.cid === event.cid;
30
29
  });
30
+
31
+ if (targetChannelIndex >= 0) {
32
+ return (0, _utils.moveChannelUp)({
33
+ channels: channels,
34
+ cid: event.cid
35
+ });
36
+ }
37
+
38
+ var channel = client.channel(event.channel_type, event.channel_id);
39
+
40
+ if (channel.initialized) {
41
+ return [channel].concat((0, _toConsumableArray2["default"])(channels));
42
+ }
31
43
  }
32
44
 
33
45
  return (0, _toConsumableArray2["default"])(channels);
@@ -1 +1 @@
1
- {"version":3,"sources":["useNewMessage.ts"],"names":["useNewMessage","lockChannelOrder","setChannels","client","handleEvent","event","channels","cid","listener","on","unsubscribe"],"mappings":";;;;;;;;;AAAA;;AAIA;;AAGA;;AAQO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,OAKS;AAAA,MAFpCC,gBAEoC,QAFpCA,gBAEoC;AAAA,MADpCC,WACoC,QADpCA,WACoC;;AACpC,wBAAmB,kCAAnB;AAAA,MAAQC,MAAR,mBAAQA,MAAR;;AAEA,wBAAU,YAAM;AACd,QAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,KAAD,EAAsC;AACxDH,MAAAA,WAAW,CAAC,UAACI,QAAD,EAAc;AACxB,YAAI,CAACL,gBAAD,IAAqBI,KAAK,CAACE,GAA/B,EAAoC;AAClC,iBAAO,0BAAkC;AACvCD,YAAAA,QAAQ,EAARA,QADuC;AAEvCC,YAAAA,GAAG,EAAEF,KAAK,CAACE;AAF4B,WAAlC,CAAP;AAID;;AAED,mDAAWD,QAAX;AACD,OATU,CAAX;AAUD,KAXD;;AAaA,QAAME,QAAQ,GAAGL,MAAH,oBAAGA,MAAM,CAAEM,EAAR,CAAW,aAAX,EAA0BL,WAA1B,CAAjB;AACA,WAAO;AAAA,aAAMI,QAAN,oBAAMA,QAAQ,CAAEE,WAAV,EAAN;AAAA,KAAP;AACD,GAhBD,EAgBG,EAhBH;AAiBD,CAzBM","sourcesContent":["import { useEffect } from 'react';\n\nimport type { Channel, Event } from 'stream-chat';\n\nimport { useChatContext } from '../../../../contexts/chatContext/ChatContext';\n\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport { moveChannelUp } from '../../utils';\n\ntype Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n {\n lockChannelOrder: boolean;\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[]>>;\n };\n\nexport const useNewMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n lockChannelOrder,\n setChannels,\n}: Parameters<StreamChatGenerics>) => {\n const { client } = useChatContext<StreamChatGenerics>();\n\n useEffect(() => {\n const handleEvent = (event: Event<StreamChatGenerics>) => {\n setChannels((channels) => {\n if (!lockChannelOrder && event.cid) {\n return moveChannelUp<StreamChatGenerics>({\n channels,\n cid: event.cid,\n });\n }\n\n return [...channels];\n });\n };\n\n const listener = client?.on('message.new', handleEvent);\n return () => listener?.unsubscribe();\n }, []);\n};\n"]}
1
+ {"version":3,"sources":["useNewMessage.ts"],"names":["useNewMessage","lockChannelOrder","setChannels","client","handleEvent","event","channels","cid","channel_type","channel_id","targetChannelIndex","findIndex","c","channel","initialized","listener","on","unsubscribe"],"mappings":";;;;;;;;;AAAA;;AAIA;;AAGA;;AAQO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,OAKS;AAAA,MAFpCC,gBAEoC,QAFpCA,gBAEoC;AAAA,MADpCC,WACoC,QADpCA,WACoC;;AACpC,wBAAmB,kCAAnB;AAAA,MAAQC,MAAR,mBAAQA,MAAR;;AAEA,wBAAU,YAAM;AACd,QAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,KAAD,EAAsC;AACxDH,MAAAA,WAAW,CAAC,UAACI,QAAD,EAAc;AACxB,YAAI,CAACL,gBAAD,IAAqBI,KAAK,CAACE,GAA3B,IAAkCF,KAAK,CAACG,YAAxC,IAAwDH,KAAK,CAACI,UAAlE,EAA8E;AAC5E,cAAMC,kBAAkB,GAAGJ,QAAQ,CAACK,SAAT,CAAmB,UAACC,CAAD;AAAA,mBAAOA,CAAC,CAACL,GAAF,KAAUF,KAAK,CAACE,GAAvB;AAAA,WAAnB,CAA3B;;AAEA,cAAIG,kBAAkB,IAAI,CAA1B,EAA6B;AAC3B,mBAAO,0BAAkC;AACvCJ,cAAAA,QAAQ,EAARA,QADuC;AAEvCC,cAAAA,GAAG,EAAEF,KAAK,CAACE;AAF4B,aAAlC,CAAP;AAID;;AAKD,cAAMM,OAAO,GAAGV,MAAM,CAACU,OAAP,CAAeR,KAAK,CAACG,YAArB,EAAmCH,KAAK,CAACI,UAAzC,CAAhB;;AAEA,cAAII,OAAO,CAACC,WAAZ,EAAyB;AACvB,oBAAQD,OAAR,6CAAoBP,QAApB;AACD;AACF;;AAED,mDAAWA,QAAX;AACD,OAtBU,CAAX;AAuBD,KAxBD;;AA0BA,QAAMS,QAAQ,GAAGZ,MAAH,oBAAGA,MAAM,CAAEa,EAAR,CAAW,aAAX,EAA0BZ,WAA1B,CAAjB;AACA,WAAO;AAAA,aAAMW,QAAN,oBAAMA,QAAQ,CAAEE,WAAV,EAAN;AAAA,KAAP;AACD,GA7BD,EA6BG,EA7BH;AA8BD,CAtCM","sourcesContent":["import { useEffect } from 'react';\n\nimport type { Channel, Event } from 'stream-chat';\n\nimport { useChatContext } from '../../../../contexts/chatContext/ChatContext';\n\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport { moveChannelUp } from '../../utils';\n\ntype Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n {\n lockChannelOrder: boolean;\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[]>>;\n };\n\nexport const useNewMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n lockChannelOrder,\n setChannels,\n}: Parameters<StreamChatGenerics>) => {\n const { client } = useChatContext<StreamChatGenerics>();\n\n useEffect(() => {\n const handleEvent = (event: Event<StreamChatGenerics>) => {\n setChannels((channels) => {\n if (!lockChannelOrder && event.cid && event.channel_type && event.channel_id) {\n const targetChannelIndex = channels.findIndex((c) => c.cid === event.cid);\n\n if (targetChannelIndex >= 0) {\n return moveChannelUp<StreamChatGenerics>({\n channels,\n cid: event.cid,\n });\n }\n\n // If channel doesn't exist in existing list, check in activeChannels as well.\n // It may happen that channel was hidden using channel.hide(). In that case\n // We remove it from `channels` state, but its still being watched and exists in client.activeChannels.\n const channel = client.channel(event.channel_type, event.channel_id);\n\n if (channel.initialized) {\n return [channel, ...channels];\n }\n }\n\n return [...channels];\n });\n };\n\n const listener = client?.on('message.new', handleEvent);\n return () => listener?.unsubscribe();\n }, []);\n};\n"]}
@@ -23,7 +23,7 @@ var _ChatContext = require("../../../contexts/chatContext/ChatContext");
23
23
 
24
24
  var _useIsMountedRef = require("../../../hooks/useIsMountedRef");
25
25
 
26
- var _getChannels = require("../../../store/apis/getChannels");
26
+ var _getChannelsForFilterSort = require("../../../store/apis/getChannelsForFilterSort");
27
27
 
28
28
  var _date = require("../../../utils/date");
29
29
 
@@ -53,7 +53,9 @@ var usePaginatedChannels = function usePaginatedChannels(_ref) {
53
53
  var _useChatContext = (0, _ChatContext.useChatContext)(),
54
54
  client = _useChatContext.client;
55
55
 
56
- var _useState = (0, _react.useState)([]),
56
+ var initialChannelsStateRef = (0, _react.useRef)([]);
57
+
58
+ var _useState = (0, _react.useState)(initialChannelsStateRef.current),
57
59
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
58
60
  channels = _useState2[0],
59
61
  setChannels = _useState2[1];
@@ -248,14 +250,17 @@ var usePaginatedChannels = function usePaginatedChannels(_ref) {
248
250
 
249
251
  if (enableOfflineSupport) {
250
252
  try {
251
- var channelsFromDB = (0, _getChannels.getChannels)({
253
+ var channelsFromDB = (0, _getChannelsForFilterSort.getChannelsForFilterSort)({
252
254
  currentUserId: client.user.id,
253
255
  filters: filters,
254
256
  sort: sort
255
257
  });
256
- setChannels(client.hydrateActiveChannels(channelsFromDB, {
257
- staticState: true
258
- }));
258
+
259
+ if (channelsFromDB) {
260
+ setChannels(client.hydrateActiveChannels(channelsFromDB, {
261
+ offlineMode: true
262
+ }));
263
+ }
259
264
  } catch (e) {
260
265
  console.warn('Failed to get channels from database: ', e);
261
266
  }
@@ -270,7 +275,7 @@ var usePaginatedChannels = function usePaginatedChannels(_ref) {
270
275
  channels: channels,
271
276
  error: error,
272
277
  hasNextPage: hasNextPage,
273
- loadingChannels: activeQueryType === 'queryLocalDB' ? true : activeQueryType === 'reload' && channels.length === 0,
278
+ loadingChannels: activeQueryType === 'queryLocalDB' ? true : activeQueryType === 'reload' && channels === initialChannelsStateRef.current,
274
279
  loadingNextPage: activeQueryType === 'loadChannels',
275
280
  loadNextPage: loadNextPage,
276
281
  refreshing: activeQueryType === 'refresh',
@@ -1 +1 @@
1
- {"version":3,"sources":["usePaginatedChannels.ts"],"names":["waitSeconds","seconds","Promise","resolve","setTimeout","ONE_SECOND_IN_MS","DEFAULT_OPTIONS","message_limit","MAX_NUMBER_OF_RETRIES","RETRY_INTERVAL_IN_MS","usePaginatedChannels","enableOfflineSupport","filters","options","sort","client","channels","setChannels","staticChannelsActive","setStaticChannelsActive","activeChannels","error","setError","hasNextPage","setHasNextPage","lastRefresh","Date","now","isQueryingRef","activeQueryType","setActiveQueryType","isMountedRef","filtersRef","sortRef","activeRequestId","queryChannels","queryType","retryCount","current","hasUpdatedData","JSON","stringify","some","Boolean","isQueryStale","currentRequestId","undefined","newOptions","limit","MAX_QUERY_CHANNELS_LIMIT","offset","length","skipInitialization","channelQueryResponse","newChannels","console","warn","Error","loadNextPage","refreshList","reloadList","filterStr","sortStr","loadChannels","user","id","channelsFromDB","currentUserId","hydrateActiveChannels","staticState","e","loadingChannels","loadingNextPage","refreshing"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AAIA;;AACA;;AACA;;AAEA;;AAEA;;AACA;;AAEA,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAACC,OAAD;AAAA,SAClB,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAa;AACvBC,IAAAA,UAAU,CAACD,OAAD,EAAUF,OAAO,GAAGI,sBAApB,CAAV;AACD,GAFD,CADkB;AAAA,CAApB;;AAaA,IAAMC,eAAe,GAAG;AACtBC,EAAAA,aAAa,EAAE;AADO,CAAxB;AAIA,IAAMC,qBAAqB,GAAG,CAA9B;AACA,IAAMC,oBAAoB,GAAG,IAA7B;;AAMO,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,OAOE;AAAA,MAJpCC,oBAIoC,QAJpCA,oBAIoC;AAAA,0BAHpCC,OAGoC;AAAA,MAHpCA,OAGoC,6BAH1B,EAG0B;AAAA,0BAFpCC,OAEoC;AAAA,MAFpCA,OAEoC,6BAF1BP,eAE0B;AAAA,uBADpCQ,IACoC;AAAA,MADpCA,IACoC,0BAD7B,EAC6B;;AACpC,wBAAmB,kCAAnB;AAAA,MAAQC,MAAR,mBAAQA,MAAR;;AAEA,kBAAgC,qBAAwC,EAAxC,CAAhC;AAAA;AAAA,MAAOC,QAAP;AAAA,MAAiBC,WAAjB;;AACA,mBAAwD,qBAAkB,IAAlB,CAAxD;AAAA;AAAA,MAAOC,oBAAP;AAAA,MAA6BC,uBAA7B;;AACA,MAAMC,cAAc,GAAG,4DAAvB;;AAEA,mBAA0B,sBAA1B;AAAA;AAAA,MAAOC,KAAP;AAAA,MAAcC,QAAd;;AACA,mBAAsC,qBAAS,IAAT,CAAtC;AAAA;AAAA,MAAOC,WAAP;AAAA,MAAoBC,cAApB;;AACA,MAAMC,WAAW,GAAG,mBAAOC,IAAI,CAACC,GAAL,EAAP,CAApB;AACA,MAAMC,aAAa,GAAG,mBAAO,KAAP,CAAtB;;AACA,mBAA8C,qBAA2B,cAA3B,CAA9C;AAAA;AAAA,MAAOC,eAAP;AAAA,MAAwBC,kBAAxB;;AACA,MAAMC,YAAY,GAAG,uCAArB;AACA,MAAMC,UAAU,GAAG,mBAA8B,IAA9B,CAAnB;AACA,MAAMC,OAAO,GAAG,mBAA2B,IAA3B,CAAhB;AACA,MAAMC,eAAe,GAAG,mBAAe,CAAf,CAAxB;;AAEA,MAAMC,aAA4B;AAAA,gFAAG;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACnCC,cAAAA,SADmC,2DACZ,cADY;AAEnCC,cAAAA,UAFmC,2DAEtB,CAFsB;;AAAA,oBAI/B,CAACtB,MAAD,IAAW,CAACgB,YAAY,CAACO,OAJM;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAM7BC,cAAAA,cAN6B,GAOjCH,SAAS,KAAK,cAAd,IACAA,SAAS,KAAK,SADd,IAEA,CACEI,IAAI,CAACC,SAAL,CAAeT,UAAU,CAACM,OAA1B,MAAuCE,IAAI,CAACC,SAAL,CAAe7B,OAAf,CADzC,EAEE4B,IAAI,CAACC,SAAL,CAAeR,OAAO,CAACK,OAAvB,MAAoCE,IAAI,CAACC,SAAL,CAAe3B,IAAf,CAFtC,EAGE4B,IAHF,CAGOC,OAHP,CATiC;;AAc7BC,cAAAA,YAd6B,GAcd,SAAfA,YAAe;AAAA,uBAAM,CAACb,YAAD,IAAiBG,eAAe,CAACI,OAAhB,KAA4BO,gBAAnD;AAAA,eAdc;;AAAA,kBAoB9BN,cApB8B;AAAA;AAAA;AAAA;;AAAA,oBAqB7BV,eAAe,KAAK,IArBS;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAwBnCG,cAAAA,UAAU,CAACM,OAAX,GAAqB1B,OAArB;AACAqB,cAAAA,OAAO,CAACK,OAAR,GAAkBxB,IAAlB;AACAc,cAAAA,aAAa,CAACU,OAAd,GAAwB,IAAxB;AACAhB,cAAAA,QAAQ,CAACwB,SAAD,CAAR;AACAZ,cAAAA,eAAe,CAACI,OAAhB;AACMO,cAAAA,gBA7B6B,GA6BVX,eAAe,CAACI,OA7BN;AA8BnCR,cAAAA,kBAAkB,CAACM,SAAD,CAAlB;AAEMW,cAAAA,UAhC6B;AAiCjCC,gBAAAA,KAAK,oBAAEnC,OAAF,oBAAEA,OAAO,CAAEmC,KAAX,6BAAoBC,+BAjCQ;AAkCjCC,gBAAAA,MAAM,EAAEd,SAAS,KAAK,cAAd,IAAgC,CAAClB,oBAAjC,GAAwDF,QAAQ,CAACmC,MAAjE,GAA0E;AAlCjD,iBAmC9BtC,OAnC8B;AAAA;AAAA;AAAA,qBAuCEE,MAAM,CAACoB,aAAP,CAAqBvB,OAArB,EAA8BE,IAA9B,EAAoCiC,UAApC,EAAgD;AACjFK,gBAAAA,kBAAkB,EAAEhC,cAAc,CAACkB;AAD8C,eAAhD,CAvCF;;AAAA;AAuC3Be,cAAAA,oBAvC2B;;AAAA,oBA2C7BT,YAAY,MAAM,CAACb,YAAY,CAACO,OA3CH;AAAA;AAAA;AAAA;;AAAA;;AAAA;AA8C3BgB,cAAAA,WA9C2B,GA+C/BlB,SAAS,KAAK,cAAd,IAAgC,CAAClB,oBAAjC,iDACQF,QADR,uCACqBqC,oBADrB,KAEIA,oBAjD2B;AAmDjCpC,cAAAA,WAAW,CAACqC,WAAD,CAAX;AACAnC,cAAAA,uBAAuB,CAAC,KAAD,CAAvB;AACAK,cAAAA,cAAc,CAAC6B,oBAAoB,CAACF,MAArB,IAA+BJ,UAAU,CAACC,KAA3C,CAAd;AACA1B,cAAAA,QAAQ,CAACwB,SAAD,CAAR;AACAlB,cAAAA,aAAa,CAACU,OAAd,GAAwB,KAAxB;AAvDiC;AAAA;;AAAA;AAAA;AAAA;AAyDjCV,cAAAA,aAAa,CAACU,OAAd,GAAwB,KAAxB;AAzDiC;AAAA,qBA0D3BtC,WAAW,CAAC,CAAD,CA1DgB;;AAAA;AAAA,mBA4D7B4C,YAAY,EA5DiB;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA,oBAkE7BP,UAAU,KAAK7B,qBAAf,IAAwC,CAACoB,aAAa,CAACU,OAlE1B;AAAA;AAAA;AAAA;;AAmE/BR,cAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACAyB,cAAAA,OAAO,CAACC,IAAR;AAEAlC,cAAAA,QAAQ,CACN,IAAImC,KAAJ,6FADM,CAAR;AAtE+B;;AAAA;AAAA,+CA8E1BtB,aAAa,CAACC,SAAD,EAAYC,UAAU,GAAG,CAAzB,CA9Ea;;AAAA;AAiFnCP,cAAAA,kBAAkB,CAAC,IAAD,CAAlB;;AAjFmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AAAA,oBAA5BK,aAA4B;AAAA;AAAA;AAAA,KAAlC;;AAoFA,MAAMuB,YAAY,GAAGnC,WAAW,GAAGY,aAAH,GAAmBW,SAAnD;;AAEA,MAAMa,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxB,QAAMhC,GAAG,GAAGD,IAAI,CAACC,GAAL,EAAZ;;AAEA,QAAIA,GAAG,GAAGF,WAAW,CAACa,OAAlB,GAA4B7B,oBAA5B,IAAoDY,KAAK,KAAKyB,SAAlE,EAA6E;AAC3E;AACD;;AAEDrB,IAAAA,WAAW,CAACa,OAAZ,GAAsBZ,IAAI,CAACC,GAAL,EAAtB;AACA,WAAOQ,aAAa,CAAC,SAAD,CAApB;AACD,GATD;;AAWA,MAAMyB,UAAU,GAAG,SAAbA,UAAa;AAAA,WAAMzB,aAAa,CAAC,QAAD,CAAnB;AAAA,GAAnB;;AAiBA,MAAM0B,SAAS,GAAG,oBAAQ;AAAA,WAAMrB,IAAI,CAACC,SAAL,CAAe7B,OAAf,CAAN;AAAA,GAAR,EAAuC,CAACA,OAAD,CAAvC,CAAlB;AACA,MAAMkD,OAAO,GAAG,oBAAQ;AAAA,WAAMtB,IAAI,CAACC,SAAL,CAAe3B,IAAf,CAAN;AAAA,GAAR,EAAoC,CAACA,IAAD,CAApC,CAAhB;AAEA,wBAAU,YAAM;AACd,QAAMiD,YAAY,GAAG,SAAfA,YAAe,GAAM;AAAA;;AACzB,UAAI,EAAChD,MAAD,4BAACA,MAAM,CAAEiD,IAAT,aAAC,aAAcC,EAAf,CAAJ,EAAuB;;AACvB,UAAItD,oBAAJ,EAA0B;AACxB,YAAI;AACF,cAAMuD,cAAc,GAAG,8BAAY;AAAEC,YAAAA,aAAa,EAAEpD,MAAM,CAACiD,IAAP,CAAYC,EAA7B;AAAiCrD,YAAAA,OAAO,EAAPA,OAAjC;AAA0CE,YAAAA,IAAI,EAAJA;AAA1C,WAAZ,CAAvB;AACAG,UAAAA,WAAW,CACTF,MAAM,CAACqD,qBAAP,CAA6BF,cAA7B,EAA6C;AAC3CG,YAAAA,WAAW,EAAE;AAD8B,WAA7C,CADS,CAAX;AAKD,SAPD,CAOE,OAAOC,CAAP,EAAU;AACVf,UAAAA,OAAO,CAACC,IAAR,CAAa,wCAAb,EAAuDc,CAAvD;AACD;AACF;;AAEDV,MAAAA,UAAU;AACX,KAhBD;;AAkBAG,IAAAA,YAAY;AACb,GApBD,EAoBG,CAACF,SAAD,EAAYC,OAAZ,CApBH;AAsBA,SAAO;AACL9C,IAAAA,QAAQ,EAARA,QADK;AAELK,IAAAA,KAAK,EAALA,KAFK;AAGLE,IAAAA,WAAW,EAAXA,WAHK;AAILgD,IAAAA,eAAe,EACb1C,eAAe,KAAK,cAApB,GACI,IADJ,GAEIA,eAAe,KAAK,QAApB,IAAgCb,QAAQ,CAACmC,MAAT,KAAoB,CAPrD;AAQLqB,IAAAA,eAAe,EAAE3C,eAAe,KAAK,cARhC;AASL6B,IAAAA,YAAY,EAAZA,YATK;AAULe,IAAAA,UAAU,EAAE5C,eAAe,KAAK,SAV3B;AAWL8B,IAAAA,WAAW,EAAXA,WAXK;AAYLC,IAAAA,UAAU,EAAVA,UAZK;AAaL3C,IAAAA,WAAW,EAAXA,WAbK;AAcLC,IAAAA,oBAAoB,EAApBA;AAdK,GAAP;AAgBD,CAnLM","sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react';\n\nimport type { Channel, ChannelFilters, ChannelOptions, ChannelSort } from 'stream-chat';\n\nimport { useActiveChannelsRefContext } from '../../../contexts/activeChannelsRefContext/ActiveChannelsRefContext';\nimport { useChatContext } from '../../../contexts/chatContext/ChatContext';\nimport { useIsMountedRef } from '../../../hooks/useIsMountedRef';\n\nimport { getChannels } from '../../../store/apis/getChannels';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport { ONE_SECOND_IN_MS } from '../../../utils/date';\nimport { MAX_QUERY_CHANNELS_LIMIT } from '../utils';\n\nconst waitSeconds = (seconds: number) =>\n new Promise((resolve) => {\n setTimeout(resolve, seconds * ONE_SECOND_IN_MS);\n });\n\ntype Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n {\n enableOfflineSupport: boolean;\n filters: ChannelFilters<StreamChatGenerics>;\n options: ChannelOptions;\n sort: ChannelSort<StreamChatGenerics>;\n };\n\nconst DEFAULT_OPTIONS = {\n message_limit: 10,\n};\n\nconst MAX_NUMBER_OF_RETRIES = 3;\nconst RETRY_INTERVAL_IN_MS = 5000;\n\ntype QueryType = 'queryLocalDB' | 'reload' | 'refresh' | 'loadChannels';\n\nexport type QueryChannels = (queryType?: QueryType, retryCount?: number) => Promise<void>;\n\nexport const usePaginatedChannels = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n enableOfflineSupport,\n filters = {},\n options = DEFAULT_OPTIONS,\n sort = {},\n}: Parameters<StreamChatGenerics>) => {\n const { client } = useChatContext<StreamChatGenerics>();\n\n const [channels, setChannels] = useState<Channel<StreamChatGenerics>[]>([]);\n const [staticChannelsActive, setStaticChannelsActive] = useState<boolean>(true);\n const activeChannels = useActiveChannelsRefContext();\n\n const [error, setError] = useState<Error>();\n const [hasNextPage, setHasNextPage] = useState(true);\n const lastRefresh = useRef(Date.now());\n const isQueryingRef = useRef(false);\n const [activeQueryType, setActiveQueryType] = useState<QueryType | null>('queryLocalDB');\n const isMountedRef = useIsMountedRef();\n const filtersRef = useRef<typeof filters | null>(null);\n const sortRef = useRef<typeof sort | null>(null);\n const activeRequestId = useRef<number>(0);\n\n const queryChannels: QueryChannels = async (\n queryType: QueryType = 'loadChannels',\n retryCount = 0,\n ): Promise<void> => {\n if (!client || !isMountedRef.current) return;\n\n const hasUpdatedData =\n queryType === 'loadChannels' ||\n queryType === 'refresh' ||\n [\n JSON.stringify(filtersRef.current) !== JSON.stringify(filters),\n JSON.stringify(sortRef.current) !== JSON.stringify(sort),\n ].some(Boolean);\n\n const isQueryStale = () => !isMountedRef || activeRequestId.current !== currentRequestId;\n\n /**\n * We don't need to make another call to query channels if we don't\n * have new data for the query to include\n * */\n if (!hasUpdatedData) {\n if (activeQueryType === null) return;\n }\n\n filtersRef.current = filters;\n sortRef.current = sort;\n isQueryingRef.current = true;\n setError(undefined);\n activeRequestId.current++;\n const currentRequestId = activeRequestId.current;\n setActiveQueryType(queryType);\n\n const newOptions = {\n limit: options?.limit ?? MAX_QUERY_CHANNELS_LIMIT,\n offset: queryType === 'loadChannels' && !staticChannelsActive ? channels.length : 0,\n ...options,\n };\n\n try {\n const channelQueryResponse = await client.queryChannels(filters, sort, newOptions, {\n skipInitialization: activeChannels.current,\n });\n\n if (isQueryStale() || !isMountedRef.current) {\n return;\n }\n const newChannels =\n queryType === 'loadChannels' && !staticChannelsActive\n ? [...channels, ...channelQueryResponse]\n : channelQueryResponse;\n\n setChannels(newChannels);\n setStaticChannelsActive(false);\n setHasNextPage(channelQueryResponse.length >= newOptions.limit);\n setError(undefined);\n isQueryingRef.current = false;\n } catch (err: unknown) {\n isQueryingRef.current = false;\n await waitSeconds(2);\n\n if (isQueryStale()) {\n return;\n }\n\n // querying.current check is needed in order to make sure the next query call doesnt flick an error\n // state and then succeed (reconnect case)\n if (retryCount === MAX_NUMBER_OF_RETRIES && !isQueryingRef.current) {\n setActiveQueryType(null);\n console.warn(err);\n\n setError(\n new Error(\n `Maximum number of retries reached in queryChannels. Last error message is: ${err}`,\n ),\n );\n return;\n }\n\n return queryChannels(queryType, retryCount + 1);\n }\n\n setActiveQueryType(null);\n };\n\n const loadNextPage = hasNextPage ? queryChannels : undefined;\n\n const refreshList = () => {\n const now = Date.now();\n // Only allow pull-to-refresh 5 seconds after last successful refresh.\n if (now - lastRefresh.current < RETRY_INTERVAL_IN_MS && error === undefined) {\n return;\n }\n\n lastRefresh.current = Date.now();\n return queryChannels('refresh');\n };\n\n const reloadList = () => queryChannels('reload');\n\n /**\n * Equality check using stringified filters/sort ensure that we don't make un-necessary queryChannels api calls\n * for the scenario:\n *\n * <ChannelList\n * filters={{\n * members: { $in: ['vishal'] }\n * }}\n * ...\n * />\n *\n * Here we have passed filters as inline object, which means on every re-render of\n * parent component, ChannelList will receive new object reference (even though value is same), which\n * in return will trigger useEffect. To avoid this, we can add a value check.\n */\n const filterStr = useMemo(() => JSON.stringify(filters), [filters]);\n const sortStr = useMemo(() => JSON.stringify(sort), [sort]);\n\n useEffect(() => {\n const loadChannels = () => {\n if (!client?.user?.id) return;\n if (enableOfflineSupport) {\n try {\n const channelsFromDB = getChannels({ currentUserId: client.user.id, filters, sort });\n setChannels(\n client.hydrateActiveChannels(channelsFromDB, {\n staticState: true,\n }),\n );\n } catch (e) {\n console.warn('Failed to get channels from database: ', e);\n }\n }\n\n reloadList();\n };\n\n loadChannels();\n }, [filterStr, sortStr]);\n\n return {\n channels,\n error,\n hasNextPage,\n loadingChannels:\n activeQueryType === 'queryLocalDB'\n ? true\n : activeQueryType === 'reload' && channels.length === 0,\n loadingNextPage: activeQueryType === 'loadChannels',\n loadNextPage,\n refreshing: activeQueryType === 'refresh',\n refreshList,\n reloadList,\n setChannels,\n staticChannelsActive,\n };\n};\n"]}
1
+ {"version":3,"sources":["usePaginatedChannels.ts"],"names":["waitSeconds","seconds","Promise","resolve","setTimeout","ONE_SECOND_IN_MS","DEFAULT_OPTIONS","message_limit","MAX_NUMBER_OF_RETRIES","RETRY_INTERVAL_IN_MS","usePaginatedChannels","enableOfflineSupport","filters","options","sort","client","initialChannelsStateRef","current","channels","setChannels","staticChannelsActive","setStaticChannelsActive","activeChannels","error","setError","hasNextPage","setHasNextPage","lastRefresh","Date","now","isQueryingRef","activeQueryType","setActiveQueryType","isMountedRef","filtersRef","sortRef","activeRequestId","queryChannels","queryType","retryCount","hasUpdatedData","JSON","stringify","some","Boolean","isQueryStale","currentRequestId","undefined","newOptions","limit","MAX_QUERY_CHANNELS_LIMIT","offset","length","skipInitialization","channelQueryResponse","newChannels","console","warn","Error","loadNextPage","refreshList","reloadList","filterStr","sortStr","loadChannels","user","id","channelsFromDB","currentUserId","hydrateActiveChannels","offlineMode","e","loadingChannels","loadingNextPage","refreshing"],"mappings":"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","sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react';\n\nimport type { Channel, ChannelFilters, ChannelOptions, ChannelSort } from 'stream-chat';\n\nimport { useActiveChannelsRefContext } from '../../../contexts/activeChannelsRefContext/ActiveChannelsRefContext';\nimport { useChatContext } from '../../../contexts/chatContext/ChatContext';\nimport { useIsMountedRef } from '../../../hooks/useIsMountedRef';\n\nimport { getChannelsForFilterSort } from '../../../store/apis/getChannelsForFilterSort';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport { ONE_SECOND_IN_MS } from '../../../utils/date';\nimport { MAX_QUERY_CHANNELS_LIMIT } from '../utils';\n\nconst waitSeconds = (seconds: number) =>\n new Promise((resolve) => {\n setTimeout(resolve, seconds * ONE_SECOND_IN_MS);\n });\n\ntype Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n {\n enableOfflineSupport: boolean;\n filters: ChannelFilters<StreamChatGenerics>;\n options: ChannelOptions;\n sort: ChannelSort<StreamChatGenerics>;\n };\n\nconst DEFAULT_OPTIONS = {\n message_limit: 10,\n};\n\nconst MAX_NUMBER_OF_RETRIES = 3;\nconst RETRY_INTERVAL_IN_MS = 5000;\n\ntype QueryType = 'queryLocalDB' | 'reload' | 'refresh' | 'loadChannels';\n\nexport type QueryChannels = (queryType?: QueryType, retryCount?: number) => Promise<void>;\n\nexport const usePaginatedChannels = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n enableOfflineSupport,\n filters = {},\n options = DEFAULT_OPTIONS,\n sort = {},\n}: Parameters<StreamChatGenerics>) => {\n const { client } = useChatContext<StreamChatGenerics>();\n const initialChannelsStateRef = useRef([]);\n const [channels, setChannels] = useState<Channel<StreamChatGenerics>[]>(\n initialChannelsStateRef.current,\n );\n const [staticChannelsActive, setStaticChannelsActive] = useState<boolean>(true);\n const activeChannels = useActiveChannelsRefContext();\n\n const [error, setError] = useState<Error>();\n const [hasNextPage, setHasNextPage] = useState(true);\n const lastRefresh = useRef(Date.now());\n const isQueryingRef = useRef(false);\n const [activeQueryType, setActiveQueryType] = useState<QueryType | null>('queryLocalDB');\n const isMountedRef = useIsMountedRef();\n const filtersRef = useRef<typeof filters | null>(null);\n const sortRef = useRef<typeof sort | null>(null);\n const activeRequestId = useRef<number>(0);\n\n const queryChannels: QueryChannels = async (\n queryType: QueryType = 'loadChannels',\n retryCount = 0,\n ): Promise<void> => {\n if (!client || !isMountedRef.current) return;\n\n const hasUpdatedData =\n queryType === 'loadChannels' ||\n queryType === 'refresh' ||\n [\n JSON.stringify(filtersRef.current) !== JSON.stringify(filters),\n JSON.stringify(sortRef.current) !== JSON.stringify(sort),\n ].some(Boolean);\n\n const isQueryStale = () => !isMountedRef || activeRequestId.current !== currentRequestId;\n\n /**\n * We don't need to make another call to query channels if we don't\n * have new data for the query to include\n * */\n if (!hasUpdatedData) {\n if (activeQueryType === null) return;\n }\n\n filtersRef.current = filters;\n sortRef.current = sort;\n isQueryingRef.current = true;\n setError(undefined);\n activeRequestId.current++;\n const currentRequestId = activeRequestId.current;\n setActiveQueryType(queryType);\n\n const newOptions = {\n limit: options?.limit ?? MAX_QUERY_CHANNELS_LIMIT,\n offset: queryType === 'loadChannels' && !staticChannelsActive ? channels.length : 0,\n ...options,\n };\n\n try {\n const channelQueryResponse = await client.queryChannels(filters, sort, newOptions, {\n skipInitialization: activeChannels.current,\n });\n\n if (isQueryStale() || !isMountedRef.current) {\n return;\n }\n const newChannels =\n queryType === 'loadChannels' && !staticChannelsActive\n ? [...channels, ...channelQueryResponse]\n : channelQueryResponse;\n\n setChannels(newChannels);\n setStaticChannelsActive(false);\n setHasNextPage(channelQueryResponse.length >= newOptions.limit);\n setError(undefined);\n isQueryingRef.current = false;\n } catch (err: unknown) {\n isQueryingRef.current = false;\n await waitSeconds(2);\n\n if (isQueryStale()) {\n return;\n }\n\n // querying.current check is needed in order to make sure the next query call doesnt flick an error\n // state and then succeed (reconnect case)\n if (retryCount === MAX_NUMBER_OF_RETRIES && !isQueryingRef.current) {\n setActiveQueryType(null);\n console.warn(err);\n\n setError(\n new Error(\n `Maximum number of retries reached in queryChannels. Last error message is: ${err}`,\n ),\n );\n return;\n }\n\n return queryChannels(queryType, retryCount + 1);\n }\n\n setActiveQueryType(null);\n };\n\n const loadNextPage = hasNextPage ? queryChannels : undefined;\n\n const refreshList = () => {\n const now = Date.now();\n // Only allow pull-to-refresh 5 seconds after last successful refresh.\n if (now - lastRefresh.current < RETRY_INTERVAL_IN_MS && error === undefined) {\n return;\n }\n\n lastRefresh.current = Date.now();\n return queryChannels('refresh');\n };\n\n const reloadList = () => queryChannels('reload');\n\n /**\n * Equality check using stringified filters/sort ensure that we don't make un-necessary queryChannels api calls\n * for the scenario:\n *\n * <ChannelList\n * filters={{\n * members: { $in: ['vishal'] }\n * }}\n * ...\n * />\n *\n * Here we have passed filters as inline object, which means on every re-render of\n * parent component, ChannelList will receive new object reference (even though value is same), which\n * in return will trigger useEffect. To avoid this, we can add a value check.\n */\n const filterStr = useMemo(() => JSON.stringify(filters), [filters]);\n const sortStr = useMemo(() => JSON.stringify(sort), [sort]);\n\n useEffect(() => {\n const loadChannels = () => {\n if (!client?.user?.id) return;\n if (enableOfflineSupport) {\n try {\n const channelsFromDB = getChannelsForFilterSort({\n currentUserId: client.user.id,\n filters,\n sort,\n });\n\n if (channelsFromDB) {\n setChannels(\n client.hydrateActiveChannels(channelsFromDB, {\n offlineMode: true,\n }),\n );\n }\n } catch (e) {\n console.warn('Failed to get channels from database: ', e);\n }\n }\n\n reloadList();\n };\n\n loadChannels();\n }, [filterStr, sortStr]);\n\n return {\n channels,\n error,\n hasNextPage,\n loadingChannels:\n activeQueryType === 'queryLocalDB'\n ? true\n : activeQueryType === 'reload' && channels === initialChannelsStateRef.current,\n loadingNextPage: activeQueryType === 'loadChannels',\n loadNextPage,\n refreshing: activeQueryType === 'refresh',\n refreshList,\n reloadList,\n setChannels,\n staticChannelsActive,\n };\n};\n"]}
@@ -75,11 +75,15 @@ var ChannelPreviewWithContext = function ChannelPreviewWithContext(props) {
75
75
  };
76
76
 
77
77
  var handleUpdatedOrDeletedMessage = function handleUpdatedOrDeletedMessage(event) {
78
- var _event$message;
78
+ setLastMessage(function (prevLastMessage) {
79
+ var _event$message;
79
80
 
80
- if (((_event$message = event.message) == null ? void 0 : _event$message.id) === (lastMessage == null ? void 0 : lastMessage.id)) {
81
- setLastMessage(event.message);
82
- }
81
+ if ((prevLastMessage == null ? void 0 : prevLastMessage.id) === ((_event$message = event.message) == null ? void 0 : _event$message.id)) {
82
+ return event.message;
83
+ }
84
+
85
+ return prevLastMessage;
86
+ });
83
87
  };
84
88
 
85
89
  var listeners = [channel.on('message.new', handleNewMessageEvent), channel.on('message.updated', handleUpdatedOrDeletedMessage), channel.on('message.deleted', handleUpdatedOrDeletedMessage)];
@@ -114,7 +118,7 @@ var ChannelPreviewWithContext = function ChannelPreviewWithContext(props) {
114
118
  __self: _this,
115
119
  __source: {
116
120
  fileName: _jsxFileName,
117
- lineNumber: 108,
121
+ lineNumber: 111,
118
122
  columnNumber: 10
119
123
  }
120
124
  });
@@ -134,7 +138,7 @@ var ChannelPreview = function ChannelPreview(props) {
134
138
  __self: _this,
135
139
  __source: {
136
140
  fileName: _jsxFileName,
137
- lineNumber: 124,
141
+ lineNumber: 127,
138
142
  columnNumber: 10
139
143
  }
140
144
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["ChannelPreview.tsx"],"names":["ChannelPreviewWithContext","props","channel","client","Preview","state","messages","length","lastMessage","setLastMessage","translatedLastMessage","forceUpdate","setForceUpdate","countUnread","unread","setUnread","latestMessagePreview","channelLastMessage","channelLastMessageString","id","updated_at","newUnreadCount","handleNewMessageEvent","event","message","parent_id","show_in_channel","handleUpdatedOrDeletedMessage","listeners","on","forEach","l","unsubscribe","handleReadEvent","user","userID","prev","listener","ChannelPreview"],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react';\n\nimport type { Channel, ChannelState, Event, MessageResponse } from 'stream-chat';\n\nimport { useLatestMessagePreview } from './hooks/useLatestMessagePreview';\n\nimport {\n ChannelsContextValue,\n useChannelsContext,\n} from '../../contexts/channelsContext/ChannelsContext';\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\n\nimport { useTranslatedMessage } from '../../hooks/useTranslatedMessage';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nexport type ChannelPreviewPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChatContextValue<StreamChatGenerics>, 'client'> &\n Pick<ChannelsContextValue<StreamChatGenerics>, 'Preview'> & {\n /**\n * The previewed channel\n */\n channel: Channel<StreamChatGenerics>;\n };\n\n/**\n * This component manages state for the ChannelPreviewMessenger UI component and receives\n * all props from the ChannelListMessenger component.\n */\nconst ChannelPreviewWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const { channel, client, Preview } = props;\n\n const [lastMessage, setLastMessage] = useState<\n | ReturnType<ChannelState<StreamChatGenerics>['formatMessage']>\n | MessageResponse<StreamChatGenerics>\n | undefined\n >(channel.state.messages[channel.state.messages.length - 1]);\n\n const translatedLastMessage = useTranslatedMessage<StreamChatGenerics>(\n lastMessage || ({} as MessageResponse<StreamChatGenerics>),\n );\n\n const [forceUpdate, setForceUpdate] = useState(0);\n const [unread, setUnread] = useState(channel.countUnread());\n\n const latestMessagePreview = useLatestMessagePreview(channel, forceUpdate, translatedLastMessage);\n\n const channelLastMessage = channel.lastMessage();\n const channelLastMessageString = `${channelLastMessage?.id}${channelLastMessage?.updated_at}`;\n\n useEffect(() => {\n if (\n channelLastMessage &&\n (channelLastMessage.id !== lastMessage?.id ||\n channelLastMessage.updated_at !== lastMessage?.updated_at)\n ) {\n setLastMessage(channelLastMessage);\n }\n\n const newUnreadCount = channel.countUnread();\n\n if (newUnreadCount !== unread) {\n setUnread(newUnreadCount);\n }\n }, [channelLastMessageString]);\n\n useEffect(() => {\n const handleNewMessageEvent = (event: Event<StreamChatGenerics>) => {\n const message = event.message;\n if (message && (!message.parent_id || message.show_in_channel)) {\n setLastMessage(event.message);\n setUnread(channel.countUnread());\n }\n };\n\n const handleUpdatedOrDeletedMessage = (event: Event<StreamChatGenerics>) => {\n if (event.message?.id === lastMessage?.id) {\n setLastMessage(event.message);\n }\n };\n\n const listeners = [\n channel.on('message.new', handleNewMessageEvent),\n channel.on('message.updated', handleUpdatedOrDeletedMessage),\n channel.on('message.deleted', handleUpdatedOrDeletedMessage),\n ];\n\n return () => listeners.forEach((l) => l.unsubscribe());\n }, []);\n\n useEffect(() => {\n const handleReadEvent = (event: Event<StreamChatGenerics>) => {\n if (event.user?.id === client.userID) {\n setUnread(0);\n } else if (event.user?.id) {\n setForceUpdate((prev) => prev + 1);\n }\n };\n\n const listener = channel.on('message.read', handleReadEvent);\n return () => listener.unsubscribe();\n }, []);\n\n return <Preview channel={channel} latestMessagePreview={latestMessagePreview} unread={unread} />;\n};\n\nexport type ChannelPreviewProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<ChannelPreviewPropsWithContext<StreamChatGenerics>, 'channel'>> &\n Pick<ChannelPreviewPropsWithContext<StreamChatGenerics>, 'channel'>;\n\nexport const ChannelPreview = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewProps<StreamChatGenerics>,\n) => {\n const { client } = useChatContext<StreamChatGenerics>();\n const { Preview } = useChannelsContext<StreamChatGenerics>();\n\n return <ChannelPreviewWithContext {...{ client, Preview }} {...props} />;\n};\n"]}
1
+ {"version":3,"sources":["ChannelPreview.tsx"],"names":["ChannelPreviewWithContext","props","channel","client","Preview","state","messages","length","lastMessage","setLastMessage","translatedLastMessage","forceUpdate","setForceUpdate","countUnread","unread","setUnread","latestMessagePreview","channelLastMessage","channelLastMessageString","id","updated_at","newUnreadCount","handleNewMessageEvent","event","message","parent_id","show_in_channel","handleUpdatedOrDeletedMessage","prevLastMessage","listeners","on","forEach","l","unsubscribe","handleReadEvent","user","userID","prev","listener","ChannelPreview"],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react';\n\nimport type { Channel, ChannelState, Event, MessageResponse } from 'stream-chat';\n\nimport { useLatestMessagePreview } from './hooks/useLatestMessagePreview';\n\nimport {\n ChannelsContextValue,\n useChannelsContext,\n} from '../../contexts/channelsContext/ChannelsContext';\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\n\nimport { useTranslatedMessage } from '../../hooks/useTranslatedMessage';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nexport type ChannelPreviewPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChatContextValue<StreamChatGenerics>, 'client'> &\n Pick<ChannelsContextValue<StreamChatGenerics>, 'Preview'> & {\n /**\n * The previewed channel\n */\n channel: Channel<StreamChatGenerics>;\n };\n\n/**\n * This component manages state for the ChannelPreviewMessenger UI component and receives\n * all props from the ChannelListMessenger component.\n */\nconst ChannelPreviewWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const { channel, client, Preview } = props;\n\n const [lastMessage, setLastMessage] = useState<\n | ReturnType<ChannelState<StreamChatGenerics>['formatMessage']>\n | MessageResponse<StreamChatGenerics>\n | undefined\n >(channel.state.messages[channel.state.messages.length - 1]);\n\n const translatedLastMessage = useTranslatedMessage<StreamChatGenerics>(\n lastMessage || ({} as MessageResponse<StreamChatGenerics>),\n );\n\n const [forceUpdate, setForceUpdate] = useState(0);\n const [unread, setUnread] = useState(channel.countUnread());\n\n const latestMessagePreview = useLatestMessagePreview(channel, forceUpdate, translatedLastMessage);\n\n const channelLastMessage = channel.lastMessage();\n const channelLastMessageString = `${channelLastMessage?.id}${channelLastMessage?.updated_at}`;\n\n useEffect(() => {\n if (\n channelLastMessage &&\n (channelLastMessage.id !== lastMessage?.id ||\n channelLastMessage.updated_at !== lastMessage?.updated_at)\n ) {\n setLastMessage(channelLastMessage);\n }\n\n const newUnreadCount = channel.countUnread();\n\n if (newUnreadCount !== unread) {\n setUnread(newUnreadCount);\n }\n }, [channelLastMessageString]);\n\n useEffect(() => {\n const handleNewMessageEvent = (event: Event<StreamChatGenerics>) => {\n const message = event.message;\n if (message && (!message.parent_id || message.show_in_channel)) {\n setLastMessage(event.message);\n setUnread(channel.countUnread());\n }\n };\n\n const handleUpdatedOrDeletedMessage = (event: Event<StreamChatGenerics>) => {\n setLastMessage((prevLastMessage) => {\n if (prevLastMessage?.id === event.message?.id) {\n return event.message;\n }\n return prevLastMessage;\n });\n };\n\n const listeners = [\n channel.on('message.new', handleNewMessageEvent),\n channel.on('message.updated', handleUpdatedOrDeletedMessage),\n channel.on('message.deleted', handleUpdatedOrDeletedMessage),\n ];\n\n return () => listeners.forEach((l) => l.unsubscribe());\n }, []);\n\n useEffect(() => {\n const handleReadEvent = (event: Event<StreamChatGenerics>) => {\n if (event.user?.id === client.userID) {\n setUnread(0);\n } else if (event.user?.id) {\n setForceUpdate((prev) => prev + 1);\n }\n };\n\n const listener = channel.on('message.read', handleReadEvent);\n return () => listener.unsubscribe();\n }, []);\n\n return <Preview channel={channel} latestMessagePreview={latestMessagePreview} unread={unread} />;\n};\n\nexport type ChannelPreviewProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<ChannelPreviewPropsWithContext<StreamChatGenerics>, 'channel'>> &\n Pick<ChannelPreviewPropsWithContext<StreamChatGenerics>, 'channel'>;\n\nexport const ChannelPreview = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewProps<StreamChatGenerics>,\n) => {\n const { client } = useChatContext<StreamChatGenerics>();\n const { Preview } = useChannelsContext<StreamChatGenerics>();\n\n return <ChannelPreviewWithContext {...{ client, Preview }} {...props} />;\n};\n"]}