stream-chat-react-native-core 4.15.0-beta.2 → 5.0.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 (1030) 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 +1 -1
  6. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +1 -1
  7. package/lib/commonjs/components/Attachment/FileIcon.js +1 -1
  8. package/lib/commonjs/components/Attachment/Gallery.js +19 -19
  9. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  10. package/lib/commonjs/components/Attachment/GalleryImage.js +1 -1
  11. package/lib/commonjs/components/Attachment/Giphy.js +40 -40
  12. package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
  13. package/lib/commonjs/components/Attachment/ImageLoadingFailedIndicator.js +1 -1
  14. package/lib/commonjs/components/Attachment/ImageLoadingIndicator.js +1 -1
  15. package/lib/commonjs/components/Attachment/VideoThumbnail.js +1 -1
  16. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +1 -1
  17. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js +1 -1
  18. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerError.js +1 -1
  19. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerErrorImage.js +1 -1
  20. package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js +1 -1
  21. package/lib/commonjs/components/AttachmentPicker/components/CameraSelectorIcon.js +1 -1
  22. package/lib/commonjs/components/AttachmentPicker/components/FileSelectorIcon.js +1 -1
  23. package/lib/commonjs/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js +1 -1
  24. package/lib/commonjs/components/AttachmentPicker/components/ImageSelectorIcon.js +1 -1
  25. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +1 -1
  26. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js +1 -1
  27. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +1 -1
  28. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +1 -1
  29. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
  30. package/lib/commonjs/components/Avatar/Avatar.js +31 -18
  31. package/lib/commonjs/components/Avatar/Avatar.js.map +1 -1
  32. package/lib/commonjs/components/Avatar/GroupAvatar.js +28 -21
  33. package/lib/commonjs/components/Avatar/GroupAvatar.js.map +1 -1
  34. package/lib/commonjs/components/Channel/Channel.js +227 -257
  35. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  36. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +2 -0
  37. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  38. package/lib/commonjs/components/Channel/hooks/useCreatePaginatedMessageListContext.js +2 -0
  39. package/lib/commonjs/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
  40. package/lib/commonjs/components/ChannelList/ChannelList.js +41 -10
  41. package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
  42. package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -1
  43. package/lib/commonjs/components/ChannelList/ChannelListHeaderErrorIndicator.js +1 -1
  44. package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +1 -1
  45. package/lib/commonjs/components/ChannelList/ChannelListLoadingIndicator.js +1 -1
  46. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js +20 -8
  47. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js.map +1 -1
  48. package/lib/commonjs/components/ChannelList/Skeleton.js +1 -1
  49. package/lib/commonjs/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js +2 -2
  50. package/lib/commonjs/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
  51. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelDeleted.js +2 -2
  52. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
  53. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelHidden.js +2 -2
  54. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
  55. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelTruncated.js +2 -2
  56. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
  57. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelUpdated.js +2 -2
  58. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
  59. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelVisible.js +2 -2
  60. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
  61. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js +2 -2
  62. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  63. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js +2 -2
  64. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
  65. package/lib/commonjs/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js +2 -2
  66. package/lib/commonjs/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
  67. package/lib/commonjs/components/ChannelList/hooks/listeners/useUserPresence.js +4 -4
  68. package/lib/commonjs/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
  69. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +57 -22
  70. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  71. package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js +1 -1
  72. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +3 -3
  73. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
  74. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js +8 -6
  75. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  76. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +1 -1
  77. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js +1 -1
  78. package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js +1 -1
  79. package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  80. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js +1 -1
  81. package/lib/commonjs/components/Chat/Chat.js +45 -9
  82. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  83. package/lib/commonjs/components/Chat/hooks/handleEventToSyncDB.js +144 -0
  84. package/lib/commonjs/components/Chat/hooks/handleEventToSyncDB.js.map +1 -0
  85. package/lib/commonjs/components/Chat/hooks/useConnectionRecovered.js +171 -0
  86. package/lib/commonjs/components/Chat/hooks/useConnectionRecovered.js.map +1 -0
  87. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js +7 -3
  88. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  89. package/lib/commonjs/components/Chat/hooks/useMutedUsers.js +3 -3
  90. package/lib/commonjs/components/Chat/hooks/useMutedUsers.js.map +1 -1
  91. package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js +29 -0
  92. package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js.map +1 -0
  93. package/lib/commonjs/components/ImageGallery/ImageGallery.js +36 -30
  94. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  95. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +1 -1
  96. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js +1 -1
  97. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +1 -1
  98. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +1 -1
  99. package/lib/commonjs/components/ImageGallery/components/ImageGalleryOverlay.js +1 -1
  100. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +1 -1
  101. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +3 -3
  102. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
  103. package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js +1 -1
  104. package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js +6 -0
  105. package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
  106. package/lib/commonjs/components/Indicators/EmptyStateIndicator.js +1 -1
  107. package/lib/commonjs/components/Indicators/LoadingDot.js +1 -1
  108. package/lib/commonjs/components/Indicators/LoadingDots.js +1 -1
  109. package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js +1 -1
  110. package/lib/commonjs/components/Indicators/LoadingIndicator.js +1 -1
  111. package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js +1 -1
  112. package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js +1 -1
  113. package/lib/commonjs/components/Message/Message.js +1 -1
  114. package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js +1 -1
  115. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +1 -1
  116. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js +1 -1
  117. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +1 -1
  118. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js +1 -1
  119. package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js +1 -1
  120. package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js +1 -1
  121. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +1 -1
  122. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +1 -1
  123. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +1 -1
  124. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +1 -1
  125. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +1 -1
  126. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js +1 -1
  127. package/lib/commonjs/components/Message/hooks/useMessageActions.js +1 -1
  128. package/lib/commonjs/components/MessageInput/AttachButton.js +1 -1
  129. package/lib/commonjs/components/MessageInput/CommandsButton.js +1 -1
  130. package/lib/commonjs/components/MessageInput/CooldownTimer.js +1 -1
  131. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +1 -1
  132. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +1 -1
  133. package/lib/commonjs/components/MessageInput/InputButtons.js +1 -1
  134. package/lib/commonjs/components/MessageInput/MessageInput.js +1 -1
  135. package/lib/commonjs/components/MessageInput/MoreOptionsButton.js +1 -1
  136. package/lib/commonjs/components/MessageInput/SendButton.js +1 -1
  137. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js +1 -1
  138. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -1
  139. package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js +1 -1
  140. package/lib/commonjs/components/MessageInput/components/InputEditingStateHeader.js +1 -1
  141. package/lib/commonjs/components/MessageInput/components/InputGiphySearch.js +1 -1
  142. package/lib/commonjs/components/MessageInput/components/InputReplyStateHeader.js +1 -1
  143. package/lib/commonjs/components/MessageList/DateHeader.js +1 -1
  144. package/lib/commonjs/components/MessageList/InlineDateSeparator.js +1 -1
  145. package/lib/commonjs/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
  146. package/lib/commonjs/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
  147. package/lib/commonjs/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
  148. package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js +1 -1
  149. package/lib/commonjs/components/MessageList/MessageList.js +140 -112
  150. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  151. package/lib/commonjs/components/MessageList/MessageSystem.js +1 -1
  152. package/lib/commonjs/components/MessageList/NetworkDownIndicator.js +1 -1
  153. package/lib/commonjs/components/MessageList/ScrollToBottomButton.js +1 -1
  154. package/lib/commonjs/components/MessageList/TypingIndicator.js +1 -1
  155. package/lib/commonjs/components/MessageList/TypingIndicatorContainer.js +1 -1
  156. package/lib/commonjs/components/MessageOverlay/MessageActionList.js +1 -1
  157. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +1 -1
  158. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +1 -1
  159. package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js +1 -1
  160. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js +1 -1
  161. package/lib/commonjs/components/MessageOverlay/OverlayReactions.js +1 -1
  162. package/lib/commonjs/components/MessageOverlay/OverlayReactionsAvatar.js +1 -1
  163. package/lib/commonjs/components/ProgressControl/ProgressControl.js +1 -1
  164. package/lib/commonjs/components/RTLComponents/WritingDirectionAwareText.js +1 -1
  165. package/lib/commonjs/components/Reply/Reply.js +1 -1
  166. package/lib/commonjs/components/Spinner/Spinner.js +1 -1
  167. package/lib/commonjs/components/Thread/Thread.js +1 -1
  168. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +1 -1
  169. package/lib/commonjs/components/index.js +26 -13
  170. package/lib/commonjs/components/index.js.map +1 -1
  171. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +1 -1
  172. package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js +1 -1
  173. package/lib/commonjs/contexts/channelContext/ChannelContext.js +3 -3
  174. package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
  175. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js +1 -1
  176. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js +1 -1
  177. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js +5 -5
  178. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -1
  179. package/lib/commonjs/contexts/chatContext/ChatContext.js +3 -3
  180. package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
  181. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js +14 -15
  182. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  183. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.md +1 -1
  184. package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js +1 -1
  185. package/lib/commonjs/contexts/messageContext/MessageContext.js +1 -1
  186. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +1 -1
  187. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js +1 -1
  188. package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js +1 -1
  189. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +1 -1
  190. package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -1
  191. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +13 -26
  192. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
  193. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +1 -1
  194. package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +3 -3
  195. package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
  196. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +1 -1
  197. package/lib/commonjs/contexts/themeContext/ThemeContext.js +1 -1
  198. package/lib/commonjs/contexts/threadContext/ThreadContext.js +1 -1
  199. package/lib/commonjs/contexts/translationContext/TranslationContext.js +1 -1
  200. package/lib/commonjs/contexts/typingContext/TypingContext.js +1 -1
  201. package/lib/commonjs/{components/Attachment/hooks → hooks}/useLoadingImage.js +10 -0
  202. package/lib/commonjs/hooks/useLoadingImage.js.map +1 -0
  203. package/lib/commonjs/icons/ArrowRight.js +1 -1
  204. package/lib/commonjs/icons/AtMentions.js +1 -1
  205. package/lib/commonjs/icons/Attach.js +1 -1
  206. package/lib/commonjs/icons/Audio.js +1 -1
  207. package/lib/commonjs/icons/CSV.js +1 -1
  208. package/lib/commonjs/icons/Camera.js +1 -1
  209. package/lib/commonjs/icons/Check.js +1 -1
  210. package/lib/commonjs/icons/CheckAll.js +1 -1
  211. package/lib/commonjs/icons/CheckSend.js +1 -1
  212. package/lib/commonjs/icons/CircleClose.js +1 -1
  213. package/lib/commonjs/icons/CirclePlus.js +1 -1
  214. package/lib/commonjs/icons/CircleRight.js +1 -1
  215. package/lib/commonjs/icons/Close.js +1 -1
  216. package/lib/commonjs/icons/Copy.js +1 -1
  217. package/lib/commonjs/icons/CurveLineLeftUp.js +1 -1
  218. package/lib/commonjs/icons/DOC.js +1 -1
  219. package/lib/commonjs/icons/DOCX.js +1 -1
  220. package/lib/commonjs/icons/Delete.js +1 -1
  221. package/lib/commonjs/icons/Down.js +1 -1
  222. package/lib/commonjs/icons/DownloadArrow.js +1 -1
  223. package/lib/commonjs/icons/DownloadCloud.js +1 -1
  224. package/lib/commonjs/icons/Edit.js +1 -1
  225. package/lib/commonjs/icons/Error.js +1 -1
  226. package/lib/commonjs/icons/Eye.js +1 -1
  227. package/lib/commonjs/icons/Flag.js +1 -1
  228. package/lib/commonjs/icons/Folder.js +1 -1
  229. package/lib/commonjs/icons/GenericFile.js +1 -1
  230. package/lib/commonjs/icons/GiphyIcon.js +1 -1
  231. package/lib/commonjs/icons/Grid.js +1 -1
  232. package/lib/commonjs/icons/Group.js +1 -1
  233. package/lib/commonjs/icons/HTML.js +1 -1
  234. package/lib/commonjs/icons/Imgur.js +1 -1
  235. package/lib/commonjs/icons/LOLReaction.js +1 -1
  236. package/lib/commonjs/icons/Lightning.js +1 -1
  237. package/lib/commonjs/icons/Link.js +1 -1
  238. package/lib/commonjs/icons/Loading.js +1 -1
  239. package/lib/commonjs/icons/Logo.js +1 -1
  240. package/lib/commonjs/icons/LoveReaction.js +1 -1
  241. package/lib/commonjs/icons/MD.js +1 -1
  242. package/lib/commonjs/icons/MailOpen.js +1 -1
  243. package/lib/commonjs/icons/MenuPointHorizontal.js +1 -1
  244. package/lib/commonjs/icons/MenuPointVertical.js +1 -1
  245. package/lib/commonjs/icons/MessageFlag.js +1 -1
  246. package/lib/commonjs/icons/MessageIcon.js +1 -1
  247. package/lib/commonjs/icons/Mute.js +1 -1
  248. package/lib/commonjs/icons/Notification.js +1 -1
  249. package/lib/commonjs/icons/ODT.js +1 -1
  250. package/lib/commonjs/icons/PDF.js +1 -1
  251. package/lib/commonjs/icons/PPT.js +1 -1
  252. package/lib/commonjs/icons/PPTX.js +1 -1
  253. package/lib/commonjs/icons/Pause.js +1 -1
  254. package/lib/commonjs/icons/Picture.js +1 -1
  255. package/lib/commonjs/icons/Pin.js +1 -1
  256. package/lib/commonjs/icons/PinHeader.js +1 -1
  257. package/lib/commonjs/icons/Play.js +1 -1
  258. package/lib/commonjs/icons/RAR.js +1 -1
  259. package/lib/commonjs/icons/RTF.js +1 -1
  260. package/lib/commonjs/icons/Recorder.js +1 -1
  261. package/lib/commonjs/icons/Refresh.js +1 -1
  262. package/lib/commonjs/icons/SEVEN_Z.js +1 -1
  263. package/lib/commonjs/icons/Search.js +1 -1
  264. package/lib/commonjs/icons/SendRight.js +1 -1
  265. package/lib/commonjs/icons/SendUp.js +1 -1
  266. package/lib/commonjs/icons/Share.js +1 -1
  267. package/lib/commonjs/icons/ShareRightArrow.js +1 -1
  268. package/lib/commonjs/icons/Smile.js +1 -1
  269. package/lib/commonjs/icons/Sound.js +1 -1
  270. package/lib/commonjs/icons/TAR.js +1 -1
  271. package/lib/commonjs/icons/TXT.js +1 -1
  272. package/lib/commonjs/icons/ThreadReply.js +1 -1
  273. package/lib/commonjs/icons/ThumbsDownReaction.js +1 -1
  274. package/lib/commonjs/icons/ThumbsUpReaction.js +1 -1
  275. package/lib/commonjs/icons/Time.js +1 -1
  276. package/lib/commonjs/icons/Unknown.js +1 -1
  277. package/lib/commonjs/icons/Unpin.js +1 -1
  278. package/lib/commonjs/icons/User.js +1 -1
  279. package/lib/commonjs/icons/UserAdd.js +1 -1
  280. package/lib/commonjs/icons/UserAdmin.js +1 -1
  281. package/lib/commonjs/icons/UserDelete.js +1 -1
  282. package/lib/commonjs/icons/UserMinus.js +1 -1
  283. package/lib/commonjs/icons/Video.js +1 -1
  284. package/lib/commonjs/icons/Warning.js +1 -1
  285. package/lib/commonjs/icons/WutReaction.js +1 -1
  286. package/lib/commonjs/icons/XLS.js +1 -1
  287. package/lib/commonjs/icons/XLSX.js +1 -1
  288. package/lib/commonjs/icons/ZIP.js +1 -1
  289. package/lib/commonjs/icons/utils/base.js +1 -1
  290. package/lib/commonjs/index.js +22 -1
  291. package/lib/commonjs/index.js.map +1 -1
  292. package/lib/commonjs/mock-builders/DB/consts.js +15 -0
  293. package/lib/commonjs/mock-builders/DB/consts.js.map +1 -0
  294. package/lib/commonjs/mock-builders/DB/mock.js +113 -0
  295. package/lib/commonjs/mock-builders/DB/mock.js.map +1 -0
  296. package/lib/commonjs/mock-builders/event/memberAdded.js +17 -0
  297. package/lib/commonjs/mock-builders/event/memberAdded.js.map +1 -0
  298. package/lib/commonjs/mock-builders/event/memberRemoved.js +17 -0
  299. package/lib/commonjs/mock-builders/event/memberRemoved.js.map +1 -0
  300. package/lib/commonjs/mock-builders/event/memberUpdated.js +17 -0
  301. package/lib/commonjs/mock-builders/event/memberUpdated.js.map +1 -0
  302. package/lib/commonjs/mock-builders/event/reactionDeleted.js +18 -0
  303. package/lib/commonjs/mock-builders/event/reactionDeleted.js.map +1 -0
  304. package/lib/commonjs/mock-builders/event/reactionNew.js +18 -0
  305. package/lib/commonjs/mock-builders/event/reactionNew.js.map +1 -0
  306. package/lib/commonjs/mock-builders/event/reactionUpdated.js +18 -0
  307. package/lib/commonjs/mock-builders/event/reactionUpdated.js.map +1 -0
  308. package/lib/commonjs/mock-builders/generator/reaction.js +1 -1
  309. package/lib/commonjs/mock-builders/generator/reaction.js.map +1 -1
  310. package/lib/commonjs/store/QuickSqliteClient.js +160 -0
  311. package/lib/commonjs/store/QuickSqliteClient.js.map +1 -0
  312. package/lib/commonjs/store/apis/deleteChannel.js +26 -0
  313. package/lib/commonjs/store/apis/deleteChannel.js.map +1 -0
  314. package/lib/commonjs/store/apis/deleteMember.js +28 -0
  315. package/lib/commonjs/store/apis/deleteMember.js.map +1 -0
  316. package/lib/commonjs/store/apis/deleteMessagesForChannel.js +26 -0
  317. package/lib/commonjs/store/apis/deleteMessagesForChannel.js.map +1 -0
  318. package/lib/commonjs/store/apis/deleteReactions.js +28 -0
  319. package/lib/commonjs/store/apis/deleteReactions.js.map +1 -0
  320. package/lib/commonjs/store/apis/getAllChannelIds.js +16 -0
  321. package/lib/commonjs/store/apis/getAllChannelIds.js.map +1 -0
  322. package/lib/commonjs/store/apis/getChannelMessages.js +45 -0
  323. package/lib/commonjs/store/apis/getChannelMessages.js.map +1 -0
  324. package/lib/commonjs/store/apis/getChannels.js +47 -0
  325. package/lib/commonjs/store/apis/getChannels.js.map +1 -0
  326. package/lib/commonjs/store/apis/getChannelsForFilterSort.js +37 -0
  327. package/lib/commonjs/store/apis/getChannelsForFilterSort.js.map +1 -0
  328. package/lib/commonjs/store/apis/getLastSyncedAt.js +23 -0
  329. package/lib/commonjs/store/apis/getLastSyncedAt.js.map +1 -0
  330. package/lib/commonjs/store/apis/getMembers.js +25 -0
  331. package/lib/commonjs/store/apis/getMembers.js.map +1 -0
  332. package/lib/commonjs/store/apis/getReads.js +25 -0
  333. package/lib/commonjs/store/apis/getReads.js.map +1 -0
  334. package/lib/commonjs/store/apis/index.js +264 -0
  335. package/lib/commonjs/store/apis/index.js.map +1 -0
  336. package/lib/commonjs/store/apis/queries/selectChannelIdsForFilterSort.js +31 -0
  337. package/lib/commonjs/store/apis/queries/selectChannelIdsForFilterSort.js.map +1 -0
  338. package/lib/commonjs/store/apis/queries/selectChannels.js +30 -0
  339. package/lib/commonjs/store/apis/queries/selectChannels.js.map +1 -0
  340. package/lib/commonjs/store/apis/queries/selectMembersForChannels.js +27 -0
  341. package/lib/commonjs/store/apis/queries/selectMembersForChannels.js.map +1 -0
  342. package/lib/commonjs/store/apis/queries/selectMessagesForChannels.js +27 -0
  343. package/lib/commonjs/store/apis/queries/selectMessagesForChannels.js.map +1 -0
  344. package/lib/commonjs/store/apis/queries/selectReactionsForMessages.js +27 -0
  345. package/lib/commonjs/store/apis/queries/selectReactionsForMessages.js.map +1 -0
  346. package/lib/commonjs/store/apis/queries/selectReadsForChannels.js +27 -0
  347. package/lib/commonjs/store/apis/queries/selectReadsForChannels.js.map +1 -0
  348. package/lib/commonjs/store/apis/updateMessage.js +69 -0
  349. package/lib/commonjs/store/apis/updateMessage.js.map +1 -0
  350. package/lib/commonjs/store/apis/updateReaction.js +53 -0
  351. package/lib/commonjs/store/apis/updateReaction.js.map +1 -0
  352. package/lib/commonjs/store/apis/upsertChannelData.js +26 -0
  353. package/lib/commonjs/store/apis/upsertChannelData.js.map +1 -0
  354. package/lib/commonjs/store/apis/upsertChannels.js +83 -0
  355. package/lib/commonjs/store/apis/upsertChannels.js.map +1 -0
  356. package/lib/commonjs/store/apis/upsertCidsForQuery.js +34 -0
  357. package/lib/commonjs/store/apis/upsertCidsForQuery.js.map +1 -0
  358. package/lib/commonjs/store/apis/upsertLastSyncedAt.js +22 -0
  359. package/lib/commonjs/store/apis/upsertLastSyncedAt.js.map +1 -0
  360. package/lib/commonjs/store/apis/upsertMembers.js +39 -0
  361. package/lib/commonjs/store/apis/upsertMembers.js.map +1 -0
  362. package/lib/commonjs/store/apis/upsertMessages.js +52 -0
  363. package/lib/commonjs/store/apis/upsertMessages.js.map +1 -0
  364. package/lib/commonjs/store/apis/upsertReads.js +39 -0
  365. package/lib/commonjs/store/apis/upsertReads.js.map +1 -0
  366. package/lib/commonjs/store/apis/utils/convertFilterSortToQuery.js +13 -0
  367. package/lib/commonjs/store/apis/utils/convertFilterSortToQuery.js.map +1 -0
  368. package/lib/commonjs/store/constants.js +11 -0
  369. package/lib/commonjs/store/constants.js.map +1 -0
  370. package/lib/commonjs/store/mappers/mapChannelDataToStorable.js +67 -0
  371. package/lib/commonjs/store/mappers/mapChannelDataToStorable.js.map +1 -0
  372. package/lib/commonjs/store/mappers/mapDateTimeToStorable.js +12 -0
  373. package/lib/commonjs/store/mappers/mapDateTimeToStorable.js.map +1 -0
  374. package/lib/commonjs/store/mappers/mapMemberToStorable.js +39 -0
  375. package/lib/commonjs/store/mappers/mapMemberToStorable.js.map +1 -0
  376. package/lib/commonjs/store/mappers/mapMessageToStorable.js +42 -0
  377. package/lib/commonjs/store/mappers/mapMessageToStorable.js.map +1 -0
  378. package/lib/commonjs/store/mappers/mapReactionToStorable.js +34 -0
  379. package/lib/commonjs/store/mappers/mapReactionToStorable.js.map +1 -0
  380. package/lib/commonjs/store/mappers/mapReadToStorable.js +23 -0
  381. package/lib/commonjs/store/mappers/mapReadToStorable.js.map +1 -0
  382. package/lib/commonjs/store/mappers/mapStorableToChannel.js +65 -0
  383. package/lib/commonjs/store/mappers/mapStorableToChannel.js.map +1 -0
  384. package/lib/commonjs/store/mappers/mapStorableToMember.js +38 -0
  385. package/lib/commonjs/store/mappers/mapStorableToMember.js.map +1 -0
  386. package/lib/commonjs/store/mappers/mapStorableToMessage.js +50 -0
  387. package/lib/commonjs/store/mappers/mapStorableToMessage.js.map +1 -0
  388. package/lib/commonjs/store/mappers/mapStorableToReaction.js +31 -0
  389. package/lib/commonjs/store/mappers/mapStorableToReaction.js.map +1 -0
  390. package/lib/commonjs/store/mappers/mapStorableToRead.js +20 -0
  391. package/lib/commonjs/store/mappers/mapStorableToRead.js.map +1 -0
  392. package/lib/commonjs/store/mappers/mapStorableToUser.js +31 -0
  393. package/lib/commonjs/store/mappers/mapStorableToUser.js.map +1 -0
  394. package/lib/commonjs/store/mappers/mapUserToStorable.js +34 -0
  395. package/lib/commonjs/store/mappers/mapUserToStorable.js.map +1 -0
  396. package/lib/commonjs/store/schema.js +161 -0
  397. package/lib/commonjs/store/schema.js.map +1 -0
  398. package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js +37 -0
  399. package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js.map +1 -0
  400. package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js +35 -0
  401. package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js.map +1 -0
  402. package/lib/commonjs/store/sqlite-utils/createDeleteQuery.js +14 -0
  403. package/lib/commonjs/store/sqlite-utils/createDeleteQuery.js.map +1 -0
  404. package/lib/commonjs/store/sqlite-utils/createSelectQuery.js +26 -0
  405. package/lib/commonjs/store/sqlite-utils/createSelectQuery.js.map +1 -0
  406. package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js +29 -0
  407. package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js.map +1 -0
  408. package/lib/commonjs/store/sqlite-utils/createUpsertQuery.js +30 -0
  409. package/lib/commonjs/store/sqlite-utils/createUpsertQuery.js.map +1 -0
  410. package/lib/commonjs/store/sqlite-utils/printRow.js +23 -0
  411. package/lib/commonjs/store/sqlite-utils/printRow.js.map +1 -0
  412. package/lib/commonjs/store/types.js +4 -0
  413. package/lib/commonjs/store/types.js.map +1 -0
  414. package/lib/commonjs/test-utils/BetterSqlite.js +54 -0
  415. package/lib/commonjs/test-utils/BetterSqlite.js.map +1 -0
  416. package/lib/commonjs/version.json +1 -1
  417. package/lib/module/components/Attachment/Attachment.js +1 -1
  418. package/lib/module/components/Attachment/AttachmentActions.js +1 -1
  419. package/lib/module/components/Attachment/AudioAttachment.js +1 -1
  420. package/lib/module/components/Attachment/Card.js +1 -1
  421. package/lib/module/components/Attachment/FileAttachment.js +1 -1
  422. package/lib/module/components/Attachment/FileAttachmentGroup.js +1 -1
  423. package/lib/module/components/Attachment/FileIcon.js +1 -1
  424. package/lib/module/components/Attachment/Gallery.js +19 -19
  425. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  426. package/lib/module/components/Attachment/GalleryImage.js +1 -1
  427. package/lib/module/components/Attachment/Giphy.js +40 -40
  428. package/lib/module/components/Attachment/Giphy.js.map +1 -1
  429. package/lib/module/components/Attachment/ImageLoadingFailedIndicator.js +1 -1
  430. package/lib/module/components/Attachment/ImageLoadingIndicator.js +1 -1
  431. package/lib/module/components/Attachment/VideoThumbnail.js +1 -1
  432. package/lib/module/components/AttachmentPicker/AttachmentPicker.js +1 -1
  433. package/lib/module/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js +1 -1
  434. package/lib/module/components/AttachmentPicker/components/AttachmentPickerError.js +1 -1
  435. package/lib/module/components/AttachmentPicker/components/AttachmentPickerErrorImage.js +1 -1
  436. package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js +1 -1
  437. package/lib/module/components/AttachmentPicker/components/CameraSelectorIcon.js +1 -1
  438. package/lib/module/components/AttachmentPicker/components/FileSelectorIcon.js +1 -1
  439. package/lib/module/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js +1 -1
  440. package/lib/module/components/AttachmentPicker/components/ImageSelectorIcon.js +1 -1
  441. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +1 -1
  442. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js +1 -1
  443. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +1 -1
  444. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +1 -1
  445. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
  446. package/lib/module/components/Avatar/Avatar.js +31 -18
  447. package/lib/module/components/Avatar/Avatar.js.map +1 -1
  448. package/lib/module/components/Avatar/GroupAvatar.js +28 -21
  449. package/lib/module/components/Avatar/GroupAvatar.js.map +1 -1
  450. package/lib/module/components/Channel/Channel.js +227 -257
  451. package/lib/module/components/Channel/Channel.js.map +1 -1
  452. package/lib/module/components/Channel/hooks/useCreateChannelContext.js +2 -0
  453. package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  454. package/lib/module/components/Channel/hooks/useCreatePaginatedMessageListContext.js +2 -0
  455. package/lib/module/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
  456. package/lib/module/components/ChannelList/ChannelList.js +41 -10
  457. package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
  458. package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -1
  459. package/lib/module/components/ChannelList/ChannelListHeaderErrorIndicator.js +1 -1
  460. package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +1 -1
  461. package/lib/module/components/ChannelList/ChannelListLoadingIndicator.js +1 -1
  462. package/lib/module/components/ChannelList/ChannelListMessenger.js +20 -8
  463. package/lib/module/components/ChannelList/ChannelListMessenger.js.map +1 -1
  464. package/lib/module/components/ChannelList/Skeleton.js +1 -1
  465. package/lib/module/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js +2 -2
  466. package/lib/module/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
  467. package/lib/module/components/ChannelList/hooks/listeners/useChannelDeleted.js +2 -2
  468. package/lib/module/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
  469. package/lib/module/components/ChannelList/hooks/listeners/useChannelHidden.js +2 -2
  470. package/lib/module/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
  471. package/lib/module/components/ChannelList/hooks/listeners/useChannelTruncated.js +2 -2
  472. package/lib/module/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
  473. package/lib/module/components/ChannelList/hooks/listeners/useChannelUpdated.js +2 -2
  474. package/lib/module/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
  475. package/lib/module/components/ChannelList/hooks/listeners/useChannelVisible.js +2 -2
  476. package/lib/module/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
  477. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js +2 -2
  478. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  479. package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js +2 -2
  480. package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
  481. package/lib/module/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js +2 -2
  482. package/lib/module/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
  483. package/lib/module/components/ChannelList/hooks/listeners/useUserPresence.js +4 -4
  484. package/lib/module/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
  485. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +57 -22
  486. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  487. package/lib/module/components/ChannelPreview/ChannelAvatar.js +1 -1
  488. package/lib/module/components/ChannelPreview/ChannelPreview.js +3 -3
  489. package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
  490. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js +8 -6
  491. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  492. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +1 -1
  493. package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js +1 -1
  494. package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js +1 -1
  495. package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  496. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js +1 -1
  497. package/lib/module/components/Chat/Chat.js +45 -9
  498. package/lib/module/components/Chat/Chat.js.map +1 -1
  499. package/lib/module/components/Chat/hooks/handleEventToSyncDB.js +144 -0
  500. package/lib/module/components/Chat/hooks/handleEventToSyncDB.js.map +1 -0
  501. package/lib/module/components/Chat/hooks/useConnectionRecovered.js +171 -0
  502. package/lib/module/components/Chat/hooks/useConnectionRecovered.js.map +1 -0
  503. package/lib/module/components/Chat/hooks/useCreateChatContext.js +7 -3
  504. package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  505. package/lib/module/components/Chat/hooks/useMutedUsers.js +3 -3
  506. package/lib/module/components/Chat/hooks/useMutedUsers.js.map +1 -1
  507. package/lib/module/components/Chat/hooks/useSyncDatabase.js +29 -0
  508. package/lib/module/components/Chat/hooks/useSyncDatabase.js.map +1 -0
  509. package/lib/module/components/ImageGallery/ImageGallery.js +36 -30
  510. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  511. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +1 -1
  512. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js +1 -1
  513. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +1 -1
  514. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +1 -1
  515. package/lib/module/components/ImageGallery/components/ImageGalleryOverlay.js +1 -1
  516. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +1 -1
  517. package/lib/module/components/ImageGallery/components/ImageGrid.js +3 -3
  518. package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
  519. package/lib/module/components/ImageGallery/components/ImageGridHandle.js +1 -1
  520. package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js +6 -0
  521. package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
  522. package/lib/module/components/Indicators/EmptyStateIndicator.js +1 -1
  523. package/lib/module/components/Indicators/LoadingDot.js +1 -1
  524. package/lib/module/components/Indicators/LoadingDots.js +1 -1
  525. package/lib/module/components/Indicators/LoadingErrorIndicator.js +1 -1
  526. package/lib/module/components/Indicators/LoadingIndicator.js +1 -1
  527. package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js +1 -1
  528. package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js +1 -1
  529. package/lib/module/components/Message/Message.js +1 -1
  530. package/lib/module/components/Message/MessageSimple/MessageAvatar.js +1 -1
  531. package/lib/module/components/Message/MessageSimple/MessageContent.js +1 -1
  532. package/lib/module/components/Message/MessageSimple/MessageDeleted.js +1 -1
  533. package/lib/module/components/Message/MessageSimple/MessageFooter.js +1 -1
  534. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js +1 -1
  535. package/lib/module/components/Message/MessageSimple/MessageReplies.js +1 -1
  536. package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js +1 -1
  537. package/lib/module/components/Message/MessageSimple/MessageSimple.js +1 -1
  538. package/lib/module/components/Message/MessageSimple/MessageStatus.js +1 -1
  539. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +1 -1
  540. package/lib/module/components/Message/MessageSimple/ReactionList.js +1 -1
  541. package/lib/module/components/Message/MessageSimple/utils/renderText.js +1 -1
  542. package/lib/module/components/Message/MessageSimple/utils/renderText.test.js +1 -1
  543. package/lib/module/components/Message/hooks/useMessageActions.js +1 -1
  544. package/lib/module/components/MessageInput/AttachButton.js +1 -1
  545. package/lib/module/components/MessageInput/CommandsButton.js +1 -1
  546. package/lib/module/components/MessageInput/CooldownTimer.js +1 -1
  547. package/lib/module/components/MessageInput/FileUploadPreview.js +1 -1
  548. package/lib/module/components/MessageInput/ImageUploadPreview.js +1 -1
  549. package/lib/module/components/MessageInput/InputButtons.js +1 -1
  550. package/lib/module/components/MessageInput/MessageInput.js +1 -1
  551. package/lib/module/components/MessageInput/MoreOptionsButton.js +1 -1
  552. package/lib/module/components/MessageInput/SendButton.js +1 -1
  553. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js +1 -1
  554. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -1
  555. package/lib/module/components/MessageInput/UploadProgressIndicator.js +1 -1
  556. package/lib/module/components/MessageInput/components/InputEditingStateHeader.js +1 -1
  557. package/lib/module/components/MessageInput/components/InputGiphySearch.js +1 -1
  558. package/lib/module/components/MessageInput/components/InputReplyStateHeader.js +1 -1
  559. package/lib/module/components/MessageList/DateHeader.js +1 -1
  560. package/lib/module/components/MessageList/InlineDateSeparator.js +1 -1
  561. package/lib/module/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
  562. package/lib/module/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
  563. package/lib/module/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
  564. package/lib/module/components/MessageList/InlineUnreadIndicator.js +1 -1
  565. package/lib/module/components/MessageList/MessageList.js +140 -112
  566. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  567. package/lib/module/components/MessageList/MessageSystem.js +1 -1
  568. package/lib/module/components/MessageList/NetworkDownIndicator.js +1 -1
  569. package/lib/module/components/MessageList/ScrollToBottomButton.js +1 -1
  570. package/lib/module/components/MessageList/TypingIndicator.js +1 -1
  571. package/lib/module/components/MessageList/TypingIndicatorContainer.js +1 -1
  572. package/lib/module/components/MessageOverlay/MessageActionList.js +1 -1
  573. package/lib/module/components/MessageOverlay/MessageActionListItem.js +1 -1
  574. package/lib/module/components/MessageOverlay/MessageOverlay.js +1 -1
  575. package/lib/module/components/MessageOverlay/OverlayBackdrop.js +1 -1
  576. package/lib/module/components/MessageOverlay/OverlayReactionList.js +1 -1
  577. package/lib/module/components/MessageOverlay/OverlayReactions.js +1 -1
  578. package/lib/module/components/MessageOverlay/OverlayReactionsAvatar.js +1 -1
  579. package/lib/module/components/ProgressControl/ProgressControl.js +1 -1
  580. package/lib/module/components/RTLComponents/WritingDirectionAwareText.js +1 -1
  581. package/lib/module/components/Reply/Reply.js +1 -1
  582. package/lib/module/components/Spinner/Spinner.js +1 -1
  583. package/lib/module/components/Thread/Thread.js +1 -1
  584. package/lib/module/components/Thread/components/ThreadFooterComponent.js +1 -1
  585. package/lib/module/components/index.js +26 -13
  586. package/lib/module/components/index.js.map +1 -1
  587. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +1 -1
  588. package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js +1 -1
  589. package/lib/module/contexts/channelContext/ChannelContext.js +3 -3
  590. package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
  591. package/lib/module/contexts/channelsContext/ChannelsContext.js +1 -1
  592. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js +1 -1
  593. package/lib/module/contexts/channelsStateContext/useChannelState.js +5 -5
  594. package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -1
  595. package/lib/module/contexts/chatContext/ChatContext.js +3 -3
  596. package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
  597. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js +14 -15
  598. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  599. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.md +1 -1
  600. package/lib/module/contexts/keyboardContext/KeyboardContext.js +1 -1
  601. package/lib/module/contexts/messageContext/MessageContext.js +1 -1
  602. package/lib/module/contexts/messageInputContext/MessageInputContext.js +1 -1
  603. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js +1 -1
  604. package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js +1 -1
  605. package/lib/module/contexts/messagesContext/MessagesContext.js +1 -1
  606. package/lib/module/contexts/overlayContext/OverlayContext.js +1 -1
  607. package/lib/module/contexts/overlayContext/OverlayProvider.js +13 -26
  608. package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
  609. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +1 -1
  610. package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +3 -3
  611. package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
  612. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +1 -1
  613. package/lib/module/contexts/themeContext/ThemeContext.js +1 -1
  614. package/lib/module/contexts/threadContext/ThreadContext.js +1 -1
  615. package/lib/module/contexts/translationContext/TranslationContext.js +1 -1
  616. package/lib/module/contexts/typingContext/TypingContext.js +1 -1
  617. package/lib/module/{components/Attachment/hooks → hooks}/useLoadingImage.js +10 -0
  618. package/lib/module/hooks/useLoadingImage.js.map +1 -0
  619. package/lib/module/icons/ArrowRight.js +1 -1
  620. package/lib/module/icons/AtMentions.js +1 -1
  621. package/lib/module/icons/Attach.js +1 -1
  622. package/lib/module/icons/Audio.js +1 -1
  623. package/lib/module/icons/CSV.js +1 -1
  624. package/lib/module/icons/Camera.js +1 -1
  625. package/lib/module/icons/Check.js +1 -1
  626. package/lib/module/icons/CheckAll.js +1 -1
  627. package/lib/module/icons/CheckSend.js +1 -1
  628. package/lib/module/icons/CircleClose.js +1 -1
  629. package/lib/module/icons/CirclePlus.js +1 -1
  630. package/lib/module/icons/CircleRight.js +1 -1
  631. package/lib/module/icons/Close.js +1 -1
  632. package/lib/module/icons/Copy.js +1 -1
  633. package/lib/module/icons/CurveLineLeftUp.js +1 -1
  634. package/lib/module/icons/DOC.js +1 -1
  635. package/lib/module/icons/DOCX.js +1 -1
  636. package/lib/module/icons/Delete.js +1 -1
  637. package/lib/module/icons/Down.js +1 -1
  638. package/lib/module/icons/DownloadArrow.js +1 -1
  639. package/lib/module/icons/DownloadCloud.js +1 -1
  640. package/lib/module/icons/Edit.js +1 -1
  641. package/lib/module/icons/Error.js +1 -1
  642. package/lib/module/icons/Eye.js +1 -1
  643. package/lib/module/icons/Flag.js +1 -1
  644. package/lib/module/icons/Folder.js +1 -1
  645. package/lib/module/icons/GenericFile.js +1 -1
  646. package/lib/module/icons/GiphyIcon.js +1 -1
  647. package/lib/module/icons/Grid.js +1 -1
  648. package/lib/module/icons/Group.js +1 -1
  649. package/lib/module/icons/HTML.js +1 -1
  650. package/lib/module/icons/Imgur.js +1 -1
  651. package/lib/module/icons/LOLReaction.js +1 -1
  652. package/lib/module/icons/Lightning.js +1 -1
  653. package/lib/module/icons/Link.js +1 -1
  654. package/lib/module/icons/Loading.js +1 -1
  655. package/lib/module/icons/Logo.js +1 -1
  656. package/lib/module/icons/LoveReaction.js +1 -1
  657. package/lib/module/icons/MD.js +1 -1
  658. package/lib/module/icons/MailOpen.js +1 -1
  659. package/lib/module/icons/MenuPointHorizontal.js +1 -1
  660. package/lib/module/icons/MenuPointVertical.js +1 -1
  661. package/lib/module/icons/MessageFlag.js +1 -1
  662. package/lib/module/icons/MessageIcon.js +1 -1
  663. package/lib/module/icons/Mute.js +1 -1
  664. package/lib/module/icons/Notification.js +1 -1
  665. package/lib/module/icons/ODT.js +1 -1
  666. package/lib/module/icons/PDF.js +1 -1
  667. package/lib/module/icons/PPT.js +1 -1
  668. package/lib/module/icons/PPTX.js +1 -1
  669. package/lib/module/icons/Pause.js +1 -1
  670. package/lib/module/icons/Picture.js +1 -1
  671. package/lib/module/icons/Pin.js +1 -1
  672. package/lib/module/icons/PinHeader.js +1 -1
  673. package/lib/module/icons/Play.js +1 -1
  674. package/lib/module/icons/RAR.js +1 -1
  675. package/lib/module/icons/RTF.js +1 -1
  676. package/lib/module/icons/Recorder.js +1 -1
  677. package/lib/module/icons/Refresh.js +1 -1
  678. package/lib/module/icons/SEVEN_Z.js +1 -1
  679. package/lib/module/icons/Search.js +1 -1
  680. package/lib/module/icons/SendRight.js +1 -1
  681. package/lib/module/icons/SendUp.js +1 -1
  682. package/lib/module/icons/Share.js +1 -1
  683. package/lib/module/icons/ShareRightArrow.js +1 -1
  684. package/lib/module/icons/Smile.js +1 -1
  685. package/lib/module/icons/Sound.js +1 -1
  686. package/lib/module/icons/TAR.js +1 -1
  687. package/lib/module/icons/TXT.js +1 -1
  688. package/lib/module/icons/ThreadReply.js +1 -1
  689. package/lib/module/icons/ThumbsDownReaction.js +1 -1
  690. package/lib/module/icons/ThumbsUpReaction.js +1 -1
  691. package/lib/module/icons/Time.js +1 -1
  692. package/lib/module/icons/Unknown.js +1 -1
  693. package/lib/module/icons/Unpin.js +1 -1
  694. package/lib/module/icons/User.js +1 -1
  695. package/lib/module/icons/UserAdd.js +1 -1
  696. package/lib/module/icons/UserAdmin.js +1 -1
  697. package/lib/module/icons/UserDelete.js +1 -1
  698. package/lib/module/icons/UserMinus.js +1 -1
  699. package/lib/module/icons/Video.js +1 -1
  700. package/lib/module/icons/Warning.js +1 -1
  701. package/lib/module/icons/WutReaction.js +1 -1
  702. package/lib/module/icons/XLS.js +1 -1
  703. package/lib/module/icons/XLSX.js +1 -1
  704. package/lib/module/icons/ZIP.js +1 -1
  705. package/lib/module/icons/utils/base.js +1 -1
  706. package/lib/module/index.js +22 -1
  707. package/lib/module/index.js.map +1 -1
  708. package/lib/module/mock-builders/DB/consts.js +15 -0
  709. package/lib/module/mock-builders/DB/consts.js.map +1 -0
  710. package/lib/module/mock-builders/DB/mock.js +113 -0
  711. package/lib/module/mock-builders/DB/mock.js.map +1 -0
  712. package/lib/module/mock-builders/event/memberAdded.js +17 -0
  713. package/lib/module/mock-builders/event/memberAdded.js.map +1 -0
  714. package/lib/module/mock-builders/event/memberRemoved.js +17 -0
  715. package/lib/module/mock-builders/event/memberRemoved.js.map +1 -0
  716. package/lib/module/mock-builders/event/memberUpdated.js +17 -0
  717. package/lib/module/mock-builders/event/memberUpdated.js.map +1 -0
  718. package/lib/module/mock-builders/event/reactionDeleted.js +18 -0
  719. package/lib/module/mock-builders/event/reactionDeleted.js.map +1 -0
  720. package/lib/module/mock-builders/event/reactionNew.js +18 -0
  721. package/lib/module/mock-builders/event/reactionNew.js.map +1 -0
  722. package/lib/module/mock-builders/event/reactionUpdated.js +18 -0
  723. package/lib/module/mock-builders/event/reactionUpdated.js.map +1 -0
  724. package/lib/module/mock-builders/generator/reaction.js +1 -1
  725. package/lib/module/mock-builders/generator/reaction.js.map +1 -1
  726. package/lib/module/store/QuickSqliteClient.js +160 -0
  727. package/lib/module/store/QuickSqliteClient.js.map +1 -0
  728. package/lib/module/store/apis/deleteChannel.js +26 -0
  729. package/lib/module/store/apis/deleteChannel.js.map +1 -0
  730. package/lib/module/store/apis/deleteMember.js +28 -0
  731. package/lib/module/store/apis/deleteMember.js.map +1 -0
  732. package/lib/module/store/apis/deleteMessagesForChannel.js +26 -0
  733. package/lib/module/store/apis/deleteMessagesForChannel.js.map +1 -0
  734. package/lib/module/store/apis/deleteReactions.js +28 -0
  735. package/lib/module/store/apis/deleteReactions.js.map +1 -0
  736. package/lib/module/store/apis/getAllChannelIds.js +16 -0
  737. package/lib/module/store/apis/getAllChannelIds.js.map +1 -0
  738. package/lib/module/store/apis/getChannelMessages.js +45 -0
  739. package/lib/module/store/apis/getChannelMessages.js.map +1 -0
  740. package/lib/module/store/apis/getChannels.js +47 -0
  741. package/lib/module/store/apis/getChannels.js.map +1 -0
  742. package/lib/module/store/apis/getChannelsForFilterSort.js +37 -0
  743. package/lib/module/store/apis/getChannelsForFilterSort.js.map +1 -0
  744. package/lib/module/store/apis/getLastSyncedAt.js +23 -0
  745. package/lib/module/store/apis/getLastSyncedAt.js.map +1 -0
  746. package/lib/module/store/apis/getMembers.js +25 -0
  747. package/lib/module/store/apis/getMembers.js.map +1 -0
  748. package/lib/module/store/apis/getReads.js +25 -0
  749. package/lib/module/store/apis/getReads.js.map +1 -0
  750. package/lib/module/store/apis/index.js +264 -0
  751. package/lib/module/store/apis/index.js.map +1 -0
  752. package/lib/module/store/apis/queries/selectChannelIdsForFilterSort.js +31 -0
  753. package/lib/module/store/apis/queries/selectChannelIdsForFilterSort.js.map +1 -0
  754. package/lib/module/store/apis/queries/selectChannels.js +30 -0
  755. package/lib/module/store/apis/queries/selectChannels.js.map +1 -0
  756. package/lib/module/store/apis/queries/selectMembersForChannels.js +27 -0
  757. package/lib/module/store/apis/queries/selectMembersForChannels.js.map +1 -0
  758. package/lib/module/store/apis/queries/selectMessagesForChannels.js +27 -0
  759. package/lib/module/store/apis/queries/selectMessagesForChannels.js.map +1 -0
  760. package/lib/module/store/apis/queries/selectReactionsForMessages.js +27 -0
  761. package/lib/module/store/apis/queries/selectReactionsForMessages.js.map +1 -0
  762. package/lib/module/store/apis/queries/selectReadsForChannels.js +27 -0
  763. package/lib/module/store/apis/queries/selectReadsForChannels.js.map +1 -0
  764. package/lib/module/store/apis/updateMessage.js +69 -0
  765. package/lib/module/store/apis/updateMessage.js.map +1 -0
  766. package/lib/module/store/apis/updateReaction.js +53 -0
  767. package/lib/module/store/apis/updateReaction.js.map +1 -0
  768. package/lib/module/store/apis/upsertChannelData.js +26 -0
  769. package/lib/module/store/apis/upsertChannelData.js.map +1 -0
  770. package/lib/module/store/apis/upsertChannels.js +83 -0
  771. package/lib/module/store/apis/upsertChannels.js.map +1 -0
  772. package/lib/module/store/apis/upsertCidsForQuery.js +34 -0
  773. package/lib/module/store/apis/upsertCidsForQuery.js.map +1 -0
  774. package/lib/module/store/apis/upsertLastSyncedAt.js +22 -0
  775. package/lib/module/store/apis/upsertLastSyncedAt.js.map +1 -0
  776. package/lib/module/store/apis/upsertMembers.js +39 -0
  777. package/lib/module/store/apis/upsertMembers.js.map +1 -0
  778. package/lib/module/store/apis/upsertMessages.js +52 -0
  779. package/lib/module/store/apis/upsertMessages.js.map +1 -0
  780. package/lib/module/store/apis/upsertReads.js +39 -0
  781. package/lib/module/store/apis/upsertReads.js.map +1 -0
  782. package/lib/module/store/apis/utils/convertFilterSortToQuery.js +13 -0
  783. package/lib/module/store/apis/utils/convertFilterSortToQuery.js.map +1 -0
  784. package/lib/module/store/constants.js +11 -0
  785. package/lib/module/store/constants.js.map +1 -0
  786. package/lib/module/store/mappers/mapChannelDataToStorable.js +67 -0
  787. package/lib/module/store/mappers/mapChannelDataToStorable.js.map +1 -0
  788. package/lib/module/store/mappers/mapDateTimeToStorable.js +12 -0
  789. package/lib/module/store/mappers/mapDateTimeToStorable.js.map +1 -0
  790. package/lib/module/store/mappers/mapMemberToStorable.js +39 -0
  791. package/lib/module/store/mappers/mapMemberToStorable.js.map +1 -0
  792. package/lib/module/store/mappers/mapMessageToStorable.js +42 -0
  793. package/lib/module/store/mappers/mapMessageToStorable.js.map +1 -0
  794. package/lib/module/store/mappers/mapReactionToStorable.js +34 -0
  795. package/lib/module/store/mappers/mapReactionToStorable.js.map +1 -0
  796. package/lib/module/store/mappers/mapReadToStorable.js +23 -0
  797. package/lib/module/store/mappers/mapReadToStorable.js.map +1 -0
  798. package/lib/module/store/mappers/mapStorableToChannel.js +65 -0
  799. package/lib/module/store/mappers/mapStorableToChannel.js.map +1 -0
  800. package/lib/module/store/mappers/mapStorableToMember.js +38 -0
  801. package/lib/module/store/mappers/mapStorableToMember.js.map +1 -0
  802. package/lib/module/store/mappers/mapStorableToMessage.js +50 -0
  803. package/lib/module/store/mappers/mapStorableToMessage.js.map +1 -0
  804. package/lib/module/store/mappers/mapStorableToReaction.js +31 -0
  805. package/lib/module/store/mappers/mapStorableToReaction.js.map +1 -0
  806. package/lib/module/store/mappers/mapStorableToRead.js +20 -0
  807. package/lib/module/store/mappers/mapStorableToRead.js.map +1 -0
  808. package/lib/module/store/mappers/mapStorableToUser.js +31 -0
  809. package/lib/module/store/mappers/mapStorableToUser.js.map +1 -0
  810. package/lib/module/store/mappers/mapUserToStorable.js +34 -0
  811. package/lib/module/store/mappers/mapUserToStorable.js.map +1 -0
  812. package/lib/module/store/schema.js +161 -0
  813. package/lib/module/store/schema.js.map +1 -0
  814. package/lib/module/store/sqlite-utils/appendWhereCluase.js +37 -0
  815. package/lib/module/store/sqlite-utils/appendWhereCluase.js.map +1 -0
  816. package/lib/module/store/sqlite-utils/createCreateTableQuery.js +35 -0
  817. package/lib/module/store/sqlite-utils/createCreateTableQuery.js.map +1 -0
  818. package/lib/module/store/sqlite-utils/createDeleteQuery.js +14 -0
  819. package/lib/module/store/sqlite-utils/createDeleteQuery.js.map +1 -0
  820. package/lib/module/store/sqlite-utils/createSelectQuery.js +26 -0
  821. package/lib/module/store/sqlite-utils/createSelectQuery.js.map +1 -0
  822. package/lib/module/store/sqlite-utils/createUpdateQuery.js +29 -0
  823. package/lib/module/store/sqlite-utils/createUpdateQuery.js.map +1 -0
  824. package/lib/module/store/sqlite-utils/createUpsertQuery.js +30 -0
  825. package/lib/module/store/sqlite-utils/createUpsertQuery.js.map +1 -0
  826. package/lib/module/store/sqlite-utils/printRow.js +23 -0
  827. package/lib/module/store/sqlite-utils/printRow.js.map +1 -0
  828. package/lib/module/store/types.js +4 -0
  829. package/lib/module/store/types.js.map +1 -0
  830. package/lib/module/test-utils/BetterSqlite.js +54 -0
  831. package/lib/module/test-utils/BetterSqlite.js.map +1 -0
  832. package/lib/module/version.json +1 -1
  833. package/lib/typescript/components/Attachment/Gallery.d.ts +1 -1
  834. package/lib/typescript/components/Attachment/Giphy.d.ts +1 -1
  835. package/lib/typescript/components/Channel/Channel.d.ts +3 -5
  836. package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
  837. package/lib/typescript/components/Channel/hooks/useCreatePaginatedMessageListContext.d.ts +1 -1
  838. package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +4 -2
  839. package/lib/typescript/components/Chat/Chat.d.ts +4 -0
  840. package/lib/typescript/components/Chat/hooks/handleEventToSyncDB.d.ts +2 -0
  841. package/lib/typescript/components/Chat/hooks/useConnectionRecovered.d.ts +10 -0
  842. package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts +1 -1
  843. package/lib/typescript/components/Chat/hooks/useSyncDatabase.d.ts +8 -0
  844. package/lib/typescript/components/ImageGallery/components/ImageGrid.d.ts +1 -1
  845. package/lib/typescript/components/ImageGallery/hooks/useImageGalleryGestures.d.ts +2 -1
  846. package/lib/typescript/components/MessageList/MessageList.d.ts +1 -1
  847. package/lib/typescript/components/index.d.ts +2 -1
  848. package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +17 -0
  849. package/lib/typescript/contexts/chatContext/ChatContext.d.ts +3 -1
  850. package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContext.d.ts +9 -10
  851. package/lib/typescript/contexts/paginatedMessageListContext/PaginatedMessageListContext.d.ts +4 -0
  852. package/lib/typescript/{components/Attachment/hooks → hooks}/useLoadingImage.d.ts +0 -0
  853. package/lib/typescript/index.d.ts +3 -0
  854. package/lib/typescript/store/QuickSqliteClient.d.ts +22 -0
  855. package/lib/typescript/store/apis/deleteChannel.d.ts +4 -0
  856. package/lib/typescript/store/apis/deleteMember.d.ts +6 -0
  857. package/lib/typescript/store/apis/deleteMessagesForChannel.d.ts +4 -0
  858. package/lib/typescript/store/apis/deleteReactions.d.ts +4 -0
  859. package/lib/typescript/store/apis/getAllChannelIds.d.ts +1 -0
  860. package/lib/typescript/store/apis/getChannelMessages.d.ts +6 -0
  861. package/lib/typescript/store/apis/getChannels.d.ts +15 -0
  862. package/lib/typescript/store/apis/getChannelsForFilterSort.d.ts +17 -0
  863. package/lib/typescript/store/apis/getLastSyncedAt.d.ts +3 -0
  864. package/lib/typescript/store/apis/getMembers.d.ts +5 -0
  865. package/lib/typescript/store/apis/getReads.d.ts +5 -0
  866. package/lib/typescript/store/apis/index.d.ts +20 -0
  867. package/lib/typescript/store/apis/queries/selectChannelIdsForFilterSort.d.ts +15 -0
  868. package/lib/typescript/store/apis/queries/selectChannels.d.ts +4 -0
  869. package/lib/typescript/store/apis/queries/selectMembersForChannels.d.ts +2 -0
  870. package/lib/typescript/store/apis/queries/selectMessagesForChannels.d.ts +2 -0
  871. package/lib/typescript/store/apis/queries/selectReactionsForMessages.d.ts +2 -0
  872. package/lib/typescript/store/apis/queries/selectReadsForChannels.d.ts +2 -0
  873. package/lib/typescript/store/apis/updateMessage.d.ts +6 -0
  874. package/lib/typescript/store/apis/updateReaction.d.ts +7 -0
  875. package/lib/typescript/store/apis/upsertChannelData.d.ts +5 -0
  876. package/lib/typescript/store/apis/upsertChannels.d.ts +9 -0
  877. package/lib/typescript/store/apis/upsertCidsForQuery.d.ts +7 -0
  878. package/lib/typescript/store/apis/upsertLastSyncedAt.d.ts +4 -0
  879. package/lib/typescript/store/apis/upsertMembers.d.ts +7 -0
  880. package/lib/typescript/store/apis/upsertMessages.d.ts +6 -0
  881. package/lib/typescript/store/apis/upsertReads.d.ts +7 -0
  882. package/lib/typescript/store/apis/utils/convertFilterSortToQuery.d.ts +6 -0
  883. package/lib/typescript/store/constants.d.ts +3 -0
  884. package/lib/typescript/store/mappers/mapChannelDataToStorable.d.ts +4 -0
  885. package/lib/typescript/store/mappers/mapDateTimeToStorable.d.ts +1 -0
  886. package/lib/typescript/store/mappers/mapMemberToStorable.d.ts +7 -0
  887. package/lib/typescript/store/mappers/mapMessageToStorable.d.ts +3 -0
  888. package/lib/typescript/store/mappers/mapReactionToStorable.d.ts +3 -0
  889. package/lib/typescript/store/mappers/mapReadToStorable.d.ts +7 -0
  890. package/lib/typescript/store/mappers/mapStorableToChannel.d.ts +4 -0
  891. package/lib/typescript/store/mappers/mapStorableToMember.d.ts +4 -0
  892. package/lib/typescript/store/mappers/mapStorableToMessage.d.ts +8 -0
  893. package/lib/typescript/store/mappers/mapStorableToReaction.d.ts +4 -0
  894. package/lib/typescript/store/mappers/mapStorableToRead.d.ts +4 -0
  895. package/lib/typescript/store/mappers/mapStorableToUser.d.ts +4 -0
  896. package/lib/typescript/store/mappers/mapUserToStorable.d.ts +3 -0
  897. package/lib/typescript/store/schema.d.ts +110 -0
  898. package/lib/typescript/store/sqlite-utils/__tests__/createSelectQuery.test.d.ts +1 -0
  899. package/lib/typescript/store/sqlite-utils/appendWhereCluase.d.ts +3 -0
  900. package/lib/typescript/store/sqlite-utils/createCreateTableQuery.d.ts +2 -0
  901. package/lib/typescript/store/sqlite-utils/createDeleteQuery.d.ts +12 -0
  902. package/lib/typescript/store/sqlite-utils/createSelectQuery.d.ts +13 -0
  903. package/lib/typescript/store/sqlite-utils/createUpdateQuery.d.ts +13 -0
  904. package/lib/typescript/store/sqlite-utils/createUpsertQuery.d.ts +11 -0
  905. package/lib/typescript/store/sqlite-utils/printRow.d.ts +2 -0
  906. package/lib/typescript/store/types.d.ts +9 -0
  907. package/lib/typescript/test-utils/BetterSqlite.d.ts +8 -0
  908. package/package.json +5 -2
  909. package/src/__tests__/offline-feature.test.js +656 -0
  910. package/src/components/Attachment/Gallery.tsx +18 -17
  911. package/src/components/Attachment/Giphy.tsx +9 -10
  912. package/src/components/Avatar/Avatar.tsx +45 -31
  913. package/src/components/Avatar/GroupAvatar.tsx +46 -35
  914. package/src/components/Channel/Channel.tsx +101 -136
  915. package/src/components/Channel/hooks/useCreateChannelContext.ts +2 -0
  916. package/src/components/Channel/hooks/useCreatePaginatedMessageListContext.ts +2 -0
  917. package/src/components/ChannelList/ChannelList.tsx +28 -8
  918. package/src/components/ChannelList/ChannelListMessenger.tsx +4 -0
  919. package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +2 -0
  920. package/src/components/ChannelList/hooks/listeners/useAddedToChannelNotification.ts +2 -2
  921. package/src/components/ChannelList/hooks/listeners/useChannelDeleted.ts +2 -2
  922. package/src/components/ChannelList/hooks/listeners/useChannelHidden.ts +2 -2
  923. package/src/components/ChannelList/hooks/listeners/useChannelTruncated.ts +2 -2
  924. package/src/components/ChannelList/hooks/listeners/useChannelUpdated.ts +2 -2
  925. package/src/components/ChannelList/hooks/listeners/useChannelVisible.ts +2 -2
  926. package/src/components/ChannelList/hooks/listeners/useNewMessage.ts +2 -2
  927. package/src/components/ChannelList/hooks/listeners/useNewMessageNotification.ts +2 -2
  928. package/src/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.ts +2 -2
  929. package/src/components/ChannelList/hooks/listeners/useUserPresence.ts +5 -4
  930. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +46 -10
  931. package/src/components/ChannelPreview/ChannelPreview.tsx +2 -2
  932. package/src/components/ChannelPreview/ChannelPreviewMessage.tsx +10 -9
  933. package/src/components/Chat/Chat.tsx +41 -4
  934. package/src/components/Chat/hooks/handleEventToSyncDB.ts +142 -0
  935. package/src/components/Chat/hooks/useConnectionRecovered.ts +92 -0
  936. package/src/components/Chat/hooks/useCreateChatContext.ts +9 -3
  937. package/src/components/Chat/hooks/useMutedUsers.ts +5 -3
  938. package/src/components/Chat/hooks/useSyncDatabase.ts +30 -0
  939. package/src/components/ImageGallery/ImageGallery.tsx +30 -18
  940. package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +6 -6
  941. package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +3 -3
  942. package/src/components/ImageGallery/__tests__/ImageGalleryGrid.test.tsx +3 -3
  943. package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +3 -3
  944. package/src/components/ImageGallery/components/ImageGrid.tsx +3 -3
  945. package/src/components/ImageGallery/hooks/useImageGalleryGestures.tsx +16 -0
  946. package/src/components/Message/MessageSimple/__tests__/__snapshots__/MessageAvatar.test.js.snap +1 -0
  947. package/src/components/MessageList/MessageList.tsx +162 -106
  948. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +6 -0
  949. package/src/components/index.ts +2 -1
  950. package/src/contexts/channelContext/ChannelContext.tsx +15 -0
  951. package/src/contexts/channelsStateContext/useChannelState.ts +2 -2
  952. package/src/contexts/chatContext/ChatContext.tsx +3 -1
  953. package/src/contexts/imageGalleryContext/ImageGalleryContext.md +1 -1
  954. package/src/contexts/imageGalleryContext/ImageGalleryContext.tsx +19 -14
  955. package/src/contexts/overlayContext/OverlayProvider.tsx +1 -5
  956. package/src/contexts/paginatedMessageListContext/PaginatedMessageListContext.tsx +4 -0
  957. package/src/{components/Attachment/hooks → hooks}/useLoadingImage.tsx +9 -1
  958. package/src/index.ts +4 -0
  959. package/src/mock-builders/DB/consts.ts +2 -0
  960. package/src/mock-builders/DB/mock.ts +107 -0
  961. package/src/mock-builders/event/memberAdded.js +8 -0
  962. package/src/mock-builders/event/memberRemoved.js +8 -0
  963. package/src/mock-builders/event/memberUpdated.js +8 -0
  964. package/src/mock-builders/event/reactionDeleted.js +9 -0
  965. package/src/mock-builders/event/reactionNew.js +9 -0
  966. package/src/mock-builders/event/reactionUpdated.js +9 -0
  967. package/src/mock-builders/generator/reaction.js +1 -1
  968. package/src/store/QuickSqliteClient.ts +144 -0
  969. package/src/store/apis/deleteChannel.ts +14 -0
  970. package/src/store/apis/deleteMember.ts +25 -0
  971. package/src/store/apis/deleteMessagesForChannel.ts +19 -0
  972. package/src/store/apis/deleteReactions.ts +24 -0
  973. package/src/store/apis/getAllChannelIds.ts +7 -0
  974. package/src/store/apis/getChannelMessages.ts +50 -0
  975. package/src/store/apis/getChannels.ts +46 -0
  976. package/src/store/apis/getChannelsForFilterSort.ts +45 -0
  977. package/src/store/apis/getLastSyncedAt.ts +17 -0
  978. package/src/store/apis/getMembers.ts +26 -0
  979. package/src/store/apis/getReads.ts +26 -0
  980. package/src/store/apis/index.ts +20 -0
  981. package/src/store/apis/queries/selectChannelIdsForFilterSort.ts +38 -0
  982. package/src/store/apis/queries/selectChannels.ts +25 -0
  983. package/src/store/apis/queries/selectMembersForChannels.ts +32 -0
  984. package/src/store/apis/queries/selectMessagesForChannels.ts +40 -0
  985. package/src/store/apis/queries/selectReactionsForMessages.ts +33 -0
  986. package/src/store/apis/queries/selectReadsForChannels.ts +30 -0
  987. package/src/store/apis/updateMessage.ts +65 -0
  988. package/src/store/apis/updateReaction.ts +54 -0
  989. package/src/store/apis/upsertChannelData.ts +20 -0
  990. package/src/store/apis/upsertChannels.ts +79 -0
  991. package/src/store/apis/upsertCidsForQuery.ts +30 -0
  992. package/src/store/apis/upsertLastSyncedAt.ts +17 -0
  993. package/src/store/apis/upsertMembers.ts +41 -0
  994. package/src/store/apis/upsertMessages.ts +43 -0
  995. package/src/store/apis/upsertReads.ts +41 -0
  996. package/src/store/apis/utils/convertFilterSortToQuery.ts +14 -0
  997. package/src/store/constants.ts +3 -0
  998. package/src/store/mappers/mapChannelDataToStorable.ts +67 -0
  999. package/src/store/mappers/mapDateTimeToStorable.ts +5 -0
  1000. package/src/store/mappers/mapMemberToStorable.ts +45 -0
  1001. package/src/store/mappers/mapMessageToStorable.ts +35 -0
  1002. package/src/store/mappers/mapReactionToStorable.ts +19 -0
  1003. package/src/store/mappers/mapReadToStorable.ts +25 -0
  1004. package/src/store/mappers/mapStorableToChannel.ts +69 -0
  1005. package/src/store/mappers/mapStorableToMember.ts +42 -0
  1006. package/src/store/mappers/mapStorableToMessage.ts +40 -0
  1007. package/src/store/mappers/mapStorableToReaction.ts +25 -0
  1008. package/src/store/mappers/mapStorableToRead.ts +21 -0
  1009. package/src/store/mappers/mapStorableToUser.ts +23 -0
  1010. package/src/store/mappers/mapUserToStorable.ts +18 -0
  1011. package/src/store/schema.ts +284 -0
  1012. package/src/store/sqlite-utils/__tests__/createSelectQuery.test.ts +21 -0
  1013. package/src/store/sqlite-utils/appendWhereCluase.ts +32 -0
  1014. package/src/store/sqlite-utils/createCreateTableQuery.ts +39 -0
  1015. package/src/store/sqlite-utils/createDeleteQuery.ts +23 -0
  1016. package/src/store/sqlite-utils/createSelectQuery.ts +25 -0
  1017. package/src/store/sqlite-utils/createUpdateQuery.ts +27 -0
  1018. package/src/store/sqlite-utils/createUpsertQuery.ts +48 -0
  1019. package/src/store/sqlite-utils/printRow.ts +19 -0
  1020. package/src/store/types.ts +12 -0
  1021. package/src/test-utils/BetterSqlite.js +44 -0
  1022. package/src/version.json +1 -1
  1023. package/lib/commonjs/components/Attachment/hooks/useLoadingImage.js.map +0 -1
  1024. package/lib/commonjs/components/ChannelList/hooks/listeners/useConnectionRecovered.js +0 -45
  1025. package/lib/commonjs/components/ChannelList/hooks/listeners/useConnectionRecovered.js.map +0 -1
  1026. package/lib/module/components/Attachment/hooks/useLoadingImage.js.map +0 -1
  1027. package/lib/module/components/ChannelList/hooks/listeners/useConnectionRecovered.js +0 -45
  1028. package/lib/module/components/ChannelList/hooks/listeners/useConnectionRecovered.js.map +0 -1
  1029. package/lib/typescript/components/ChannelList/hooks/listeners/useConnectionRecovered.d.ts +0 -8
  1030. package/src/components/ChannelList/hooks/listeners/useConnectionRecovered.ts +0 -41
