stream-chat-react-native-core 4.12.1-beta.1 → 5.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (993) 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 +2 -1
  5. package/lib/commonjs/components/Attachment/Card.js.map +1 -1
  6. package/lib/commonjs/components/Attachment/FileAttachment.js +1 -1
  7. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +1 -1
  8. package/lib/commonjs/components/Attachment/FileIcon.js +1 -1
  9. package/lib/commonjs/components/Attachment/Gallery.js +5 -5
  10. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  11. package/lib/commonjs/components/Attachment/GalleryImage.js +1 -1
  12. package/lib/commonjs/components/Attachment/Giphy.js +36 -32
  13. package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
  14. package/lib/commonjs/components/Attachment/ImageLoadingFailedIndicator.js +1 -1
  15. package/lib/commonjs/components/Attachment/ImageLoadingIndicator.js +1 -1
  16. package/lib/commonjs/components/Attachment/VideoThumbnail.js +1 -1
  17. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +1 -1
  18. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js +1 -1
  19. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerError.js +1 -1
  20. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerErrorImage.js +1 -1
  21. package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js +1 -1
  22. package/lib/commonjs/components/AttachmentPicker/components/CameraSelectorIcon.js +1 -1
  23. package/lib/commonjs/components/AttachmentPicker/components/FileSelectorIcon.js +1 -1
  24. package/lib/commonjs/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js +1 -1
  25. package/lib/commonjs/components/AttachmentPicker/components/ImageSelectorIcon.js +1 -1
  26. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +1 -1
  27. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js +1 -1
  28. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +1 -1
  29. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +1 -1
  30. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
  31. package/lib/commonjs/components/Avatar/Avatar.js +31 -18
  32. package/lib/commonjs/components/Avatar/Avatar.js.map +1 -1
  33. package/lib/commonjs/components/Avatar/GroupAvatar.js +28 -21
  34. package/lib/commonjs/components/Avatar/GroupAvatar.js.map +1 -1
  35. package/lib/commonjs/components/Channel/Channel.js +227 -257
  36. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  37. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +2 -0
  38. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  39. package/lib/commonjs/components/Channel/hooks/useCreatePaginatedMessageListContext.js +2 -0
  40. package/lib/commonjs/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
  41. package/lib/commonjs/components/ChannelList/ChannelList.js +41 -10
  42. package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
  43. package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -1
  44. package/lib/commonjs/components/ChannelList/ChannelListHeaderErrorIndicator.js +1 -1
  45. package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +1 -1
  46. package/lib/commonjs/components/ChannelList/ChannelListLoadingIndicator.js +1 -1
  47. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js +20 -8
  48. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js.map +1 -1
  49. package/lib/commonjs/components/ChannelList/Skeleton.js +1 -1
  50. package/lib/commonjs/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js +2 -2
  51. package/lib/commonjs/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
  52. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelDeleted.js +2 -2
  53. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
  54. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelHidden.js +2 -2
  55. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
  56. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelTruncated.js +2 -2
  57. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
  58. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelUpdated.js +2 -2
  59. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
  60. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelVisible.js +2 -2
  61. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
  62. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js +2 -2
  63. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  64. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js +2 -2
  65. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
  66. package/lib/commonjs/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js +2 -2
  67. package/lib/commonjs/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
  68. package/lib/commonjs/components/ChannelList/hooks/listeners/useUserPresence.js +4 -4
  69. package/lib/commonjs/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
  70. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +51 -21
  71. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  72. package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js +1 -1
  73. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +3 -3
  74. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
  75. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js +8 -6
  76. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  77. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +1 -1
  78. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js +1 -1
  79. package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js +1 -1
  80. package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  81. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js +1 -1
  82. package/lib/commonjs/components/Chat/Chat.js +45 -9
  83. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  84. package/lib/commonjs/components/Chat/hooks/handleEventToSyncDB.js +144 -0
  85. package/lib/commonjs/components/Chat/hooks/handleEventToSyncDB.js.map +1 -0
  86. package/lib/commonjs/components/Chat/hooks/useConnectionRecovered.js +171 -0
  87. package/lib/commonjs/components/Chat/hooks/useConnectionRecovered.js.map +1 -0
  88. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js +7 -3
  89. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  90. package/lib/commonjs/components/Chat/hooks/useMutedUsers.js +3 -3
  91. package/lib/commonjs/components/Chat/hooks/useMutedUsers.js.map +1 -1
  92. package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js +29 -0
  93. package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js.map +1 -0
  94. package/lib/commonjs/components/ImageGallery/ImageGallery.js +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 +1 -1
  102. package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js +1 -1
  103. package/lib/commonjs/components/Indicators/EmptyStateIndicator.js +1 -1
  104. package/lib/commonjs/components/Indicators/LoadingDot.js +1 -1
  105. package/lib/commonjs/components/Indicators/LoadingDots.js +1 -1
  106. package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js +1 -1
  107. package/lib/commonjs/components/Indicators/LoadingIndicator.js +1 -1
  108. package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js +1 -1
  109. package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js +1 -1
  110. package/lib/commonjs/components/Message/Message.js +2 -2
  111. package/lib/commonjs/components/Message/Message.js.map +1 -1
  112. package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js +1 -1
  113. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +1 -1
  114. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js +1 -1
  115. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +1 -1
  116. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js +1 -1
  117. package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js +1 -1
  118. package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js +1 -1
  119. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +1 -1
  120. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +1 -1
  121. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +1 -1
  122. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +1 -1
  123. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +1 -1
  124. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js +1 -1
  125. package/lib/commonjs/components/Message/hooks/useMessageActions.js +1 -1
  126. package/lib/commonjs/components/MessageInput/AttachButton.js +1 -1
  127. package/lib/commonjs/components/MessageInput/CommandsButton.js +1 -1
  128. package/lib/commonjs/components/MessageInput/CooldownTimer.js +1 -1
  129. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +1 -1
  130. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +1 -1
  131. package/lib/commonjs/components/MessageInput/InputButtons.js +1 -1
  132. package/lib/commonjs/components/MessageInput/MessageInput.js +1 -1
  133. package/lib/commonjs/components/MessageInput/MoreOptionsButton.js +1 -1
  134. package/lib/commonjs/components/MessageInput/SendButton.js +1 -1
  135. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js +1 -1
  136. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -1
  137. package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js +1 -1
  138. package/lib/commonjs/components/MessageInput/components/InputEditingStateHeader.js +1 -1
  139. package/lib/commonjs/components/MessageInput/components/InputGiphySearch.js +1 -1
  140. package/lib/commonjs/components/MessageInput/components/InputReplyStateHeader.js +1 -1
  141. package/lib/commonjs/components/MessageList/DateHeader.js +1 -1
  142. package/lib/commonjs/components/MessageList/InlineDateSeparator.js +1 -1
  143. package/lib/commonjs/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
  144. package/lib/commonjs/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
  145. package/lib/commonjs/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
  146. package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js +1 -1
  147. package/lib/commonjs/components/MessageList/MessageList.js +136 -108
  148. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  149. package/lib/commonjs/components/MessageList/MessageSystem.js +1 -1
  150. package/lib/commonjs/components/MessageList/NetworkDownIndicator.js +1 -1
  151. package/lib/commonjs/components/MessageList/ScrollToBottomButton.js +1 -1
  152. package/lib/commonjs/components/MessageList/TypingIndicator.js +1 -1
  153. package/lib/commonjs/components/MessageList/TypingIndicatorContainer.js +1 -1
  154. package/lib/commonjs/components/MessageOverlay/MessageActionList.js +1 -1
  155. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +1 -1
  156. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +1 -1
  157. package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js +1 -1
  158. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js +1 -1
  159. package/lib/commonjs/components/MessageOverlay/OverlayReactions.js +1 -1
  160. package/lib/commonjs/components/MessageOverlay/OverlayReactionsAvatar.js +1 -1
  161. package/lib/commonjs/components/ProgressControl/ProgressControl.js +1 -1
  162. package/lib/commonjs/components/RTLComponents/WritingDirectionAwareText.js +1 -1
  163. package/lib/commonjs/components/Reply/Reply.js +1 -1
  164. package/lib/commonjs/components/Spinner/Spinner.js +1 -1
  165. package/lib/commonjs/components/Thread/Thread.js +1 -1
  166. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +1 -1
  167. package/lib/commonjs/components/index.js +26 -13
  168. package/lib/commonjs/components/index.js.map +1 -1
  169. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +1 -1
  170. package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js +1 -1
  171. package/lib/commonjs/contexts/channelContext/ChannelContext.js +3 -3
  172. package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
  173. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js +1 -1
  174. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js +1 -1
  175. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js +5 -5
  176. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -1
  177. package/lib/commonjs/contexts/chatContext/ChatContext.js +3 -3
  178. package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
  179. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js +1 -1
  180. package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js +1 -1
  181. package/lib/commonjs/contexts/messageContext/MessageContext.js +1 -1
  182. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +1 -1
  183. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js +1 -1
  184. package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js +1 -1
  185. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +1 -1
  186. package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -1
  187. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +13 -26
  188. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
  189. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +1 -1
  190. package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +3 -3
  191. package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
  192. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +1 -1
  193. package/lib/commonjs/contexts/themeContext/ThemeContext.js +1 -1
  194. package/lib/commonjs/contexts/threadContext/ThreadContext.js +1 -1
  195. package/lib/commonjs/contexts/translationContext/TranslationContext.js +1 -1
  196. package/lib/commonjs/contexts/typingContext/TypingContext.js +1 -1
  197. package/lib/commonjs/{components/Attachment/hooks → hooks}/useLoadingImage.js +10 -0
  198. package/lib/commonjs/hooks/useLoadingImage.js.map +1 -0
  199. package/lib/commonjs/icons/ArrowRight.js +1 -1
  200. package/lib/commonjs/icons/AtMentions.js +1 -1
  201. package/lib/commonjs/icons/Attach.js +1 -1
  202. package/lib/commonjs/icons/Audio.js +1 -1
  203. package/lib/commonjs/icons/CSV.js +1 -1
  204. package/lib/commonjs/icons/Camera.js +1 -1
  205. package/lib/commonjs/icons/Check.js +1 -1
  206. package/lib/commonjs/icons/CheckAll.js +1 -1
  207. package/lib/commonjs/icons/CheckSend.js +1 -1
  208. package/lib/commonjs/icons/CircleClose.js +1 -1
  209. package/lib/commonjs/icons/CirclePlus.js +1 -1
  210. package/lib/commonjs/icons/CircleRight.js +1 -1
  211. package/lib/commonjs/icons/Close.js +1 -1
  212. package/lib/commonjs/icons/Copy.js +1 -1
  213. package/lib/commonjs/icons/CurveLineLeftUp.js +1 -1
  214. package/lib/commonjs/icons/DOC.js +1 -1
  215. package/lib/commonjs/icons/DOCX.js +1 -1
  216. package/lib/commonjs/icons/Delete.js +1 -1
  217. package/lib/commonjs/icons/Down.js +1 -1
  218. package/lib/commonjs/icons/DownloadArrow.js +1 -1
  219. package/lib/commonjs/icons/DownloadCloud.js +1 -1
  220. package/lib/commonjs/icons/Edit.js +1 -1
  221. package/lib/commonjs/icons/Error.js +1 -1
  222. package/lib/commonjs/icons/Eye.js +1 -1
  223. package/lib/commonjs/icons/Flag.js +1 -1
  224. package/lib/commonjs/icons/Folder.js +1 -1
  225. package/lib/commonjs/icons/GenericFile.js +1 -1
  226. package/lib/commonjs/icons/GiphyIcon.js +1 -1
  227. package/lib/commonjs/icons/Grid.js +1 -1
  228. package/lib/commonjs/icons/Group.js +1 -1
  229. package/lib/commonjs/icons/HTML.js +1 -1
  230. package/lib/commonjs/icons/Imgur.js +1 -1
  231. package/lib/commonjs/icons/LOLReaction.js +1 -1
  232. package/lib/commonjs/icons/Lightning.js +1 -1
  233. package/lib/commonjs/icons/Link.js +1 -1
  234. package/lib/commonjs/icons/Loading.js +1 -1
  235. package/lib/commonjs/icons/Logo.js +1 -1
  236. package/lib/commonjs/icons/LoveReaction.js +1 -1
  237. package/lib/commonjs/icons/MD.js +1 -1
  238. package/lib/commonjs/icons/MailOpen.js +1 -1
  239. package/lib/commonjs/icons/MenuPointHorizontal.js +1 -1
  240. package/lib/commonjs/icons/MenuPointVertical.js +1 -1
  241. package/lib/commonjs/icons/MessageFlag.js +1 -1
  242. package/lib/commonjs/icons/MessageIcon.js +1 -1
  243. package/lib/commonjs/icons/Mute.js +1 -1
  244. package/lib/commonjs/icons/Notification.js +1 -1
  245. package/lib/commonjs/icons/ODT.js +1 -1
  246. package/lib/commonjs/icons/PDF.js +1 -1
  247. package/lib/commonjs/icons/PPT.js +1 -1
  248. package/lib/commonjs/icons/PPTX.js +1 -1
  249. package/lib/commonjs/icons/Pause.js +1 -1
  250. package/lib/commonjs/icons/Picture.js +1 -1
  251. package/lib/commonjs/icons/Pin.js +1 -1
  252. package/lib/commonjs/icons/PinHeader.js +1 -1
  253. package/lib/commonjs/icons/Play.js +1 -1
  254. package/lib/commonjs/icons/RAR.js +1 -1
  255. package/lib/commonjs/icons/RTF.js +1 -1
  256. package/lib/commonjs/icons/Recorder.js +1 -1
  257. package/lib/commonjs/icons/Refresh.js +1 -1
  258. package/lib/commonjs/icons/SEVEN_Z.js +1 -1
  259. package/lib/commonjs/icons/Search.js +1 -1
  260. package/lib/commonjs/icons/SendRight.js +1 -1
  261. package/lib/commonjs/icons/SendUp.js +1 -1
  262. package/lib/commonjs/icons/Share.js +1 -1
  263. package/lib/commonjs/icons/ShareRightArrow.js +1 -1
  264. package/lib/commonjs/icons/Smile.js +1 -1
  265. package/lib/commonjs/icons/Sound.js +1 -1
  266. package/lib/commonjs/icons/TAR.js +1 -1
  267. package/lib/commonjs/icons/TXT.js +1 -1
  268. package/lib/commonjs/icons/ThreadReply.js +1 -1
  269. package/lib/commonjs/icons/ThumbsDownReaction.js +1 -1
  270. package/lib/commonjs/icons/ThumbsUpReaction.js +1 -1
  271. package/lib/commonjs/icons/Time.js +1 -1
  272. package/lib/commonjs/icons/Unknown.js +1 -1
  273. package/lib/commonjs/icons/Unpin.js +1 -1
  274. package/lib/commonjs/icons/User.js +1 -1
  275. package/lib/commonjs/icons/UserAdd.js +1 -1
  276. package/lib/commonjs/icons/UserAdmin.js +1 -1
  277. package/lib/commonjs/icons/UserDelete.js +1 -1
  278. package/lib/commonjs/icons/UserMinus.js +1 -1
  279. package/lib/commonjs/icons/Video.js +1 -1
  280. package/lib/commonjs/icons/Warning.js +1 -1
  281. package/lib/commonjs/icons/WutReaction.js +1 -1
  282. package/lib/commonjs/icons/XLS.js +1 -1
  283. package/lib/commonjs/icons/XLSX.js +1 -1
  284. package/lib/commonjs/icons/ZIP.js +1 -1
  285. package/lib/commonjs/icons/utils/base.js +1 -1
  286. package/lib/commonjs/index.js +9 -0
  287. package/lib/commonjs/index.js.map +1 -1
  288. package/lib/commonjs/mock-builders/DB/consts.js +15 -0
  289. package/lib/commonjs/mock-builders/DB/consts.js.map +1 -0
  290. package/lib/commonjs/mock-builders/DB/mock.js +125 -0
  291. package/lib/commonjs/mock-builders/DB/mock.js.map +1 -0
  292. package/lib/commonjs/mock-builders/event/memberAdded.js +17 -0
  293. package/lib/commonjs/mock-builders/event/memberAdded.js.map +1 -0
  294. package/lib/commonjs/mock-builders/event/memberRemoved.js +17 -0
  295. package/lib/commonjs/mock-builders/event/memberRemoved.js.map +1 -0
  296. package/lib/commonjs/mock-builders/event/memberUpdated.js +17 -0
  297. package/lib/commonjs/mock-builders/event/memberUpdated.js.map +1 -0
  298. package/lib/commonjs/mock-builders/event/reactionDeleted.js +18 -0
  299. package/lib/commonjs/mock-builders/event/reactionDeleted.js.map +1 -0
  300. package/lib/commonjs/mock-builders/event/reactionNew.js +18 -0
  301. package/lib/commonjs/mock-builders/event/reactionNew.js.map +1 -0
  302. package/lib/commonjs/mock-builders/event/reactionUpdated.js +18 -0
  303. package/lib/commonjs/mock-builders/event/reactionUpdated.js.map +1 -0
  304. package/lib/commonjs/mock-builders/generator/reaction.js +1 -1
  305. package/lib/commonjs/mock-builders/generator/reaction.js.map +1 -1
  306. package/lib/commonjs/store/QuickSqliteClient.js +156 -0
  307. package/lib/commonjs/store/QuickSqliteClient.js.map +1 -0
  308. package/lib/commonjs/store/apis/deleteChannel.js +26 -0
  309. package/lib/commonjs/store/apis/deleteChannel.js.map +1 -0
  310. package/lib/commonjs/store/apis/deleteMember.js +28 -0
  311. package/lib/commonjs/store/apis/deleteMember.js.map +1 -0
  312. package/lib/commonjs/store/apis/deleteMessagesForChannel.js +26 -0
  313. package/lib/commonjs/store/apis/deleteMessagesForChannel.js.map +1 -0
  314. package/lib/commonjs/store/apis/deleteReactions.js +28 -0
  315. package/lib/commonjs/store/apis/deleteReactions.js.map +1 -0
  316. package/lib/commonjs/store/apis/getAllChannelIds.js +16 -0
  317. package/lib/commonjs/store/apis/getAllChannelIds.js.map +1 -0
  318. package/lib/commonjs/store/apis/getChannelMessages.js +45 -0
  319. package/lib/commonjs/store/apis/getChannelMessages.js.map +1 -0
  320. package/lib/commonjs/store/apis/getChannels.js +60 -0
  321. package/lib/commonjs/store/apis/getChannels.js.map +1 -0
  322. package/lib/commonjs/store/apis/getLastSyncedAt.js +23 -0
  323. package/lib/commonjs/store/apis/getLastSyncedAt.js.map +1 -0
  324. package/lib/commonjs/store/apis/getMembers.js +25 -0
  325. package/lib/commonjs/store/apis/getMembers.js.map +1 -0
  326. package/lib/commonjs/store/apis/getReads.js +25 -0
  327. package/lib/commonjs/store/apis/getReads.js.map +1 -0
  328. package/lib/commonjs/store/apis/queries/selectChannelIdsForFilterSort.js +31 -0
  329. package/lib/commonjs/store/apis/queries/selectChannelIdsForFilterSort.js.map +1 -0
  330. package/lib/commonjs/store/apis/queries/selectChannels.js +30 -0
  331. package/lib/commonjs/store/apis/queries/selectChannels.js.map +1 -0
  332. package/lib/commonjs/store/apis/queries/selectMembersForChannels.js +27 -0
  333. package/lib/commonjs/store/apis/queries/selectMembersForChannels.js.map +1 -0
  334. package/lib/commonjs/store/apis/queries/selectMessagesForChannels.js +27 -0
  335. package/lib/commonjs/store/apis/queries/selectMessagesForChannels.js.map +1 -0
  336. package/lib/commonjs/store/apis/queries/selectReactionsForMessages.js +27 -0
  337. package/lib/commonjs/store/apis/queries/selectReactionsForMessages.js.map +1 -0
  338. package/lib/commonjs/store/apis/queries/selectReadsForChannels.js +27 -0
  339. package/lib/commonjs/store/apis/queries/selectReadsForChannels.js.map +1 -0
  340. package/lib/commonjs/store/apis/updateMessage.js +69 -0
  341. package/lib/commonjs/store/apis/updateMessage.js.map +1 -0
  342. package/lib/commonjs/store/apis/updateReaction.js +53 -0
  343. package/lib/commonjs/store/apis/updateReaction.js.map +1 -0
  344. package/lib/commonjs/store/apis/upsertChannelData.js +26 -0
  345. package/lib/commonjs/store/apis/upsertChannelData.js.map +1 -0
  346. package/lib/commonjs/store/apis/upsertChannels.js +83 -0
  347. package/lib/commonjs/store/apis/upsertChannels.js.map +1 -0
  348. package/lib/commonjs/store/apis/upsertCidsForQuery.js +34 -0
  349. package/lib/commonjs/store/apis/upsertCidsForQuery.js.map +1 -0
  350. package/lib/commonjs/store/apis/upsertLastSyncedAt.js +22 -0
  351. package/lib/commonjs/store/apis/upsertLastSyncedAt.js.map +1 -0
  352. package/lib/commonjs/store/apis/upsertMembers.js +39 -0
  353. package/lib/commonjs/store/apis/upsertMembers.js.map +1 -0
  354. package/lib/commonjs/store/apis/upsertMessages.js +52 -0
  355. package/lib/commonjs/store/apis/upsertMessages.js.map +1 -0
  356. package/lib/commonjs/store/apis/upsertReads.js +39 -0
  357. package/lib/commonjs/store/apis/upsertReads.js.map +1 -0
  358. package/lib/commonjs/store/apis/utils/convertFilterSortToQuery.js +13 -0
  359. package/lib/commonjs/store/apis/utils/convertFilterSortToQuery.js.map +1 -0
  360. package/lib/commonjs/store/constants.js +11 -0
  361. package/lib/commonjs/store/constants.js.map +1 -0
  362. package/lib/commonjs/store/mappers/mapChannelDataToStorable.js +67 -0
  363. package/lib/commonjs/store/mappers/mapChannelDataToStorable.js.map +1 -0
  364. package/lib/commonjs/store/mappers/mapDateTimeToStorable.js +12 -0
  365. package/lib/commonjs/store/mappers/mapDateTimeToStorable.js.map +1 -0
  366. package/lib/commonjs/store/mappers/mapMemberToStorable.js +39 -0
  367. package/lib/commonjs/store/mappers/mapMemberToStorable.js.map +1 -0
  368. package/lib/commonjs/store/mappers/mapMessageToStorable.js +42 -0
  369. package/lib/commonjs/store/mappers/mapMessageToStorable.js.map +1 -0
  370. package/lib/commonjs/store/mappers/mapReactionToStorable.js +34 -0
  371. package/lib/commonjs/store/mappers/mapReactionToStorable.js.map +1 -0
  372. package/lib/commonjs/store/mappers/mapReadToStorable.js +23 -0
  373. package/lib/commonjs/store/mappers/mapReadToStorable.js.map +1 -0
  374. package/lib/commonjs/store/mappers/mapStorableToChannel.js +65 -0
  375. package/lib/commonjs/store/mappers/mapStorableToChannel.js.map +1 -0
  376. package/lib/commonjs/store/mappers/mapStorableToMember.js +38 -0
  377. package/lib/commonjs/store/mappers/mapStorableToMember.js.map +1 -0
  378. package/lib/commonjs/store/mappers/mapStorableToMessage.js +50 -0
  379. package/lib/commonjs/store/mappers/mapStorableToMessage.js.map +1 -0
  380. package/lib/commonjs/store/mappers/mapStorableToReaction.js +31 -0
  381. package/lib/commonjs/store/mappers/mapStorableToReaction.js.map +1 -0
  382. package/lib/commonjs/store/mappers/mapStorableToRead.js +20 -0
  383. package/lib/commonjs/store/mappers/mapStorableToRead.js.map +1 -0
  384. package/lib/commonjs/store/mappers/mapStorableToUser.js +31 -0
  385. package/lib/commonjs/store/mappers/mapStorableToUser.js.map +1 -0
  386. package/lib/commonjs/store/mappers/mapUserToStorable.js +34 -0
  387. package/lib/commonjs/store/mappers/mapUserToStorable.js.map +1 -0
  388. package/lib/commonjs/store/schema.js +161 -0
  389. package/lib/commonjs/store/schema.js.map +1 -0
  390. package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js +38 -0
  391. package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js.map +1 -0
  392. package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js +35 -0
  393. package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js.map +1 -0
  394. package/lib/commonjs/store/sqlite-utils/createDeleteQuery.js +14 -0
  395. package/lib/commonjs/store/sqlite-utils/createDeleteQuery.js.map +1 -0
  396. package/lib/commonjs/store/sqlite-utils/createSelectQuery.js +26 -0
  397. package/lib/commonjs/store/sqlite-utils/createSelectQuery.js.map +1 -0
  398. package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js +29 -0
  399. package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js.map +1 -0
  400. package/lib/commonjs/store/sqlite-utils/createUpsertQuery.js +30 -0
  401. package/lib/commonjs/store/sqlite-utils/createUpsertQuery.js.map +1 -0
  402. package/lib/commonjs/store/sqlite-utils/printRow.js +23 -0
  403. package/lib/commonjs/store/sqlite-utils/printRow.js.map +1 -0
  404. package/lib/commonjs/store/types.js +4 -0
  405. package/lib/commonjs/store/types.js.map +1 -0
  406. package/lib/commonjs/version.json +1 -1
  407. package/lib/module/components/Attachment/Attachment.js +1 -1
  408. package/lib/module/components/Attachment/AttachmentActions.js +1 -1
  409. package/lib/module/components/Attachment/AudioAttachment.js +1 -1
  410. package/lib/module/components/Attachment/Card.js +2 -1
  411. package/lib/module/components/Attachment/Card.js.map +1 -1
  412. package/lib/module/components/Attachment/FileAttachment.js +1 -1
  413. package/lib/module/components/Attachment/FileAttachmentGroup.js +1 -1
  414. package/lib/module/components/Attachment/FileIcon.js +1 -1
  415. package/lib/module/components/Attachment/Gallery.js +5 -5
  416. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  417. package/lib/module/components/Attachment/GalleryImage.js +1 -1
  418. package/lib/module/components/Attachment/Giphy.js +36 -32
  419. package/lib/module/components/Attachment/Giphy.js.map +1 -1
  420. package/lib/module/components/Attachment/ImageLoadingFailedIndicator.js +1 -1
  421. package/lib/module/components/Attachment/ImageLoadingIndicator.js +1 -1
  422. package/lib/module/components/Attachment/VideoThumbnail.js +1 -1
  423. package/lib/module/components/AttachmentPicker/AttachmentPicker.js +1 -1
  424. package/lib/module/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js +1 -1
  425. package/lib/module/components/AttachmentPicker/components/AttachmentPickerError.js +1 -1
  426. package/lib/module/components/AttachmentPicker/components/AttachmentPickerErrorImage.js +1 -1
  427. package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js +1 -1
  428. package/lib/module/components/AttachmentPicker/components/CameraSelectorIcon.js +1 -1
  429. package/lib/module/components/AttachmentPicker/components/FileSelectorIcon.js +1 -1
  430. package/lib/module/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js +1 -1
  431. package/lib/module/components/AttachmentPicker/components/ImageSelectorIcon.js +1 -1
  432. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +1 -1
  433. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js +1 -1
  434. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +1 -1
  435. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +1 -1
  436. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
  437. package/lib/module/components/Avatar/Avatar.js +31 -18
  438. package/lib/module/components/Avatar/Avatar.js.map +1 -1
  439. package/lib/module/components/Avatar/GroupAvatar.js +28 -21
  440. package/lib/module/components/Avatar/GroupAvatar.js.map +1 -1
  441. package/lib/module/components/Channel/Channel.js +227 -257
  442. package/lib/module/components/Channel/Channel.js.map +1 -1
  443. package/lib/module/components/Channel/hooks/useCreateChannelContext.js +2 -0
  444. package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  445. package/lib/module/components/Channel/hooks/useCreatePaginatedMessageListContext.js +2 -0
  446. package/lib/module/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
  447. package/lib/module/components/ChannelList/ChannelList.js +41 -10
  448. package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
  449. package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -1
  450. package/lib/module/components/ChannelList/ChannelListHeaderErrorIndicator.js +1 -1
  451. package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +1 -1
  452. package/lib/module/components/ChannelList/ChannelListLoadingIndicator.js +1 -1
  453. package/lib/module/components/ChannelList/ChannelListMessenger.js +20 -8
  454. package/lib/module/components/ChannelList/ChannelListMessenger.js.map +1 -1
  455. package/lib/module/components/ChannelList/Skeleton.js +1 -1
  456. package/lib/module/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js +2 -2
  457. package/lib/module/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
  458. package/lib/module/components/ChannelList/hooks/listeners/useChannelDeleted.js +2 -2
  459. package/lib/module/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
  460. package/lib/module/components/ChannelList/hooks/listeners/useChannelHidden.js +2 -2
  461. package/lib/module/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
  462. package/lib/module/components/ChannelList/hooks/listeners/useChannelTruncated.js +2 -2
  463. package/lib/module/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
  464. package/lib/module/components/ChannelList/hooks/listeners/useChannelUpdated.js +2 -2
  465. package/lib/module/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
  466. package/lib/module/components/ChannelList/hooks/listeners/useChannelVisible.js +2 -2
  467. package/lib/module/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
  468. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js +2 -2
  469. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  470. package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js +2 -2
  471. package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
  472. package/lib/module/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js +2 -2
  473. package/lib/module/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
  474. package/lib/module/components/ChannelList/hooks/listeners/useUserPresence.js +4 -4
  475. package/lib/module/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
  476. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +51 -21
  477. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  478. package/lib/module/components/ChannelPreview/ChannelAvatar.js +1 -1
  479. package/lib/module/components/ChannelPreview/ChannelPreview.js +3 -3
  480. package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
  481. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js +8 -6
  482. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  483. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +1 -1
  484. package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js +1 -1
  485. package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js +1 -1
  486. package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  487. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js +1 -1
  488. package/lib/module/components/Chat/Chat.js +45 -9
  489. package/lib/module/components/Chat/Chat.js.map +1 -1
  490. package/lib/module/components/Chat/hooks/handleEventToSyncDB.js +144 -0
  491. package/lib/module/components/Chat/hooks/handleEventToSyncDB.js.map +1 -0
  492. package/lib/module/components/Chat/hooks/useConnectionRecovered.js +171 -0
  493. package/lib/module/components/Chat/hooks/useConnectionRecovered.js.map +1 -0
  494. package/lib/module/components/Chat/hooks/useCreateChatContext.js +7 -3
  495. package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  496. package/lib/module/components/Chat/hooks/useMutedUsers.js +3 -3
  497. package/lib/module/components/Chat/hooks/useMutedUsers.js.map +1 -1
  498. package/lib/module/components/Chat/hooks/useSyncDatabase.js +29 -0
  499. package/lib/module/components/Chat/hooks/useSyncDatabase.js.map +1 -0
  500. package/lib/module/components/ImageGallery/ImageGallery.js +1 -1
  501. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +1 -1
  502. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js +1 -1
  503. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +1 -1
  504. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +1 -1
  505. package/lib/module/components/ImageGallery/components/ImageGalleryOverlay.js +1 -1
  506. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +1 -1
  507. package/lib/module/components/ImageGallery/components/ImageGrid.js +1 -1
  508. package/lib/module/components/ImageGallery/components/ImageGridHandle.js +1 -1
  509. package/lib/module/components/Indicators/EmptyStateIndicator.js +1 -1
  510. package/lib/module/components/Indicators/LoadingDot.js +1 -1
  511. package/lib/module/components/Indicators/LoadingDots.js +1 -1
  512. package/lib/module/components/Indicators/LoadingErrorIndicator.js +1 -1
  513. package/lib/module/components/Indicators/LoadingIndicator.js +1 -1
  514. package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js +1 -1
  515. package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js +1 -1
  516. package/lib/module/components/Message/Message.js +2 -2
  517. package/lib/module/components/Message/Message.js.map +1 -1
  518. package/lib/module/components/Message/MessageSimple/MessageAvatar.js +1 -1
  519. package/lib/module/components/Message/MessageSimple/MessageContent.js +1 -1
  520. package/lib/module/components/Message/MessageSimple/MessageDeleted.js +1 -1
  521. package/lib/module/components/Message/MessageSimple/MessageFooter.js +1 -1
  522. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js +1 -1
  523. package/lib/module/components/Message/MessageSimple/MessageReplies.js +1 -1
  524. package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js +1 -1
  525. package/lib/module/components/Message/MessageSimple/MessageSimple.js +1 -1
  526. package/lib/module/components/Message/MessageSimple/MessageStatus.js +1 -1
  527. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +1 -1
  528. package/lib/module/components/Message/MessageSimple/ReactionList.js +1 -1
  529. package/lib/module/components/Message/MessageSimple/utils/renderText.js +1 -1
  530. package/lib/module/components/Message/MessageSimple/utils/renderText.test.js +1 -1
  531. package/lib/module/components/Message/hooks/useMessageActions.js +1 -1
  532. package/lib/module/components/MessageInput/AttachButton.js +1 -1
  533. package/lib/module/components/MessageInput/CommandsButton.js +1 -1
  534. package/lib/module/components/MessageInput/CooldownTimer.js +1 -1
  535. package/lib/module/components/MessageInput/FileUploadPreview.js +1 -1
  536. package/lib/module/components/MessageInput/ImageUploadPreview.js +1 -1
  537. package/lib/module/components/MessageInput/InputButtons.js +1 -1
  538. package/lib/module/components/MessageInput/MessageInput.js +1 -1
  539. package/lib/module/components/MessageInput/MoreOptionsButton.js +1 -1
  540. package/lib/module/components/MessageInput/SendButton.js +1 -1
  541. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js +1 -1
  542. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -1
  543. package/lib/module/components/MessageInput/UploadProgressIndicator.js +1 -1
  544. package/lib/module/components/MessageInput/components/InputEditingStateHeader.js +1 -1
  545. package/lib/module/components/MessageInput/components/InputGiphySearch.js +1 -1
  546. package/lib/module/components/MessageInput/components/InputReplyStateHeader.js +1 -1
  547. package/lib/module/components/MessageList/DateHeader.js +1 -1
  548. package/lib/module/components/MessageList/InlineDateSeparator.js +1 -1
  549. package/lib/module/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
  550. package/lib/module/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
  551. package/lib/module/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
  552. package/lib/module/components/MessageList/InlineUnreadIndicator.js +1 -1
  553. package/lib/module/components/MessageList/MessageList.js +136 -108
  554. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  555. package/lib/module/components/MessageList/MessageSystem.js +1 -1
  556. package/lib/module/components/MessageList/NetworkDownIndicator.js +1 -1
  557. package/lib/module/components/MessageList/ScrollToBottomButton.js +1 -1
  558. package/lib/module/components/MessageList/TypingIndicator.js +1 -1
  559. package/lib/module/components/MessageList/TypingIndicatorContainer.js +1 -1
  560. package/lib/module/components/MessageOverlay/MessageActionList.js +1 -1
  561. package/lib/module/components/MessageOverlay/MessageActionListItem.js +1 -1
  562. package/lib/module/components/MessageOverlay/MessageOverlay.js +1 -1
  563. package/lib/module/components/MessageOverlay/OverlayBackdrop.js +1 -1
  564. package/lib/module/components/MessageOverlay/OverlayReactionList.js +1 -1
  565. package/lib/module/components/MessageOverlay/OverlayReactions.js +1 -1
  566. package/lib/module/components/MessageOverlay/OverlayReactionsAvatar.js +1 -1
  567. package/lib/module/components/ProgressControl/ProgressControl.js +1 -1
  568. package/lib/module/components/RTLComponents/WritingDirectionAwareText.js +1 -1
  569. package/lib/module/components/Reply/Reply.js +1 -1
  570. package/lib/module/components/Spinner/Spinner.js +1 -1
  571. package/lib/module/components/Thread/Thread.js +1 -1
  572. package/lib/module/components/Thread/components/ThreadFooterComponent.js +1 -1
  573. package/lib/module/components/index.js +26 -13
  574. package/lib/module/components/index.js.map +1 -1
  575. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +1 -1
  576. package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js +1 -1
  577. package/lib/module/contexts/channelContext/ChannelContext.js +3 -3
  578. package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
  579. package/lib/module/contexts/channelsContext/ChannelsContext.js +1 -1
  580. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js +1 -1
  581. package/lib/module/contexts/channelsStateContext/useChannelState.js +5 -5
  582. package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -1
  583. package/lib/module/contexts/chatContext/ChatContext.js +3 -3
  584. package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
  585. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js +1 -1
  586. package/lib/module/contexts/keyboardContext/KeyboardContext.js +1 -1
  587. package/lib/module/contexts/messageContext/MessageContext.js +1 -1
  588. package/lib/module/contexts/messageInputContext/MessageInputContext.js +1 -1
  589. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js +1 -1
  590. package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js +1 -1
  591. package/lib/module/contexts/messagesContext/MessagesContext.js +1 -1
  592. package/lib/module/contexts/overlayContext/OverlayContext.js +1 -1
  593. package/lib/module/contexts/overlayContext/OverlayProvider.js +13 -26
  594. package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
  595. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +1 -1
  596. package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +3 -3
  597. package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
  598. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +1 -1
  599. package/lib/module/contexts/themeContext/ThemeContext.js +1 -1
  600. package/lib/module/contexts/threadContext/ThreadContext.js +1 -1
  601. package/lib/module/contexts/translationContext/TranslationContext.js +1 -1
  602. package/lib/module/contexts/typingContext/TypingContext.js +1 -1
  603. package/lib/module/{components/Attachment/hooks → hooks}/useLoadingImage.js +10 -0
  604. package/lib/module/hooks/useLoadingImage.js.map +1 -0
  605. package/lib/module/icons/ArrowRight.js +1 -1
  606. package/lib/module/icons/AtMentions.js +1 -1
  607. package/lib/module/icons/Attach.js +1 -1
  608. package/lib/module/icons/Audio.js +1 -1
  609. package/lib/module/icons/CSV.js +1 -1
  610. package/lib/module/icons/Camera.js +1 -1
  611. package/lib/module/icons/Check.js +1 -1
  612. package/lib/module/icons/CheckAll.js +1 -1
  613. package/lib/module/icons/CheckSend.js +1 -1
  614. package/lib/module/icons/CircleClose.js +1 -1
  615. package/lib/module/icons/CirclePlus.js +1 -1
  616. package/lib/module/icons/CircleRight.js +1 -1
  617. package/lib/module/icons/Close.js +1 -1
  618. package/lib/module/icons/Copy.js +1 -1
  619. package/lib/module/icons/CurveLineLeftUp.js +1 -1
  620. package/lib/module/icons/DOC.js +1 -1
  621. package/lib/module/icons/DOCX.js +1 -1
  622. package/lib/module/icons/Delete.js +1 -1
  623. package/lib/module/icons/Down.js +1 -1
  624. package/lib/module/icons/DownloadArrow.js +1 -1
  625. package/lib/module/icons/DownloadCloud.js +1 -1
  626. package/lib/module/icons/Edit.js +1 -1
  627. package/lib/module/icons/Error.js +1 -1
  628. package/lib/module/icons/Eye.js +1 -1
  629. package/lib/module/icons/Flag.js +1 -1
  630. package/lib/module/icons/Folder.js +1 -1
  631. package/lib/module/icons/GenericFile.js +1 -1
  632. package/lib/module/icons/GiphyIcon.js +1 -1
  633. package/lib/module/icons/Grid.js +1 -1
  634. package/lib/module/icons/Group.js +1 -1
  635. package/lib/module/icons/HTML.js +1 -1
  636. package/lib/module/icons/Imgur.js +1 -1
  637. package/lib/module/icons/LOLReaction.js +1 -1
  638. package/lib/module/icons/Lightning.js +1 -1
  639. package/lib/module/icons/Link.js +1 -1
  640. package/lib/module/icons/Loading.js +1 -1
  641. package/lib/module/icons/Logo.js +1 -1
  642. package/lib/module/icons/LoveReaction.js +1 -1
  643. package/lib/module/icons/MD.js +1 -1
  644. package/lib/module/icons/MailOpen.js +1 -1
  645. package/lib/module/icons/MenuPointHorizontal.js +1 -1
  646. package/lib/module/icons/MenuPointVertical.js +1 -1
  647. package/lib/module/icons/MessageFlag.js +1 -1
  648. package/lib/module/icons/MessageIcon.js +1 -1
  649. package/lib/module/icons/Mute.js +1 -1
  650. package/lib/module/icons/Notification.js +1 -1
  651. package/lib/module/icons/ODT.js +1 -1
  652. package/lib/module/icons/PDF.js +1 -1
  653. package/lib/module/icons/PPT.js +1 -1
  654. package/lib/module/icons/PPTX.js +1 -1
  655. package/lib/module/icons/Pause.js +1 -1
  656. package/lib/module/icons/Picture.js +1 -1
  657. package/lib/module/icons/Pin.js +1 -1
  658. package/lib/module/icons/PinHeader.js +1 -1
  659. package/lib/module/icons/Play.js +1 -1
  660. package/lib/module/icons/RAR.js +1 -1
  661. package/lib/module/icons/RTF.js +1 -1
  662. package/lib/module/icons/Recorder.js +1 -1
  663. package/lib/module/icons/Refresh.js +1 -1
  664. package/lib/module/icons/SEVEN_Z.js +1 -1
  665. package/lib/module/icons/Search.js +1 -1
  666. package/lib/module/icons/SendRight.js +1 -1
  667. package/lib/module/icons/SendUp.js +1 -1
  668. package/lib/module/icons/Share.js +1 -1
  669. package/lib/module/icons/ShareRightArrow.js +1 -1
  670. package/lib/module/icons/Smile.js +1 -1
  671. package/lib/module/icons/Sound.js +1 -1
  672. package/lib/module/icons/TAR.js +1 -1
  673. package/lib/module/icons/TXT.js +1 -1
  674. package/lib/module/icons/ThreadReply.js +1 -1
  675. package/lib/module/icons/ThumbsDownReaction.js +1 -1
  676. package/lib/module/icons/ThumbsUpReaction.js +1 -1
  677. package/lib/module/icons/Time.js +1 -1
  678. package/lib/module/icons/Unknown.js +1 -1
  679. package/lib/module/icons/Unpin.js +1 -1
  680. package/lib/module/icons/User.js +1 -1
  681. package/lib/module/icons/UserAdd.js +1 -1
  682. package/lib/module/icons/UserAdmin.js +1 -1
  683. package/lib/module/icons/UserDelete.js +1 -1
  684. package/lib/module/icons/UserMinus.js +1 -1
  685. package/lib/module/icons/Video.js +1 -1
  686. package/lib/module/icons/Warning.js +1 -1
  687. package/lib/module/icons/WutReaction.js +1 -1
  688. package/lib/module/icons/XLS.js +1 -1
  689. package/lib/module/icons/XLSX.js +1 -1
  690. package/lib/module/icons/ZIP.js +1 -1
  691. package/lib/module/icons/utils/base.js +1 -1
  692. package/lib/module/index.js +9 -0
  693. package/lib/module/index.js.map +1 -1
  694. package/lib/module/mock-builders/DB/consts.js +15 -0
  695. package/lib/module/mock-builders/DB/consts.js.map +1 -0
  696. package/lib/module/mock-builders/DB/mock.js +125 -0
  697. package/lib/module/mock-builders/DB/mock.js.map +1 -0
  698. package/lib/module/mock-builders/event/memberAdded.js +17 -0
  699. package/lib/module/mock-builders/event/memberAdded.js.map +1 -0
  700. package/lib/module/mock-builders/event/memberRemoved.js +17 -0
  701. package/lib/module/mock-builders/event/memberRemoved.js.map +1 -0
  702. package/lib/module/mock-builders/event/memberUpdated.js +17 -0
  703. package/lib/module/mock-builders/event/memberUpdated.js.map +1 -0
  704. package/lib/module/mock-builders/event/reactionDeleted.js +18 -0
  705. package/lib/module/mock-builders/event/reactionDeleted.js.map +1 -0
  706. package/lib/module/mock-builders/event/reactionNew.js +18 -0
  707. package/lib/module/mock-builders/event/reactionNew.js.map +1 -0
  708. package/lib/module/mock-builders/event/reactionUpdated.js +18 -0
  709. package/lib/module/mock-builders/event/reactionUpdated.js.map +1 -0
  710. package/lib/module/mock-builders/generator/reaction.js +1 -1
  711. package/lib/module/mock-builders/generator/reaction.js.map +1 -1
  712. package/lib/module/store/QuickSqliteClient.js +156 -0
  713. package/lib/module/store/QuickSqliteClient.js.map +1 -0
  714. package/lib/module/store/apis/deleteChannel.js +26 -0
  715. package/lib/module/store/apis/deleteChannel.js.map +1 -0
  716. package/lib/module/store/apis/deleteMember.js +28 -0
  717. package/lib/module/store/apis/deleteMember.js.map +1 -0
  718. package/lib/module/store/apis/deleteMessagesForChannel.js +26 -0
  719. package/lib/module/store/apis/deleteMessagesForChannel.js.map +1 -0
  720. package/lib/module/store/apis/deleteReactions.js +28 -0
  721. package/lib/module/store/apis/deleteReactions.js.map +1 -0
  722. package/lib/module/store/apis/getAllChannelIds.js +16 -0
  723. package/lib/module/store/apis/getAllChannelIds.js.map +1 -0
  724. package/lib/module/store/apis/getChannelMessages.js +45 -0
  725. package/lib/module/store/apis/getChannelMessages.js.map +1 -0
  726. package/lib/module/store/apis/getChannels.js +60 -0
  727. package/lib/module/store/apis/getChannels.js.map +1 -0
  728. package/lib/module/store/apis/getLastSyncedAt.js +23 -0
  729. package/lib/module/store/apis/getLastSyncedAt.js.map +1 -0
  730. package/lib/module/store/apis/getMembers.js +25 -0
  731. package/lib/module/store/apis/getMembers.js.map +1 -0
  732. package/lib/module/store/apis/getReads.js +25 -0
  733. package/lib/module/store/apis/getReads.js.map +1 -0
  734. package/lib/module/store/apis/queries/selectChannelIdsForFilterSort.js +31 -0
  735. package/lib/module/store/apis/queries/selectChannelIdsForFilterSort.js.map +1 -0
  736. package/lib/module/store/apis/queries/selectChannels.js +30 -0
  737. package/lib/module/store/apis/queries/selectChannels.js.map +1 -0
  738. package/lib/module/store/apis/queries/selectMembersForChannels.js +27 -0
  739. package/lib/module/store/apis/queries/selectMembersForChannels.js.map +1 -0
  740. package/lib/module/store/apis/queries/selectMessagesForChannels.js +27 -0
  741. package/lib/module/store/apis/queries/selectMessagesForChannels.js.map +1 -0
  742. package/lib/module/store/apis/queries/selectReactionsForMessages.js +27 -0
  743. package/lib/module/store/apis/queries/selectReactionsForMessages.js.map +1 -0
  744. package/lib/module/store/apis/queries/selectReadsForChannels.js +27 -0
  745. package/lib/module/store/apis/queries/selectReadsForChannels.js.map +1 -0
  746. package/lib/module/store/apis/updateMessage.js +69 -0
  747. package/lib/module/store/apis/updateMessage.js.map +1 -0
  748. package/lib/module/store/apis/updateReaction.js +53 -0
  749. package/lib/module/store/apis/updateReaction.js.map +1 -0
  750. package/lib/module/store/apis/upsertChannelData.js +26 -0
  751. package/lib/module/store/apis/upsertChannelData.js.map +1 -0
  752. package/lib/module/store/apis/upsertChannels.js +83 -0
  753. package/lib/module/store/apis/upsertChannels.js.map +1 -0
  754. package/lib/module/store/apis/upsertCidsForQuery.js +34 -0
  755. package/lib/module/store/apis/upsertCidsForQuery.js.map +1 -0
  756. package/lib/module/store/apis/upsertLastSyncedAt.js +22 -0
  757. package/lib/module/store/apis/upsertLastSyncedAt.js.map +1 -0
  758. package/lib/module/store/apis/upsertMembers.js +39 -0
  759. package/lib/module/store/apis/upsertMembers.js.map +1 -0
  760. package/lib/module/store/apis/upsertMessages.js +52 -0
  761. package/lib/module/store/apis/upsertMessages.js.map +1 -0
  762. package/lib/module/store/apis/upsertReads.js +39 -0
  763. package/lib/module/store/apis/upsertReads.js.map +1 -0
  764. package/lib/module/store/apis/utils/convertFilterSortToQuery.js +13 -0
  765. package/lib/module/store/apis/utils/convertFilterSortToQuery.js.map +1 -0
  766. package/lib/module/store/constants.js +11 -0
  767. package/lib/module/store/constants.js.map +1 -0
  768. package/lib/module/store/mappers/mapChannelDataToStorable.js +67 -0
  769. package/lib/module/store/mappers/mapChannelDataToStorable.js.map +1 -0
  770. package/lib/module/store/mappers/mapDateTimeToStorable.js +12 -0
  771. package/lib/module/store/mappers/mapDateTimeToStorable.js.map +1 -0
  772. package/lib/module/store/mappers/mapMemberToStorable.js +39 -0
  773. package/lib/module/store/mappers/mapMemberToStorable.js.map +1 -0
  774. package/lib/module/store/mappers/mapMessageToStorable.js +42 -0
  775. package/lib/module/store/mappers/mapMessageToStorable.js.map +1 -0
  776. package/lib/module/store/mappers/mapReactionToStorable.js +34 -0
  777. package/lib/module/store/mappers/mapReactionToStorable.js.map +1 -0
  778. package/lib/module/store/mappers/mapReadToStorable.js +23 -0
  779. package/lib/module/store/mappers/mapReadToStorable.js.map +1 -0
  780. package/lib/module/store/mappers/mapStorableToChannel.js +65 -0
  781. package/lib/module/store/mappers/mapStorableToChannel.js.map +1 -0
  782. package/lib/module/store/mappers/mapStorableToMember.js +38 -0
  783. package/lib/module/store/mappers/mapStorableToMember.js.map +1 -0
  784. package/lib/module/store/mappers/mapStorableToMessage.js +50 -0
  785. package/lib/module/store/mappers/mapStorableToMessage.js.map +1 -0
  786. package/lib/module/store/mappers/mapStorableToReaction.js +31 -0
  787. package/lib/module/store/mappers/mapStorableToReaction.js.map +1 -0
  788. package/lib/module/store/mappers/mapStorableToRead.js +20 -0
  789. package/lib/module/store/mappers/mapStorableToRead.js.map +1 -0
  790. package/lib/module/store/mappers/mapStorableToUser.js +31 -0
  791. package/lib/module/store/mappers/mapStorableToUser.js.map +1 -0
  792. package/lib/module/store/mappers/mapUserToStorable.js +34 -0
  793. package/lib/module/store/mappers/mapUserToStorable.js.map +1 -0
  794. package/lib/module/store/schema.js +161 -0
  795. package/lib/module/store/schema.js.map +1 -0
  796. package/lib/module/store/sqlite-utils/appendWhereCluase.js +38 -0
  797. package/lib/module/store/sqlite-utils/appendWhereCluase.js.map +1 -0
  798. package/lib/module/store/sqlite-utils/createCreateTableQuery.js +35 -0
  799. package/lib/module/store/sqlite-utils/createCreateTableQuery.js.map +1 -0
  800. package/lib/module/store/sqlite-utils/createDeleteQuery.js +14 -0
  801. package/lib/module/store/sqlite-utils/createDeleteQuery.js.map +1 -0
  802. package/lib/module/store/sqlite-utils/createSelectQuery.js +26 -0
  803. package/lib/module/store/sqlite-utils/createSelectQuery.js.map +1 -0
  804. package/lib/module/store/sqlite-utils/createUpdateQuery.js +29 -0
  805. package/lib/module/store/sqlite-utils/createUpdateQuery.js.map +1 -0
  806. package/lib/module/store/sqlite-utils/createUpsertQuery.js +30 -0
  807. package/lib/module/store/sqlite-utils/createUpsertQuery.js.map +1 -0
  808. package/lib/module/store/sqlite-utils/printRow.js +23 -0
  809. package/lib/module/store/sqlite-utils/printRow.js.map +1 -0
  810. package/lib/module/store/types.js +4 -0
  811. package/lib/module/store/types.js.map +1 -0
  812. package/lib/module/version.json +1 -1
  813. package/lib/typescript/__tests__/utils/BetterSqlite.d.ts +8 -0
  814. package/lib/typescript/components/Channel/Channel.d.ts +3 -5
  815. package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
  816. package/lib/typescript/components/Channel/hooks/useCreatePaginatedMessageListContext.d.ts +1 -1
  817. package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +4 -2
  818. package/lib/typescript/components/Chat/Chat.d.ts +4 -0
  819. package/lib/typescript/components/Chat/hooks/handleEventToSyncDB.d.ts +2 -0
  820. package/lib/typescript/components/Chat/hooks/useConnectionRecovered.d.ts +10 -0
  821. package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts +1 -1
  822. package/lib/typescript/components/Chat/hooks/useSyncDatabase.d.ts +8 -0
  823. package/lib/typescript/components/MessageList/MessageList.d.ts +1 -1
  824. package/lib/typescript/components/index.d.ts +2 -1
  825. package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +17 -0
  826. package/lib/typescript/contexts/chatContext/ChatContext.d.ts +3 -1
  827. package/lib/typescript/contexts/paginatedMessageListContext/PaginatedMessageListContext.d.ts +4 -0
  828. package/lib/typescript/{components/Attachment/hooks → hooks}/useLoadingImage.d.ts +0 -0
  829. package/lib/typescript/index.d.ts +1 -0
  830. package/lib/typescript/store/QuickSqliteClient.d.ts +18 -0
  831. package/lib/typescript/store/apis/deleteChannel.d.ts +4 -0
  832. package/lib/typescript/store/apis/deleteMember.d.ts +6 -0
  833. package/lib/typescript/store/apis/deleteMessagesForChannel.d.ts +4 -0
  834. package/lib/typescript/store/apis/deleteReactions.d.ts +4 -0
  835. package/lib/typescript/store/apis/getAllChannelIds.d.ts +1 -0
  836. package/lib/typescript/store/apis/getChannelMessages.d.ts +6 -0
  837. package/lib/typescript/store/apis/getChannels.d.ts +7 -0
  838. package/lib/typescript/store/apis/getLastSyncedAt.d.ts +3 -0
  839. package/lib/typescript/store/apis/getMembers.d.ts +5 -0
  840. package/lib/typescript/store/apis/getReads.d.ts +5 -0
  841. package/lib/typescript/store/apis/queries/selectChannelIdsForFilterSort.d.ts +6 -0
  842. package/lib/typescript/store/apis/queries/selectChannels.d.ts +4 -0
  843. package/lib/typescript/store/apis/queries/selectMembersForChannels.d.ts +2 -0
  844. package/lib/typescript/store/apis/queries/selectMessagesForChannels.d.ts +2 -0
  845. package/lib/typescript/store/apis/queries/selectReactionsForMessages.d.ts +2 -0
  846. package/lib/typescript/store/apis/queries/selectReadsForChannels.d.ts +2 -0
  847. package/lib/typescript/store/apis/updateMessage.d.ts +6 -0
  848. package/lib/typescript/store/apis/updateReaction.d.ts +7 -0
  849. package/lib/typescript/store/apis/upsertChannelData.d.ts +5 -0
  850. package/lib/typescript/store/apis/upsertChannels.d.ts +9 -0
  851. package/lib/typescript/store/apis/upsertCidsForQuery.d.ts +7 -0
  852. package/lib/typescript/store/apis/upsertLastSyncedAt.d.ts +4 -0
  853. package/lib/typescript/store/apis/upsertMembers.d.ts +7 -0
  854. package/lib/typescript/store/apis/upsertMessages.d.ts +6 -0
  855. package/lib/typescript/store/apis/upsertReads.d.ts +7 -0
  856. package/lib/typescript/store/apis/utils/convertFilterSortToQuery.d.ts +6 -0
  857. package/lib/typescript/store/constants.d.ts +3 -0
  858. package/lib/typescript/store/mappers/mapChannelDataToStorable.d.ts +4 -0
  859. package/lib/typescript/store/mappers/mapDateTimeToStorable.d.ts +1 -0
  860. package/lib/typescript/store/mappers/mapMemberToStorable.d.ts +7 -0
  861. package/lib/typescript/store/mappers/mapMessageToStorable.d.ts +3 -0
  862. package/lib/typescript/store/mappers/mapReactionToStorable.d.ts +3 -0
  863. package/lib/typescript/store/mappers/mapReadToStorable.d.ts +7 -0
  864. package/lib/typescript/store/mappers/mapStorableToChannel.d.ts +4 -0
  865. package/lib/typescript/store/mappers/mapStorableToMember.d.ts +4 -0
  866. package/lib/typescript/store/mappers/mapStorableToMessage.d.ts +8 -0
  867. package/lib/typescript/store/mappers/mapStorableToReaction.d.ts +4 -0
  868. package/lib/typescript/store/mappers/mapStorableToRead.d.ts +4 -0
  869. package/lib/typescript/store/mappers/mapStorableToUser.d.ts +4 -0
  870. package/lib/typescript/store/mappers/mapUserToStorable.d.ts +3 -0
  871. package/lib/typescript/store/schema.d.ts +110 -0
  872. package/lib/typescript/store/sqlite-utils/__tests__/createSelectQuery.test.d.ts +1 -0
  873. package/lib/typescript/store/sqlite-utils/appendWhereCluase.d.ts +3 -0
  874. package/lib/typescript/store/sqlite-utils/createCreateTableQuery.d.ts +2 -0
  875. package/lib/typescript/store/sqlite-utils/createDeleteQuery.d.ts +12 -0
  876. package/lib/typescript/store/sqlite-utils/createSelectQuery.d.ts +13 -0
  877. package/lib/typescript/store/sqlite-utils/createUpdateQuery.d.ts +13 -0
  878. package/lib/typescript/store/sqlite-utils/createUpsertQuery.d.ts +11 -0
  879. package/lib/typescript/store/sqlite-utils/printRow.d.ts +2 -0
  880. package/lib/typescript/store/types.d.ts +9 -0
  881. package/package.json +4 -2
  882. package/src/__tests__/offline-feature.test.js +657 -0
  883. package/src/__tests__/utils/BetterSqlite.js +44 -0
  884. package/src/components/Attachment/Card.tsx +1 -0
  885. package/src/components/Attachment/Gallery.tsx +4 -2
  886. package/src/components/Attachment/Giphy.tsx +8 -2
  887. package/src/components/Avatar/Avatar.tsx +45 -31
  888. package/src/components/Avatar/GroupAvatar.tsx +46 -35
  889. package/src/components/Channel/Channel.tsx +101 -136
  890. package/src/components/Channel/hooks/useCreateChannelContext.ts +2 -0
  891. package/src/components/Channel/hooks/useCreatePaginatedMessageListContext.ts +2 -0
  892. package/src/components/ChannelList/ChannelList.tsx +28 -8
  893. package/src/components/ChannelList/ChannelListMessenger.tsx +4 -0
  894. package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +2 -0
  895. package/src/components/ChannelList/hooks/listeners/useAddedToChannelNotification.ts +2 -2
  896. package/src/components/ChannelList/hooks/listeners/useChannelDeleted.ts +2 -2
  897. package/src/components/ChannelList/hooks/listeners/useChannelHidden.ts +2 -2
  898. package/src/components/ChannelList/hooks/listeners/useChannelTruncated.ts +2 -2
  899. package/src/components/ChannelList/hooks/listeners/useChannelUpdated.ts +2 -2
  900. package/src/components/ChannelList/hooks/listeners/useChannelVisible.ts +2 -2
  901. package/src/components/ChannelList/hooks/listeners/useNewMessage.ts +3 -2
  902. package/src/components/ChannelList/hooks/listeners/useNewMessageNotification.ts +2 -2
  903. package/src/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.ts +2 -2
  904. package/src/components/ChannelList/hooks/listeners/useUserPresence.ts +5 -4
  905. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +36 -9
  906. package/src/components/ChannelPreview/ChannelPreview.tsx +2 -2
  907. package/src/components/ChannelPreview/ChannelPreviewMessage.tsx +10 -9
  908. package/src/components/Chat/Chat.tsx +41 -4
  909. package/src/components/Chat/hooks/handleEventToSyncDB.ts +142 -0
  910. package/src/components/Chat/hooks/useConnectionRecovered.ts +92 -0
  911. package/src/components/Chat/hooks/useCreateChatContext.ts +9 -3
  912. package/src/components/Chat/hooks/useMutedUsers.ts +5 -3
  913. package/src/components/Chat/hooks/useSyncDatabase.ts +30 -0
  914. package/src/components/Message/Message.tsx +1 -1
  915. package/src/components/MessageList/MessageList.tsx +157 -101
  916. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +2 -0
  917. package/src/components/index.ts +2 -1
  918. package/src/contexts/channelContext/ChannelContext.tsx +15 -0
  919. package/src/contexts/channelsStateContext/useChannelState.ts +2 -2
  920. package/src/contexts/chatContext/ChatContext.tsx +3 -1
  921. package/src/contexts/overlayContext/OverlayProvider.tsx +1 -5
  922. package/src/contexts/paginatedMessageListContext/PaginatedMessageListContext.tsx +4 -0
  923. package/src/{components/Attachment/hooks → hooks}/useLoadingImage.tsx +9 -1
  924. package/src/index.ts +1 -0
  925. package/src/mock-builders/DB/consts.ts +2 -0
  926. package/src/mock-builders/DB/mock.ts +112 -0
  927. package/src/mock-builders/event/memberAdded.js +8 -0
  928. package/src/mock-builders/event/memberRemoved.js +8 -0
  929. package/src/mock-builders/event/memberUpdated.js +8 -0
  930. package/src/mock-builders/event/reactionDeleted.js +9 -0
  931. package/src/mock-builders/event/reactionNew.js +9 -0
  932. package/src/mock-builders/event/reactionUpdated.js +9 -0
  933. package/src/mock-builders/generator/reaction.js +1 -1
  934. package/src/store/QuickSqliteClient.ts +140 -0
  935. package/src/store/apis/deleteChannel.ts +14 -0
  936. package/src/store/apis/deleteMember.ts +25 -0
  937. package/src/store/apis/deleteMessagesForChannel.ts +19 -0
  938. package/src/store/apis/deleteReactions.ts +24 -0
  939. package/src/store/apis/getAllChannelIds.ts +7 -0
  940. package/src/store/apis/getChannelMessages.ts +50 -0
  941. package/src/store/apis/getChannels.ts +43 -0
  942. package/src/store/apis/getLastSyncedAt.ts +17 -0
  943. package/src/store/apis/getMembers.ts +26 -0
  944. package/src/store/apis/getReads.ts +26 -0
  945. package/src/store/apis/queries/selectChannelIdsForFilterSort.ts +28 -0
  946. package/src/store/apis/queries/selectChannels.ts +19 -0
  947. package/src/store/apis/queries/selectMembersForChannels.ts +32 -0
  948. package/src/store/apis/queries/selectMessagesForChannels.ts +40 -0
  949. package/src/store/apis/queries/selectReactionsForMessages.ts +33 -0
  950. package/src/store/apis/queries/selectReadsForChannels.ts +30 -0
  951. package/src/store/apis/updateMessage.ts +65 -0
  952. package/src/store/apis/updateReaction.ts +54 -0
  953. package/src/store/apis/upsertChannelData.ts +20 -0
  954. package/src/store/apis/upsertChannels.ts +79 -0
  955. package/src/store/apis/upsertCidsForQuery.ts +30 -0
  956. package/src/store/apis/upsertLastSyncedAt.ts +17 -0
  957. package/src/store/apis/upsertMembers.ts +41 -0
  958. package/src/store/apis/upsertMessages.ts +43 -0
  959. package/src/store/apis/upsertReads.ts +41 -0
  960. package/src/store/apis/utils/convertFilterSortToQuery.ts +14 -0
  961. package/src/store/constants.ts +3 -0
  962. package/src/store/mappers/mapChannelDataToStorable.ts +67 -0
  963. package/src/store/mappers/mapDateTimeToStorable.ts +5 -0
  964. package/src/store/mappers/mapMemberToStorable.ts +45 -0
  965. package/src/store/mappers/mapMessageToStorable.ts +35 -0
  966. package/src/store/mappers/mapReactionToStorable.ts +19 -0
  967. package/src/store/mappers/mapReadToStorable.ts +25 -0
  968. package/src/store/mappers/mapStorableToChannel.ts +69 -0
  969. package/src/store/mappers/mapStorableToMember.ts +42 -0
  970. package/src/store/mappers/mapStorableToMessage.ts +40 -0
  971. package/src/store/mappers/mapStorableToReaction.ts +25 -0
  972. package/src/store/mappers/mapStorableToRead.ts +21 -0
  973. package/src/store/mappers/mapStorableToUser.ts +23 -0
  974. package/src/store/mappers/mapUserToStorable.ts +18 -0
  975. package/src/store/schema.ts +284 -0
  976. package/src/store/sqlite-utils/__tests__/createSelectQuery.test.ts +21 -0
  977. package/src/store/sqlite-utils/appendWhereCluase.ts +33 -0
  978. package/src/store/sqlite-utils/createCreateTableQuery.ts +39 -0
  979. package/src/store/sqlite-utils/createDeleteQuery.ts +23 -0
  980. package/src/store/sqlite-utils/createSelectQuery.ts +25 -0
  981. package/src/store/sqlite-utils/createUpdateQuery.ts +27 -0
  982. package/src/store/sqlite-utils/createUpsertQuery.ts +48 -0
  983. package/src/store/sqlite-utils/printRow.ts +19 -0
  984. package/src/store/types.ts +12 -0
  985. package/src/version.json +1 -1
  986. package/lib/commonjs/components/Attachment/hooks/useLoadingImage.js.map +0 -1
  987. package/lib/commonjs/components/ChannelList/hooks/listeners/useConnectionRecovered.js +0 -45
  988. package/lib/commonjs/components/ChannelList/hooks/listeners/useConnectionRecovered.js.map +0 -1
  989. package/lib/module/components/Attachment/hooks/useLoadingImage.js.map +0 -1
  990. package/lib/module/components/ChannelList/hooks/listeners/useConnectionRecovered.js +0 -45
  991. package/lib/module/components/ChannelList/hooks/listeners/useConnectionRecovered.js.map +0 -1
  992. package/lib/typescript/components/ChannelList/hooks/listeners/useConnectionRecovered.d.ts +0 -8
  993. package/src/components/ChannelList/hooks/listeners/useConnectionRecovered.ts +0 -41
