stream-chat-react-native-core 5.0.0-offline-support.14 → 5.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (574) hide show
  1. package/lib/commonjs/components/Attachment/Attachment.js +1 -1
  2. package/lib/commonjs/components/Attachment/AttachmentActions.js +1 -1
  3. package/lib/commonjs/components/Attachment/AudioAttachment.js +1 -1
  4. package/lib/commonjs/components/Attachment/Card.js +1 -1
  5. package/lib/commonjs/components/Attachment/FileAttachment.js +17 -8
  6. package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
  7. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +1 -1
  8. package/lib/commonjs/components/Attachment/FileIcon.js +1 -1
  9. package/lib/commonjs/components/Attachment/Gallery.js +20 -18
  10. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  11. package/lib/commonjs/components/Attachment/GalleryImage.js +1 -1
  12. package/lib/commonjs/components/Attachment/Giphy.js +11 -11
  13. package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
  14. package/lib/commonjs/components/Attachment/ImageLoadingFailedIndicator.js +1 -1
  15. package/lib/commonjs/components/Attachment/ImageLoadingIndicator.js +1 -1
  16. package/lib/commonjs/components/Attachment/VideoThumbnail.js +1 -1
  17. package/lib/commonjs/components/Attachment/utils/getGiphyMimeType.js +15 -0
  18. package/lib/commonjs/components/Attachment/utils/getGiphyMimeType.js.map +1 -0
  19. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +1 -1
  20. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js +1 -1
  21. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerError.js +1 -1
  22. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerErrorImage.js +1 -1
  23. package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js +1 -1
  24. package/lib/commonjs/components/AttachmentPicker/components/CameraSelectorIcon.js +1 -1
  25. package/lib/commonjs/components/AttachmentPicker/components/FileSelectorIcon.js +1 -1
  26. package/lib/commonjs/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js +1 -1
  27. package/lib/commonjs/components/AttachmentPicker/components/ImageSelectorIcon.js +1 -1
  28. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +1 -1
  29. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js +1 -1
  30. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +1 -1
  31. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +1 -1
  32. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
  33. package/lib/commonjs/components/Avatar/Avatar.js +1 -1
  34. package/lib/commonjs/components/Avatar/GroupAvatar.js +1 -1
  35. package/lib/commonjs/components/Channel/Channel.js +2 -2
  36. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  37. package/lib/commonjs/components/ChannelList/ChannelList.js +1 -1
  38. package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -1
  39. package/lib/commonjs/components/ChannelList/ChannelListHeaderErrorIndicator.js +1 -1
  40. package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +1 -1
  41. package/lib/commonjs/components/ChannelList/ChannelListLoadingIndicator.js +1 -1
  42. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js +1 -1
  43. package/lib/commonjs/components/ChannelList/Skeleton.js +1 -1
  44. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js +16 -4
  45. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  46. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +1 -1
  47. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  48. package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js +1 -1
  49. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +11 -7
  50. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
  51. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js +1 -1
  52. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +1 -1
  53. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js +1 -1
  54. package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js +1 -1
  55. package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  56. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js +1 -1
  57. package/lib/commonjs/components/Chat/Chat.js +1 -1
  58. package/lib/commonjs/components/ImageGallery/ImageGallery.js +39 -31
  59. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  60. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +1 -1
  61. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js +1 -1
  62. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +1 -1
  63. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +1 -1
  64. package/lib/commonjs/components/ImageGallery/components/ImageGalleryOverlay.js +1 -1
  65. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +1 -1
  66. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +3 -3
  67. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
  68. package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js +1 -1
  69. package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js +6 -0
  70. package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
  71. package/lib/commonjs/components/Indicators/EmptyStateIndicator.js +1 -1
  72. package/lib/commonjs/components/Indicators/LoadingDot.js +1 -1
  73. package/lib/commonjs/components/Indicators/LoadingDots.js +1 -1
  74. package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js +1 -1
  75. package/lib/commonjs/components/Indicators/LoadingIndicator.js +1 -1
  76. package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js +1 -1
  77. package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js +1 -1
  78. package/lib/commonjs/components/Message/Message.js +7 -7
  79. package/lib/commonjs/components/Message/Message.js.map +1 -1
  80. package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js +1 -1
  81. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +1 -1
  82. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js +1 -1
  83. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +1 -1
  84. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js +1 -1
  85. package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js +1 -1
  86. package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js +1 -1
  87. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +1 -1
  88. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +1 -1
  89. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +8 -4
  90. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  91. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +1 -1
  92. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +2 -2
  93. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  94. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js +1 -1
  95. package/lib/commonjs/components/Message/hooks/useMessageActions.js +1 -1
  96. package/lib/commonjs/components/MessageInput/AttachButton.js +1 -1
  97. package/lib/commonjs/components/MessageInput/CommandsButton.js +1 -1
  98. package/lib/commonjs/components/MessageInput/CooldownTimer.js +1 -1
  99. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +1 -1
  100. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +50 -32
  101. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  102. package/lib/commonjs/components/MessageInput/InputButtons.js +1 -1
  103. package/lib/commonjs/components/MessageInput/MessageInput.js +1 -1
  104. package/lib/commonjs/components/MessageInput/MoreOptionsButton.js +1 -1
  105. package/lib/commonjs/components/MessageInput/SendButton.js +1 -1
  106. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js +1 -1
  107. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -1
  108. package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js +1 -1
  109. package/lib/commonjs/components/MessageInput/components/InputEditingStateHeader.js +1 -1
  110. package/lib/commonjs/components/MessageInput/components/InputGiphySearch.js +1 -1
  111. package/lib/commonjs/components/MessageInput/components/InputReplyStateHeader.js +1 -1
  112. package/lib/commonjs/components/MessageList/DateHeader.js +1 -1
  113. package/lib/commonjs/components/MessageList/InlineDateSeparator.js +1 -1
  114. package/lib/commonjs/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
  115. package/lib/commonjs/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
  116. package/lib/commonjs/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
  117. package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js +1 -1
  118. package/lib/commonjs/components/MessageList/MessageList.js +6 -6
  119. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  120. package/lib/commonjs/components/MessageList/MessageSystem.js +1 -1
  121. package/lib/commonjs/components/MessageList/NetworkDownIndicator.js +1 -1
  122. package/lib/commonjs/components/MessageList/ScrollToBottomButton.js +1 -1
  123. package/lib/commonjs/components/MessageList/TypingIndicator.js +1 -1
  124. package/lib/commonjs/components/MessageList/TypingIndicatorContainer.js +1 -1
  125. package/lib/commonjs/components/MessageOverlay/MessageActionList.js +1 -1
  126. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +1 -1
  127. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +1 -1
  128. package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js +1 -1
  129. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js +1 -1
  130. package/lib/commonjs/components/MessageOverlay/OverlayReactions.js +1 -1
  131. package/lib/commonjs/components/MessageOverlay/OverlayReactionsAvatar.js +1 -1
  132. package/lib/commonjs/components/ProgressControl/ProgressControl.js +1 -1
  133. package/lib/commonjs/components/RTLComponents/WritingDirectionAwareText.js +1 -1
  134. package/lib/commonjs/components/Reply/Reply.js +1 -1
  135. package/lib/commonjs/components/Spinner/Spinner.js +1 -1
  136. package/lib/commonjs/components/Thread/Thread.js +1 -1
  137. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +1 -1
  138. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +1 -1
  139. package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js +1 -1
  140. package/lib/commonjs/contexts/channelContext/ChannelContext.js +1 -1
  141. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js +1 -1
  142. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js +1 -1
  143. package/lib/commonjs/contexts/chatContext/ChatContext.js +1 -1
  144. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js +14 -15
  145. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  146. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.md +1 -1
  147. package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js +1 -1
  148. package/lib/commonjs/contexts/messageContext/MessageContext.js +1 -1
  149. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +1 -1
  150. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js +1 -1
  151. package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js +1 -1
  152. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +1 -1
  153. package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -1
  154. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +1 -1
  155. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +1 -1
  156. package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +1 -1
  157. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +1 -1
  158. package/lib/commonjs/contexts/themeContext/ThemeContext.js +1 -1
  159. package/lib/commonjs/contexts/themeContext/utils/theme.js +1 -0
  160. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  161. package/lib/commonjs/contexts/threadContext/ThreadContext.js +1 -1
  162. package/lib/commonjs/contexts/translationContext/TranslationContext.js +1 -1
  163. package/lib/commonjs/contexts/typingContext/TypingContext.js +1 -1
  164. package/lib/commonjs/icons/ArrowRight.js +1 -1
  165. package/lib/commonjs/icons/AtMentions.js +1 -1
  166. package/lib/commonjs/icons/Attach.js +1 -1
  167. package/lib/commonjs/icons/Audio.js +1 -1
  168. package/lib/commonjs/icons/CSV.js +1 -1
  169. package/lib/commonjs/icons/Camera.js +1 -1
  170. package/lib/commonjs/icons/Check.js +1 -1
  171. package/lib/commonjs/icons/CheckAll.js +1 -1
  172. package/lib/commonjs/icons/CheckSend.js +1 -1
  173. package/lib/commonjs/icons/CircleClose.js +1 -1
  174. package/lib/commonjs/icons/CirclePlus.js +1 -1
  175. package/lib/commonjs/icons/CircleRight.js +1 -1
  176. package/lib/commonjs/icons/Close.js +1 -1
  177. package/lib/commonjs/icons/Copy.js +1 -1
  178. package/lib/commonjs/icons/CurveLineLeftUp.js +1 -1
  179. package/lib/commonjs/icons/DOC.js +1 -1
  180. package/lib/commonjs/icons/DOCX.js +1 -1
  181. package/lib/commonjs/icons/Delete.js +1 -1
  182. package/lib/commonjs/icons/Down.js +1 -1
  183. package/lib/commonjs/icons/DownloadArrow.js +1 -1
  184. package/lib/commonjs/icons/DownloadCloud.js +1 -1
  185. package/lib/commonjs/icons/Edit.js +1 -1
  186. package/lib/commonjs/icons/Error.js +1 -1
  187. package/lib/commonjs/icons/Eye.js +1 -1
  188. package/lib/commonjs/icons/Flag.js +1 -1
  189. package/lib/commonjs/icons/Folder.js +1 -1
  190. package/lib/commonjs/icons/GenericFile.js +1 -1
  191. package/lib/commonjs/icons/GiphyIcon.js +1 -1
  192. package/lib/commonjs/icons/Grid.js +1 -1
  193. package/lib/commonjs/icons/Group.js +1 -1
  194. package/lib/commonjs/icons/HTML.js +1 -1
  195. package/lib/commonjs/icons/Imgur.js +1 -1
  196. package/lib/commonjs/icons/LOLReaction.js +1 -1
  197. package/lib/commonjs/icons/Lightning.js +1 -1
  198. package/lib/commonjs/icons/Link.js +1 -1
  199. package/lib/commonjs/icons/Loading.js +1 -1
  200. package/lib/commonjs/icons/Logo.js +1 -1
  201. package/lib/commonjs/icons/LoveReaction.js +1 -1
  202. package/lib/commonjs/icons/MD.js +1 -1
  203. package/lib/commonjs/icons/MailOpen.js +1 -1
  204. package/lib/commonjs/icons/MenuPointHorizontal.js +1 -1
  205. package/lib/commonjs/icons/MenuPointVertical.js +1 -1
  206. package/lib/commonjs/icons/MessageFlag.js +1 -1
  207. package/lib/commonjs/icons/MessageIcon.js +1 -1
  208. package/lib/commonjs/icons/Mute.js +1 -1
  209. package/lib/commonjs/icons/Notification.js +1 -1
  210. package/lib/commonjs/icons/ODT.js +1 -1
  211. package/lib/commonjs/icons/PDF.js +1 -1
  212. package/lib/commonjs/icons/PPT.js +1 -1
  213. package/lib/commonjs/icons/PPTX.js +1 -1
  214. package/lib/commonjs/icons/Pause.js +1 -1
  215. package/lib/commonjs/icons/Picture.js +1 -1
  216. package/lib/commonjs/icons/Pin.js +1 -1
  217. package/lib/commonjs/icons/PinHeader.js +1 -1
  218. package/lib/commonjs/icons/Play.js +1 -1
  219. package/lib/commonjs/icons/RAR.js +1 -1
  220. package/lib/commonjs/icons/RTF.js +1 -1
  221. package/lib/commonjs/icons/Recorder.js +1 -1
  222. package/lib/commonjs/icons/Refresh.js +1 -1
  223. package/lib/commonjs/icons/SEVEN_Z.js +1 -1
  224. package/lib/commonjs/icons/Search.js +1 -1
  225. package/lib/commonjs/icons/SendRight.js +1 -1
  226. package/lib/commonjs/icons/SendUp.js +1 -1
  227. package/lib/commonjs/icons/Share.js +1 -1
  228. package/lib/commonjs/icons/ShareRightArrow.js +1 -1
  229. package/lib/commonjs/icons/Smile.js +1 -1
  230. package/lib/commonjs/icons/Sound.js +1 -1
  231. package/lib/commonjs/icons/TAR.js +1 -1
  232. package/lib/commonjs/icons/TXT.js +1 -1
  233. package/lib/commonjs/icons/ThreadReply.js +1 -1
  234. package/lib/commonjs/icons/ThumbsDownReaction.js +1 -1
  235. package/lib/commonjs/icons/ThumbsUpReaction.js +1 -1
  236. package/lib/commonjs/icons/Time.js +1 -1
  237. package/lib/commonjs/icons/Unknown.js +1 -1
  238. package/lib/commonjs/icons/Unpin.js +1 -1
  239. package/lib/commonjs/icons/User.js +1 -1
  240. package/lib/commonjs/icons/UserAdd.js +1 -1
  241. package/lib/commonjs/icons/UserAdmin.js +1 -1
  242. package/lib/commonjs/icons/UserDelete.js +1 -1
  243. package/lib/commonjs/icons/UserMinus.js +1 -1
  244. package/lib/commonjs/icons/Video.js +1 -1
  245. package/lib/commonjs/icons/Warning.js +1 -1
  246. package/lib/commonjs/icons/WutReaction.js +1 -1
  247. package/lib/commonjs/icons/XLS.js +1 -1
  248. package/lib/commonjs/icons/XLSX.js +1 -1
  249. package/lib/commonjs/icons/ZIP.js +1 -1
  250. package/lib/commonjs/icons/utils/base.js +1 -1
  251. package/lib/commonjs/index.js +13 -1
  252. package/lib/commonjs/index.js.map +1 -1
  253. package/lib/commonjs/mock-builders/DB/mock.js +1 -13
  254. package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
  255. package/lib/commonjs/mock-builders/event/messageNew.js +2 -0
  256. package/lib/commonjs/mock-builders/event/messageNew.js.map +1 -1
  257. package/lib/commonjs/store/QuickSqliteClient.js +7 -3
  258. package/lib/commonjs/store/QuickSqliteClient.js.map +1 -1
  259. package/lib/commonjs/store/apis/index.js +264 -0
  260. package/lib/commonjs/store/apis/index.js.map +1 -0
  261. package/lib/commonjs/test-utils/BetterSqlite.js +54 -0
  262. package/lib/commonjs/test-utils/BetterSqlite.js.map +1 -0
  263. package/lib/commonjs/version.json +1 -1
  264. package/lib/module/components/Attachment/Attachment.js +1 -1
  265. package/lib/module/components/Attachment/AttachmentActions.js +1 -1
  266. package/lib/module/components/Attachment/AudioAttachment.js +1 -1
  267. package/lib/module/components/Attachment/Card.js +1 -1
  268. package/lib/module/components/Attachment/FileAttachment.js +17 -8
  269. package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
  270. package/lib/module/components/Attachment/FileAttachmentGroup.js +1 -1
  271. package/lib/module/components/Attachment/FileIcon.js +1 -1
  272. package/lib/module/components/Attachment/Gallery.js +20 -18
  273. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  274. package/lib/module/components/Attachment/GalleryImage.js +1 -1
  275. package/lib/module/components/Attachment/Giphy.js +11 -11
  276. package/lib/module/components/Attachment/Giphy.js.map +1 -1
  277. package/lib/module/components/Attachment/ImageLoadingFailedIndicator.js +1 -1
  278. package/lib/module/components/Attachment/ImageLoadingIndicator.js +1 -1
  279. package/lib/module/components/Attachment/VideoThumbnail.js +1 -1
  280. package/lib/module/components/Attachment/utils/getGiphyMimeType.js +15 -0
  281. package/lib/module/components/Attachment/utils/getGiphyMimeType.js.map +1 -0
  282. package/lib/module/components/AttachmentPicker/AttachmentPicker.js +1 -1
  283. package/lib/module/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js +1 -1
  284. package/lib/module/components/AttachmentPicker/components/AttachmentPickerError.js +1 -1
  285. package/lib/module/components/AttachmentPicker/components/AttachmentPickerErrorImage.js +1 -1
  286. package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js +1 -1
  287. package/lib/module/components/AttachmentPicker/components/CameraSelectorIcon.js +1 -1
  288. package/lib/module/components/AttachmentPicker/components/FileSelectorIcon.js +1 -1
  289. package/lib/module/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js +1 -1
  290. package/lib/module/components/AttachmentPicker/components/ImageSelectorIcon.js +1 -1
  291. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +1 -1
  292. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js +1 -1
  293. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +1 -1
  294. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +1 -1
  295. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
  296. package/lib/module/components/Avatar/Avatar.js +1 -1
  297. package/lib/module/components/Avatar/GroupAvatar.js +1 -1
  298. package/lib/module/components/Channel/Channel.js +2 -2
  299. package/lib/module/components/Channel/Channel.js.map +1 -1
  300. package/lib/module/components/ChannelList/ChannelList.js +1 -1
  301. package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -1
  302. package/lib/module/components/ChannelList/ChannelListHeaderErrorIndicator.js +1 -1
  303. package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +1 -1
  304. package/lib/module/components/ChannelList/ChannelListLoadingIndicator.js +1 -1
  305. package/lib/module/components/ChannelList/ChannelListMessenger.js +1 -1
  306. package/lib/module/components/ChannelList/Skeleton.js +1 -1
  307. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js +16 -4
  308. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  309. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +1 -1
  310. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  311. package/lib/module/components/ChannelPreview/ChannelAvatar.js +1 -1
  312. package/lib/module/components/ChannelPreview/ChannelPreview.js +11 -7
  313. package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
  314. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js +1 -1
  315. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +1 -1
  316. package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js +1 -1
  317. package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js +1 -1
  318. package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  319. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js +1 -1
  320. package/lib/module/components/Chat/Chat.js +1 -1
  321. package/lib/module/components/ImageGallery/ImageGallery.js +39 -31
  322. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  323. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +1 -1
  324. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js +1 -1
  325. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +1 -1
  326. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +1 -1
  327. package/lib/module/components/ImageGallery/components/ImageGalleryOverlay.js +1 -1
  328. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +1 -1
  329. package/lib/module/components/ImageGallery/components/ImageGrid.js +3 -3
  330. package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
  331. package/lib/module/components/ImageGallery/components/ImageGridHandle.js +1 -1
  332. package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js +6 -0
  333. package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
  334. package/lib/module/components/Indicators/EmptyStateIndicator.js +1 -1
  335. package/lib/module/components/Indicators/LoadingDot.js +1 -1
  336. package/lib/module/components/Indicators/LoadingDots.js +1 -1
  337. package/lib/module/components/Indicators/LoadingErrorIndicator.js +1 -1
  338. package/lib/module/components/Indicators/LoadingIndicator.js +1 -1
  339. package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js +1 -1
  340. package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js +1 -1
  341. package/lib/module/components/Message/Message.js +7 -7
  342. package/lib/module/components/Message/Message.js.map +1 -1
  343. package/lib/module/components/Message/MessageSimple/MessageAvatar.js +1 -1
  344. package/lib/module/components/Message/MessageSimple/MessageContent.js +1 -1
  345. package/lib/module/components/Message/MessageSimple/MessageDeleted.js +1 -1
  346. package/lib/module/components/Message/MessageSimple/MessageFooter.js +1 -1
  347. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js +1 -1
  348. package/lib/module/components/Message/MessageSimple/MessageReplies.js +1 -1
  349. package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js +1 -1
  350. package/lib/module/components/Message/MessageSimple/MessageSimple.js +1 -1
  351. package/lib/module/components/Message/MessageSimple/MessageStatus.js +1 -1
  352. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +8 -4
  353. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  354. package/lib/module/components/Message/MessageSimple/ReactionList.js +1 -1
  355. package/lib/module/components/Message/MessageSimple/utils/renderText.js +2 -2
  356. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  357. package/lib/module/components/Message/MessageSimple/utils/renderText.test.js +1 -1
  358. package/lib/module/components/Message/hooks/useMessageActions.js +1 -1
  359. package/lib/module/components/MessageInput/AttachButton.js +1 -1
  360. package/lib/module/components/MessageInput/CommandsButton.js +1 -1
  361. package/lib/module/components/MessageInput/CooldownTimer.js +1 -1
  362. package/lib/module/components/MessageInput/FileUploadPreview.js +1 -1
  363. package/lib/module/components/MessageInput/ImageUploadPreview.js +50 -32
  364. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  365. package/lib/module/components/MessageInput/InputButtons.js +1 -1
  366. package/lib/module/components/MessageInput/MessageInput.js +1 -1
  367. package/lib/module/components/MessageInput/MoreOptionsButton.js +1 -1
  368. package/lib/module/components/MessageInput/SendButton.js +1 -1
  369. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js +1 -1
  370. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -1
  371. package/lib/module/components/MessageInput/UploadProgressIndicator.js +1 -1
  372. package/lib/module/components/MessageInput/components/InputEditingStateHeader.js +1 -1
  373. package/lib/module/components/MessageInput/components/InputGiphySearch.js +1 -1
  374. package/lib/module/components/MessageInput/components/InputReplyStateHeader.js +1 -1
  375. package/lib/module/components/MessageList/DateHeader.js +1 -1
  376. package/lib/module/components/MessageList/InlineDateSeparator.js +1 -1
  377. package/lib/module/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
  378. package/lib/module/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
  379. package/lib/module/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
  380. package/lib/module/components/MessageList/InlineUnreadIndicator.js +1 -1
  381. package/lib/module/components/MessageList/MessageList.js +6 -6
  382. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  383. package/lib/module/components/MessageList/MessageSystem.js +1 -1
  384. package/lib/module/components/MessageList/NetworkDownIndicator.js +1 -1
  385. package/lib/module/components/MessageList/ScrollToBottomButton.js +1 -1
  386. package/lib/module/components/MessageList/TypingIndicator.js +1 -1
  387. package/lib/module/components/MessageList/TypingIndicatorContainer.js +1 -1
  388. package/lib/module/components/MessageOverlay/MessageActionList.js +1 -1
  389. package/lib/module/components/MessageOverlay/MessageActionListItem.js +1 -1
  390. package/lib/module/components/MessageOverlay/MessageOverlay.js +1 -1
  391. package/lib/module/components/MessageOverlay/OverlayBackdrop.js +1 -1
  392. package/lib/module/components/MessageOverlay/OverlayReactionList.js +1 -1
  393. package/lib/module/components/MessageOverlay/OverlayReactions.js +1 -1
  394. package/lib/module/components/MessageOverlay/OverlayReactionsAvatar.js +1 -1
  395. package/lib/module/components/ProgressControl/ProgressControl.js +1 -1
  396. package/lib/module/components/RTLComponents/WritingDirectionAwareText.js +1 -1
  397. package/lib/module/components/Reply/Reply.js +1 -1
  398. package/lib/module/components/Spinner/Spinner.js +1 -1
  399. package/lib/module/components/Thread/Thread.js +1 -1
  400. package/lib/module/components/Thread/components/ThreadFooterComponent.js +1 -1
  401. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +1 -1
  402. package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js +1 -1
  403. package/lib/module/contexts/channelContext/ChannelContext.js +1 -1
  404. package/lib/module/contexts/channelsContext/ChannelsContext.js +1 -1
  405. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js +1 -1
  406. package/lib/module/contexts/chatContext/ChatContext.js +1 -1
  407. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js +14 -15
  408. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  409. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.md +1 -1
  410. package/lib/module/contexts/keyboardContext/KeyboardContext.js +1 -1
  411. package/lib/module/contexts/messageContext/MessageContext.js +1 -1
  412. package/lib/module/contexts/messageInputContext/MessageInputContext.js +1 -1
  413. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js +1 -1
  414. package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js +1 -1
  415. package/lib/module/contexts/messagesContext/MessagesContext.js +1 -1
  416. package/lib/module/contexts/overlayContext/OverlayContext.js +1 -1
  417. package/lib/module/contexts/overlayContext/OverlayProvider.js +1 -1
  418. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +1 -1
  419. package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +1 -1
  420. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +1 -1
  421. package/lib/module/contexts/themeContext/ThemeContext.js +1 -1
  422. package/lib/module/contexts/themeContext/utils/theme.js +1 -0
  423. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  424. package/lib/module/contexts/threadContext/ThreadContext.js +1 -1
  425. package/lib/module/contexts/translationContext/TranslationContext.js +1 -1
  426. package/lib/module/contexts/typingContext/TypingContext.js +1 -1
  427. package/lib/module/icons/ArrowRight.js +1 -1
  428. package/lib/module/icons/AtMentions.js +1 -1
  429. package/lib/module/icons/Attach.js +1 -1
  430. package/lib/module/icons/Audio.js +1 -1
  431. package/lib/module/icons/CSV.js +1 -1
  432. package/lib/module/icons/Camera.js +1 -1
  433. package/lib/module/icons/Check.js +1 -1
  434. package/lib/module/icons/CheckAll.js +1 -1
  435. package/lib/module/icons/CheckSend.js +1 -1
  436. package/lib/module/icons/CircleClose.js +1 -1
  437. package/lib/module/icons/CirclePlus.js +1 -1
  438. package/lib/module/icons/CircleRight.js +1 -1
  439. package/lib/module/icons/Close.js +1 -1
  440. package/lib/module/icons/Copy.js +1 -1
  441. package/lib/module/icons/CurveLineLeftUp.js +1 -1
  442. package/lib/module/icons/DOC.js +1 -1
  443. package/lib/module/icons/DOCX.js +1 -1
  444. package/lib/module/icons/Delete.js +1 -1
  445. package/lib/module/icons/Down.js +1 -1
  446. package/lib/module/icons/DownloadArrow.js +1 -1
  447. package/lib/module/icons/DownloadCloud.js +1 -1
  448. package/lib/module/icons/Edit.js +1 -1
  449. package/lib/module/icons/Error.js +1 -1
  450. package/lib/module/icons/Eye.js +1 -1
  451. package/lib/module/icons/Flag.js +1 -1
  452. package/lib/module/icons/Folder.js +1 -1
  453. package/lib/module/icons/GenericFile.js +1 -1
  454. package/lib/module/icons/GiphyIcon.js +1 -1
  455. package/lib/module/icons/Grid.js +1 -1
  456. package/lib/module/icons/Group.js +1 -1
  457. package/lib/module/icons/HTML.js +1 -1
  458. package/lib/module/icons/Imgur.js +1 -1
  459. package/lib/module/icons/LOLReaction.js +1 -1
  460. package/lib/module/icons/Lightning.js +1 -1
  461. package/lib/module/icons/Link.js +1 -1
  462. package/lib/module/icons/Loading.js +1 -1
  463. package/lib/module/icons/Logo.js +1 -1
  464. package/lib/module/icons/LoveReaction.js +1 -1
  465. package/lib/module/icons/MD.js +1 -1
  466. package/lib/module/icons/MailOpen.js +1 -1
  467. package/lib/module/icons/MenuPointHorizontal.js +1 -1
  468. package/lib/module/icons/MenuPointVertical.js +1 -1
  469. package/lib/module/icons/MessageFlag.js +1 -1
  470. package/lib/module/icons/MessageIcon.js +1 -1
  471. package/lib/module/icons/Mute.js +1 -1
  472. package/lib/module/icons/Notification.js +1 -1
  473. package/lib/module/icons/ODT.js +1 -1
  474. package/lib/module/icons/PDF.js +1 -1
  475. package/lib/module/icons/PPT.js +1 -1
  476. package/lib/module/icons/PPTX.js +1 -1
  477. package/lib/module/icons/Pause.js +1 -1
  478. package/lib/module/icons/Picture.js +1 -1
  479. package/lib/module/icons/Pin.js +1 -1
  480. package/lib/module/icons/PinHeader.js +1 -1
  481. package/lib/module/icons/Play.js +1 -1
  482. package/lib/module/icons/RAR.js +1 -1
  483. package/lib/module/icons/RTF.js +1 -1
  484. package/lib/module/icons/Recorder.js +1 -1
  485. package/lib/module/icons/Refresh.js +1 -1
  486. package/lib/module/icons/SEVEN_Z.js +1 -1
  487. package/lib/module/icons/Search.js +1 -1
  488. package/lib/module/icons/SendRight.js +1 -1
  489. package/lib/module/icons/SendUp.js +1 -1
  490. package/lib/module/icons/Share.js +1 -1
  491. package/lib/module/icons/ShareRightArrow.js +1 -1
  492. package/lib/module/icons/Smile.js +1 -1
  493. package/lib/module/icons/Sound.js +1 -1
  494. package/lib/module/icons/TAR.js +1 -1
  495. package/lib/module/icons/TXT.js +1 -1
  496. package/lib/module/icons/ThreadReply.js +1 -1
  497. package/lib/module/icons/ThumbsDownReaction.js +1 -1
  498. package/lib/module/icons/ThumbsUpReaction.js +1 -1
  499. package/lib/module/icons/Time.js +1 -1
  500. package/lib/module/icons/Unknown.js +1 -1
  501. package/lib/module/icons/Unpin.js +1 -1
  502. package/lib/module/icons/User.js +1 -1
  503. package/lib/module/icons/UserAdd.js +1 -1
  504. package/lib/module/icons/UserAdmin.js +1 -1
  505. package/lib/module/icons/UserDelete.js +1 -1
  506. package/lib/module/icons/UserMinus.js +1 -1
  507. package/lib/module/icons/Video.js +1 -1
  508. package/lib/module/icons/Warning.js +1 -1
  509. package/lib/module/icons/WutReaction.js +1 -1
  510. package/lib/module/icons/XLS.js +1 -1
  511. package/lib/module/icons/XLSX.js +1 -1
  512. package/lib/module/icons/ZIP.js +1 -1
  513. package/lib/module/icons/utils/base.js +1 -1
  514. package/lib/module/index.js +13 -1
  515. package/lib/module/index.js.map +1 -1
  516. package/lib/module/mock-builders/DB/mock.js +1 -13
  517. package/lib/module/mock-builders/DB/mock.js.map +1 -1
  518. package/lib/module/mock-builders/event/messageNew.js +2 -0
  519. package/lib/module/mock-builders/event/messageNew.js.map +1 -1
  520. package/lib/module/store/QuickSqliteClient.js +7 -3
  521. package/lib/module/store/QuickSqliteClient.js.map +1 -1
  522. package/lib/module/store/apis/index.js +264 -0
  523. package/lib/module/store/apis/index.js.map +1 -0
  524. package/lib/module/test-utils/BetterSqlite.js +54 -0
  525. package/lib/module/test-utils/BetterSqlite.js.map +1 -0
  526. package/lib/module/version.json +1 -1
  527. package/lib/typescript/components/Attachment/Gallery.d.ts +1 -1
  528. package/lib/typescript/components/Attachment/Giphy.d.ts +1 -1
  529. package/lib/typescript/components/Attachment/utils/getGiphyMimeType.d.ts +6 -0
  530. package/lib/typescript/components/ImageGallery/components/ImageGrid.d.ts +1 -1
  531. package/lib/typescript/components/ImageGallery/hooks/useImageGalleryGestures.d.ts +2 -1
  532. package/lib/typescript/components/Message/Message.d.ts +9 -3
  533. package/lib/typescript/components/MessageList/MessageList.d.ts +1 -1
  534. package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContext.d.ts +9 -10
  535. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -0
  536. package/lib/typescript/index.d.ts +2 -0
  537. package/lib/typescript/store/QuickSqliteClient.d.ts +4 -0
  538. package/lib/typescript/store/apis/index.d.ts +20 -0
  539. package/lib/typescript/{__tests__/utils → test-utils}/BetterSqlite.d.ts +1 -1
  540. package/package.json +5 -4
  541. package/src/__tests__/offline-feature.test.js +1 -2
  542. package/src/components/Attachment/FileAttachment.tsx +3 -0
  543. package/src/components/Attachment/Gallery.tsx +20 -17
  544. package/src/components/Attachment/Giphy.tsx +8 -8
  545. package/src/components/Attachment/utils/getGiphyMimeType.ts +13 -0
  546. package/src/components/Channel/Channel.tsx +1 -1
  547. package/src/components/ChannelList/__tests__/ChannelList.test.js +28 -0
  548. package/src/components/ChannelList/hooks/listeners/useNewMessage.ts +18 -5
  549. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +1 -1
  550. package/src/components/ChannelPreview/ChannelPreview.tsx +6 -3
  551. package/src/components/ImageGallery/ImageGallery.tsx +32 -19
  552. package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +6 -6
  553. package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +3 -3
  554. package/src/components/ImageGallery/__tests__/ImageGalleryGrid.test.tsx +3 -3
  555. package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +3 -3
  556. package/src/components/ImageGallery/components/ImageGrid.tsx +3 -3
  557. package/src/components/ImageGallery/hooks/useImageGalleryGestures.tsx +16 -0
  558. package/src/components/Message/Message.tsx +9 -1
  559. package/src/components/Message/MessageSimple/MessageTextContainer.tsx +22 -2
  560. package/src/components/Message/MessageSimple/__tests__/__snapshots__/MessageAvatar.test.js.snap +1 -0
  561. package/src/components/Message/MessageSimple/utils/renderText.tsx +1 -1
  562. package/src/components/MessageInput/ImageUploadPreview.tsx +35 -9
  563. package/src/components/MessageList/MessageList.tsx +6 -6
  564. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +4 -0
  565. package/src/contexts/imageGalleryContext/ImageGalleryContext.md +1 -1
  566. package/src/contexts/imageGalleryContext/ImageGalleryContext.tsx +19 -14
  567. package/src/contexts/themeContext/utils/theme.ts +2 -0
  568. package/src/index.ts +3 -0
  569. package/src/mock-builders/DB/mock.ts +4 -9
  570. package/src/mock-builders/event/messageNew.js +2 -0
  571. package/src/store/QuickSqliteClient.ts +11 -7
  572. package/src/store/apis/index.ts +20 -0
  573. package/src/{__tests__/utils → test-utils}/BetterSqlite.js +1 -1
  574. package/src/version.json +1 -1