@@ -1 +1 @@
1
- {"version":3,"sources":["useMutedUsers.ts"],"names":["useMutedUsers","client","mutedUsers","setMutedUsers","handleEvent","event","mutes","me","on","off"],"mappings":";;;;;;;;;AAAA;;AAMO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAG3BC,MAH2B,EAIxB;AACH,kBAAoC,qBAAqCA,MAAM,CAACC,UAAP,IAAqB,EAA1D,CAApC;AAAA;AAAA,MAAOA,UAAP;AAAA,MAAmBC,aAAnB;;AAEA,wBAAU,YAAM;AACd,QAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,KAAD,EAAsC;AACxDF,MAAAA,aAAa,CAAC,UAACG,KAAD;AAAA;;AAAA,eAAW,cAAAD,KAAK,CAACE,EAAN,+BAAUD,KAAV,KAAmBA,KAAnB,IAA4B,EAAvC;AAAA,OAAD,CAAb;AACD,KAFD;;AAIAL,IAAAA,MAAM,CAACO,EAAP,CAAU,4BAAV,EAAwCJ,WAAxC;AACA,WAAO;AAAA,aAAMH,MAAM,CAACQ,GAAP,CAAW,4BAAX,EAAyCL,WAAzC,CAAN;AAAA,KAAP;AACD,GAPD,EAOG,CAACD,aAAD,CAPH;AASA,SAAOD,UAAP;AACD,CAjBM","sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Event, Mute, StreamChat } from 'stream-chat';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nexport const useMutedUsers = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n client: StreamChat<StreamChatGenerics>,\n) => {\n const [mutedUsers, setMutedUsers] = useState<Mute<StreamChatGenerics>[]>(client.mutedUsers || []);\n\n useEffect(() => {\n const handleEvent = (event: Event<StreamChatGenerics>) => {\n setMutedUsers((mutes) => event.me?.mutes || mutes || []);\n };\n\n client.on('notification.mutes_updated', handleEvent);\n return () => client.off('notification.mutes_updated', handleEvent);\n }, [setMutedUsers]);\n\n return mutedUsers;\n};\n"]}
1
+ {"version":3,"sources":["useMutedUsers.ts"],"names":["useMutedUsers","client","mutedUsers","setMutedUsers","handleEvent","event","mutes","me","listener","on","unsubscribe"],"mappings":";;;;;;;;;AAAA;;AAMO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAG3BC,MAH2B,EAIxB;AACH,kBAAoC,qBAClC,CAAAA,MAAM,QAAN,YAAAA,MAAM,CAAEC,UAAR,KAAsB,EADY,CAApC;AAAA;AAAA,MAAOA,UAAP;AAAA,MAAmBC,aAAnB;;AAIA,wBAAU,YAAM;AACd,QAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,KAAD,EAAsC;AACxDF,MAAAA,aAAa,CAAC,UAACG,KAAD;AAAA;;AAAA,eAAW,cAAAD,KAAK,CAACE,EAAN,+BAAUD,KAAV,KAAmBA,KAAnB,IAA4B,EAAvC;AAAA,OAAD,CAAb;AACD,KAFD;;AAIA,QAAME,QAAQ,GAAGP,MAAH,oBAAGA,MAAM,CAAEQ,EAAR,CAAW,4BAAX,EAAyCL,WAAzC,CAAjB;AACA,WAAO;AAAA,aAAMI,QAAN,oBAAMA,QAAQ,CAAEE,WAAV,EAAN;AAAA,KAAP;AACD,GAPD,EAOG,CAACP,aAAD,CAPH;AASA,SAAOD,UAAP;AACD,CAnBM","sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Event, Mute, StreamChat } from 'stream-chat';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nexport const useMutedUsers = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n client: StreamChat<StreamChatGenerics>,\n) => {\n const [mutedUsers, setMutedUsers] = useState<Mute<StreamChatGenerics>[]>(\n client?.mutedUsers || [],\n );\n\n useEffect(() => {\n const handleEvent = (event: Event<StreamChatGenerics>) => {\n setMutedUsers((mutes) => event.me?.mutes || mutes || []);\n };\n\n const listener = client?.on('notification.mutes_updated', handleEvent);\n return () => listener?.unsubscribe();\n }, [setMutedUsers]);\n\n return mutedUsers;\n};\n"]}
@@ -0,0 +1,29 @@
1
+ Object.defineProperty(exports, "__esModule", {
2
+ value: true
3
+ });
4
+ exports.useSyncDatabase = void 0;
5
+
6
+ var _react = require("react");
7
+
8
+ var _handleEventToSyncDB = require("./handleEventToSyncDB");
9
+
10
+ var useSyncDatabase = function useSyncDatabase(_ref) {
11
+ var client = _ref.client,
12
+ enableOfflineSupport = _ref.enableOfflineSupport;
13
+ (0, _react.useEffect)(function () {
14
+ var listener;
15
+
16
+ if (enableOfflineSupport) {
17
+ listener = client == null ? void 0 : client.on(_handleEventToSyncDB.handleEventToSyncDB);
18
+ }
19
+
20
+ return function () {
21
+ var _listener;
22
+
23
+ (_listener = listener) == null ? void 0 : _listener.unsubscribe();
24
+ };
25
+ }, [client]);
26
+ };
27
+
28
+ exports.useSyncDatabase = useSyncDatabase;
29
+ //# sourceMappingURL=useSyncDatabase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useSyncDatabase.ts"],"names":["useSyncDatabase","client","enableOfflineSupport","listener","on","handleEventToSyncDB","unsubscribe"],"mappings":";;;;;AAAA;;AAIA;;AAQO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,OAKG;AAAA,MAFhCC,MAEgC,QAFhCA,MAEgC;AAAA,MADhCC,oBACgC,QADhCA,oBACgC;AAChC,wBAAU,YAAM;AACd,QAAIC,QAAJ;;AAEA,QAAID,oBAAJ,EAA0B;AACxBC,MAAAA,QAAQ,GAAGF,MAAH,oBAAGA,MAAM,CAAEG,EAAR,CAAWC,wCAAX,CAAX;AACD;;AAED,WAAO,YAAM;AAAA;;AACX,mBAAAF,QAAQ,SAAR,sBAAUG,WAAV;AACD,KAFD;AAGD,GAVD,EAUG,CAACL,MAAD,CAVH;AAWD,CAjBM","sourcesContent":["import { useEffect } from 'react';\n\nimport type { StreamChat } from 'stream-chat';\n\nimport { handleEventToSyncDB } from './handleEventToSyncDB';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\ntype Params<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {\n client: StreamChat<StreamChatGenerics>;\n enableOfflineSupport: boolean;\n};\nexport const useSyncDatabase = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n client,\n enableOfflineSupport,\n}: Params<StreamChatGenerics>) => {\n useEffect(() => {\n let listener: ReturnType<StreamChat['on']> | undefined;\n\n if (enableOfflineSupport) {\n listener = client?.on(handleEventToSyncDB);\n }\n\n return () => {\n listener?.unsubscribe();\n };\n }, [client]);\n};\n"]}
@@ -56,7 +56,7 @@ var _utils = require("../../utils/utils");
56
56
  var _getGiphyMimeType = require("../Attachment/utils/getGiphyMimeType");