@@ -0,0 +1,26 @@
1
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createSelectQuery = void 0;
7
+
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+
10
+ var _appendWhereCluase = require("./appendWhereCluase");
11
+
12
+ var createSelectQuery = function createSelectQuery(table) {
13
+ var fields = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['*'];
14
+ var whereCondition = arguments.length > 2 ? arguments[2] : undefined;
15
+ var selectQuery = "SELECT " + fields.join(', ') + " FROM " + table;
16
+
17
+ var _appendWhereClause = (0, _appendWhereCluase.appendWhereClause)(selectQuery, whereCondition),
18
+ _appendWhereClause2 = (0, _slicedToArray2["default"])(_appendWhereClause, 2),
19
+ selectQueryWithWhere = _appendWhereClause2[0],
20
+ whereParams = _appendWhereClause2[1];
21
+
22
+ return ["" + selectQueryWithWhere, whereParams || []];
23
+ };
24
+
25
+ exports.createSelectQuery = createSelectQuery;
26
+ //# sourceMappingURL=createSelectQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["createSelectQuery.ts"],"names":["createSelectQuery","table","fields","whereCondition","selectQuery","join","selectQueryWithWhere","whereParams"],"mappings":";;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAIX;AAAA,MAFpBC,MAEoB,uEAF8B,CAAC,GAAD,CAE9B;AAAA,MADpBC,cACoB;AACpB,MAAMC,WAAW,eAAaF,MAAM,CAACG,IAAP,CAAY,IAAZ,CAAb,cAAuCJ,KAAxD;;AACA,2BAA4C,0CAAkBG,WAAlB,EAA+BD,cAA/B,CAA5C;AAAA;AAAA,MAAOG,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,MAAID,oBAAJ,EAA4BC,WAAW,IAAI,EAA3C,CAAP;AACD,CATM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';\n\n/**\n * Creates a simple select query for sqlite.\n *\n * @param {string} table Table name\n * @param {Array} fields Array of columns which need to be selected e.g., ['*'] or ['id', 'name']\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\nexport const createSelectQuery = <T extends keyof Schema>(\n table: T,\n fields: Array<'*'> | Array<TableColumnNames<T>> = ['*'],\n whereCondition?: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n const selectQuery = `SELECT ${fields.join(', ')} FROM ${table}`;\n const [selectQueryWithWhere, whereParams] = appendWhereClause(selectQuery, whereCondition);\n\n return [`${selectQueryWithWhere}`, whereParams || []];\n};\n"]}
@@ -0,0 +1,29 @@
1
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createUpdateQuery = void 0;
7
+
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
12
+ var _appendWhereCluase = require("./appendWhereCluase");
13
+
14
+ var createUpdateQuery = function createUpdateQuery(table, set, whereCondition) {
15
+ var fields = Object.keys(set).map(function (key) {
16
+ return key + " = ?";
17
+ });
18
+ var updateQuery = "UPDATE " + table + " SET " + fields.join(',');
19
+
20
+ var _appendWhereClause = (0, _appendWhereCluase.appendWhereClause)(updateQuery, whereCondition),
21
+ _appendWhereClause2 = (0, _slicedToArray2["default"])(_appendWhereClause, 2),
22
+ updateQueryWithWhere = _appendWhereClause2[0],
23
+ whereParams = _appendWhereClause2[1];
24
+
25
+ return [updateQueryWithWhere, [].concat((0, _toConsumableArray2["default"])(Object.values(set)), (0, _toConsumableArray2["default"])(whereParams || []))];
26
+ };
27
+
28
+ exports.createUpdateQuery = createUpdateQuery;
29
+ //# sourceMappingURL=createUpdateQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["createUpdateQuery.ts"],"names":["createUpdateQuery","table","set","whereCondition","fields","Object","keys","map","key","updateQuery","join","updateQueryWithWhere","whereParams","values"],"mappings":";;;;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,GAF+B,EAG/BC,cAH+B,EAIX;AACpB,MAAMC,MAAM,GAAGC,MAAM,CAACC,IAAP,CAAYJ,GAAZ,EAAiBK,GAAjB,CAAqB,UAACC,GAAD;AAAA,WAAYA,GAAZ;AAAA,GAArB,CAAf;AACA,MAAMC,WAAW,eAAaR,KAAb,aAA0BG,MAAM,CAACM,IAAP,CAAY,GAAZ,CAA3C;;AAEA,2BAA4C,0CAAkBD,WAAlB,EAA+BN,cAA/B,CAA5C;AAAA;AAAA,MAAOQ,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,CAACD,oBAAD,gDAA2BN,MAAM,CAACQ,MAAP,CAAcX,GAAd,CAA3B,uCAAmDU,WAAW,IAAI,EAAlE,GAAP;AACD,CAXM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue, TableRow } from '../types';\n\n/**\n * Creates a simple update query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} set Set conditions for update query.\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final update query for sqlite\n */\nexport const createUpdateQuery = <T extends keyof Schema>(\n table: T,\n set: Partial<TableRow<T>>,\n whereCondition: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n const fields = Object.keys(set).map((key) => `${key} = ?`);\n const updateQuery = `UPDATE ${table} SET ${fields.join(',')}`;\n\n const [updateQueryWithWhere, whereParams] = appendWhereClause(updateQuery, whereCondition);\n\n return [updateQueryWithWhere, [...Object.values(set), ...(whereParams || [])]];\n};\n"]}
@@ -0,0 +1,30 @@
1
+ Object.defineProperty(exports, "__esModule", {
2
+ value: true
3
+ });
4
+ exports.createUpsertQuery = void 0;
5
+
6
+ var _schema = require("../schema");
7
+
8
+ var createUpsertQuery = function createUpsertQuery(table, row, conflictCheckKeys) {
9
+ var filteredRow = {};
10
+
11
+ for (var key in row) {
12
+ if (row[key] !== undefined) {
13
+ filteredRow[key] = row[key];
14
+ }
15
+ }
16
+
17
+ var fields = Object.keys(filteredRow);
18
+ var questionMarks = Array(Object.keys(fields).length).fill('?').join(',');
19
+ var conflictKeys = conflictCheckKeys || _schema.tables[table].primaryKey;
20
+ var conflictMatchersWithoutPK = fields.filter(function (f) {
21
+ return !conflictKeys.includes(f);
22
+ }).map(function (f) {
23
+ return f + "=excluded." + f;
24
+ });
25
+ var conflictConstraint = conflictKeys.length > 0 ? "ON CONFLICT(" + conflictKeys.join(',') + ") DO UPDATE SET\n " + conflictMatchersWithoutPK.join(',') : '';
26
+ return ["INSERT INTO " + table + " (" + fields.join(',') + ") VALUES (" + questionMarks + ") " + conflictConstraint, Object.values(filteredRow)];
27
+ };
28
+
29
+ exports.createUpsertQuery = createUpsertQuery;
30
+ //# sourceMappingURL=createUpsertQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["createUpsertQuery.ts"],"names":["createUpsertQuery","table","row","conflictCheckKeys","filteredRow","key","undefined","fields","Object","keys","questionMarks","Array","length","fill","join","conflictKeys","tables","primaryKey","conflictMatchersWithoutPK","filter","f","includes","map","conflictConstraint","values"],"mappings":";;;;;AAAA;;AAWO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,GAF+B,EAG/BC,iBAH+B,EAIX;AACpB,MAAMC,WAAuB,GAAG,EAAhC;;AAQA,OAAK,IAAMC,GAAX,IAAkBH,GAAlB,EAAuB;AACrB,QAAIA,GAAG,CAACG,GAAD,CAAH,KAAaC,SAAjB,EAA4B;AAC1BF,MAAAA,WAAW,CAACC,GAAD,CAAX,GAAmBH,GAAG,CAACG,GAAD,CAAtB;AACD;AACF;;AACD,MAAME,MAAM,GAAGC,MAAM,CAACC,IAAP,CAAYL,WAAZ,CAAf;AAEA,MAAMM,aAAa,GAAGC,KAAK,CAACH,MAAM,CAACC,IAAP,CAAYF,MAAZ,EAAoBK,MAArB,CAAL,CAAkCC,IAAlC,CAAuC,GAAvC,EAA4CC,IAA5C,CAAiD,GAAjD,CAAtB;AACA,MAAMC,YAAY,GAAGZ,iBAAiB,IAAIa,eAAOf,KAAP,EAAcgB,UAAxD;AACA,MAAMC,yBAAmC,GAAIX,MAAD,CACzCY,MADyC,CAClC,UAACC,CAAD;AAAA,WAAO,CAAEL,YAAD,CAA2BM,QAA3B,CAAoCD,CAApC,CAAR;AAAA,GADkC,EAEzCE,GAFyC,CAErC,UAACF,CAAD;AAAA,WAAUA,CAAV,kBAAwBA,CAAxB;AAAA,GAFqC,CAA5C;AAIA,MAAMG,kBAAkB,GACtBR,YAAY,CAACH,MAAb,GAAsB,CAAtB,oBACmBG,YAAY,CAACD,IAAb,CAAkB,GAAlB,CADnB,2BAEAI,yBAAyB,CAACJ,IAA1B,CAA+B,GAA/B,CAFA,GAGI,EAJN;AAMA,SAAO,kBACUb,KADV,UACoBM,MAAM,CAACO,IAAP,CAAY,GAAZ,CADpB,kBACiDJ,aADjD,UACmEa,kBADnE,EAELf,MAAM,CAACgB,MAAP,CAAcpB,WAAd,CAFK,CAAP;AAID,CApCM","sourcesContent":["import { Schema, tables } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableRow } from '../types';\n\n/**\n * Creates a simple upsert query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} row Table row to insert or update.\n * @param {Array} conflictCheckKeys Custom list of columns to check conflicts for - https://www.sqlite.org/lang_UPSERT.html. By default conflicts are checked on primary keys.\n * @returns {string} Final upsert query for sqlite\n */\nexport const createUpsertQuery = <T extends keyof Schema>(\n table: T,\n row: Partial<TableRow<T>>,\n conflictCheckKeys?: Array<TableColumnNames<T>>,\n): PreparedQueries => {\n const filteredRow: typeof row = {};\n\n // In case of \"DO UPDATE SET\", we only want to update the properties which\n // are provided, and not set undefined properties in database.\n // E.g., channel date such as `own_capabilities` is only available in response of client.queryChannels or channel.query.\n // But its not available in `event.channel`. And our mapper functions such as mapChannelToStorable will set fields which are not available as undefined.\n // So when you execute upsert query for storable value of `event.channel` in `channels` table, it will\n // unset ownCapabilities field for that channel in `channels` table.\n for (const key in row) {\n if (row[key] !== undefined) {\n filteredRow[key] = row[key];\n }\n }\n const fields = Object.keys(filteredRow) as (keyof typeof row)[];\n\n const questionMarks = Array(Object.keys(fields).length).fill('?').join(',');\n const conflictKeys = conflictCheckKeys || tables[table].primaryKey;\n const conflictMatchersWithoutPK: string[] = (fields as string[])\n .filter((f) => !(conflictKeys as string[]).includes(f))\n .map((f) => `${f}=excluded.${f}`);\n\n const conflictConstraint =\n conflictKeys.length > 0\n ? `ON CONFLICT(${conflictKeys.join(',')}) DO UPDATE SET\n ${conflictMatchersWithoutPK.join(',')}`\n : '';\n\n return [\n `INSERT INTO ${table} (${fields.join(',')}) VALUES (${questionMarks}) ${conflictConstraint}`,\n Object.values(filteredRow),\n ];\n};\n"]}
@@ -0,0 +1,23 @@
1
+ Object.defineProperty(exports, "__esModule", {
2
+ value: true
3
+ });
4
+ exports.printRow = void 0;
5
+
6
+ var printRow = function printRow(row) {
7
+ var prettyRow = {};
8
+
9
+ for (var key in row) {
10
+ var value = row[key];
11
+
12
+ try {
13
+ prettyRow[key] = JSON.parse(value);
14
+ } catch (e) {
15
+ prettyRow[key] = value;
16
+ }
17
+ }
18
+
19
+ console.log(JSON.stringify(prettyRow, null, 2));
20
+ };
21
+
22
+ exports.printRow = printRow;
23
+ //# sourceMappingURL=printRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["printRow.ts"],"names":["printRow","row","prettyRow","key","value","JSON","parse","e","console","log","stringify"],"mappings":";;;;;AAGO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,GAAD,EAAwB;AAE9C,MAAMC,SAA8B,GAAG,EAAvC;;AACA,OAAK,IAAMC,GAAX,IAAkBF,GAAlB,EAAuB;AAErB,QAAMG,KAAK,GAAGH,GAAG,CAACE,GAAD,CAAjB;;AAEA,QAAI;AACFD,MAAAA,SAAS,CAACC,GAAD,CAAT,GAAiBE,IAAI,CAACC,KAAL,CAAWF,KAAX,CAAjB;AACD,KAFD,CAEE,OAAOG,CAAP,EAAU;AACVL,MAAAA,SAAS,CAACC,GAAD,CAAT,GAAiBC,KAAjB;AACD;AACF;;AAEDI,EAAAA,OAAO,CAACC,GAAR,CAAYJ,IAAI,CAACK,SAAL,CAAeR,SAAf,EAA0B,IAA1B,EAAgC,CAAhC,CAAZ;AACD,CAfM","sourcesContent":["import type { TableRow } from '../types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const printRow = (row: TableRow<any>) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const prettyRow: Record<string, any> = {};\n for (const key in row) {\n // @ts-ignore\n const value = row[key];\n\n try {\n prettyRow[key] = JSON.parse(value);\n } catch (e) {\n prettyRow[key] = value;\n }\n }\n\n console.log(JSON.stringify(prettyRow, null, 2));\n};\n"]}
@@ -0,0 +1,4 @@
1
+ Object.defineProperty(exports, "__esModule", {
2
+ value: true
3
+ });
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "4.12.1-beta.1"
2
+ "version": "5.0.0-beta.0"
3
3
  }