@@ -83,7 +83,7 @@ const styles = StyleSheet.create({
83
83
 
84
84
  export type GalleryPropsWithContext<
85
85
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
86
- > = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setImage' | 'setImages'> &
86
+ > = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setSelectedMessage' | 'setMessages'> &
87
87
  Pick<
88
88
  MessageContextValue<StreamChatGenerics>,
89
89
  | 'alignment'
@@ -141,9 +141,9 @@ const GalleryWithContext = <
141
141
  onPress,
142
142
  onPressIn,
143
143
  preventPress,
144
- setImage,
145
- setImages,
144
+ setMessages,
146
145
  setOverlay,
146
+ setSelectedMessage,
147
147
  threadList,
148
148
  videos,
149
149
  VideoThumbnail,
@@ -256,9 +256,9 @@ const GalleryWithContext = <
256
256
  onPressIn={onPressIn}
257
257
  preventPress={preventPress}
258
258
  rowIndex={rowIndex}
259
- setImage={setImage}
260
- setImages={setImages}
259
+ setMessages={setMessages}
261
260
  setOverlay={setOverlay}
261
+ setSelectedMessage={setSelectedMessage}
262
262
  thumbnail={thumbnail}
263
263
  VideoThumbnail={VideoThumbnail}
264
264
  />
@@ -296,7 +296,7 @@ type GalleryThumbnailProps<
296
296
  | 'ImageLoadingIndicator'
297
297
  | 'ImageLoadingFailedIndicator'
298
298
  > &
299
- Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setImage' | 'setImages'> &
299
+ Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setSelectedMessage' | 'setMessages'> &
300
300
  Pick<
301
301
  MessageContextValue<StreamChatGenerics>,
302
302
  'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'
@@ -322,9 +322,9 @@ const GalleryThumbnail = <
322
322
  onPressIn,
323
323
  preventPress,
324
324
  rowIndex,
325
- setImage,
326
- setImages,
325
+ setMessages,
327
326
  setOverlay,
327
+ setSelectedMessage,
328
328
  thumbnail,
329
329
  VideoThumbnail,
330
330
  }: GalleryThumbnailProps<StreamChatGenerics>) => {
@@ -342,11 +342,11 @@ const GalleryThumbnail = <
342
342
  // Added if-else to keep the logic readable, instead of DRY.
343
343
  // if - legacyImageViewerSwipeBehaviour is disabled
344
344
  // else - legacyImageViewerSwipeBehaviour is enabled
345
- setImages([message]);
346
- setImage({ messageId: message.id, url: thumbnail.url });
345
+ setMessages([message]);
346
+ setSelectedMessage({ messageId: message.id, url: thumbnail.url });
347
347
  setOverlay('gallery');
348
348
  } else if (legacyImageViewerSwipeBehaviour) {
349
- setImage({ messageId: message?.id, url: thumbnail.url });
349
+ setSelectedMessage({ messageId: message?.id, url: thumbnail.url });
350
350
  setOverlay('gallery');
351
351
  }