57
57
 
58
58
  var _this = this,
59
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/ImageGallery/ImageGallery.tsx";
59
+ _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/ImageGallery/ImageGallery.tsx";
60
60
 
61
61
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
62
62
 
@@ -131,9 +131,9 @@ var ImageGallery = function ImageGallery(props) {
131
131
  translucentStatusBar = _useOverlayContext.translucentStatusBar;
132
132
 
133
133
  var _useImageGalleryConte = (0, _ImageGalleryContext.useImageGalleryContext)(),
134
- image = _useImageGalleryConte.image,
135
- images = _useImageGalleryConte.images,
136
- setImage = _useImageGalleryConte.setImage;
134
+ messages = _useImageGalleryConte.messages,
135
+ selectedMessage = _useImageGalleryConte.selectedMessage,
136
+ setSelectedMessage = _useImageGalleryConte.setSelectedMessage;
137
137
 
138
138
  var statusBarHeight = (_StatusBar$currentHei = _reactNative.StatusBar.currentHeight) != null ? _StatusBar$currentHei : 0;
139
139
  var bottomBarHeight = fullScreenHeight - measuredScreenHeight - statusBarHeight;
@@ -192,14 +192,14 @@ var ImageGallery = function ImageGallery(props) {
192
192
  var offsetScale = (0, _reactNativeReanimated.useSharedValue)(1);
193
193
  var scale = (0, _reactNativeReanimated.useSharedValue)(1);
194
194
  var translationX = (0, _reactNativeReanimated.useSharedValue)(0);
195
- var photos = images.reduce(function (acc, cur) {
195
+ var photos = messages.reduce(function (acc, cur) {
196
196
  var _cur$attachments;
197
197
 
198
198
  var attachmentImages = ((_cur$attachments = cur.attachments) == null ? void 0 : _cur$attachments.filter(function (attachment) {
199
199
  var _attachment$giphy, _attachment$giphy$gip;
200
200
 
201
201
  return attachment.type === 'giphy' && (((_attachment$giphy = attachment.giphy) == null ? void 0 : (_attachment$giphy$gip = _attachment$giphy[giphyVersion]) == null ? void 0 : _attachment$giphy$gip.url) || attachment.thumb_url || attachment.image_url) || attachment.type === 'image' && !attachment.title_link && !attachment.og_scrape_url && (0, _getUrlOfImageAttachment.getUrlOfImageAttachment)(attachment) || (0, _native.isVideoPackageAvailable)() && attachment.type === 'video';
202
- })) || [];
202
+ }).reverse()) || [];
203
203
  var attachmentPhotos = attachmentImages.map(function (a) {
204
204
  var _a$giphy, _a$giphy$giphyVersion;
205
205
 
@@ -223,9 +223,14 @@ var ImageGallery = function ImageGallery(props) {
223
223
  user_id: cur.user_id
224
224
  };
225
225
  });
226
- return [].concat((0, _toConsumableArray2["default"])(acc), (0, _toConsumableArray2["default"])(attachmentPhotos));
226
+ return [].concat((0, _toConsumableArray2["default"])(attachmentPhotos), (0, _toConsumableArray2["default"])(acc));
227
227
  }, []);
228
228
  var photoLength = photos.length;
229
+
230
+ var stripQueryFromUrl = function stripQueryFromUrl(url) {
231
+ return url.split('?')[0];
232
+ };
233
+
229
234
  (0, _react.useEffect)(function () {
230
235
  var updatePosition = function updatePosition(newIndex) {
231
236
  'worklet';
@@ -238,7 +243,7 @@ var ImageGallery = function ImageGallery(props) {
238
243
  };
239
244
 
240
245
  var newIndex = photos.findIndex(function (photo) {
241
- return photo.messageId === (image == null ? void 0 : image.messageId) && photo.uri === (image == null ? void 0 : image.url);
246
+ return photo.messageId === (selectedMessage == null ? void 0 : selectedMessage.messageId) && stripQueryFromUrl(photo.uri) === stripQueryFromUrl((selectedMessage == null ? void 0 : selectedMessage.url) || '');
242
247
  });
243
248
 
244
249
  if (photoLength > 1) {
@@ -246,7 +251,7 @@ var ImageGallery = function ImageGallery(props) {
246
251
  }
247
252
 
248
253
  (0, _reactNativeReanimated.runOnUI)(updatePosition)(newIndex);
249
- }, [image, photoLength]);
254
+ }, [selectedMessage, photoLength]);
250
255
  var uriForCurrentImage = (_photos$selectedIndex = photos[selectedIndex]) == null ? void 0 : _photos$selectedIndex.uri;
251
256
  (0, _react.useEffect)(function () {
252
257
  setCurrentImageHeight(screenHeight);
@@ -278,6 +283,7 @@ var ImageGallery = function ImageGallery(props) {
278
283
  scale: scale,
279
284
  screenHeight: screenHeight,
280
285
  screenWidth: screenWidth,
286
+ selectedIndex: selectedIndex,
281
287
  setSelectedIndex: setSelectedIndex,
282
288
  translateX: translateX,
283
289
  translateY: translateY,
@@ -384,7 +390,7 @@ var ImageGallery = function ImageGallery(props) {
384
390
  __self: _this,
385
391
  __source: {
386
392
  fileName: _jsxFileName,
387
- lineNumber: 505,
393
+ lineNumber: 517,
388
394
  columnNumber: 5
389
395
  }
390
396
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -392,7 +398,7 @@ var ImageGallery = function ImageGallery(props) {
392
398
  __self: _this,
393
399
  __source: {
394
400
  fileName: _jsxFileName,
395
- lineNumber: 510,
401
+ lineNumber: 522,
396
402
  columnNumber: 7
397
403
  }
398
404
  }), _react["default"].createElement(_reactNativeGestureHandler.TapGestureHandler, {
@@ -404,7 +410,7 @@ var ImageGallery = function ImageGallery(props) {
404
410
  __self: _this,
405
411
  __source: {
406
412
  fileName: _jsxFileName,
407
- lineNumber: 511,
413
+ lineNumber: 523,
408
414
  columnNumber: 7
409
415
  }
410
416
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -412,7 +418,7 @@ var ImageGallery = function ImageGallery(props) {
412
418
  __self: _this,
413
419
  __source: {
414
420
  fileName: _jsxFileName,
415
- lineNumber: 518,
421
+ lineNumber: 530,
416
422
  columnNumber: 9
417
423
  }
418
424
  }, _react["default"].createElement(_reactNativeGestureHandler.TapGestureHandler, {
@@ -426,7 +432,7 @@ var ImageGallery = function ImageGallery(props) {
426
432
  __self: _this,
427
433
  __source: {
428
434
  fileName: _jsxFileName,
429
- lineNumber: 519,
435
+ lineNumber: 531,
430
436
  columnNumber: 11
431
437
  }
432
438
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -434,7 +440,7 @@ var ImageGallery = function ImageGallery(props) {
434
440
  __self: _this,
435
441
  __source: {
436
442
  fileName: _jsxFileName,
437
- lineNumber: 528,
443
+ lineNumber: 540,
438
444
  columnNumber: 13
439
445
  }
440
446
  }, _react["default"].createElement(_reactNativeGestureHandler.PinchGestureHandler, {
@@ -444,7 +450,7 @@ var ImageGallery = function ImageGallery(props) {
444
450
  __self: _this,
445
451
  __source: {
446
452
  fileName: _jsxFileName,
447
- lineNumber: 529,
453
+ lineNumber: 541,
448
454
  columnNumber: 15
449
455
  }
450
456
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -452,7 +458,7 @@ var ImageGallery = function ImageGallery(props) {
452
458
  __self: _this,
453
459
  __source: {
454
460
  fileName: _jsxFileName,
455
- lineNumber: 534,
461
+ lineNumber: 546,
456
462
  columnNumber: 17
457
463
  }
458
464
  }, _react["default"].createElement(_reactNativeGestureHandler.PanGestureHandler, {
@@ -465,7 +471,7 @@ var ImageGallery = function ImageGallery(props) {
465
471
  __self: _this,
466
472
  __source: {
467
473
  fileName: _jsxFileName,
468
- lineNumber: 535,
474
+ lineNumber: 547,
469
475
  columnNumber: 19
470
476
  }
471
477
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -473,7 +479,7 @@ var ImageGallery = function ImageGallery(props) {
473
479
  __self: _this,
474
480
  __source: {
475
481
  fileName: _jsxFileName,
476
- lineNumber: 543,
482
+ lineNumber: 555,
477
483
  columnNumber: 21
478
484
  }
479
485
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -487,7 +493,7 @@ var ImageGallery = function ImageGallery(props) {
487
493
  __self: _this,
488
494
  __source: {
489
495
  fileName: _jsxFileName,
490
- lineNumber: 544,
496
+ lineNumber: 556,
491
497
  columnNumber: 23
492
498
  }
493
499
  }, photos.map(function (photo, i) {
@@ -518,7 +524,7 @@ var ImageGallery = function ImageGallery(props) {
518
524
  __self: _this,
519
525
  __source: {
520
526
  fileName: _jsxFileName,
521
- lineNumber: 561,
527
+ lineNumber: 573,
522
528
  columnNumber: 29
523
529
  }
524
530
  }) : _react["default"].createElement(_AnimatedGalleryImage.AnimatedGalleryImage, {
@@ -542,7 +548,7 @@ var ImageGallery = function ImageGallery(props) {
542
548
  __self: _this,
543
549
  __source: {
544
550
  fileName: _jsxFileName,
545
- lineNumber: 588,
551
+ lineNumber: 600,
546
552
  columnNumber: 29
547
553
  }
548
554
  });
@@ -554,7 +560,7 @@ var ImageGallery = function ImageGallery(props) {
554
560
  __self: _this,
555
561
  __source: {
556
562
  fileName: _jsxFileName,
557
- lineNumber: 621,
563
+ lineNumber: 633,
558
564
  columnNumber: 7
559
565
  }
560
566
  })), _react["default"].createElement(_ImageGalleryFooter.ImageGalleryFooter, (0, _extends2["default"])({
@@ -574,7 +580,7 @@ var ImageGallery = function ImageGallery(props) {
574
580
  __self: _this,
575
581
  __source: {
576
582
  fileName: _jsxFileName,
577
- lineNumber: 627,
583
+ lineNumber: 639,
578
584
  columnNumber: 7
579
585
  }
580
586
  })), _react["default"].createElement(_ImageGalleryOverlay.ImageGalleryOverlay, {
@@ -584,14 +590,14 @@ var ImageGallery = function ImageGallery(props) {
584
590
  __self: _this,
585
591
  __source: {
586
592
  fileName: _jsxFileName,
587
- lineNumber: 643,
593
+ lineNumber: 655,
588
594
  columnNumber: 7
589
595
  }
590
596
  }), _react["default"].createElement(_bottomSheet.BottomSheetModalProvider, {
591
597
  __self: _this,
592
598
  __source: {
593
599
  fileName: _jsxFileName,
594
- lineNumber: 648,
600
+ lineNumber: 660,
595
601
  columnNumber: 7
596
602
  }
597
603
  }, _react["default"].createElement(_bottomSheet.BottomSheetModal, {
@@ -604,7 +610,7 @@ var ImageGallery = function ImageGallery(props) {
604
610
  __self: _this,
605
611
  __source: {
606
612
  fileName: _jsxFileName,
607
- lineNumber: 653,
613
+ lineNumber: 665,
608
614
  columnNumber: 13
609
615
  }
610
616
  }));
@@ -619,19 +625,19 @@ var ImageGallery = function ImageGallery(props) {
619
625
  __self: _this,
620
626
  __source: {
621
627
  fileName: _jsxFileName,
622
- lineNumber: 649,
628
+ lineNumber: 661,
623
629
  columnNumber: 9
624
630
  }
625
631
  }, _react["default"].createElement(_ImageGrid.ImageGrid, (0, _extends2["default"])({
626
632
  closeGridView: closeGridView,
627
633
  numberOfImageGalleryGridColumns: numberOfImageGalleryGridColumns,
628
634
  photos: gridPhotos,
629
- setImage: setImage
635
+ setSelectedMessage: setSelectedMessage
630
636
  }, imageGalleryCustomComponents == null ? void 0 : imageGalleryCustomComponents.grid, {
631
637
  __self: _this,
632
638
  __source: {
633
639
  fileName: _jsxFileName,
634
- lineNumber: 664,
640
+ lineNumber: 676,
635
641
  columnNumber: 11
636
642
  }
637
643
  })))));
@@ -1 +1 @@
1
- {"version":3,"sources":["ImageGallery.tsx"],"names":["isAndroid","Platform","OS","fullScreenHeight","Dimensions","get","height","measuredScreenHeight","screenWidth","halfScreenWidth","MARGIN","HasPinched","IsSwiping","ImageGallery","props","giphyVersion","imageGalleryCustomComponents","imageGalleryGridHandleHeight","imageGalleryGridSnapPoints","numberOfImageGalleryGridColumns","overlayOpacity","paused","setPaused","progress","setProgress","duration","setDuration","theme","white_snow","colors","imageGallery","backgroundColor","pager","slide","gridPhotos","setGridPhotos","overlay","translucentStatusBar","image","images","setImage","statusBarHeight","StatusBar","currentHeight","bottomBarHeight","androidScreenHeightAdjustment","screenHeight","halfScreenHeight","quarterScreenHeight","snapPoints","React","useMemo","bottomSheetModalRef","currentBottomSheetIndex","setCurrentBottomSheetIndex","animatedBottomSheetIndex","screenTranslateY","showScreen","value","easing","Easing","out","ease","Keyboard","dismiss","currentImageHeight","setCurrentImageHeight","selectedIndex","setSelectedIndex","index","headerFooterVisible","doubleTapRef","panRef","pinchRef","singleTapRef","translateX","translateY","offsetScale","scale","translationX","photos","reduce","acc","cur","attachmentImages","attachments","filter","attachment","type","giphy","url","thumb_url","image_url","title_link","og_scrape_url","attachmentPhotos","map","a","imageUrl","giphyURL","channelId","cid","created_at","id","messageId","mime_type","original_height","original_width","uri","width","user","user_id","photoLength","length","updatePosition","newIndex","findIndex","photo","uriForCurrentImage","imageHeight","Math","floor","Image","getSize","onDoubleTap","onPan","onPinch","onSingleTap","headerFooterOpacity","pagerStyle","transform","scaleX","containerBackground","opacity","showScreenStyle","closeGridView","current","close","openGridView","present","videoRef","handleEnd","handleLoad","payload","handleProgress","data","currentTime","seekableDuration","handlePlayPause","status","undefined","seek","replayAsync","state","onProgressDrag","setPositionAsync","StyleSheet","absoluteFillObject","absoluteFill","styles","animatedContainer","i","abs","marginRight","header","footer","gridHandle","grid","clamp","lowerBound","upperBound","min","max","create","alignItems","flexDirection","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport {\n Dimensions,\n Image,\n ImageStyle,\n Keyboard,\n Platform,\n StatusBar,\n StyleSheet,\n ViewStyle,\n} from 'react-native';\n\nimport {\n PanGestureHandler,\n PinchGestureHandler,\n TapGestureHandler,\n} from 'react-native-gesture-handler';\n\nimport Animated, {\n Easing,\n runOnJS,\n runOnUI,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { BottomSheetModal, BottomSheetModalProvider } from '@gorhom/bottom-sheet';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { AnimatedGalleryImage } from './components/AnimatedGalleryImage';\nimport { AnimatedGalleryVideo } from './components/AnimatedGalleryVideo';\nimport {\n ImageGalleryFooter,\n ImageGalleryFooterCustomComponentProps,\n} from './components/ImageGalleryFooter';\nimport {\n ImageGalleryHeader,\n ImageGalleryHeaderCustomComponentProps,\n} from './components/ImageGalleryHeader';\nimport { ImageGalleryOverlay } from './components/ImageGalleryOverlay';\nimport { ImageGalleryGridImageComponents, ImageGrid } from './components/ImageGrid';\nimport {\n ImageGalleryGridHandleCustomComponentProps,\n ImageGridHandle,\n} from './components/ImageGridHandle';\n\nimport { useImageGalleryGestures } from './hooks/useImageGalleryGestures';\n\nimport { useImageGalleryContext } from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n OverlayProviderProps,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n isVideoPackageAvailable,\n VideoPayloadData,\n VideoProgressData,\n VideoType,\n} from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getResizedImageUrl } from '../../utils/getResizedImageUrl';\nimport { getUrlOfImageAttachment } from '../../utils/getUrlOfImageAttachment';\nimport { vh, vw } from '../../utils/utils';\nimport { getGiphyMimeType } from '../Attachment/utils/getGiphyMimeType';\n\nconst isAndroid = Platform.OS === 'android';\nconst fullScreenHeight = Dimensions.get('screen').height;\nconst measuredScreenHeight = vh(100);\nconst screenWidth = vw(100);\nconst halfScreenWidth = vw(50);\nconst MARGIN = 32;\n\nexport enum HasPinched {\n FALSE = 0,\n TRUE,\n}\n\nexport enum IsSwiping {\n UNDETERMINED = 0,\n TRUE,\n FALSE,\n}\n\nexport type ImageGalleryCustomComponents<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Override props for following UI components, which are part of [image gallery](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#gallery-components).\n *\n * - [ImageGalleryFooter](#ImageGalleryFooter)\n *\n * - [ImageGrid](#ImageGrid)\n *\n * - [ImageGridHandle](#ImageGridHandle)\n *\n * - [ImageGalleryHeader](#ImageGalleryHeader)\n *\n * e.g.,\n *\n * ```js\n * {\n * footer: {\n * ShareIcon: CustomShareIconComponent\n * },\n * grid: {\n * avatarComponent: CustomAvatarComponent\n * },\n * gridHandle: {\n * centerComponent: CustomCenterComponent\n * },\n * header: {\n * CloseIcon: CustomCloseButtonComponent\n * },\n * }\n * ```\n * @overrideType object\n */\n imageGalleryCustomComponents?: {\n footer?: ImageGalleryFooterCustomComponentProps<StreamChatGenerics>;\n grid?: ImageGalleryGridImageComponents<StreamChatGenerics>;\n gridHandle?: ImageGalleryGridHandleCustomComponentProps;\n header?: ImageGalleryHeaderCustomComponentProps<StreamChatGenerics>;\n };\n};\n\ntype Props<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n ImageGalleryCustomComponents<StreamChatGenerics> & {\n overlayOpacity: Animated.SharedValue<number>;\n } & Pick<\n OverlayProviderProps<StreamChatGenerics>,\n | 'giphyVersion'\n | 'imageGalleryGridSnapPoints'\n | 'imageGalleryGridHandleHeight'\n | 'numberOfImageGalleryGridColumns'\n >;\n\nexport const ImageGallery = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: Props<StreamChatGenerics>,\n) => {\n const {\n giphyVersion = 'fixed_height',\n imageGalleryCustomComponents,\n imageGalleryGridHandleHeight,\n imageGalleryGridSnapPoints,\n numberOfImageGalleryGridColumns,\n overlayOpacity,\n } = props;\n const [paused, setPaused] = useState<boolean>(false);\n const [progress, setProgress] = useState<number>(0);\n const [duration, setDuration] = useState<number>(0);\n const {\n theme: {\n colors: { white_snow },\n imageGallery: { backgroundColor, pager, slide },\n },\n } = useTheme();\n const [gridPhotos, setGridPhotos] = useState<Photo<StreamChatGenerics>[]>([]);\n const { overlay, translucentStatusBar } = useOverlayContext();\n const { image, images, setImage } = useImageGalleryContext<StreamChatGenerics>();\n\n /**\n * Height constants\n */\n const statusBarHeight = StatusBar.currentHeight ?? 0;\n const bottomBarHeight = fullScreenHeight - measuredScreenHeight - statusBarHeight;\n const androidScreenHeightAdjustment = translucentStatusBar\n ? bottomBarHeight === statusBarHeight || bottomBarHeight < 0\n ? 0\n : statusBarHeight\n : bottomBarHeight === statusBarHeight || bottomBarHeight < 0\n ? -statusBarHeight\n : 0;\n const screenHeight = isAndroid\n ? Dimensions.get('window').height + androidScreenHeightAdjustment\n : vh(100);\n const halfScreenHeight = screenHeight / 2;\n const quarterScreenHeight = screenHeight / 4;\n const snapPoints = React.useMemo(\n () => [(screenHeight * 3) / 4, screenHeight - (imageGalleryGridHandleHeight ?? 40)],\n [],\n );\n\n /**\n * BottomSheetModal ref\n */\n const bottomSheetModalRef = useRef<BottomSheetModal>(null);\n\n /**\n * BottomSheetModal state\n */\n const [currentBottomSheetIndex, setCurrentBottomSheetIndex] = useState(0);\n const animatedBottomSheetIndex = useSharedValue(0);\n\n /**\n * Fade animation for screen, it is always rendered with pointerEvents\n * set to none for fast opening\n */\n const screenTranslateY = useSharedValue(screenHeight);\n const showScreen = () => {\n 'worklet';\n screenTranslateY.value = withTiming(0, {\n duration: 250,\n easing: Easing.out(Easing.ease),\n });\n };\n\n /**\n * Run the fade animation on visible change\n */\n useEffect(() => {\n Keyboard.dismiss();\n showScreen();\n }, []);\n\n /**\n * Image height from URL or default to full screen height\n */\n const [currentImageHeight, setCurrentImageHeight] = useState<number>(screenHeight);\n\n /**\n * JS and UI index values, the JS follows the UI but is needed\n * for rendering the virtualized image list\n */\n const [selectedIndex, setSelectedIndex] = useState(0);\n const index = useSharedValue(0);\n\n /**\n * Header visible value for animating in out\n */\n const headerFooterVisible = useSharedValue(1);\n\n /**\n * Gesture handler refs\n */\n const doubleTapRef = useRef<TapGestureHandler>(null);\n const panRef = useRef<PanGestureHandler>(null);\n const pinchRef = useRef<PinchGestureHandler>(null);\n const singleTapRef = useRef<TapGestureHandler>(null);\n\n /**\n * Shared values for movement\n */\n const translateX = useSharedValue(0);\n const translateY = useSharedValue(0);\n const offsetScale = useSharedValue(1);\n const scale = useSharedValue(1);\n const translationX = useSharedValue(0);\n\n /**\n * Photos array created from all currently available\n * photo attachments\n */\n\n const photos = images.reduce((acc: Photo<StreamChatGenerics>[], cur) => {\n const attachmentImages =\n cur.attachments?.filter(\n (attachment) =>\n (attachment.type === 'giphy' &&\n (attachment.giphy?.[giphyVersion]?.url ||\n attachment.thumb_url ||\n attachment.image_url)) ||\n (attachment.type === 'image' &&\n !attachment.title_link &&\n !attachment.og_scrape_url &&\n getUrlOfImageAttachment(attachment)) ||\n (isVideoPackageAvailable() && attachment.type === 'video'),\n ) || [];\n\n const attachmentPhotos = attachmentImages.map((a) => {\n const imageUrl = getUrlOfImageAttachment(a) as string;\n const giphyURL = a.giphy?.[giphyVersion]?.url || a.thumb_url || a.image_url;\n\n return {\n channelId: cur.cid,\n created_at: cur.created_at,\n id: `photoId-${cur.id}-${imageUrl}`,\n messageId: cur.id,\n mime_type: a.type === 'giphy' ? getGiphyMimeType(giphyURL ?? '') : a.mime_type,\n original_height: a.original_height,\n original_width: a.original_width,\n type: a.type,\n uri:\n a.type === 'giphy'\n ? giphyURL\n : getResizedImageUrl({\n height: screenHeight,\n url: imageUrl,\n width: screenWidth,\n }),\n user: cur.user,\n user_id: cur.user_id,\n };\n });\n\n return [...acc, ...attachmentPhotos] as Photo<StreamChatGenerics>[];\n }, []);\n\n /**\n * Photos length needs to be kept as a const here so if the length\n * changes it causes the pan gesture handler function to refresh. This\n * does not work if the calculation for the length of the array is left\n * inside the gesture handler as it will have an array as a dependency\n */\n const photoLength = photos.length;\n\n /**\n * Set selected photo when changed via pressing in the message list\n */\n useEffect(() => {\n const updatePosition = (newIndex: number) => {\n 'worklet';\n\n if (newIndex > -1) {\n index.value = newIndex;\n translationX.value = -(screenWidth + MARGIN) * newIndex;\n runOnJS(setSelectedIndex)(newIndex);\n }\n };\n\n const newIndex = photos.findIndex(\n (photo) => photo.messageId === image?.messageId && photo.uri === image?.url,\n );\n\n if (photoLength > 1) {\n setPaused(true);\n }\n\n runOnUI(updatePosition)(newIndex);\n }, [image, photoLength]);\n\n /**\n * Image heights are not provided and therefore need to be calculated.\n * We start by allowing the image to be the full height then reduce it\n * to the proper scaled height based on the width being restricted to the\n * screen width when the dimensions are received.\n */\n const uriForCurrentImage = photos[selectedIndex]?.uri;\n useEffect(() => {\n setCurrentImageHeight(screenHeight);\n const photo = photos[index.value];\n const height = photo?.original_height;\n const width = photo?.original_width;\n\n if (height && width) {\n const imageHeight = Math.floor(height * (screenWidth / width));\n setCurrentImageHeight(imageHeight > screenHeight ? screenHeight : imageHeight);\n } else if (photo?.uri) {\n if (photo.type === 'image') {\n Image.getSize(photo.uri, (width, height) => {\n const imageHeight = Math.floor(height * (screenWidth / width));\n setCurrentImageHeight(imageHeight > screenHeight ? screenHeight : imageHeight);\n });\n }\n }\n }, [uriForCurrentImage]);\n\n const { onDoubleTap, onPan, onPinch, onSingleTap } = useImageGalleryGestures({\n currentImageHeight,\n halfScreenHeight,\n halfScreenWidth,\n headerFooterVisible,\n offsetScale,\n overlayOpacity,\n photoLength,\n scale,\n screenHeight,\n screenWidth,\n setSelectedIndex,\n translateX,\n translateY,\n translationX,\n });\n\n /**\n * If the header is visible we scale down the opacity of it as the\n * image is swiped downward\n */\n const headerFooterOpacity = useDerivedValue(\n () =>\n currentImageHeight * scale.value < screenHeight && translateY.value > 0\n ? 1 - translateY.value / quarterScreenHeight\n : currentImageHeight * scale.value > screenHeight &&\n translateY.value > (currentImageHeight / 2) * scale.value - halfScreenHeight\n ? 1 -\n (translateY.value - ((currentImageHeight / 2) * scale.value - halfScreenHeight)) /\n quarterScreenHeight\n : 1,\n [currentImageHeight],\n );\n\n /**\n * This transition and scaleX reverse lets use scroll left\n */\n const pagerStyle = useAnimatedStyle<ImageStyle>(\n () => ({\n transform: [\n { scaleX: -1 },\n {\n translateX: translationX.value,\n },\n ],\n }),\n [],\n );\n\n /**\n * Simple background color animation on Y movement\n */\n const containerBackground = useAnimatedStyle<ViewStyle>(\n () => ({\n backgroundColor: backgroundColor || white_snow,\n opacity: headerFooterOpacity.value,\n }),\n [headerFooterOpacity],\n );\n\n /**\n * Show screen style as component is always rendered we hide it\n * down and up and set opacity to 0 for good measure\n */\n const showScreenStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n transform: [\n {\n translateY: screenTranslateY.value,\n },\n ],\n }),\n [],\n );\n\n /**\n * Functions toclose BottomSheetModal with image grid\n */\n const closeGridView = () => {\n if (bottomSheetModalRef.current?.close) {\n bottomSheetModalRef.current.close();\n setGridPhotos([]);\n }\n };\n\n /**\n * Function to open BottomSheetModal with image grid\n */\n const openGridView = () => {\n if (bottomSheetModalRef.current?.present) {\n bottomSheetModalRef.current.present();\n setGridPhotos(photos);\n }\n };\n\n const videoRef = useRef<VideoType>(null);\n\n const handleEnd = () => {\n setPaused(true);\n setProgress(1);\n };\n\n const handleLoad = (payload: VideoPayloadData) => {\n if (payload.duration) setDuration(payload.duration);\n };\n\n const handleProgress = (data: VideoProgressData) => {\n if (data.currentTime && data.seekableDuration) {\n setProgress(data.currentTime / data.seekableDuration);\n }\n };\n\n const handlePlayPause = (status?: boolean) => {\n if (status === undefined) {\n // React Native Video for RN CLI has seek as an API to move to a particular location in the video\n if (progress === 1 && videoRef.current && videoRef.current.seek) {\n videoRef.current.seek(0);\n }\n // Expo AV for Expo has replayAsync as an API to move to a starting of the video\n if (progress === 1 && videoRef.current && videoRef.current.replayAsync) {\n videoRef.current.replayAsync();\n }\n\n setPaused((state) => !state);\n } else {\n setPaused(status);\n }\n };\n\n const onProgressDrag = (progress: number) => {\n // React Native Video for RN CLI has seek as an API to move to a particular location in the video\n if (videoRef.current && videoRef.current.seek) {\n videoRef.current.seek(progress);\n }\n\n // Expo AV for Expo has setPositionAsync as an API to move to a particular location of the video\n if (videoRef.current && videoRef.current.setPositionAsync) {\n videoRef.current.setPositionAsync(progress * 1000);\n }\n };\n\n return (\n <Animated.View\n accessibilityLabel='Image Gallery'\n pointerEvents={'auto'}\n style={[StyleSheet.absoluteFillObject, showScreenStyle]}\n >\n <Animated.View style={[StyleSheet.absoluteFillObject, containerBackground]} />\n <TapGestureHandler\n minPointers={1}\n numberOfTaps={1}\n onGestureEvent={onSingleTap}\n ref={singleTapRef}\n waitFor={[panRef, pinchRef, doubleTapRef]}\n >\n <Animated.View style={StyleSheet.absoluteFillObject}>\n <TapGestureHandler\n maxDeltaX={8}\n maxDeltaY={8}\n maxDist={8}\n minPointers={1}\n numberOfTaps={2}\n onGestureEvent={onDoubleTap}\n ref={doubleTapRef}\n >\n <Animated.View style={StyleSheet.absoluteFillObject}>\n <PinchGestureHandler\n onGestureEvent={onPinch}\n ref={pinchRef}\n simultaneousHandlers={[panRef]}\n >\n <Animated.View style={StyleSheet.absoluteFill}>\n <PanGestureHandler\n enabled={overlay === 'gallery'}\n maxPointers={isAndroid ? undefined : 1}\n minDist={10}\n onGestureEvent={onPan}\n ref={panRef}\n simultaneousHandlers={[pinchRef]}\n >\n <Animated.View style={StyleSheet.absoluteFill}>\n <Animated.View\n style={[\n styles.animatedContainer,\n pagerStyle,\n pager,\n {\n transform: [\n { scaleX: -1 }, // Also only here for opening, wrong direction when not included\n {\n translateX: translationX.value, // Only here for opening, wrong index when this is not included\n },\n ],\n },\n ]}\n >\n {photos.map((photo, i) =>\n photo.type === 'video' ? (\n <AnimatedGalleryVideo\n handleEnd={handleEnd}\n handleLoad={handleLoad}\n handleProgress={handleProgress}\n index={i}\n key={`${photo.uri}-${i}`}\n offsetScale={offsetScale}\n paused={paused}\n previous={selectedIndex > i}\n scale={scale}\n screenHeight={screenHeight}\n selected={selectedIndex === i}\n shouldRender={Math.abs(selectedIndex - i) < 4}\n source={{ uri: photo.uri }}\n style={[\n {\n height: screenHeight * 8,\n marginRight: MARGIN,\n width: screenWidth * 8,\n },\n slide,\n ]}\n translateX={translateX}\n translateY={translateY}\n videoRef={videoRef}\n />\n ) : (\n <AnimatedGalleryImage\n accessibilityLabel={'Image Item'}\n index={i}\n key={`${photo.uri}-${i}`}\n offsetScale={offsetScale}\n photo={photo}\n previous={selectedIndex > i}\n scale={scale}\n screenHeight={screenHeight}\n selected={selectedIndex === i}\n shouldRender={Math.abs(selectedIndex - i) < 4}\n style={[\n {\n height: screenHeight * 8,\n marginRight: MARGIN,\n width: screenWidth * 8,\n },\n slide,\n ]}\n translateX={translateX}\n translateY={translateY}\n />\n ),\n )}\n </Animated.View>\n </Animated.View>\n </PanGestureHandler>\n </Animated.View>\n </PinchGestureHandler>\n </Animated.View>\n </TapGestureHandler>\n </Animated.View>\n </TapGestureHandler>\n <ImageGalleryHeader<StreamChatGenerics>\n opacity={headerFooterOpacity}\n photo={photos[selectedIndex]}\n visible={headerFooterVisible}\n {...imageGalleryCustomComponents?.header}\n />\n <ImageGalleryFooter<StreamChatGenerics>\n accessibilityLabel={'Image Gallery Footer'}\n duration={duration}\n onPlayPause={handlePlayPause}\n onProgressDrag={onProgressDrag}\n opacity={headerFooterOpacity}\n openGridView={openGridView}\n paused={paused}\n photo={photos[selectedIndex]}\n photoLength={photoLength}\n progress={progress}\n selectedIndex={selectedIndex}\n visible={headerFooterVisible}\n {...imageGalleryCustomComponents?.footer}\n />\n\n <ImageGalleryOverlay\n animatedBottomSheetIndex={animatedBottomSheetIndex}\n closeGridView={closeGridView}\n currentBottomSheetIndex={currentBottomSheetIndex}\n />\n <BottomSheetModalProvider>\n <BottomSheetModal\n animatedIndex={animatedBottomSheetIndex}\n enablePanDownToClose={true}\n handleComponent={() => (\n <ImageGridHandle\n closeGridView={closeGridView}\n {...imageGalleryCustomComponents?.gridHandle}\n />\n )}\n handleHeight={imageGalleryGridHandleHeight ?? 40}\n index={0}\n onChange={(index: number) => setCurrentBottomSheetIndex(index)}\n ref={bottomSheetModalRef}\n snapPoints={imageGalleryGridSnapPoints || snapPoints}\n >\n <ImageGrid\n closeGridView={closeGridView}\n numberOfImageGalleryGridColumns={numberOfImageGalleryGridColumns}\n photos={gridPhotos}\n setImage={setImage}\n {...imageGalleryCustomComponents?.grid}\n />\n </BottomSheetModal>\n </BottomSheetModalProvider>\n </Animated.View>\n );\n};\n\n/**\n * Clamping worklet to clamp the scaling\n */\nexport const clamp = (value: number, lowerBound: number, upperBound: number) => {\n 'worklet';\n return Math.min(Math.max(lowerBound, value), upperBound);\n};\n\nconst styles = StyleSheet.create({\n animatedContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n },\n});\n\nexport type Photo<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n id: string;\n uri: string;\n channelId?: string;\n created_at?: string | Date;\n messageId?: string;\n mime_type?: string;\n original_height?: number;\n original_width?: number;\n type?: string;\n user?: UserResponse<StreamChatGenerics> | null;\n user_id?: string;\n};\n\nImageGallery.displayName = 'ImageGallery{imageGallery}';\n"]}
1
+ {"version":3,"sources":["ImageGallery.tsx"],"names":["isAndroid","Platform","OS","fullScreenHeight","Dimensions","get","height","measuredScreenHeight","screenWidth","halfScreenWidth","MARGIN","HasPinched","IsSwiping","ImageGallery","props","giphyVersion","imageGalleryCustomComponents","imageGalleryGridHandleHeight","imageGalleryGridSnapPoints","numberOfImageGalleryGridColumns","overlayOpacity","paused","setPaused","progress","setProgress","duration","setDuration","theme","white_snow","colors","imageGallery","backgroundColor","pager","slide","gridPhotos","setGridPhotos","overlay","translucentStatusBar","messages","selectedMessage","setSelectedMessage","statusBarHeight","StatusBar","currentHeight","bottomBarHeight","androidScreenHeightAdjustment","screenHeight","halfScreenHeight","quarterScreenHeight","snapPoints","React","useMemo","bottomSheetModalRef","currentBottomSheetIndex","setCurrentBottomSheetIndex","animatedBottomSheetIndex","screenTranslateY","showScreen","value","easing","Easing","out","ease","Keyboard","dismiss","currentImageHeight","setCurrentImageHeight","selectedIndex","setSelectedIndex","index","headerFooterVisible","doubleTapRef","panRef","pinchRef","singleTapRef","translateX","translateY","offsetScale","scale","translationX","photos","reduce","acc","cur","attachmentImages","attachments","filter","attachment","type","giphy","url","thumb_url","image_url","title_link","og_scrape_url","reverse","attachmentPhotos","map","a","imageUrl","giphyURL","channelId","cid","created_at","id","messageId","mime_type","original_height","original_width","uri","width","user","user_id","photoLength","length","stripQueryFromUrl","split","updatePosition","newIndex","findIndex","photo","uriForCurrentImage","imageHeight","Math","floor","Image","getSize","onDoubleTap","onPan","onPinch","onSingleTap","headerFooterOpacity","pagerStyle","transform","scaleX","containerBackground","opacity","showScreenStyle","closeGridView","current","close","openGridView","present","videoRef","handleEnd","handleLoad","payload","handleProgress","data","currentTime","seekableDuration","handlePlayPause","status","undefined","seek","replayAsync","state","onProgressDrag","setPositionAsync","StyleSheet","absoluteFillObject","absoluteFill","styles","animatedContainer","i","abs","marginRight","header","footer","gridHandle","grid","clamp","lowerBound","upperBound","min","max","create","alignItems","flexDirection","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport {\n Dimensions,\n Image,\n ImageStyle,\n Keyboard,\n Platform,\n StatusBar,\n StyleSheet,\n ViewStyle,\n} from 'react-native';\n\nimport {\n PanGestureHandler,\n PinchGestureHandler,\n TapGestureHandler,\n} from 'react-native-gesture-handler';\n\nimport Animated, {\n Easing,\n runOnJS,\n runOnUI,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { BottomSheetModal, BottomSheetModalProvider } from '@gorhom/bottom-sheet';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { AnimatedGalleryImage } from './components/AnimatedGalleryImage';\nimport { AnimatedGalleryVideo } from './components/AnimatedGalleryVideo';\nimport {\n ImageGalleryFooter,\n ImageGalleryFooterCustomComponentProps,\n} from './components/ImageGalleryFooter';\nimport {\n ImageGalleryHeader,\n ImageGalleryHeaderCustomComponentProps,\n} from './components/ImageGalleryHeader';\nimport { ImageGalleryOverlay } from './components/ImageGalleryOverlay';\nimport { ImageGalleryGridImageComponents, ImageGrid } from './components/ImageGrid';\nimport {\n ImageGalleryGridHandleCustomComponentProps,\n ImageGridHandle,\n} from './components/ImageGridHandle';\n\nimport { useImageGalleryGestures } from './hooks/useImageGalleryGestures';\n\nimport { useImageGalleryContext } from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n OverlayProviderProps,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n isVideoPackageAvailable,\n VideoPayloadData,\n VideoProgressData,\n VideoType,\n} from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getResizedImageUrl } from '../../utils/getResizedImageUrl';\nimport { getUrlOfImageAttachment } from '../../utils/getUrlOfImageAttachment';\nimport { vh, vw } from '../../utils/utils';\nimport { getGiphyMimeType } from '../Attachment/utils/getGiphyMimeType';\n\nconst isAndroid = Platform.OS === 'android';\nconst fullScreenHeight = Dimensions.get('screen').height;\nconst measuredScreenHeight = vh(100);\nconst screenWidth = vw(100);\nconst halfScreenWidth = vw(50);\nconst MARGIN = 32;\n\nexport enum HasPinched {\n FALSE = 0,\n TRUE,\n}\n\nexport enum IsSwiping {\n UNDETERMINED = 0,\n TRUE,\n FALSE,\n}\n\nexport type ImageGalleryCustomComponents<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Override props for following UI components, which are part of [image gallery](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#gallery-components).\n *\n * - [ImageGalleryFooter](#ImageGalleryFooter)\n *\n * - [ImageGrid](#ImageGrid)\n *\n * - [ImageGridHandle](#ImageGridHandle)\n *\n * - [ImageGalleryHeader](#ImageGalleryHeader)\n *\n * e.g.,\n *\n * ```js\n * {\n * footer: {\n * ShareIcon: CustomShareIconComponent\n * },\n * grid: {\n * avatarComponent: CustomAvatarComponent\n * },\n * gridHandle: {\n * centerComponent: CustomCenterComponent\n * },\n * header: {\n * CloseIcon: CustomCloseButtonComponent\n * },\n * }\n * ```\n * @overrideType object\n */\n imageGalleryCustomComponents?: {\n footer?: ImageGalleryFooterCustomComponentProps<StreamChatGenerics>;\n grid?: ImageGalleryGridImageComponents<StreamChatGenerics>;\n gridHandle?: ImageGalleryGridHandleCustomComponentProps;\n header?: ImageGalleryHeaderCustomComponentProps<StreamChatGenerics>;\n };\n};\n\ntype Props<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n ImageGalleryCustomComponents<StreamChatGenerics> & {\n overlayOpacity: Animated.SharedValue<number>;\n } & Pick<\n OverlayProviderProps<StreamChatGenerics>,\n | 'giphyVersion'\n | 'imageGalleryGridSnapPoints'\n | 'imageGalleryGridHandleHeight'\n | 'numberOfImageGalleryGridColumns'\n >;\n\nexport const ImageGallery = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: Props<StreamChatGenerics>,\n) => {\n const {\n giphyVersion = 'fixed_height',\n imageGalleryCustomComponents,\n imageGalleryGridHandleHeight,\n imageGalleryGridSnapPoints,\n numberOfImageGalleryGridColumns,\n overlayOpacity,\n } = props;\n const [paused, setPaused] = useState<boolean>(false);\n const [progress, setProgress] = useState<number>(0);\n const [duration, setDuration] = useState<number>(0);\n const {\n theme: {\n colors: { white_snow },\n imageGallery: { backgroundColor, pager, slide },\n },\n } = useTheme();\n const [gridPhotos, setGridPhotos] = useState<Photo<StreamChatGenerics>[]>([]);\n const { overlay, translucentStatusBar } = useOverlayContext();\n const { messages, selectedMessage, setSelectedMessage } =\n useImageGalleryContext<StreamChatGenerics>();\n\n /**\n * Height constants\n */\n const statusBarHeight = StatusBar.currentHeight ?? 0;\n const bottomBarHeight = fullScreenHeight - measuredScreenHeight - statusBarHeight;\n const androidScreenHeightAdjustment = translucentStatusBar\n ? bottomBarHeight === statusBarHeight || bottomBarHeight < 0\n ? 0\n : statusBarHeight\n : bottomBarHeight === statusBarHeight || bottomBarHeight < 0\n ? -statusBarHeight\n : 0;\n const screenHeight = isAndroid\n ? Dimensions.get('window').height + androidScreenHeightAdjustment\n : vh(100);\n const halfScreenHeight = screenHeight / 2;\n const quarterScreenHeight = screenHeight / 4;\n const snapPoints = React.useMemo(\n () => [(screenHeight * 3) / 4, screenHeight - (imageGalleryGridHandleHeight ?? 40)],\n [],\n );\n\n /**\n * BottomSheetModal ref\n */\n const bottomSheetModalRef = useRef<BottomSheetModal>(null);\n\n /**\n * BottomSheetModal state\n */\n const [currentBottomSheetIndex, setCurrentBottomSheetIndex] = useState(0);\n const animatedBottomSheetIndex = useSharedValue(0);\n\n /**\n * Fade animation for screen, it is always rendered with pointerEvents\n * set to none for fast opening\n */\n const screenTranslateY = useSharedValue(screenHeight);\n const showScreen = () => {\n 'worklet';\n screenTranslateY.value = withTiming(0, {\n duration: 250,\n easing: Easing.out(Easing.ease),\n });\n };\n\n /**\n * Run the fade animation on visible change\n */\n useEffect(() => {\n Keyboard.dismiss();\n showScreen();\n }, []);\n\n /**\n * Image height from URL or default to full screen height\n */\n const [currentImageHeight, setCurrentImageHeight] = useState<number>(screenHeight);\n\n /**\n * JS and UI index values, the JS follows the UI but is needed\n * for rendering the virtualized image list\n */\n const [selectedIndex, setSelectedIndex] = useState(0);\n const index = useSharedValue(0);\n\n /**\n * Header visible value for animating in out\n */\n const headerFooterVisible = useSharedValue(1);\n\n /**\n * Gesture handler refs\n */\n const doubleTapRef = useRef<TapGestureHandler>(null);\n const panRef = useRef<PanGestureHandler>(null);\n const pinchRef = useRef<PinchGestureHandler>(null);\n const singleTapRef = useRef<TapGestureHandler>(null);\n\n /**\n * Shared values for movement\n */\n const translateX = useSharedValue(0);\n const translateY = useSharedValue(0);\n const offsetScale = useSharedValue(1);\n const scale = useSharedValue(1);\n const translationX = useSharedValue(0);\n\n /**\n * Photos array created from all currently available\n * photo attachments\n */\n\n const photos = messages.reduce((acc: Photo<StreamChatGenerics>[], cur) => {\n const attachmentImages =\n cur.attachments\n ?.filter(\n (attachment) =>\n (attachment.type === 'giphy' &&\n (attachment.giphy?.[giphyVersion]?.url ||\n attachment.thumb_url ||\n attachment.image_url)) ||\n (attachment.type === 'image' &&\n !attachment.title_link &&\n !attachment.og_scrape_url &&\n getUrlOfImageAttachment(attachment)) ||\n (isVideoPackageAvailable() && attachment.type === 'video'),\n )\n .reverse() || [];\n\n const attachmentPhotos = attachmentImages.map((a) => {\n const imageUrl = getUrlOfImageAttachment(a) as string;\n const giphyURL = a.giphy?.[giphyVersion]?.url || a.thumb_url || a.image_url;\n\n return {\n channelId: cur.cid,\n created_at: cur.created_at,\n id: `photoId-${cur.id}-${imageUrl}`,\n messageId: cur.id,\n mime_type: a.type === 'giphy' ? getGiphyMimeType(giphyURL ?? '') : a.mime_type,\n original_height: a.original_height,\n original_width: a.original_width,\n type: a.type,\n uri:\n a.type === 'giphy'\n ? giphyURL\n : getResizedImageUrl({\n height: screenHeight,\n url: imageUrl,\n width: screenWidth,\n }),\n user: cur.user,\n user_id: cur.user_id,\n };\n });\n\n return [...attachmentPhotos, ...acc] as Photo<StreamChatGenerics>[];\n }, []);\n\n /**\n * Photos length needs to be kept as a const here so if the length\n * changes it causes the pan gesture handler function to refresh. This\n * does not work if the calculation for the length of the array is left\n * inside the gesture handler as it will have an array as a dependency\n */\n const photoLength = photos.length;\n\n /**\n * The URL for the images may differ because of dimensions passed as\n * part of the query.\n */\n const stripQueryFromUrl = (url: string) => url.split('?')[0];\n\n /**\n * Set selected photo when changed via pressing in the message list\n */\n useEffect(() => {\n const updatePosition = (newIndex: number) => {\n 'worklet';\n\n if (newIndex > -1) {\n index.value = newIndex;\n translationX.value = -(screenWidth + MARGIN) * newIndex;\n runOnJS(setSelectedIndex)(newIndex);\n }\n };\n\n const newIndex = photos.findIndex(\n (photo) =>\n photo.messageId === selectedMessage?.messageId &&\n stripQueryFromUrl(photo.uri) === stripQueryFromUrl(selectedMessage?.url || ''),\n );\n\n if (photoLength > 1) {\n setPaused(true);\n }\n\n runOnUI(updatePosition)(newIndex);\n }, [selectedMessage, photoLength]);\n\n /**\n * Image heights are not provided and therefore need to be calculated.\n * We start by allowing the image to be the full height then reduce it\n * to the proper scaled height based on the width being restricted to the\n * screen width when the dimensions are received.\n */\n const uriForCurrentImage = photos[selectedIndex]?.uri;\n useEffect(() => {\n setCurrentImageHeight(screenHeight);\n const photo = photos[index.value];\n const height = photo?.original_height;\n const width = photo?.original_width;\n\n if (height && width) {\n const imageHeight = Math.floor(height * (screenWidth / width));\n setCurrentImageHeight(imageHeight > screenHeight ? screenHeight : imageHeight);\n } else if (photo?.uri) {\n if (photo.type === 'image') {\n Image.getSize(photo.uri, (width, height) => {\n const imageHeight = Math.floor(height * (screenWidth / width));\n setCurrentImageHeight(imageHeight > screenHeight ? screenHeight : imageHeight);\n });\n }\n }\n }, [uriForCurrentImage]);\n\n const { onDoubleTap, onPan, onPinch, onSingleTap } = useImageGalleryGestures({\n currentImageHeight,\n halfScreenHeight,\n halfScreenWidth,\n headerFooterVisible,\n offsetScale,\n overlayOpacity,\n photoLength,\n scale,\n screenHeight,\n screenWidth,\n selectedIndex,\n setSelectedIndex,\n translateX,\n translateY,\n translationX,\n });\n\n /**\n * If the header is visible we scale down the opacity of it as the\n * image is swiped downward\n */\n const headerFooterOpacity = useDerivedValue(\n () =>\n currentImageHeight * scale.value < screenHeight && translateY.value > 0\n ? 1 - translateY.value / quarterScreenHeight\n : currentImageHeight * scale.value > screenHeight &&\n translateY.value > (currentImageHeight / 2) * scale.value - halfScreenHeight\n ? 1 -\n (translateY.value - ((currentImageHeight / 2) * scale.value - halfScreenHeight)) /\n quarterScreenHeight\n : 1,\n [currentImageHeight],\n );\n\n /**\n * This transition and scaleX reverse lets use scroll left\n */\n const pagerStyle = useAnimatedStyle<ImageStyle>(\n () => ({\n transform: [\n { scaleX: -1 },\n {\n translateX: translationX.value,\n },\n ],\n }),\n [],\n );\n\n /**\n * Simple background color animation on Y movement\n */\n const containerBackground = useAnimatedStyle<ViewStyle>(\n () => ({\n backgroundColor: backgroundColor || white_snow,\n opacity: headerFooterOpacity.value,\n }),\n [headerFooterOpacity],\n );\n\n /**\n * Show screen style as component is always rendered we hide it\n * down and up and set opacity to 0 for good measure\n */\n const showScreenStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n transform: [\n {\n translateY: screenTranslateY.value,\n },\n ],\n }),\n [],\n );\n\n /**\n * Functions toclose BottomSheetModal with image grid\n */\n const closeGridView = () => {\n if (bottomSheetModalRef.current?.close) {\n bottomSheetModalRef.current.close();\n setGridPhotos([]);\n }\n };\n\n /**\n * Function to open BottomSheetModal with image grid\n */\n const openGridView = () => {\n if (bottomSheetModalRef.current?.present) {\n bottomSheetModalRef.current.present();\n setGridPhotos(photos);\n }\n };\n\n const videoRef = useRef<VideoType>(null);\n\n const handleEnd = () => {\n setPaused(true);\n setProgress(1);\n };\n\n const handleLoad = (payload: VideoPayloadData) => {\n if (payload.duration) setDuration(payload.duration);\n };\n\n const handleProgress = (data: VideoProgressData) => {\n if (data.currentTime && data.seekableDuration) {\n setProgress(data.currentTime / data.seekableDuration);\n }\n };\n\n const handlePlayPause = (status?: boolean) => {\n if (status === undefined) {\n // React Native Video for RN CLI has seek as an API to move to a particular location in the video\n if (progress === 1 && videoRef.current && videoRef.current.seek) {\n videoRef.current.seek(0);\n }\n // Expo AV for Expo has replayAsync as an API to move to a starting of the video\n if (progress === 1 && videoRef.current && videoRef.current.replayAsync) {\n videoRef.current.replayAsync();\n }\n\n setPaused((state) => !state);\n } else {\n setPaused(status);\n }\n };\n\n const onProgressDrag = (progress: number) => {\n // React Native Video for RN CLI has seek as an API to move to a particular location in the video\n if (videoRef.current && videoRef.current.seek) {\n videoRef.current.seek(progress);\n }\n\n // Expo AV for Expo has setPositionAsync as an API to move to a particular location of the video\n if (videoRef.current && videoRef.current.setPositionAsync) {\n videoRef.current.setPositionAsync(progress * 1000);\n }\n };\n\n return (\n <Animated.View\n accessibilityLabel='Image Gallery'\n pointerEvents={'auto'}\n style={[StyleSheet.absoluteFillObject, showScreenStyle]}\n >\n <Animated.View style={[StyleSheet.absoluteFillObject, containerBackground]} />\n <TapGestureHandler\n minPointers={1}\n numberOfTaps={1}\n onGestureEvent={onSingleTap}\n ref={singleTapRef}\n waitFor={[panRef, pinchRef, doubleTapRef]}\n >\n <Animated.View style={StyleSheet.absoluteFillObject}>\n <TapGestureHandler\n maxDeltaX={8}\n maxDeltaY={8}\n maxDist={8}\n minPointers={1}\n numberOfTaps={2}\n onGestureEvent={onDoubleTap}\n ref={doubleTapRef}\n >\n <Animated.View style={StyleSheet.absoluteFillObject}>\n <PinchGestureHandler\n onGestureEvent={onPinch}\n ref={pinchRef}\n simultaneousHandlers={[panRef]}\n >\n <Animated.View style={StyleSheet.absoluteFill}>\n <PanGestureHandler\n enabled={overlay === 'gallery'}\n maxPointers={isAndroid ? undefined : 1}\n minDist={10}\n onGestureEvent={onPan}\n ref={panRef}\n simultaneousHandlers={[pinchRef]}\n >\n <Animated.View style={StyleSheet.absoluteFill}>\n <Animated.View\n style={[\n styles.animatedContainer,\n pagerStyle,\n pager,\n {\n transform: [\n { scaleX: -1 }, // Also only here for opening, wrong direction when not included\n {\n translateX: translationX.value, // Only here for opening, wrong index when this is not included\n },\n ],\n },\n ]}\n >\n {photos.map((photo, i) =>\n photo.type === 'video' ? (\n <AnimatedGalleryVideo\n handleEnd={handleEnd}\n handleLoad={handleLoad}\n handleProgress={handleProgress}\n index={i}\n key={`${photo.uri}-${i}`}\n offsetScale={offsetScale}\n paused={paused}\n previous={selectedIndex > i}\n scale={scale}\n screenHeight={screenHeight}\n selected={selectedIndex === i}\n shouldRender={Math.abs(selectedIndex - i) < 4}\n source={{ uri: photo.uri }}\n style={[\n {\n height: screenHeight * 8,\n marginRight: MARGIN,\n width: screenWidth * 8,\n },\n slide,\n ]}\n translateX={translateX}\n translateY={translateY}\n videoRef={videoRef}\n />\n ) : (\n <AnimatedGalleryImage\n accessibilityLabel={'Image Item'}\n index={i}\n key={`${photo.uri}-${i}`}\n offsetScale={offsetScale}\n photo={photo}\n previous={selectedIndex > i}\n scale={scale}\n screenHeight={screenHeight}\n selected={selectedIndex === i}\n shouldRender={Math.abs(selectedIndex - i) < 4}\n style={[\n {\n height: screenHeight * 8,\n marginRight: MARGIN,\n width: screenWidth * 8,\n },\n slide,\n ]}\n translateX={translateX}\n translateY={translateY}\n />\n ),\n )}\n </Animated.View>\n </Animated.View>\n </PanGestureHandler>\n </Animated.View>\n </PinchGestureHandler>\n </Animated.View>\n </TapGestureHandler>\n </Animated.View>\n </TapGestureHandler>\n <ImageGalleryHeader<StreamChatGenerics>\n opacity={headerFooterOpacity}\n photo={photos[selectedIndex]}\n visible={headerFooterVisible}\n {...imageGalleryCustomComponents?.header}\n />\n <ImageGalleryFooter<StreamChatGenerics>\n accessibilityLabel={'Image Gallery Footer'}\n duration={duration}\n onPlayPause={handlePlayPause}\n onProgressDrag={onProgressDrag}\n opacity={headerFooterOpacity}\n openGridView={openGridView}\n paused={paused}\n photo={photos[selectedIndex]}\n photoLength={photoLength}\n progress={progress}\n selectedIndex={selectedIndex}\n visible={headerFooterVisible}\n {...imageGalleryCustomComponents?.footer}\n />\n\n <ImageGalleryOverlay\n animatedBottomSheetIndex={animatedBottomSheetIndex}\n closeGridView={closeGridView}\n currentBottomSheetIndex={currentBottomSheetIndex}\n />\n <BottomSheetModalProvider>\n <BottomSheetModal\n animatedIndex={animatedBottomSheetIndex}\n enablePanDownToClose={true}\n handleComponent={() => (\n <ImageGridHandle\n closeGridView={closeGridView}\n {...imageGalleryCustomComponents?.gridHandle}\n />\n )}\n handleHeight={imageGalleryGridHandleHeight ?? 40}\n index={0}\n onChange={(index: number) => setCurrentBottomSheetIndex(index)}\n ref={bottomSheetModalRef}\n snapPoints={imageGalleryGridSnapPoints || snapPoints}\n >\n <ImageGrid\n closeGridView={closeGridView}\n numberOfImageGalleryGridColumns={numberOfImageGalleryGridColumns}\n photos={gridPhotos}\n setSelectedMessage={setSelectedMessage}\n {...imageGalleryCustomComponents?.grid}\n />\n </BottomSheetModal>\n </BottomSheetModalProvider>\n </Animated.View>\n );\n};\n\n/**\n * Clamping worklet to clamp the scaling\n */\nexport const clamp = (value: number, lowerBound: number, upperBound: number) => {\n 'worklet';\n return Math.min(Math.max(lowerBound, value), upperBound);\n};\n\nconst styles = StyleSheet.create({\n animatedContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n },\n});\n\nexport type Photo<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n id: string;\n uri: string;\n channelId?: string;\n created_at?: string | Date;\n messageId?: string;\n mime_type?: string;\n original_height?: number;\n original_width?: number;\n type?: string;\n user?: UserResponse<StreamChatGenerics> | null;\n user_id?: string;\n};\n\nImageGallery.displayName = 'ImageGallery{imageGallery}';\n"]}
@@ -16,7 +16,7 @@ var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reani
16
16
  var _utils = require("../../../utils/utils");
17
17
 
18
18
  var _this = this,
19
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/ImageGallery/components/AnimatedGalleryImage.tsx";
19
+ _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/ImageGallery/components/AnimatedGalleryImage.tsx";
20
20
 
21
21
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
22
 
@@ -22,7 +22,7 @@ var _utils = require("../../../utils/utils");
22
22
  var _Spinner = require("../../Spinner/Spinner");
23
23
 
24
24
  var _this = this,
25
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx";
25
+ _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx";
26
26
 
27
27
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
28
28
 
@@ -32,7 +32,7 @@ var _icons = require("../../../icons");
32
32
  var _native = require("../../../native");
33
33
 
34
34
  var _this = this,
35
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/ImageGallery/components/ImageGalleryFooter.tsx";
35
+ _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/ImageGallery/components/ImageGalleryFooter.tsx";
36
36
 
37
37
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
38
38
 
@@ -24,7 +24,7 @@ var _TranslationContext = require("../../../contexts/translationContext/Translat
24
24
  var _icons = require("../../../icons");
25
25
 
26
26
  var _this = this,
27
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/ImageGallery/components/ImageGalleryHeader.tsx";
27
+ _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/ImageGallery/components/ImageGalleryHeader.tsx";
28
28
 
29
29
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
30
30
 
@@ -20,7 +20,7 @@ var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reani
20
20
  var _ThemeContext = require("../../../contexts/themeContext/ThemeContext");
21
21
 
22
22
  var _this = this,
23
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/ImageGallery/components/ImageGalleryOverlay.tsx";
23
+ _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/ImageGallery/components/ImageGalleryOverlay.tsx";
24
24
 
25
25
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
26
 
@@ -18,7 +18,7 @@ var _icons = require("../../../icons");
18
18
  var _ProgressControl = require("../../ProgressControl/ProgressControl");
19
19
 
20
20
  var _this = this,
21
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/ImageGallery/components/ImageGalleryVideoControl.tsx";
21
+ _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/ImageGallery/components/ImageGalleryVideoControl.tsx";
22
22
 
23
23
  var styles = _reactNative.StyleSheet.create({
24
24
  durationTextStyle: {
@@ -24,7 +24,7 @@ var _utils = require("../../../utils/utils");
24
24
  var _excluded = ["imageComponent"];
25
25
 
26
26
  var _this = this,
27
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/ImageGallery/components/ImageGrid.tsx";
27
+ _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/ImageGallery/components/ImageGrid.tsx";
28
28
 
29
29
  var styles = _reactNative.StyleSheet.create({
30
30
  avatarImage: {
@@ -130,7 +130,7 @@ var ImageGrid = function ImageGrid(props) {
130
130
  imageComponent = props.imageComponent,
131
131
  numberOfImageGalleryGridColumns = props.numberOfImageGalleryGridColumns,
132
132
  photos = props.photos,
133
- setImage = props.setImage;
133
+ setSelectedMessage = props.setSelectedMessage;
134
134
 
135
135
  var _useTheme2 = (0, _ThemeContext.useTheme)(),
136
136
  _useTheme2$theme = _useTheme2.theme,
@@ -143,7 +143,7 @@ var ImageGrid = function ImageGrid(props) {
143
143
  imageComponent: imageComponent,
144
144
  numberOfImageGalleryGridColumns: numberOfImageGalleryGridColumns,
145
145
  selectAndClose: function selectAndClose() {
146
- setImage({
146
+ setSelectedMessage({
147
147
  messageId: photo.messageId,
148
148
  url: photo.uri
149
149
  });