@@ -24,7 +24,7 @@ var _MessagesContext = require("../../contexts/messagesContext/MessagesContext")
24
24
  var _native = require("../../native");
25
25
 
26
26
  var _this = this,
27
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/Attachment.tsx";
27
+ _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/Attachment/Attachment.tsx";
28
28
 
29
29
  var AttachmentWithContext = function AttachmentWithContext(props) {
30
30
  var _attachment$actions;
@@ -21,7 +21,7 @@ var _excluded = ["defaultBackgroundColor", "defaultBorderColor", "primaryBackgro
21
21
  _excluded2 = ["defaultColor", "primaryColor"];
22
22
 
23
23
  var _this = this,
24
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/AttachmentActions.tsx";
24
+ _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/Attachment/AttachmentActions.tsx";
25
25
 
26
26
  var styles = _reactNative.StyleSheet.create({
27
27
  actionButton: {
@@ -30,7 +30,7 @@ var _native = require("../../native");
30
30
  var _ProgressControl = require("../ProgressControl/ProgressControl");
31
31
 
32
32
  var _this = this,
33
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/AudioAttachment.tsx";
33
+ _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/Attachment/AudioAttachment.tsx";
34
34
 
35
35
  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); }
36
36
 
@@ -28,7 +28,7 @@ var _utils = require("../../utils/utils");
28
28
  var _excluded = ["description", "title"];
29
29
 
30
30
  var _this = this,
31
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/Card.tsx";
31
+ _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/Attachment/Card.tsx";
32
32
 
33
33
  var styles = _reactNative.StyleSheet.create({
34
34
  authorName: {
@@ -345,6 +345,7 @@ var Card = function Card(props) {
345
345
  CardHeader = _useMessagesContext.CardHeader;
346
346
 
347
347
  return _react["default"].createElement(MemoizedCard, (0, _extends2["default"])({
348
+ key: "" + (message == null ? void 0 : message.id) + (message == null ? void 0 : message.updated_at),
348
349
  additionalTouchableProps: additionalTouchableProps,
349
350
  CardCover: CardCover,
350
351
  CardFooter: CardFooter,
@@ -1 +1 @@
1
- {"version":3,"sources":["Card.tsx"],"names":["styles","StyleSheet","create","authorName","fontSize","fontWeight","authorNameContainer","borderTopRightRadius","paddingHorizontal","paddingTop","authorNameFooter","padding","authorNameMask","bottom","left","position","cardCover","alignItems","borderRadius","height","justifyContent","marginHorizontal","cardFooter","flexDirection","container","overflow","width","description","playButtonStyle","elevation","title","CardWithContext","props","additionalTouchableProps","author_name","CardCover","CardFooter","CardHeader","image_url","og_scrape_url","onLongPress","onPress","onPressIn","preventPress","stylesProp","text","thumb_url","type","theme","colors","accent_blue","black","blue_alice","transparent","white","messageSimple","card","authorNameFooterContainer","cover","footer","titleStyle","footerStyle","noURI","roundedView","playIcon","uri","defaultOnPress","isVideoCard","event","additionalInfo","url","emitter","defaultHandler","backgroundColor","color","borderLeftColor","MemoizedCard","React","memo","Card","message","channelId","cid","messageId","id","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n ImageBackground,\n ImageStyle,\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { openUrlSafely } from './utils/openUrlSafely';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Play } from '../../icons/Play';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n authorName: { fontSize: 14.5, fontWeight: '600' },\n authorNameContainer: {\n borderTopRightRadius: 15,\n paddingHorizontal: 8,\n paddingTop: 8,\n },\n authorNameFooter: {\n fontSize: 14.5,\n fontWeight: '600',\n padding: 8,\n },\n authorNameMask: {\n bottom: 0,\n left: 2,\n position: 'absolute',\n },\n cardCover: {\n alignItems: 'center',\n borderRadius: 8,\n height: 140,\n justifyContent: 'center',\n marginHorizontal: 2,\n },\n cardFooter: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 10,\n },\n container: {\n overflow: 'hidden',\n width: 256,\n },\n description: {\n fontSize: 12,\n marginHorizontal: 8,\n },\n playButtonStyle: {\n alignItems: 'center',\n borderRadius: 50,\n elevation: 2,\n height: 36,\n justifyContent: 'center',\n width: 36,\n },\n title: {\n fontSize: 12,\n marginHorizontal: 8,\n },\n});\n\nexport type CardPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'CardCover' | 'CardFooter' | 'CardHeader'\n > & {\n channelId: string | undefined;\n messageId: string | undefined;\n styles?: Partial<{\n authorName: StyleProp<TextStyle>;\n authorNameContainer: StyleProp<ViewStyle>;\n authorNameFooter: StyleProp<TextStyle>;\n authorNameFooterContainer: StyleProp<ViewStyle>;\n authorNameMask: StyleProp<ViewStyle>;\n cardCover: StyleProp<ImageStyle>;\n cardFooter: StyleProp<ViewStyle>;\n container: StyleProp<ViewStyle>;\n description: StyleProp<TextStyle>;\n title: StyleProp<TextStyle>;\n }>;\n };\n\nconst CardWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: CardPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n author_name,\n CardCover,\n CardFooter,\n CardHeader,\n image_url,\n og_scrape_url,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n styles: stylesProp = {},\n text,\n thumb_url,\n title,\n type,\n } = props;\n\n const {\n theme: {\n colors: { accent_blue, black, blue_alice, transparent, white },\n messageSimple: {\n card: {\n authorName,\n authorNameContainer,\n authorNameFooter,\n authorNameFooterContainer,\n authorNameMask,\n container,\n cover,\n footer: { description, title: titleStyle, ...footerStyle },\n noURI,\n playButtonStyle: { roundedView },\n playIcon: { height, width },\n },\n },\n },\n } = useTheme();\n\n const uri = image_url || thumb_url;\n\n const defaultOnPress = () => openUrlSafely(og_scrape_url || uri);\n\n const isVideoCard = type === 'video' && og_scrape_url;\n\n return (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n additionalInfo: { url: og_scrape_url },\n emitter: 'card',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n additionalInfo: { url: og_scrape_url },\n defaultHandler: defaultOnPress,\n emitter: 'card',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n additionalInfo: { url: og_scrape_url },\n defaultHandler: defaultOnPress,\n emitter: 'card',\n event,\n });\n }\n }}\n style={[styles.container, container, stylesProp.container]}\n testID='card-attachment'\n {...additionalTouchableProps}\n >\n {CardHeader && <CardHeader {...props} />}\n {CardCover && <CardCover {...props} />}\n {uri && !CardCover && (\n <View>\n <ImageBackground\n imageStyle={styles.cardCover}\n resizeMode='cover'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.cardCover, cover, stylesProp.cardCover]}\n >\n {isVideoCard ? (\n <View style={[styles.playButtonStyle, roundedView, { backgroundColor: white }]}>\n <Play height={height} pathFill={black} width={width} />\n </View>\n ) : null}\n </ImageBackground>\n {author_name && (\n <View style={[styles.authorNameMask, authorNameMask, stylesProp.authorNameMask]}>\n <View\n style={[\n styles.authorNameContainer,\n { backgroundColor: blue_alice },\n authorNameContainer,\n stylesProp.authorNameContainer,\n ]}\n >\n <Text\n style={[\n styles.authorName,\n { color: accent_blue },\n authorName,\n stylesProp.authorName,\n ]}\n >\n {author_name}\n </Text>\n </View>\n </View>\n )}\n </View>\n )}\n {CardFooter ? (\n <CardFooter {...props} />\n ) : (\n <View style={[styles.cardFooter, footerStyle, stylesProp.cardFooter]}>\n <View\n style={[\n authorNameFooterContainer,\n { backgroundColor: transparent },\n !uri ? { borderLeftColor: accent_blue, ...noURI } : {},\n stylesProp.authorNameFooterContainer,\n ]}\n >\n {!uri && author_name && (\n <Text\n style={[\n styles.authorNameFooter,\n { color: accent_blue },\n authorNameFooter,\n stylesProp.authorNameFooter,\n ]}\n >\n {author_name}\n </Text>\n )}\n {title && (\n <Text\n numberOfLines={1}\n style={[styles.title, { color: black }, titleStyle, stylesProp.title]}\n >\n {title}\n </Text>\n )}\n {text && (\n <Text\n numberOfLines={3}\n style={[styles.description, { color: black }, description, stylesProp.description]}\n >\n {text}\n </Text>\n )}\n </View>\n </View>\n )}\n </TouchableOpacity>\n );\n};\n\nconst MemoizedCard = React.memo(CardWithContext, () => true) as typeof CardWithContext;\n\nexport type CardProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> &\n Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'onPressIn'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'CardCover' | 'CardFooter' | 'CardHeader'\n >\n >;\n\n/**\n * UI component for card in attachments.\n */\nexport const Card = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: CardProps<StreamChatGenerics>,\n) => {\n const { message, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<StreamChatGenerics>();\n const { additionalTouchableProps, CardCover, CardFooter, CardHeader } =\n useMessagesContext<StreamChatGenerics>();\n\n return (\n <MemoizedCard\n {...{\n additionalTouchableProps,\n CardCover,\n CardFooter,\n CardHeader,\n channelId: message.cid,\n messageId: message.id,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nCard.displayName = 'Card{messageSimple{card}}';\n"]}
1
+ {"version":3,"sources":["Card.tsx"],"names":["styles","StyleSheet","create","authorName","fontSize","fontWeight","authorNameContainer","borderTopRightRadius","paddingHorizontal","paddingTop","authorNameFooter","padding","authorNameMask","bottom","left","position","cardCover","alignItems","borderRadius","height","justifyContent","marginHorizontal","cardFooter","flexDirection","container","overflow","width","description","playButtonStyle","elevation","title","CardWithContext","props","additionalTouchableProps","author_name","CardCover","CardFooter","CardHeader","image_url","og_scrape_url","onLongPress","onPress","onPressIn","preventPress","stylesProp","text","thumb_url","type","theme","colors","accent_blue","black","blue_alice","transparent","white","messageSimple","card","authorNameFooterContainer","cover","footer","titleStyle","footerStyle","noURI","roundedView","playIcon","uri","defaultOnPress","isVideoCard","event","additionalInfo","url","emitter","defaultHandler","backgroundColor","color","borderLeftColor","MemoizedCard","React","memo","Card","message","id","updated_at","channelId","cid","messageId","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n ImageBackground,\n ImageStyle,\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { openUrlSafely } from './utils/openUrlSafely';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Play } from '../../icons/Play';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n authorName: { fontSize: 14.5, fontWeight: '600' },\n authorNameContainer: {\n borderTopRightRadius: 15,\n paddingHorizontal: 8,\n paddingTop: 8,\n },\n authorNameFooter: {\n fontSize: 14.5,\n fontWeight: '600',\n padding: 8,\n },\n authorNameMask: {\n bottom: 0,\n left: 2,\n position: 'absolute',\n },\n cardCover: {\n alignItems: 'center',\n borderRadius: 8,\n height: 140,\n justifyContent: 'center',\n marginHorizontal: 2,\n },\n cardFooter: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 10,\n },\n container: {\n overflow: 'hidden',\n width: 256,\n },\n description: {\n fontSize: 12,\n marginHorizontal: 8,\n },\n playButtonStyle: {\n alignItems: 'center',\n borderRadius: 50,\n elevation: 2,\n height: 36,\n justifyContent: 'center',\n width: 36,\n },\n title: {\n fontSize: 12,\n marginHorizontal: 8,\n },\n});\n\nexport type CardPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'CardCover' | 'CardFooter' | 'CardHeader'\n > & {\n channelId: string | undefined;\n messageId: string | undefined;\n styles?: Partial<{\n authorName: StyleProp<TextStyle>;\n authorNameContainer: StyleProp<ViewStyle>;\n authorNameFooter: StyleProp<TextStyle>;\n authorNameFooterContainer: StyleProp<ViewStyle>;\n authorNameMask: StyleProp<ViewStyle>;\n cardCover: StyleProp<ImageStyle>;\n cardFooter: StyleProp<ViewStyle>;\n container: StyleProp<ViewStyle>;\n description: StyleProp<TextStyle>;\n title: StyleProp<TextStyle>;\n }>;\n };\n\nconst CardWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: CardPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n author_name,\n CardCover,\n CardFooter,\n CardHeader,\n image_url,\n og_scrape_url,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n styles: stylesProp = {},\n text,\n thumb_url,\n title,\n type,\n } = props;\n\n const {\n theme: {\n colors: { accent_blue, black, blue_alice, transparent, white },\n messageSimple: {\n card: {\n authorName,\n authorNameContainer,\n authorNameFooter,\n authorNameFooterContainer,\n authorNameMask,\n container,\n cover,\n footer: { description, title: titleStyle, ...footerStyle },\n noURI,\n playButtonStyle: { roundedView },\n playIcon: { height, width },\n },\n },\n },\n } = useTheme();\n\n const uri = image_url || thumb_url;\n\n const defaultOnPress = () => openUrlSafely(og_scrape_url || uri);\n\n const isVideoCard = type === 'video' && og_scrape_url;\n\n return (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n additionalInfo: { url: og_scrape_url },\n emitter: 'card',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n additionalInfo: { url: og_scrape_url },\n defaultHandler: defaultOnPress,\n emitter: 'card',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n additionalInfo: { url: og_scrape_url },\n defaultHandler: defaultOnPress,\n emitter: 'card',\n event,\n });\n }\n }}\n style={[styles.container, container, stylesProp.container]}\n testID='card-attachment'\n {...additionalTouchableProps}\n >\n {CardHeader && <CardHeader {...props} />}\n {CardCover && <CardCover {...props} />}\n {uri && !CardCover && (\n <View>\n <ImageBackground\n imageStyle={styles.cardCover}\n resizeMode='cover'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.cardCover, cover, stylesProp.cardCover]}\n >\n {isVideoCard ? (\n <View style={[styles.playButtonStyle, roundedView, { backgroundColor: white }]}>\n <Play height={height} pathFill={black} width={width} />\n </View>\n ) : null}\n </ImageBackground>\n {author_name && (\n <View style={[styles.authorNameMask, authorNameMask, stylesProp.authorNameMask]}>\n <View\n style={[\n styles.authorNameContainer,\n { backgroundColor: blue_alice },\n authorNameContainer,\n stylesProp.authorNameContainer,\n ]}\n >\n <Text\n style={[\n styles.authorName,\n { color: accent_blue },\n authorName,\n stylesProp.authorName,\n ]}\n >\n {author_name}\n </Text>\n </View>\n </View>\n )}\n </View>\n )}\n {CardFooter ? (\n <CardFooter {...props} />\n ) : (\n <View style={[styles.cardFooter, footerStyle, stylesProp.cardFooter]}>\n <View\n style={[\n authorNameFooterContainer,\n { backgroundColor: transparent },\n !uri ? { borderLeftColor: accent_blue, ...noURI } : {},\n stylesProp.authorNameFooterContainer,\n ]}\n >\n {!uri && author_name && (\n <Text\n style={[\n styles.authorNameFooter,\n { color: accent_blue },\n authorNameFooter,\n stylesProp.authorNameFooter,\n ]}\n >\n {author_name}\n </Text>\n )}\n {title && (\n <Text\n numberOfLines={1}\n style={[styles.title, { color: black }, titleStyle, stylesProp.title]}\n >\n {title}\n </Text>\n )}\n {text && (\n <Text\n numberOfLines={3}\n style={[styles.description, { color: black }, description, stylesProp.description]}\n >\n {text}\n </Text>\n )}\n </View>\n </View>\n )}\n </TouchableOpacity>\n );\n};\n\nconst MemoizedCard = React.memo(CardWithContext, () => true) as typeof CardWithContext;\n\nexport type CardProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> &\n Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'onPressIn'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'CardCover' | 'CardFooter' | 'CardHeader'\n >\n >;\n\n/**\n * UI component for card in attachments.\n */\nexport const Card = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: CardProps<StreamChatGenerics>,\n) => {\n const { message, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<StreamChatGenerics>();\n const { additionalTouchableProps, CardCover, CardFooter, CardHeader } =\n useMessagesContext<StreamChatGenerics>();\n\n return (\n <MemoizedCard\n key={`${message?.id}${message?.updated_at}`} // press listeners must change on message update, updating key ensures this\n {...{\n additionalTouchableProps,\n CardCover,\n CardFooter,\n CardHeader,\n channelId: message.cid,\n messageId: message.id,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nCard.displayName = 'Card{messageSimple{card}}';\n"]}
@@ -26,7 +26,7 @@ var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
26
26
  var _utils = require("../../utils/utils");
27
27
 
28
28
  var _this = this,
29
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/FileAttachment.tsx";
29
+ _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/Attachment/FileAttachment.tsx";
30
30
 
31
31
  var styles = _reactNative.StyleSheet.create({
32
32
  container: {
@@ -26,7 +26,7 @@ var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
26
26
  var _native = require("../../native");
27
27
 
28
28
  var _this = this,
29
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/FileAttachmentGroup.tsx";
29
+ _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/Attachment/FileAttachmentGroup.tsx";
30
30
 
31
31
  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); }
32
32
 
@@ -52,7 +52,7 @@ var _XLSX = require("../../icons/XLSX");
52
52
  var _ZIP = require("../../icons/ZIP");
53
53
 
54
54
  var _this = this,
55
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/FileIcon.tsx";
55
+ _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/Attachment/FileIcon.tsx";
56
56
 
57
57
  var audioFileTypes = ['audio/1d-interleaved-parityfec', 'audio/32kadpcm', 'audio/3gpp', 'audio/3gpp2', 'audio/aac', 'audio/ac3', 'audio/AMR', 'audio/AMR-WB', 'audio/amr-wb+', 'audio/aptx', 'audio/asc', 'audio/ATRAC-ADVANCED-LOSSLESS', 'audio/ATRAC-X', 'audio/ATRAC3', 'audio/basic', 'audio/BV16', 'audio/BV32', 'audio/clearmode', 'audio/CN', 'audio/DAT12', 'audio/dls', 'audio/dsr-es201108', 'audio/dsr-es202050', 'audio/dsr-es202211', 'audio/dsr-es202212', 'audio/DV', 'audio/DVI4', 'audio/eac3', 'audio/encaprtp', 'audio/EVRC', 'audio/EVRC-QCP', 'audio/EVRC0', 'audio/EVRC1', 'audio/EVRCB', 'audio/EVRCB0', 'audio/EVRCB1', 'audio/EVRCNW', 'audio/EVRCNW0', 'audio/EVRCNW1', 'audio/EVRCWB', 'audio/EVRCWB0', 'audio/EVRCWB1', 'audio/EVS', 'audio/example', 'audio/flexfec', 'audio/fwdred', 'audio/G711-0', 'audio/G719', 'audio/G7221', 'audio/G722', 'audio/G723', 'audio/G726-16', 'audio/G726-24', 'audio/G726-32', 'audio/G726-40', 'audio/G728', 'audio/G729', 'audio/G7291', 'audio/G729D', 'audio/G729E', 'audio/GSM', 'audio/GSM-EFR', 'audio/GSM-HR-08', 'audio/iLBC', 'audio/ip-mr_v2.5', 'audio/L8', 'audio/L16', 'audio/L20', 'audio/L24', 'audio/LPC', 'audio/MELP', 'audio/MELP600', 'audio/MELP1200', 'audio/MELP2400', 'audio/mhas', 'audio/mobile-xmf', 'audio/MPA', 'audio/mp4', 'audio/MP4A-LATM', 'audio/mpa-robust', 'audio/mpeg', 'audio/mpeg4-generic', 'audio/ogg', 'audio/opus', 'audio/parityfec', 'audio/PCMA', 'audio/PCMA-WB', 'audio/PCMU', 'audio/PCMU-WB', 'audio/prs.sid', 'audio/raptorfec', 'audio/RED', 'audio/rtp-enc-aescm128', 'audio/rtploopback', 'audio/rtp-midi', 'audio/rtx', 'audio/SMV', 'audio/SMV0', 'audio/SMV-QCP', 'audio/sofa', 'audio/sp-midi', 'audio/speex', 'audio/t140c', 'audio/t38', 'audio/telephone-event', 'audio/TETRA_ACELP', 'audio/TETRA_ACELP_BB', 'audio/tone', 'audio/TSVCIS', 'audio/UEMCLIP', 'audio/ulpfec', 'audio/usac', 'audio/VDVI', 'audio/VMR-WB', 'audio/vnd.3gpp.iufp', 'audio/vnd.4SB', 'audio/vnd.audiokoz', 'audio/vnd.CELP', 'audio/vnd.cisco.nse', 'audio/vnd.cmles.radio-events', 'audio/vnd.cns.anp1', 'audio/vnd.cns.inf1', 'audio/vnd.dece.audio', 'audio/vnd.digital-winds', 'audio/vnd.dlna.adts', 'audio/vnd.dolby.heaac.1', 'audio/vnd.dolby.heaac.2', 'audio/vnd.dolby.mlp', 'audio/vnd.dolby.mps', 'audio/vnd.dolby.pl2', 'audio/vnd.dolby.pl2x', 'audio/vnd.dolby.pl2z', 'audio/vnd.dolby.pulse.1', 'audio/vnd.dra', 'audio/vnd.dts', 'audio/vnd.dts.hd', 'audio/vnd.dts.uhd', 'audio/vnd.dvb.file', 'audio/vnd.everad.plj', 'audio/vnd.hns.audio', 'audio/vnd.lucent.voice', 'audio/vnd.ms-playready.media.pya', 'audio/vnd.nokia.mobile-xmf', 'audio/vnd.nortel.vbk', 'audio/vnd.nuera.ecelp4800', 'audio/vnd.nuera.ecelp7470', 'audio/vnd.nuera.ecelp9600', 'audio/vnd.octel.sbc', 'audio/vnd.presonus.multitrack', 'audio/vnd.qcelp', 'audio/vnd.rhetorex.32kadpcm', 'audio/vnd.rip', 'audio/vnd.sealedmedia.softseal.mpeg', 'audio/vnd.vmx.cvsd', 'audio/vorbis', 'audio/vorbis-config'];
58
58
  var docMimeTypes = ['application/msword', 'application/msword-template', 'application/vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.text-template', 'application/vnd.oasis.opendocument.text-flat-xml'];
@@ -17,8 +17,6 @@ var _reactNative = require("react-native");
17
17
 
18
18
  var _GalleryImage = require("./GalleryImage");
19
19
 
20
- var _useLoadingImage2 = require("./hooks/useLoadingImage");
21
-
22
20
  var _buildGallery = require("./utils/buildGallery/buildGallery");
23
21
 
24
22
  var _getGalleryImageBorderRadius = require("./utils/getGalleryImageBorderRadius");
@@ -35,12 +33,14 @@ var _OverlayContext = require("../../contexts/overlayContext/OverlayContext");
35
33
 
36
34
  var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
37
35
 
36
+ var _useLoadingImage2 = require("../../hooks/useLoadingImage");
37
+
38
38
  var _native = require("../../native");
39
39
 
40
40
  var _utils = require("../../utils/utils");
41
41
 
42
42
  var _this = this,
43
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/Gallery.tsx";
43
+ _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/Attachment/Gallery.tsx";
44
44
 
45
45
  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); }
46
46
 
@@ -478,7 +478,7 @@ var areEqual = function areEqual(prevProps, nextProps) {
478
478
  nextImages = nextProps.images,
479
479
  nextMessage = nextProps.message,
480
480
  nextVideos = nextProps.videos;
481
- var messageEqual = (prevMessage == null ? void 0 : prevMessage.id) === (nextMessage == null ? void 0 : nextMessage.id);
481
+ var messageEqual = (prevMessage == null ? void 0 : prevMessage.id) === (nextMessage == null ? void 0 : nextMessage.id) && "" + (prevMessage == null ? void 0 : prevMessage.updated_at) === "" + (nextMessage == null ? void 0 : nextMessage.updated_at);
482
482
  if (!messageEqual) return false;
483
483
  var groupStylesEqual = prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];
484
484
  if (!groupStylesEqual) return false;
@@ -581,7 +581,7 @@ var Gallery = function Gallery(props) {
581
581
  __self: _this,
582
582
  __source: {
583
583
  fileName: _jsxFileName,
584
- lineNumber: 636,
584
+ lineNumber: 638,
585
585
  columnNumber: 5
586
586
  }
587
587
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["Gallery.tsx"],"names":["MemoizedGalleryImage","React","memo","GalleryImage","prevProps","nextProps","uri","styles","StyleSheet","create","errorTextSize","fontSize","galleryContainer","borderTopLeftRadius","borderTopRightRadius","flexDirection","flexWrap","overflow","imageContainer","alignItems","display","justifyContent","padding","imageContainerStyle","flex","imageLoadingErrorIndicatorStyle","bottom","left","position","imageLoadingIndicatorContainer","height","width","imageLoadingIndicatorStyle","moreImagesContainer","margin","moreImagesText","color","fontWeight","GalleryWithContext","props","additionalTouchableProps","alignment","groupStyles","hasThreadReplies","ImageLoadingFailedIndicator","ImageLoadingIndicator","images","legacyImageViewerSwipeBehaviour","message","onLongPress","onPress","onPressIn","preventPress","setImage","setImages","setOverlay","threadList","videos","VideoThumbnail","theme","messageSimple","gallery","galleryItemColumn","gridHeight","gridWidth","maxHeight","maxWidth","minHeight","minWidth","sizeConfig","imagesAndVideos","length","invertedDirections","thumbnailGrid","numOfColumns","map","rows","colIndex","numOfRows","thumbnail","rowIndex","borderRadius","messageText","text","undefined","GalleryThumbnail","overlay","colors","image","openImageViewer","messageId","id","url","defaultOnPress","type","event","emitter","defaultHandler","thumb_url","absoluteFillObject","backgroundColor","GalleryImageThumbnail","isLoadingImage","isLoadingImageError","setLoadingImage","setLoadingImageError","error","console","warn","resizeMode","areEqual","prevGroupStyles","prevHasThreadReplies","prevImages","prevMessage","prevVideos","nextGroupStyles","nextHasThreadReplies","nextImages","nextMessage","nextVideos","messageEqual","groupStylesEqual","hasThreadRepliesEqual","imagesEqual","every","index","image_url","videosEqual","MemoizedGallery","Gallery","propAdditionalTouchableProps","propAlignment","propGroupStyles","PropImageLoadingFailedIndicator","PropImageLoadingIndicator","propImages","propOnLongPress","propOnPress","propOnPressIn","propPreventPress","propSetImage","propSetOverlay","propThreadList","propVideos","PropVideoThumbnail","contextSetImage","contextAlignment","contextGroupStyles","contextImages","contextOnLongPress","contextOnPress","contextOnPressIn","contextPreventPress","contextThreadList","contextVideos","contextAdditionalTouchableProps","ContextImageLoadingFailedIndicator","ContextImageLoadingIndicator","ContextVideoThumnbnail","contextSetOverlay","channelId","cid","reply_count","displayName"],"mappings":"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","sourcesContent":["import React, { useMemo } from 'react';\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { GalleryImage } from './GalleryImage';\nimport { useLoadingImage } from './hooks/useLoadingImage';\nimport { buildGallery } from './utils/buildGallery/buildGallery';\n\nimport type { Thumbnail } from './utils/buildGallery/types';\nimport { getGalleryImageBorderRadius } from './utils/getGalleryImageBorderRadius';\n\nimport { openUrlSafely } from './utils/openUrlSafely';\n\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { isVideoPackageAvailable } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getUrlWithoutParams } from '../../utils/utils';\n\nconst MemoizedGalleryImage = React.memo(\n GalleryImage,\n (prevProps, nextProps) =>\n getUrlWithoutParams(prevProps.uri) === getUrlWithoutParams(nextProps.uri),\n) as typeof GalleryImage;\n\nconst styles = StyleSheet.create({\n errorTextSize: { fontSize: 10 },\n galleryContainer: {\n borderTopLeftRadius: 13,\n borderTopRightRadius: 13,\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflow: 'hidden',\n },\n imageContainer: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n padding: 1,\n },\n imageContainerStyle: { alignItems: 'center', flex: 1, justifyContent: 'center' },\n imageLoadingErrorIndicatorStyle: {\n bottom: 4,\n left: 4,\n position: 'absolute',\n },\n imageLoadingIndicatorContainer: {\n height: '100%',\n justifyContent: 'center',\n position: 'absolute',\n width: '100%',\n },\n imageLoadingIndicatorStyle: {\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n },\n moreImagesContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n margin: 1,\n },\n moreImagesText: { color: '#FFFFFF', fontSize: 26, fontWeight: '700' },\n});\n\nexport type GalleryPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setImage' | 'setImages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n | 'alignment'\n | 'groupStyles'\n | 'images'\n | 'videos'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n | 'threadList'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'legacyImageViewerSwipeBehaviour'\n | 'VideoThumbnail'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n > &\n Pick<OverlayContextValue, 'setOverlay'> & {\n channelId: string | undefined;\n hasThreadReplies?: boolean;\n /**\n * `message` prop has been introduced here as part of `legacyImageViewerSwipeBehaviour` prop.\n * https://github.com/GetStream/stream-chat-react-native/commit/d5eac6193047916f140efe8e396a671675c9a63f\n * messageId and messageText may seem redundant now, but to avoid breaking change as part\n * of minor release, we are keeping those props.\n *\n * Also `message` type should ideally be imported from MessageContextValue and not be explicitely mentioned\n * here, but due to some circular dependencies within the SDK, it causes \"exccesive deep nesting\" issue with\n * typescript within Channel component. We should take it as a mini-project and resolve all these circular imports.\n *\n * TODO: Fix circular dependencies of imports\n */\n message?: MessageType<StreamChatGenerics>;\n };\n\nconst GalleryWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GalleryPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n alignment,\n groupStyles,\n hasThreadReplies,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setImage,\n setImages,\n setOverlay,\n threadList,\n videos,\n VideoThumbnail,\n } = props;\n\n const {\n theme: {\n messageSimple: {\n gallery: {\n galleryContainer,\n galleryItemColumn,\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n },\n },\n },\n } = useTheme();\n\n const sizeConfig = {\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n };\n\n const imagesAndVideos = [...(images || []), ...(videos || [])];\n const { height, invertedDirections, thumbnailGrid, width } = useMemo(\n () =>\n buildGallery({\n images: imagesAndVideos,\n sizeConfig,\n }),\n [imagesAndVideos.length],\n );\n\n if (!imagesAndVideos?.length) return null;\n const numOfColumns = thumbnailGrid.length;\n\n return (\n <View\n style={[\n styles.galleryContainer,\n {\n height,\n width,\n },\n galleryContainer,\n {\n flexDirection: invertedDirections ? 'column' : 'row',\n },\n ]}\n testID='gallery-container'\n >\n {thumbnailGrid.map((rows, colIndex) => {\n const numOfRows = rows.length;\n return (\n <View\n key={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n style={[\n {\n flexDirection: invertedDirections ? 'row' : 'column',\n },\n galleryItemColumn,\n ]}\n testID={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n >\n {rows.map((thumbnail, rowIndex) => {\n const borderRadius = getGalleryImageBorderRadius({\n alignment,\n colIndex,\n groupStyles,\n hasThreadReplies,\n height,\n invertedDirections,\n messageText: message?.text,\n numOfColumns,\n numOfRows,\n rowIndex,\n sizeConfig,\n threadList,\n width,\n });\n\n if (message === undefined) {\n return null;\n }\n\n return (\n <GalleryThumbnail\n additionalTouchableProps={additionalTouchableProps}\n borderRadius={borderRadius}\n colIndex={colIndex}\n ImageLoadingFailedIndicator={ImageLoadingFailedIndicator}\n ImageLoadingIndicator={ImageLoadingIndicator}\n imagesAndVideos={imagesAndVideos}\n invertedDirections={invertedDirections || false}\n key={rowIndex}\n legacyImageViewerSwipeBehaviour={legacyImageViewerSwipeBehaviour}\n message={message}\n numOfColumns={numOfColumns}\n numOfRows={numOfRows}\n onLongPress={onLongPress}\n onPress={onPress}\n onPressIn={onPressIn}\n preventPress={preventPress}\n rowIndex={rowIndex}\n setImage={setImage}\n setImages={setImages}\n setOverlay={setOverlay}\n thumbnail={thumbnail}\n VideoThumbnail={VideoThumbnail}\n />\n );\n })}\n </View>\n );\n })}\n </View>\n );\n};\n\ntype GalleryThumbnailProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n borderRadius: {\n borderBottomLeftRadius: number;\n borderBottomRightRadius: number;\n borderTopLeftRadius: number;\n borderTopRightRadius: number;\n };\n colIndex: number;\n imagesAndVideos: Attachment<StreamChatGenerics>[];\n invertedDirections: boolean;\n message: MessageType<StreamChatGenerics>;\n numOfColumns: number;\n numOfRows: number;\n rowIndex: number;\n thumbnail: Thumbnail;\n} & Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'legacyImageViewerSwipeBehaviour'\n | 'VideoThumbnail'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n> &\n Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setImage' | 'setImages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n > &\n Pick<OverlayContextValue, 'setOverlay'>;\n\nconst GalleryThumbnail = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTouchableProps,\n borderRadius,\n colIndex,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n imagesAndVideos,\n invertedDirections,\n legacyImageViewerSwipeBehaviour,\n message,\n numOfColumns,\n numOfRows,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n rowIndex,\n setImage,\n setImages,\n setOverlay,\n thumbnail,\n VideoThumbnail,\n}: GalleryThumbnailProps<StreamChatGenerics>) => {\n const {\n theme: {\n colors: { overlay },\n messageSimple: {\n gallery: { image, imageContainer, moreImagesContainer, moreImagesText },\n },\n },\n } = useTheme();\n\n const openImageViewer = () => {\n if (!legacyImageViewerSwipeBehaviour && message) {\n // Added if-else to keep the logic readable, instead of DRY.\n // if - legacyImageViewerSwipeBehaviour is disabled\n // else - legacyImageViewerSwipeBehaviour is enabled\n setImages([message]);\n setImage({ messageId: message.id, url: thumbnail.url });\n setOverlay('gallery');\n } else if (legacyImageViewerSwipeBehaviour) {\n setImage({ messageId: message?.id, url: thumbnail.url });\n setOverlay('gallery');\n }\n };\n\n const defaultOnPress = () => {\n if (thumbnail.type === 'video' && !isVideoPackageAvailable()) {\n // This condition is kinda unreachable, since we render videos as file attachment if the video\n // library is not installed. But doesn't hurt to have extra safeguard, in case of some customizations.\n openUrlSafely(thumbnail.url);\n } else {\n openImageViewer();\n }\n };\n\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n disabled={preventPress}\n key={`gallery-item-${message.id}/${colIndex}/${rowIndex}/${imagesAndVideos.length}`}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n style={[\n styles.imageContainer,\n {\n height: thumbnail.height,\n width: thumbnail.width,\n },\n imageContainer,\n ]}\n testID={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}-item-${rowIndex}`}\n {...additionalTouchableProps}\n >\n {thumbnail.type === 'video' ? (\n <VideoThumbnail\n style={[\n borderRadius,\n image,\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\n ]}\n thumb_url={thumbnail.thumb_url}\n />\n ) : (\n <View style={styles.imageContainerStyle}>\n <GalleryImageThumbnail\n borderRadius={borderRadius}\n ImageLoadingFailedIndicator={ImageLoadingFailedIndicator}\n ImageLoadingIndicator={ImageLoadingIndicator}\n thumbnail={thumbnail}\n />\n </View>\n )}\n {colIndex === numOfColumns - 1 && rowIndex === numOfRows - 1 && imagesAndVideos.length > 4 ? (\n <View\n style={[\n StyleSheet.absoluteFillObject,\n styles.moreImagesContainer,\n { backgroundColor: overlay },\n moreImagesContainer,\n ]}\n >\n <Text style={[styles.moreImagesText, moreImagesText]}>\n {`+${imagesAndVideos.length - 4}`}\n </Text>\n </View>\n ) : null}\n </TouchableOpacity>\n );\n};\n\nconst GalleryImageThumbnail = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n borderRadius,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n thumbnail,\n}: Pick<\n GalleryThumbnailProps<StreamChatGenerics>,\n 'ImageLoadingFailedIndicator' | 'ImageLoadingIndicator' | 'thumbnail' | 'borderRadius'\n>) => {\n const { isLoadingImage, isLoadingImageError, setLoadingImage, setLoadingImageError } =\n useLoadingImage();\n\n const {\n theme: {\n messageSimple: {\n gallery: { image },\n },\n },\n } = useTheme();\n\n return (\n <View\n style={{\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n }}\n >\n {isLoadingImageError ? (\n <ImageLoadingFailedIndicator style={[styles.imageLoadingErrorIndicatorStyle]} />\n ) : (\n <>\n <MemoizedGalleryImage\n onError={(error) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode={thumbnail.resizeMode}\n style={[\n borderRadius,\n image,\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\n ]}\n uri={thumbnail.url}\n />\n {isLoadingImage && (\n <View style={[styles.imageLoadingIndicatorContainer]}>\n <ImageLoadingIndicator style={styles.imageLoadingIndicatorStyle} />\n </View>\n )}\n </>\n )}\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: GalleryPropsWithContext<StreamChatGenerics>,\n nextProps: GalleryPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n groupStyles: prevGroupStyles,\n hasThreadReplies: prevHasThreadReplies,\n images: prevImages,\n message: prevMessage,\n videos: prevVideos,\n } = prevProps;\n const {\n groupStyles: nextGroupStyles,\n hasThreadReplies: nextHasThreadReplies,\n images: nextImages,\n message: nextMessage,\n videos: nextVideos,\n } = nextProps;\n\n const messageEqual = prevMessage?.id === nextMessage?.id;\n if (!messageEqual) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const hasThreadRepliesEqual = prevHasThreadReplies === nextHasThreadReplies;\n if (!hasThreadRepliesEqual) return false;\n\n const imagesEqual =\n prevImages.length === nextImages.length &&\n prevImages.every(\n (image, index) =>\n getUrlWithoutParams(image.image_url) === getUrlWithoutParams(nextImages[index].image_url) &&\n getUrlWithoutParams(image.thumb_url) === getUrlWithoutParams(nextImages[index].thumb_url),\n );\n if (!imagesEqual) return false;\n\n const videosEqual =\n prevVideos.length === nextVideos.length &&\n prevVideos.every(\n (image, index) =>\n getUrlWithoutParams(image.image_url) === getUrlWithoutParams(nextVideos[index].image_url) &&\n getUrlWithoutParams(image.thumb_url) === getUrlWithoutParams(nextVideos[index].thumb_url),\n );\n if (!videosEqual) return false;\n\n return true;\n};\n\nconst MemoizedGallery = React.memo(GalleryWithContext, areEqual) as typeof GalleryWithContext;\n\nexport type GalleryProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<GalleryPropsWithContext<StreamChatGenerics>>;\n\n/**\n * UI component for card in attachments.\n */\nexport const Gallery = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GalleryProps<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps: propAdditionalTouchableProps,\n alignment: propAlignment,\n groupStyles: propGroupStyles,\n hasThreadReplies,\n ImageLoadingFailedIndicator: PropImageLoadingFailedIndicator,\n ImageLoadingIndicator: PropImageLoadingIndicator,\n images: propImages,\n onLongPress: propOnLongPress,\n onPress: propOnPress,\n onPressIn: propOnPressIn,\n preventPress: propPreventPress,\n setImage: propSetImage,\n setOverlay: propSetOverlay,\n threadList: propThreadList,\n videos: propVideos,\n VideoThumbnail: PropVideoThumbnail,\n } = props;\n\n const { setImage: contextSetImage, setImages } = useImageGalleryContext<StreamChatGenerics>();\n const {\n alignment: contextAlignment,\n groupStyles: contextGroupStyles,\n images: contextImages,\n message,\n onLongPress: contextOnLongPress,\n onPress: contextOnPress,\n onPressIn: contextOnPressIn,\n preventPress: contextPreventPress,\n threadList: contextThreadList,\n videos: contextVideos,\n } = useMessageContext<StreamChatGenerics>();\n const {\n additionalTouchableProps: contextAdditionalTouchableProps,\n ImageLoadingFailedIndicator: ContextImageLoadingFailedIndicator,\n ImageLoadingIndicator: ContextImageLoadingIndicator,\n legacyImageViewerSwipeBehaviour,\n VideoThumbnail: ContextVideoThumnbnail,\n } = useMessagesContext<StreamChatGenerics>();\n const { setOverlay: contextSetOverlay } = useOverlayContext();\n\n const images = propImages || contextImages;\n const videos = propVideos || contextVideos;\n\n if (!images.length && !videos.length) return null;\n\n const additionalTouchableProps = propAdditionalTouchableProps || contextAdditionalTouchableProps;\n const alignment = propAlignment || contextAlignment;\n const groupStyles = propGroupStyles || contextGroupStyles;\n const onLongPress = propOnLongPress || contextOnLongPress;\n const onPressIn = propOnPressIn || contextOnPressIn;\n const onPress = propOnPress || contextOnPress;\n const preventPress =\n typeof propPreventPress === 'boolean' ? propPreventPress : contextPreventPress;\n const setImage = propSetImage || contextSetImage;\n const setOverlay = propSetOverlay || contextSetOverlay;\n const threadList = propThreadList || contextThreadList;\n const VideoThumbnail = PropVideoThumbnail || ContextVideoThumnbnail;\n const ImageLoadingFailedIndicator =\n PropImageLoadingFailedIndicator || ContextImageLoadingFailedIndicator;\n const ImageLoadingIndicator = PropImageLoadingIndicator || ContextImageLoadingIndicator;\n\n return (\n <MemoizedGallery\n {...{\n additionalTouchableProps,\n alignment,\n channelId: message?.cid,\n groupStyles,\n hasThreadReplies: hasThreadReplies || !!message?.reply_count,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setImage,\n setImages,\n setOverlay,\n threadList,\n videos,\n VideoThumbnail,\n }}\n />\n );\n};\n\nGallery.displayName = 'Gallery{messageSimple{gallery}}';\n"]}
1
+ {"version":3,"sources":["Gallery.tsx"],"names":["MemoizedGalleryImage","React","memo","GalleryImage","prevProps","nextProps","uri","styles","StyleSheet","create","errorTextSize","fontSize","galleryContainer","borderTopLeftRadius","borderTopRightRadius","flexDirection","flexWrap","overflow","imageContainer","alignItems","display","justifyContent","padding","imageContainerStyle","flex","imageLoadingErrorIndicatorStyle","bottom","left","position","imageLoadingIndicatorContainer","height","width","imageLoadingIndicatorStyle","moreImagesContainer","margin","moreImagesText","color","fontWeight","GalleryWithContext","props","additionalTouchableProps","alignment","groupStyles","hasThreadReplies","ImageLoadingFailedIndicator","ImageLoadingIndicator","images","legacyImageViewerSwipeBehaviour","message","onLongPress","onPress","onPressIn","preventPress","setImage","setImages","setOverlay","threadList","videos","VideoThumbnail","theme","messageSimple","gallery","galleryItemColumn","gridHeight","gridWidth","maxHeight","maxWidth","minHeight","minWidth","sizeConfig","imagesAndVideos","length","invertedDirections","thumbnailGrid","numOfColumns","map","rows","colIndex","numOfRows","thumbnail","rowIndex","borderRadius","messageText","text","undefined","GalleryThumbnail","overlay","colors","image","openImageViewer","messageId","id","url","defaultOnPress","type","event","emitter","defaultHandler","thumb_url","absoluteFillObject","backgroundColor","GalleryImageThumbnail","isLoadingImage","isLoadingImageError","setLoadingImage","setLoadingImageError","error","console","warn","resizeMode","areEqual","prevGroupStyles","prevHasThreadReplies","prevImages","prevMessage","prevVideos","nextGroupStyles","nextHasThreadReplies","nextImages","nextMessage","nextVideos","messageEqual","updated_at","groupStylesEqual","hasThreadRepliesEqual","imagesEqual","every","index","image_url","videosEqual","MemoizedGallery","Gallery","propAdditionalTouchableProps","propAlignment","propGroupStyles","PropImageLoadingFailedIndicator","PropImageLoadingIndicator","propImages","propOnLongPress","propOnPress","propOnPressIn","propPreventPress","propSetImage","propSetOverlay","propThreadList","propVideos","PropVideoThumbnail","contextSetImage","contextAlignment","contextGroupStyles","contextImages","contextOnLongPress","contextOnPress","contextOnPressIn","contextPreventPress","contextThreadList","contextVideos","contextAdditionalTouchableProps","ContextImageLoadingFailedIndicator","ContextImageLoadingIndicator","ContextVideoThumnbnail","contextSetOverlay","channelId","cid","reply_count","displayName"],"mappings":"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","sourcesContent":["import React, { useMemo } from 'react';\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { GalleryImage } from './GalleryImage';\nimport { buildGallery } from './utils/buildGallery/buildGallery';\n\nimport type { Thumbnail } from './utils/buildGallery/types';\nimport { getGalleryImageBorderRadius } from './utils/getGalleryImageBorderRadius';\n\nimport { openUrlSafely } from './utils/openUrlSafely';\n\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useLoadingImage } from '../../hooks/useLoadingImage';\nimport { isVideoPackageAvailable } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getUrlWithoutParams } from '../../utils/utils';\n\nconst MemoizedGalleryImage = React.memo(\n GalleryImage,\n (prevProps, nextProps) =>\n getUrlWithoutParams(prevProps.uri) === getUrlWithoutParams(nextProps.uri),\n) as typeof GalleryImage;\n\nconst styles = StyleSheet.create({\n errorTextSize: { fontSize: 10 },\n galleryContainer: {\n borderTopLeftRadius: 13,\n borderTopRightRadius: 13,\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflow: 'hidden',\n },\n imageContainer: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n padding: 1,\n },\n imageContainerStyle: { alignItems: 'center', flex: 1, justifyContent: 'center' },\n imageLoadingErrorIndicatorStyle: {\n bottom: 4,\n left: 4,\n position: 'absolute',\n },\n imageLoadingIndicatorContainer: {\n height: '100%',\n justifyContent: 'center',\n position: 'absolute',\n width: '100%',\n },\n imageLoadingIndicatorStyle: {\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n },\n moreImagesContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n margin: 1,\n },\n moreImagesText: { color: '#FFFFFF', fontSize: 26, fontWeight: '700' },\n});\n\nexport type GalleryPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setImage' | 'setImages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n | 'alignment'\n | 'groupStyles'\n | 'images'\n | 'videos'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n | 'threadList'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'legacyImageViewerSwipeBehaviour'\n | 'VideoThumbnail'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n > &\n Pick<OverlayContextValue, 'setOverlay'> & {\n channelId: string | undefined;\n hasThreadReplies?: boolean;\n /**\n * `message` prop has been introduced here as part of `legacyImageViewerSwipeBehaviour` prop.\n * https://github.com/GetStream/stream-chat-react-native/commit/d5eac6193047916f140efe8e396a671675c9a63f\n * messageId and messageText may seem redundant now, but to avoid breaking change as part\n * of minor release, we are keeping those props.\n *\n * Also `message` type should ideally be imported from MessageContextValue and not be explicitely mentioned\n * here, but due to some circular dependencies within the SDK, it causes \"exccesive deep nesting\" issue with\n * typescript within Channel component. We should take it as a mini-project and resolve all these circular imports.\n *\n * TODO: Fix circular dependencies of imports\n */\n message?: MessageType<StreamChatGenerics>;\n };\n\nconst GalleryWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GalleryPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n alignment,\n groupStyles,\n hasThreadReplies,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setImage,\n setImages,\n setOverlay,\n threadList,\n videos,\n VideoThumbnail,\n } = props;\n\n const {\n theme: {\n messageSimple: {\n gallery: {\n galleryContainer,\n galleryItemColumn,\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n },\n },\n },\n } = useTheme();\n\n const sizeConfig = {\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n };\n\n const imagesAndVideos = [...(images || []), ...(videos || [])];\n const { height, invertedDirections, thumbnailGrid, width } = useMemo(\n () =>\n buildGallery({\n images: imagesAndVideos,\n sizeConfig,\n }),\n [imagesAndVideos.length],\n );\n\n if (!imagesAndVideos?.length) return null;\n const numOfColumns = thumbnailGrid.length;\n\n return (\n <View\n style={[\n styles.galleryContainer,\n {\n height,\n width,\n },\n galleryContainer,\n {\n flexDirection: invertedDirections ? 'column' : 'row',\n },\n ]}\n testID='gallery-container'\n >\n {thumbnailGrid.map((rows, colIndex) => {\n const numOfRows = rows.length;\n return (\n <View\n key={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n style={[\n {\n flexDirection: invertedDirections ? 'row' : 'column',\n },\n galleryItemColumn,\n ]}\n testID={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n >\n {rows.map((thumbnail, rowIndex) => {\n const borderRadius = getGalleryImageBorderRadius({\n alignment,\n colIndex,\n groupStyles,\n hasThreadReplies,\n height,\n invertedDirections,\n messageText: message?.text,\n numOfColumns,\n numOfRows,\n rowIndex,\n sizeConfig,\n threadList,\n width,\n });\n\n if (message === undefined) {\n return null;\n }\n\n return (\n <GalleryThumbnail\n additionalTouchableProps={additionalTouchableProps}\n borderRadius={borderRadius}\n colIndex={colIndex}\n ImageLoadingFailedIndicator={ImageLoadingFailedIndicator}\n ImageLoadingIndicator={ImageLoadingIndicator}\n imagesAndVideos={imagesAndVideos}\n invertedDirections={invertedDirections || false}\n key={rowIndex}\n legacyImageViewerSwipeBehaviour={legacyImageViewerSwipeBehaviour}\n message={message}\n numOfColumns={numOfColumns}\n numOfRows={numOfRows}\n onLongPress={onLongPress}\n onPress={onPress}\n onPressIn={onPressIn}\n preventPress={preventPress}\n rowIndex={rowIndex}\n setImage={setImage}\n setImages={setImages}\n setOverlay={setOverlay}\n thumbnail={thumbnail}\n VideoThumbnail={VideoThumbnail}\n />\n );\n })}\n </View>\n );\n })}\n </View>\n );\n};\n\ntype GalleryThumbnailProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n borderRadius: {\n borderBottomLeftRadius: number;\n borderBottomRightRadius: number;\n borderTopLeftRadius: number;\n borderTopRightRadius: number;\n };\n colIndex: number;\n imagesAndVideos: Attachment<StreamChatGenerics>[];\n invertedDirections: boolean;\n message: MessageType<StreamChatGenerics>;\n numOfColumns: number;\n numOfRows: number;\n rowIndex: number;\n thumbnail: Thumbnail;\n} & Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'legacyImageViewerSwipeBehaviour'\n | 'VideoThumbnail'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n> &\n Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setImage' | 'setImages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n > &\n Pick<OverlayContextValue, 'setOverlay'>;\n\nconst GalleryThumbnail = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTouchableProps,\n borderRadius,\n colIndex,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n imagesAndVideos,\n invertedDirections,\n legacyImageViewerSwipeBehaviour,\n message,\n numOfColumns,\n numOfRows,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n rowIndex,\n setImage,\n setImages,\n setOverlay,\n thumbnail,\n VideoThumbnail,\n}: GalleryThumbnailProps<StreamChatGenerics>) => {\n const {\n theme: {\n colors: { overlay },\n messageSimple: {\n gallery: { image, imageContainer, moreImagesContainer, moreImagesText },\n },\n },\n } = useTheme();\n\n const openImageViewer = () => {\n if (!legacyImageViewerSwipeBehaviour && message) {\n // Added if-else to keep the logic readable, instead of DRY.\n // if - legacyImageViewerSwipeBehaviour is disabled\n // else - legacyImageViewerSwipeBehaviour is enabled\n setImages([message]);\n setImage({ messageId: message.id, url: thumbnail.url });\n setOverlay('gallery');\n } else if (legacyImageViewerSwipeBehaviour) {\n setImage({ messageId: message?.id, url: thumbnail.url });\n setOverlay('gallery');\n }\n };\n\n const defaultOnPress = () => {\n if (thumbnail.type === 'video' && !isVideoPackageAvailable()) {\n // This condition is kinda unreachable, since we render videos as file attachment if the video\n // library is not installed. But doesn't hurt to have extra safeguard, in case of some customizations.\n openUrlSafely(thumbnail.url);\n } else {\n openImageViewer();\n }\n };\n\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n disabled={preventPress}\n key={`gallery-item-${message.id}/${colIndex}/${rowIndex}/${imagesAndVideos.length}`}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n style={[\n styles.imageContainer,\n {\n height: thumbnail.height,\n width: thumbnail.width,\n },\n imageContainer,\n ]}\n testID={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}-item-${rowIndex}`}\n {...additionalTouchableProps}\n >\n {thumbnail.type === 'video' ? (\n <VideoThumbnail\n style={[\n borderRadius,\n image,\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\n ]}\n thumb_url={thumbnail.thumb_url}\n />\n ) : (\n <View style={styles.imageContainerStyle}>\n <GalleryImageThumbnail\n borderRadius={borderRadius}\n ImageLoadingFailedIndicator={ImageLoadingFailedIndicator}\n ImageLoadingIndicator={ImageLoadingIndicator}\n thumbnail={thumbnail}\n />\n </View>\n )}\n {colIndex === numOfColumns - 1 && rowIndex === numOfRows - 1 && imagesAndVideos.length > 4 ? (\n <View\n style={[\n StyleSheet.absoluteFillObject,\n styles.moreImagesContainer,\n { backgroundColor: overlay },\n moreImagesContainer,\n ]}\n >\n <Text style={[styles.moreImagesText, moreImagesText]}>\n {`+${imagesAndVideos.length - 4}`}\n </Text>\n </View>\n ) : null}\n </TouchableOpacity>\n );\n};\n\nconst GalleryImageThumbnail = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n borderRadius,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n thumbnail,\n}: Pick<\n GalleryThumbnailProps<StreamChatGenerics>,\n 'ImageLoadingFailedIndicator' | 'ImageLoadingIndicator' | 'thumbnail' | 'borderRadius'\n>) => {\n const { isLoadingImage, isLoadingImageError, setLoadingImage, setLoadingImageError } =\n useLoadingImage();\n\n const {\n theme: {\n messageSimple: {\n gallery: { image },\n },\n },\n } = useTheme();\n\n return (\n <View\n style={{\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n }}\n >\n {isLoadingImageError ? (\n <ImageLoadingFailedIndicator style={[styles.imageLoadingErrorIndicatorStyle]} />\n ) : (\n <>\n <MemoizedGalleryImage\n onError={(error) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode={thumbnail.resizeMode}\n style={[\n borderRadius,\n image,\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\n ]}\n uri={thumbnail.url}\n />\n {isLoadingImage && (\n <View style={[styles.imageLoadingIndicatorContainer]}>\n <ImageLoadingIndicator style={styles.imageLoadingIndicatorStyle} />\n </View>\n )}\n </>\n )}\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: GalleryPropsWithContext<StreamChatGenerics>,\n nextProps: GalleryPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n groupStyles: prevGroupStyles,\n hasThreadReplies: prevHasThreadReplies,\n images: prevImages,\n message: prevMessage,\n videos: prevVideos,\n } = prevProps;\n const {\n groupStyles: nextGroupStyles,\n hasThreadReplies: nextHasThreadReplies,\n images: nextImages,\n message: nextMessage,\n videos: nextVideos,\n } = nextProps;\n\n const messageEqual =\n prevMessage?.id === nextMessage?.id &&\n `${prevMessage?.updated_at}` === `${nextMessage?.updated_at}`;\n if (!messageEqual) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const hasThreadRepliesEqual = prevHasThreadReplies === nextHasThreadReplies;\n if (!hasThreadRepliesEqual) return false;\n\n const imagesEqual =\n prevImages.length === nextImages.length &&\n prevImages.every(\n (image, index) =>\n getUrlWithoutParams(image.image_url) === getUrlWithoutParams(nextImages[index].image_url) &&\n getUrlWithoutParams(image.thumb_url) === getUrlWithoutParams(nextImages[index].thumb_url),\n );\n if (!imagesEqual) return false;\n\n const videosEqual =\n prevVideos.length === nextVideos.length &&\n prevVideos.every(\n (image, index) =>\n getUrlWithoutParams(image.image_url) === getUrlWithoutParams(nextVideos[index].image_url) &&\n getUrlWithoutParams(image.thumb_url) === getUrlWithoutParams(nextVideos[index].thumb_url),\n );\n if (!videosEqual) return false;\n\n return true;\n};\n\nconst MemoizedGallery = React.memo(GalleryWithContext, areEqual) as typeof GalleryWithContext;\n\nexport type GalleryProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<GalleryPropsWithContext<StreamChatGenerics>>;\n\n/**\n * UI component for card in attachments.\n */\nexport const Gallery = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GalleryProps<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps: propAdditionalTouchableProps,\n alignment: propAlignment,\n groupStyles: propGroupStyles,\n hasThreadReplies,\n ImageLoadingFailedIndicator: PropImageLoadingFailedIndicator,\n ImageLoadingIndicator: PropImageLoadingIndicator,\n images: propImages,\n onLongPress: propOnLongPress,\n onPress: propOnPress,\n onPressIn: propOnPressIn,\n preventPress: propPreventPress,\n setImage: propSetImage,\n setOverlay: propSetOverlay,\n threadList: propThreadList,\n videos: propVideos,\n VideoThumbnail: PropVideoThumbnail,\n } = props;\n\n const { setImage: contextSetImage, setImages } = useImageGalleryContext<StreamChatGenerics>();\n const {\n alignment: contextAlignment,\n groupStyles: contextGroupStyles,\n images: contextImages,\n message,\n onLongPress: contextOnLongPress,\n onPress: contextOnPress,\n onPressIn: contextOnPressIn,\n preventPress: contextPreventPress,\n threadList: contextThreadList,\n videos: contextVideos,\n } = useMessageContext<StreamChatGenerics>();\n const {\n additionalTouchableProps: contextAdditionalTouchableProps,\n ImageLoadingFailedIndicator: ContextImageLoadingFailedIndicator,\n ImageLoadingIndicator: ContextImageLoadingIndicator,\n legacyImageViewerSwipeBehaviour,\n VideoThumbnail: ContextVideoThumnbnail,\n } = useMessagesContext<StreamChatGenerics>();\n const { setOverlay: contextSetOverlay } = useOverlayContext();\n\n const images = propImages || contextImages;\n const videos = propVideos || contextVideos;\n\n if (!images.length && !videos.length) return null;\n\n const additionalTouchableProps = propAdditionalTouchableProps || contextAdditionalTouchableProps;\n const alignment = propAlignment || contextAlignment;\n const groupStyles = propGroupStyles || contextGroupStyles;\n const onLongPress = propOnLongPress || contextOnLongPress;\n const onPressIn = propOnPressIn || contextOnPressIn;\n const onPress = propOnPress || contextOnPress;\n const preventPress =\n typeof propPreventPress === 'boolean' ? propPreventPress : contextPreventPress;\n const setImage = propSetImage || contextSetImage;\n const setOverlay = propSetOverlay || contextSetOverlay;\n const threadList = propThreadList || contextThreadList;\n const VideoThumbnail = PropVideoThumbnail || ContextVideoThumnbnail;\n const ImageLoadingFailedIndicator =\n PropImageLoadingFailedIndicator || ContextImageLoadingFailedIndicator;\n const ImageLoadingIndicator = PropImageLoadingIndicator || ContextImageLoadingIndicator;\n\n return (\n <MemoizedGallery\n {...{\n additionalTouchableProps,\n alignment,\n channelId: message?.cid,\n groupStyles,\n hasThreadReplies: hasThreadReplies || !!message?.reply_count,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setImage,\n setImages,\n setOverlay,\n threadList,\n videos,\n VideoThumbnail,\n }}\n />\n );\n};\n\nGallery.displayName = 'Gallery{messageSimple{gallery}}';\n"]}
@@ -18,7 +18,7 @@ var _utils = require("../../utils/utils");
18
18
  var _excluded = ["uri"];
19
19
 
20
20
  var _this = this,
21
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/GalleryImage.tsx";
21
+ _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/Attachment/GalleryImage.tsx";
22
22
 
23
23
  var GalleryImage = function GalleryImage(props) {
24
24
  var uri = props.uri,