352
352
  };
@@ -580,23 +580,25 @@ export const Gallery = <
580
580
  ImageLoadingFailedIndicator: PropImageLoadingFailedIndicator,
581
581
  ImageLoadingIndicator: PropImageLoadingIndicator,
582
582
  images: propImages,
583
+ message: propMessage,
583
584
  onLongPress: propOnLongPress,
584
585
  onPress: propOnPress,
585
586
  onPressIn: propOnPressIn,
586
587
  preventPress: propPreventPress,
587
- setImage: propSetImage,
588
588
  setOverlay: propSetOverlay,
589
+ setSelectedMessage: propSetSelectedMessage,
589
590
  threadList: propThreadList,
590
591
  videos: propVideos,
591
592
  VideoThumbnail: PropVideoThumbnail,
592
593
  } = props;
593
594
 
594
- const { setImage: contextSetImage, setImages } = useImageGalleryContext<StreamChatGenerics>();
595
+ const { setMessages, setSelectedMessage: contextSetSelectedMessage } =
596
+ useImageGalleryContext<StreamChatGenerics>();
595
597
  const {
596
598
  alignment: contextAlignment,
597
599
  groupStyles: contextGroupStyles,
598
600
  images: contextImages,
599
- message,
601
+ message: contextMessage,
600
602
  onLongPress: contextOnLongPress,
601
603
  onPress: contextOnPress,
602
604
  onPressIn: contextOnPressIn,
@@ -615,6 +617,7 @@ export const Gallery = <
615
617
 
616
618
  const images = propImages || contextImages;
617
619
  const videos = propVideos || contextVideos;
620
+ const message = propMessage || contextMessage;
618
621
 
619
622
  if (!images.length && !videos.length) return null;
620
623
 
@@ -626,7 +629,7 @@ export const Gallery = <
626
629
  const onPress = propOnPress || contextOnPress;
627
630
  const preventPress =
628
631
  typeof propPreventPress === 'boolean' ? propPreventPress : contextPreventPress;
629
- const setImage = propSetImage || contextSetImage;
632
+ const setSelectedMessage = propSetSelectedMessage || contextSetSelectedMessage;
630
633
  const setOverlay = propSetOverlay || contextSetOverlay;
631
634
  const threadList = propThreadList || contextThreadList;
632
635
  const VideoThumbnail = PropVideoThumbnail || ContextVideoThumnbnail;
@@ -651,9 +654,9 @@ export const Gallery = <
651
654
  onPress,
652
655
  onPressIn,
653
656
  preventPress,
654
- setImage,
655
- setImages,
657
+ setMessages,
656
658
  setOverlay,
659
+ setSelectedMessage,
657
660
  threadList,
658
661
  videos,
659
662
  VideoThumbnail,
@@ -134,7 +134,7 @@ const styles = StyleSheet.create({
134
134
 
135
135
  export type GiphyPropsWithContext<
136
136
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
137
- > = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setImage' | 'setImages'> &
137
+ > = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setSelectedMessage' | 'setMessages'> &
138
138
  Pick<
139
139
  MessageContextValue<StreamChatGenerics>,
140
140
  | 'handleAction'
@@ -173,9 +173,9 @@ const GiphyWithContext = <
173
173
  onPress,
174
174
  onPressIn,
175
175
  preventPress,
176
- setImage,
177
- setImages,
176
+ setMessages,
178
177
  setOverlay,
178
+ setSelectedMessage,
179
179
  } = props;
180
180
 
181
181
  const { actions, giphy: giphyData, image_url, thumb_url, title, type } = attachment;
@@ -210,8 +210,8 @@ const GiphyWithContext = <
210
210
  const giphyDimensions: { height?: number; width?: number } = {};
211
211
 
212
212
  const defaultOnPress = () => {
213
- setImages([message]);
214
- setImage({ messageId: message.id, url: uri });
213
+ setMessages([message]);
214
+ setSelectedMessage({ messageId: message.id, url: uri });
215
215
  setOverlay('gallery');
216
216
  };
217
217
 
@@ -447,7 +447,7 @@ export const Giphy = <
447
447
  const { handleAction, isMyMessage, message, onLongPress, onPress, onPressIn, preventPress } =
448
448
  useMessageContext<StreamChatGenerics>();
449
449
  const { additionalTouchableProps, giphyVersion } = useMessagesContext<StreamChatGenerics>();
450
- const { setImage, setImages } = useImageGalleryContext<StreamChatGenerics>();
450
+ const { setMessages, setSelectedMessage } = useImageGalleryContext<StreamChatGenerics>();
451
451
  const { setOverlay } = useOverlayContext();
452
452
 
453
453
  const {
@@ -472,9 +472,9 @@ export const Giphy = <
472
472
  onPress,
473
473
  onPressIn,
474
474
  preventPress,
475
- setImage,
476
- setImages,
475
+ setMessages,
477
476
  setOverlay,
477
+ setSelectedMessage,
478
478
  }}
479
479
  {...props}
480
480
  />
@@ -0,0 +1,13 @@
1
+ /**
2
+ *
3
+ * @param giphyUrl The giphy attachment url
4
+ * @returns mimeType for the giphy attachment
5
+ */
6
+ export function getGiphyMimeType(giphyUrl: string): string {
7
+ if (giphyUrl.includes('.mp4')) {
8
+ return 'video/mp4';
9
+ } else if (giphyUrl.includes('.webp')) {
10
+ return 'image/webp';
11
+ }
12
+ return 'image/gif';
13
+ }
@@ -577,7 +577,7 @@ const ChannelWithContext = <
577
577
  const channelId = channel?.id || '';
578
578
  useEffect(() => {
579
579
  const initChannel = () => {
580
- if (!channel || !shouldSyncChannel || channel.staticState) return;
580
+ if (!channel || !shouldSyncChannel || channel.offlineMode) return;
581
581
  /**
582
582
  * Loading channel at first unread message requires channel to be initialized in the first place,
583
583
  * since we use read state on channel to decide what offset to load channel at.
@@ -246,6 +246,34 @@ describe('ChannelList', () => {
246
246
  });
247
247
  });
248
248
 
249
+ it('should add channel to top if channel is hidden from the list', async () => {
250
+ const { getAllByRole, getByTestId, getByText } = render(
251
+ <Chat client={chatClient}>
252
+ <ChannelList {...props} />
253
+ </Chat>,
254
+ );
255
+
256
+ await waitFor(() => expect(getByTestId('channel-list')).toBeTruthy());
257
+ act(() => dispatchChannelHiddenEvent(chatClient, testChannel3.channel));
258
+
259
+ const newItems = getAllByRole('list-item');
260
+ await waitFor(() => {
261
+ expect(newItems).toHaveLength(2);
262
+ });
263
+
264
+ const newMessage = sendNewMessageOnChannel3();
265
+
266
+ await waitFor(() => {
267
+ expect(getByText(newMessage.text)).toBeTruthy();
268
+ });
269
+
270
+ const items = getAllByRole('list-item');
271
+
272
+ await waitFor(() => {
273
+ expect(within(items[0]).getByText(newMessage.text)).toBeTruthy();
274
+ });
275
+ });
276
+
249
277
  it('should not alter order if `lockChannelOrder` prop is true', async () => {
250
278
  const { getAllByRole, getByTestId, getByText } = render(
251
279
  <Chat client={chatClient}>
@@ -24,11 +24,24 @@ export const useNewMessage = <
24
24
  useEffect(() => {
25
25
  const handleEvent = (event: Event<StreamChatGenerics>) => {
26
26
  setChannels((channels) => {
27
- if (!lockChannelOrder && event.cid) {
28
- return moveChannelUp<StreamChatGenerics>({
29
- channels,
30
- cid: event.cid,
31
- });
27
+ if (!lockChannelOrder && event.cid && event.channel_type && event.channel_id) {
28
+ const targetChannelIndex = channels.findIndex((c) => c.cid === event.cid);
29
+
30
+ if (targetChannelIndex >= 0) {
31
+ return moveChannelUp<StreamChatGenerics>({
32
+ channels,
33
+ cid: event.cid,
34
+ });
35
+ }
36
+
37
+ // If channel doesn't exist in existing list, check in activeChannels as well.
38
+ // It may happen that channel was hidden using channel.hide(). In that case
39
+ // We remove it from `channels` state, but its still being watched and exists in client.activeChannels.
40
+ const channel = client.channel(event.channel_type, event.channel_id);
41
+
42
+ if (channel.initialized) {
43
+ return [channel, ...channels];
44
+ }
32
45
  }
33
46
 
34
47
  return [...channels];
@@ -192,7 +192,7 @@ export const usePaginatedChannels = <
192
192
  if (channelsFromDB) {
193
193
  setChannels(
194
194
  client.hydrateActiveChannels(channelsFromDB, {
195
- staticState: true,
195
+ offlineMode: true,
196
196
  }),
197
197
  );
198
198
  }
@@ -78,9 +78,12 @@ const ChannelPreviewWithContext = <
78
78
  };
79
79
 
80
80
  const handleUpdatedOrDeletedMessage = (event: Event<StreamChatGenerics>) => {
81
- if (event.message?.id === lastMessage?.id) {
82
- setLastMessage(event.message);
83
- }
81
+ setLastMessage((prevLastMessage) => {
82
+ if (prevLastMessage?.id === event.message?.id) {
83
+ return event.message;
84
+ }
85
+ return prevLastMessage;
86
+ });
84
87
  };
85
88
 
86
89
  const listeners = [
@@ -65,6 +65,7 @@ import type { DefaultStreamChatGenerics } from '../../types/types';
65
65
  import { getResizedImageUrl } from '../../utils/getResizedImageUrl';
66
66
  import { getUrlOfImageAttachment } from '../../utils/getUrlOfImageAttachment';
67
67
  import { vh, vw } from '../../utils/utils';
68
+ import { getGiphyMimeType } from '../Attachment/utils/getGiphyMimeType';
68
69
 
69
70
  const isAndroid = Platform.OS === 'android';
70
71
  const fullScreenHeight = Dimensions.get('screen').height;
@@ -161,7 +162,8 @@ export const ImageGallery = <
161
162
  } = useTheme();
162
163
  const [gridPhotos, setGridPhotos] = useState<Photo<StreamChatGenerics>[]>([]);
163
164
  const { overlay, translucentStatusBar } = useOverlayContext();
164
- const { image, images, setImage } = useImageGalleryContext<StreamChatGenerics>();
165
+ const { messages, selectedMessage, setSelectedMessage } =
166
+ useImageGalleryContext<StreamChatGenerics>();
165
167
 
166
168
  /**
167
169
  * Height constants
@@ -256,20 +258,22 @@ export const ImageGallery = <
256
258
  * photo attachments
257
259
  */
258
260
 
259
- const photos = images.reduce((acc: Photo<StreamChatGenerics>[], cur) => {
261
+ const photos = messages.reduce((acc: Photo<StreamChatGenerics>[], cur) => {
260
262
  const attachmentImages =
261
- cur.attachments?.filter(
262
- (attachment) =>
263
- (attachment.type === 'giphy' &&
264
- (attachment.giphy?.[giphyVersion]?.url ||
265
- attachment.thumb_url ||
266
- attachment.image_url)) ||
267
- (attachment.type === 'image' &&
268
- !attachment.title_link &&
269
- !attachment.og_scrape_url &&
270
- getUrlOfImageAttachment(attachment)) ||
271
- (isVideoPackageAvailable() && attachment.type === 'video'),
272
- ) || [];
263
+ cur.attachments
264
+ ?.filter(
265
+ (attachment) =>
266
+ (attachment.type === 'giphy' &&
267
+ (attachment.giphy?.[giphyVersion]?.url ||
268
+ attachment.thumb_url ||
269
+ attachment.image_url)) ||
270
+ (attachment.type === 'image' &&
271
+ !attachment.title_link &&
272
+ !attachment.og_scrape_url &&
273
+ getUrlOfImageAttachment(attachment)) ||
274
+ (isVideoPackageAvailable() && attachment.type === 'video'),
275
+ )
276
+ .reverse() || [];
273
277
 
274
278
  const attachmentPhotos = attachmentImages.map((a) => {
275
279
  const imageUrl = getUrlOfImageAttachment(a) as string;
@@ -280,7 +284,7 @@ export const ImageGallery = <
280
284
  created_at: cur.created_at,
281
285
  id: `photoId-${cur.id}-${imageUrl}`,
282
286
  messageId: cur.id,
283
- mime_type: a.type === 'giphy' ? 'image/gif' : a.mime_type,
287
+ mime_type: a.type === 'giphy' ? getGiphyMimeType(giphyURL ?? '') : a.mime_type,
284
288
  original_height: a.original_height,
285
289
  original_width: a.original_width,
286
290
  type: a.type,
@@ -297,7 +301,7 @@ export const ImageGallery = <
297
301
  };
298
302
  });
299
303
 
300
- return [...acc, ...attachmentPhotos] as Photo<StreamChatGenerics>[];
304
+ return [...attachmentPhotos, ...acc] as Photo<StreamChatGenerics>[];
301
305
  }, []);
302
306
 
303
307
  /**
@@ -308,6 +312,12 @@ export const ImageGallery = <
308
312
  */
309
313
  const photoLength = photos.length;
310
314
 
315
+ /**
316
+ * The URL for the images may differ because of dimensions passed as
317
+ * part of the query.
318
+ */
319
+ const stripQueryFromUrl = (url: string) => url.split('?')[0];
320
+
311
321
  /**
312
322
  * Set selected photo when changed via pressing in the message list
313
323
  */
@@ -323,7 +333,9 @@ export const ImageGallery = <
323
333
  };
324
334
 
325
335
  const newIndex = photos.findIndex(
326
- (photo) => photo.messageId === image?.messageId && photo.uri === image?.url,
336
+ (photo) =>
337
+ photo.messageId === selectedMessage?.messageId &&
338
+ stripQueryFromUrl(photo.uri) === stripQueryFromUrl(selectedMessage?.url || ''),
327
339
  );
328
340
 
329
341
  if (photoLength > 1) {
@@ -331,7 +343,7 @@ export const ImageGallery = <
331
343
  }
332
344
 
333
345
  runOnUI(updatePosition)(newIndex);
334
- }, [image, photoLength]);
346
+ }, [selectedMessage, photoLength]);
335
347
 
336
348
  /**
337
349
  * Image heights are not provided and therefore need to be calculated.
@@ -370,6 +382,7 @@ export const ImageGallery = <
370
382
  scale,
371
383
  screenHeight,
372
384
  screenWidth,
385
+ selectedIndex,
373
386
  setSelectedIndex,
374
387
  translateX,
375
388
  translateY,
@@ -664,7 +677,7 @@ export const ImageGallery = <
664
677
  closeGridView={closeGridView}
665
678
  numberOfImageGalleryGridColumns={numberOfImageGalleryGridColumns}
666
679
  photos={gridPhotos}
667
- setImage={setImage}
680
+ setSelectedMessage={setSelectedMessage}
668
681
  {...imageGalleryCustomComponents?.grid}
669
682
  />
670
683
  </BottomSheetModal>
@@ -48,7 +48,7 @@ describe('ImageGallery', () => {
48
48
  it('render image gallery component', () => {
49
49
  const { queryAllByA11yLabel } = render(
50
50
  getComponent({
51
- images: [
51
+ messages: [
52
52
  generateMessage({
53
53
  attachments: [
54
54
  generateImageAttachment(),
@@ -66,7 +66,7 @@ describe('ImageGallery', () => {
66
66
  it('handle handleLoad function when video item present and payload duration is available', () => {
67
67
  const { getByA11yLabel } = render(
68
68
  getComponent({
69
- images: [
69
+ messages: [
70
70
  generateMessage({
71
71
  attachments: [generateVideoAttachment({ type: 'video' })],
72
72
  }),
@@ -89,7 +89,7 @@ describe('ImageGallery', () => {
89
89
  it('handle handleLoad function when video item present and payload duration is undefined', () => {
90
90
  const { getByA11yLabel } = render(
91
91
  getComponent({
92
- images: [
92
+ messages: [
93
93
  generateMessage({
94
94
  attachments: [generateVideoAttachment({ type: 'video' })],
95
95
  }),
@@ -112,7 +112,7 @@ describe('ImageGallery', () => {
112
112
  it('handle handleProgress function when video item present and payload is well defined', () => {
113
113
  const { getByA11yLabel } = render(
114
114
  getComponent({
115
- images: [
115
+ messages: [
116
116
  generateMessage({
117
117
  attachments: [generateVideoAttachment({ type: 'video' })],
118
118
  }),
@@ -140,7 +140,7 @@ describe('ImageGallery', () => {
140
140
  it('handle handleProgress function when video item present and payload is not defined', () => {
141
141
  const { getByA11yLabel } = render(
142
142
  getComponent({
143
- images: [
143
+ messages: [
144
144
  generateMessage({
145
145
  attachments: [generateVideoAttachment({ type: 'video' })],
146
146
  }),
@@ -168,7 +168,7 @@ describe('ImageGallery', () => {
168
168
  it('handle handleEnd function when video item present', () => {
169
169
  const { getByA11yLabel } = render(
170
170
  getComponent({
171
- images: [
171
+ messages: [
172
172
  generateMessage({
173
173
  attachments: [generateVideoAttachment({ type: 'video' })],
174
174
  }),
@@ -71,7 +71,7 @@ describe('ImageGalleryFooter', () => {
71
71
  <ImageGalleryContext.Provider
72
72
  value={
73
73
  {
74
- images: [
74
+ messages: [
75
75
  generateMessage({
76
76
  attachments: [generateVideoAttachment({ type: 'video' })],
77
77
  }),
@@ -123,7 +123,7 @@ describe('ImageGalleryFooter', () => {
123
123
  <ImageGalleryContext.Provider
124
124
  value={
125
125
  {
126
- images: [
126
+ messages: [
127
127
  generateMessage({
128
128
  attachments: [generateVideoAttachment({ type: 'video' })],
129
129
  }),
@@ -162,7 +162,7 @@ describe('ImageGalleryFooter', () => {
162
162
  <ImageGalleryContext.Provider
163
163
  value={
164
164
  {
165
- images: [
165
+ messages: [
166
166
  generateMessage({
167
167
  attachments: [generateImageAttachment()],
168
168
  }),
@@ -76,13 +76,13 @@ describe('ImageGalleryOverlay', () => {
76
76
 
77
77
  it('should trigger the selectAndClose when the Image item is pressed', () => {
78
78
  const closeGridViewMock = jest.fn();
79
- const setImageMock = jest.fn();
79
+ const setSelectedMessageMock = jest.fn();
80
80
 
81
81
  const { getAllByA11yLabel } = render(
82
82
  getComponent({
83
83
  closeGridView: closeGridViewMock,
84
84
  photos: [generateImageAttachment(), generateVideoAttachment({ type: 'video' })],
85
- setImage: setImageMock,
85
+ setSelectedMessage: setSelectedMessageMock,
86
86
  }),
87
87
  );
88
88
 
@@ -93,6 +93,6 @@ describe('ImageGalleryOverlay', () => {
93
93
  });
94
94
 
95
95
  expect(closeGridViewMock).toHaveBeenCalledTimes(1);
96
- expect(setImageMock).toHaveBeenCalledTimes(1);
96
+ expect(setSelectedMessageMock).toHaveBeenCalledTimes(1);
97
97
  });
98
98
  });
@@ -65,7 +65,7 @@ describe('ImageGalleryHeader', () => {
65
65
  <ImageGalleryContext.Provider
66
66
  value={
67
67
  {
68
- images: [
68
+ messages: [
69
69
  generateMessage({
70
70
  attachments: [generateImageAttachment()],
71
71
  }),
@@ -109,7 +109,7 @@ describe('ImageGalleryHeader', () => {
109
109
  <ImageGalleryContext.Provider
110
110
  value={
111
111
  {
112
- images: [
112
+ messages: [
113
113
  generateMessage({
114
114
  attachments: [generateVideoAttachment({ type: 'video' })],
115
115
  }),
@@ -146,7 +146,7 @@ describe('ImageGalleryHeader', () => {
146
146
  <ImageGalleryContext.Provider
147
147
  value={
148
148
  {
149
- images: [
149
+ messages: [
150
150
  generateMessage({
151
151
  attachments: [generateImageAttachment()],
152
152
  }),
@@ -107,7 +107,7 @@ export type ImageGridType<
107
107
  > = ImageGalleryGridImageComponents<StreamChatGenerics> & {
108
108
  closeGridView: () => void;
109
109
  photos: Photo<StreamChatGenerics>[];
110
- setImage: React.Dispatch<
110
+ setSelectedMessage: React.Dispatch<
111
111
  React.SetStateAction<
112
112
  | {
113
113
  messageId?: string | undefined;
@@ -130,7 +130,7 @@ export const ImageGrid = <
130
130
  imageComponent,
131
131
  numberOfImageGalleryGridColumns,
132
132
  photos,
133
- setImage,
133
+ setSelectedMessage,
134
134
  } = props;
135
135
 
136
136
  const {
@@ -148,7 +148,7 @@ export const ImageGrid = <
148
148
  imageComponent,
149
149
  numberOfImageGalleryGridColumns,
150
150
  selectAndClose: () => {
151
- setImage({ messageId: photo.messageId, url: photo.uri });
151
+ setSelectedMessage({ messageId: photo.messageId, url: photo.uri });
152
152
  closeGridView();
153
153
  },
154
154
  }));
@@ -42,6 +42,7 @@ export const useImageGalleryGestures = ({
42
42
  scale,
43
43
  screenHeight,
44
44
  screenWidth,
45
+ selectedIndex,
45
46
  setSelectedIndex,
46
47
  translateX,
47
48
  translateY,
@@ -57,6 +58,7 @@ export const useImageGalleryGestures = ({
57
58
  scale: SharedValue<number>;
58
59
  screenHeight: number;
59
60
  screenWidth: number;
61
+ selectedIndex: number;
60
62
  setSelectedIndex: React.Dispatch<React.SetStateAction<number>>;
61
63
  translateX: SharedValue<number>;
62
64
  translateY: SharedValue<number>;
@@ -82,6 +84,20 @@ export const useImageGalleryGestures = ({
82
84
  const focalY = useSharedValue(0);
83
85
  const index = useSharedValue(0);
84
86
 
87
+ /**
88
+ * if a specific image index > 0 has been passed in
89
+ * while creating the hook, set the value of the index
90
+ * reference to its value.
91
+ *
92
+ * This makes it possible to seelct an image in the list,
93
+ * and scroll/pan as normal. Prior to this,
94
+ * it was always assumed that one started at index 0 in the
95
+ * gallery.
96
+ * */
97
+ if (index.value !== selectedIndex) {
98
+ index.value = selectedIndex;
99
+ }
100
+
85
101
  /**
86
102
  * Shared values for movement
87
103
  */
@@ -73,15 +73,23 @@ export type UrlTouchableHandlerPayload = {
73
73
  additionalInfo?: { url?: string };
74
74
  };
75
75
 
76
+ export type FileAttachmentTouchableHandlerPayload<
77
+ StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
78
+ > = {
79
+ emitter: 'fileAttachment';
80
+ additionalInfo?: { attachment?: Attachment<StreamChatGenerics> };
81
+ };
82
+
76
83
  export type TouchableHandlerPayload = {
77
84
  defaultHandler?: () => void;
78
85
  event?: GestureResponderEvent;
79
86
  } & (
80
87
  | {
81
- emitter?: TouchableEmitter;
88
+ emitter?: Exclude<TouchableEmitter, 'textMention' | 'textLink' | 'card' | 'fileAttachment'>;
82
89
  }
83
90
  | TextMentionTouchableHandlerPayload
84
91
  | UrlTouchableHandlerPayload
92
+ | FileAttachmentTouchableHandlerPayload
85
93
  );
86
94
 
87
95
  export type MessageTouchableHandlerPayload<