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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/lib/commonjs/components/{MessageInput/AudioAttachmentUploadPreview.js → Attachment/AudioAttachment.js} +38 -64
  2. package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -0
  3. package/lib/commonjs/components/Attachment/Card.js +1 -0
  4. package/lib/commonjs/components/Attachment/Card.js.map +1 -1
  5. package/lib/commonjs/components/Attachment/FileAttachment.js +16 -7
  6. package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
  7. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +132 -12
  8. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
  9. package/lib/commonjs/components/Attachment/Gallery.js +41 -35
  10. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  11. package/lib/commonjs/components/Attachment/Giphy.js +17 -13
  12. package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
  13. package/lib/commonjs/components/Attachment/VideoThumbnail.js +12 -6
  14. package/lib/commonjs/components/Attachment/VideoThumbnail.js.map +1 -1
  15. package/lib/commonjs/components/Attachment/utils/getGiphyMimeType.js +15 -0
  16. package/lib/commonjs/components/Attachment/utils/getGiphyMimeType.js.map +1 -0
  17. package/lib/commonjs/components/Channel/Channel.js +19 -19
  18. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  19. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +0 -2
  20. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  21. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +2 -0
  22. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  23. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js +16 -4
  24. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  25. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +12 -7
  26. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  27. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +10 -6
  28. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
  29. package/lib/commonjs/components/ImageGallery/ImageGallery.js +38 -30
  30. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  31. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +11 -10
  32. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  33. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +2 -2
  34. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
  35. package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js +6 -0
  36. package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
  37. package/lib/commonjs/components/Message/Message.js +7 -7
  38. package/lib/commonjs/components/Message/Message.js.map +1 -1
  39. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +7 -3
  40. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  41. package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js +1 -1
  42. package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js.map +1 -1
  43. package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.test.js +1 -1
  44. package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.test.js.map +1 -1
  45. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +1 -1
  46. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  47. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +38 -44
  48. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  49. package/lib/commonjs/components/MessageList/MessageList.js +5 -5
  50. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  51. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +10 -9
  52. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
  53. package/lib/commonjs/components/index.js +13 -13
  54. package/lib/commonjs/components/index.js.map +1 -1
  55. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js +13 -14
  56. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  57. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.md +1 -1
  58. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +2 -2
  59. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  60. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +0 -2
  61. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  62. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
  63. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  64. package/lib/commonjs/contexts/themeContext/utils/theme.js +2 -2
  65. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  66. package/lib/commonjs/index.js +13 -1
  67. package/lib/commonjs/index.js.map +1 -1
  68. package/lib/commonjs/mock-builders/DB/mock.js +1 -13
  69. package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
  70. package/lib/commonjs/mock-builders/event/messageNew.js +2 -0
  71. package/lib/commonjs/mock-builders/event/messageNew.js.map +1 -1
  72. package/lib/commonjs/store/QuickSqliteClient.js +7 -3
  73. package/lib/commonjs/store/QuickSqliteClient.js.map +1 -1
  74. package/lib/commonjs/store/apis/getChannels.js +2 -15
  75. package/lib/commonjs/store/apis/getChannels.js.map +1 -1
  76. package/lib/commonjs/store/apis/getChannelsForFilterSort.js +37 -0
  77. package/lib/commonjs/store/apis/getChannelsForFilterSort.js.map +1 -0
  78. package/lib/commonjs/store/apis/index.js +264 -0
  79. package/lib/commonjs/store/apis/index.js.map +1 -0
  80. package/lib/commonjs/store/apis/queries/selectChannelIdsForFilterSort.js +1 -1
  81. package/lib/commonjs/store/apis/queries/selectChannelIdsForFilterSort.js.map +1 -1
  82. package/lib/commonjs/store/apis/queries/selectChannels.js +2 -2
  83. package/lib/commonjs/store/apis/queries/selectChannels.js.map +1 -1
  84. package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js +1 -2
  85. package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js.map +1 -1
  86. package/lib/commonjs/test-utils/BetterSqlite.js +54 -0
  87. package/lib/commonjs/test-utils/BetterSqlite.js.map +1 -0
  88. package/lib/commonjs/version.json +1 -1
  89. package/lib/module/components/{MessageInput/AudioAttachmentUploadPreview.js → Attachment/AudioAttachment.js} +38 -64
  90. package/lib/module/components/Attachment/AudioAttachment.js.map +1 -0
  91. package/lib/module/components/Attachment/Card.js +1 -0
  92. package/lib/module/components/Attachment/Card.js.map +1 -1
  93. package/lib/module/components/Attachment/FileAttachment.js +16 -7
  94. package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
  95. package/lib/module/components/Attachment/FileAttachmentGroup.js +132 -12
  96. package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
  97. package/lib/module/components/Attachment/Gallery.js +41 -35
  98. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  99. package/lib/module/components/Attachment/Giphy.js +17 -13
  100. package/lib/module/components/Attachment/Giphy.js.map +1 -1
  101. package/lib/module/components/Attachment/VideoThumbnail.js +12 -6
  102. package/lib/module/components/Attachment/VideoThumbnail.js.map +1 -1
  103. package/lib/module/components/Attachment/utils/getGiphyMimeType.js +15 -0
  104. package/lib/module/components/Attachment/utils/getGiphyMimeType.js.map +1 -0
  105. package/lib/module/components/Channel/Channel.js +19 -19
  106. package/lib/module/components/Channel/Channel.js.map +1 -1
  107. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +0 -2
  108. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  109. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +2 -0
  110. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  111. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js +16 -4
  112. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  113. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +12 -7
  114. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  115. package/lib/module/components/ChannelPreview/ChannelPreview.js +10 -6
  116. package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
  117. package/lib/module/components/ImageGallery/ImageGallery.js +38 -30
  118. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  119. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +11 -10
  120. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  121. package/lib/module/components/ImageGallery/components/ImageGrid.js +2 -2
  122. package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
  123. package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js +6 -0
  124. package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
  125. package/lib/module/components/Message/Message.js +7 -7
  126. package/lib/module/components/Message/Message.js.map +1 -1
  127. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +7 -3
  128. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  129. package/lib/module/components/Message/MessageSimple/utils/parseLinks.js +1 -1
  130. package/lib/module/components/Message/MessageSimple/utils/parseLinks.js.map +1 -1
  131. package/lib/module/components/Message/MessageSimple/utils/parseLinks.test.js +1 -1
  132. package/lib/module/components/Message/MessageSimple/utils/parseLinks.test.js.map +1 -1
  133. package/lib/module/components/Message/MessageSimple/utils/renderText.js +1 -1
  134. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  135. package/lib/module/components/MessageInput/FileUploadPreview.js +38 -44
  136. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  137. package/lib/module/components/MessageList/MessageList.js +5 -5
  138. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  139. package/lib/module/components/MessageOverlay/MessageOverlay.js +10 -9
  140. package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
  141. package/lib/module/components/index.js +13 -13
  142. package/lib/module/components/index.js.map +1 -1
  143. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js +13 -14
  144. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  145. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.md +1 -1
  146. package/lib/module/contexts/messageInputContext/MessageInputContext.js +2 -2
  147. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  148. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +0 -2
  149. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  150. package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
  151. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  152. package/lib/module/contexts/themeContext/utils/theme.js +2 -2
  153. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  154. package/lib/module/index.js +13 -1
  155. package/lib/module/index.js.map +1 -1
  156. package/lib/module/mock-builders/DB/mock.js +1 -13
  157. package/lib/module/mock-builders/DB/mock.js.map +1 -1
  158. package/lib/module/mock-builders/event/messageNew.js +2 -0
  159. package/lib/module/mock-builders/event/messageNew.js.map +1 -1
  160. package/lib/module/store/QuickSqliteClient.js +7 -3
  161. package/lib/module/store/QuickSqliteClient.js.map +1 -1
  162. package/lib/module/store/apis/getChannels.js +2 -15
  163. package/lib/module/store/apis/getChannels.js.map +1 -1
  164. package/lib/module/store/apis/getChannelsForFilterSort.js +37 -0
  165. package/lib/module/store/apis/getChannelsForFilterSort.js.map +1 -0
  166. package/lib/module/store/apis/index.js +264 -0
  167. package/lib/module/store/apis/index.js.map +1 -0
  168. package/lib/module/store/apis/queries/selectChannelIdsForFilterSort.js +1 -1
  169. package/lib/module/store/apis/queries/selectChannelIdsForFilterSort.js.map +1 -1
  170. package/lib/module/store/apis/queries/selectChannels.js +2 -2
  171. package/lib/module/store/apis/queries/selectChannels.js.map +1 -1
  172. package/lib/module/store/sqlite-utils/appendWhereCluase.js +1 -2
  173. package/lib/module/store/sqlite-utils/appendWhereCluase.js.map +1 -1
  174. package/lib/module/test-utils/BetterSqlite.js +54 -0
  175. package/lib/module/test-utils/BetterSqlite.js.map +1 -0
  176. package/lib/module/version.json +1 -1
  177. package/lib/typescript/components/Attachment/AudioAttachment.d.ts +23 -0
  178. package/lib/typescript/components/Attachment/FileAttachmentGroup.d.ts +1 -1
  179. package/lib/typescript/components/Attachment/Gallery.d.ts +1 -1
  180. package/lib/typescript/components/Attachment/Giphy.d.ts +1 -1
  181. package/lib/typescript/components/Attachment/utils/getGiphyMimeType.d.ts +6 -0
  182. package/lib/typescript/components/Channel/Channel.d.ts +1 -1
  183. package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +1 -1
  184. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
  185. package/lib/typescript/components/ImageGallery/components/ImageGrid.d.ts +1 -1
  186. package/lib/typescript/components/ImageGallery/hooks/useImageGalleryGestures.d.ts +2 -1
  187. package/lib/typescript/components/Message/Message.d.ts +9 -3
  188. package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +1 -1
  189. package/lib/typescript/components/MessageList/MessageList.d.ts +1 -1
  190. package/lib/typescript/components/index.d.ts +1 -1
  191. package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContext.d.ts +9 -10
  192. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +1 -1
  193. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +1 -4
  194. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
  195. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +3 -0
  196. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +2 -2
  197. package/lib/typescript/index.d.ts +2 -0
  198. package/lib/typescript/store/QuickSqliteClient.d.ts +4 -0
  199. package/lib/typescript/store/apis/getChannels.d.ts +13 -5
  200. package/lib/typescript/store/apis/getChannelsForFilterSort.d.ts +17 -0
  201. package/lib/typescript/store/apis/index.d.ts +20 -0
  202. package/lib/typescript/store/apis/queries/selectChannelIdsForFilterSort.d.ts +10 -1
  203. package/lib/typescript/{__tests__/utils → test-utils}/BetterSqlite.d.ts +1 -1
  204. package/package.json +5 -4
  205. package/src/__tests__/offline-feature.test.js +1 -2
  206. package/src/components/{MessageInput/AudioAttachmentUploadPreview.tsx → Attachment/AudioAttachment.tsx} +82 -131
  207. package/src/components/Attachment/Card.tsx +1 -0
  208. package/src/components/Attachment/FileAttachment.tsx +3 -0
  209. package/src/components/Attachment/FileAttachmentGroup.tsx +119 -9
  210. package/src/components/Attachment/Gallery.tsx +30 -19
  211. package/src/components/Attachment/Giphy.tsx +15 -8
  212. package/src/components/Attachment/VideoThumbnail.tsx +3 -2
  213. package/src/components/Attachment/utils/getGiphyMimeType.ts +13 -0
  214. package/src/components/Channel/Channel.tsx +5 -4
  215. package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +0 -2
  216. package/src/components/Channel/hooks/useCreateMessagesContext.ts +2 -0
  217. package/src/components/ChannelList/__tests__/ChannelList.test.js +28 -0
  218. package/src/components/ChannelList/hooks/listeners/useNewMessage.ts +18 -5
  219. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +19 -10
  220. package/src/components/ChannelPreview/ChannelPreview.tsx +6 -3
  221. package/src/components/ImageGallery/ImageGallery.tsx +32 -19
  222. package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +6 -6
  223. package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +3 -3
  224. package/src/components/ImageGallery/__tests__/ImageGalleryGrid.test.tsx +3 -3
  225. package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +3 -3
  226. package/src/components/ImageGallery/components/ImageGalleryVideoControl.tsx +12 -7
  227. package/src/components/ImageGallery/components/ImageGrid.tsx +3 -3
  228. package/src/components/ImageGallery/hooks/useImageGalleryGestures.tsx +16 -0
  229. package/src/components/Message/Message.tsx +10 -2
  230. package/src/components/Message/MessageSimple/MessageTextContainer.tsx +22 -2
  231. package/src/components/Message/MessageSimple/__tests__/MessageContent.test.js +4 -2
  232. package/src/components/Message/MessageSimple/__tests__/__snapshots__/MessageAvatar.test.js.snap +1 -0
  233. package/src/components/Message/MessageSimple/utils/parseLinks.test.ts +4 -0
  234. package/src/components/Message/MessageSimple/utils/parseLinks.ts +1 -1
  235. package/src/components/Message/MessageSimple/utils/renderText.tsx +1 -1
  236. package/src/components/MessageInput/FileUploadPreview.tsx +34 -26
  237. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewExpo.test.tsx +15 -8
  238. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewNative.test.tsx +15 -8
  239. package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +5 -5
  240. package/src/components/MessageList/MessageList.tsx +6 -6
  241. package/src/components/MessageOverlay/MessageOverlay.tsx +1 -0
  242. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +4 -0
  243. package/src/components/index.ts +1 -1
  244. package/src/contexts/imageGalleryContext/ImageGalleryContext.md +1 -1
  245. package/src/contexts/imageGalleryContext/ImageGalleryContext.tsx +19 -14
  246. package/src/contexts/messageInputContext/MessageInputContext.tsx +0 -6
  247. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +0 -2
  248. package/src/contexts/messagesContext/MessagesContext.tsx +3 -0
  249. package/src/contexts/themeContext/utils/theme.ts +4 -4
  250. package/src/index.ts +3 -0
  251. package/src/mock-builders/DB/mock.ts +4 -9
  252. package/src/mock-builders/event/messageNew.js +2 -0
  253. package/src/store/QuickSqliteClient.ts +11 -7
  254. package/src/store/apis/getChannels.ts +17 -14
  255. package/src/store/apis/getChannelsForFilterSort.ts +45 -0
  256. package/src/store/apis/index.ts +20 -0
  257. package/src/store/apis/queries/selectChannelIdsForFilterSort.ts +12 -2
  258. package/src/store/apis/queries/selectChannels.ts +9 -3
  259. package/src/store/sqlite-utils/appendWhereCluase.ts +1 -2
  260. package/src/{__tests__/utils → test-utils}/BetterSqlite.js +1 -1
  261. package/src/version.json +1 -1
  262. package/lib/commonjs/components/MessageInput/AudioAttachmentUploadPreview.js.map +0 -1
  263. package/lib/module/components/MessageInput/AudioAttachmentUploadPreview.js.map +0 -1
  264. package/lib/typescript/components/MessageInput/AudioAttachmentUploadPreview.d.ts +0 -26
@@ -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","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","height","invertedDirections","thumbnailGrid","width","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 { 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 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={{ position: 'absolute' }}>\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","setMessages","setOverlay","setSelectedMessage","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","propMessage","propOnLongPress","propOnPress","propOnPressIn","propPreventPress","propSetOverlay","propSetSelectedMessage","propThreadList","propVideos","PropVideoThumbnail","contextSetSelectedMessage","contextAlignment","contextGroupStyles","contextImages","contextMessage","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>, 'setSelectedMessage' | 'setMessages'> &\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 setMessages,\n setOverlay,\n setSelectedMessage,\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 setMessages={setMessages}\n setOverlay={setOverlay}\n setSelectedMessage={setSelectedMessage}\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>, 'setSelectedMessage' | 'setMessages'> &\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 setMessages,\n setOverlay,\n setSelectedMessage,\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 setMessages([message]);\n setSelectedMessage({ messageId: message.id, url: thumbnail.url });\n setOverlay('gallery');\n } else if (legacyImageViewerSwipeBehaviour) {\n setSelectedMessage({ 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 message: propMessage,\n onLongPress: propOnLongPress,\n onPress: propOnPress,\n onPressIn: propOnPressIn,\n preventPress: propPreventPress,\n setOverlay: propSetOverlay,\n setSelectedMessage: propSetSelectedMessage,\n threadList: propThreadList,\n videos: propVideos,\n VideoThumbnail: PropVideoThumbnail,\n } = props;\n\n const { setMessages, setSelectedMessage: contextSetSelectedMessage } =\n useImageGalleryContext<StreamChatGenerics>();\n const {\n alignment: contextAlignment,\n groupStyles: contextGroupStyles,\n images: contextImages,\n message: contextMessage,\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 const message = propMessage || contextMessage;\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 setSelectedMessage = propSetSelectedMessage || contextSetSelectedMessage;\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 setMessages,\n setOverlay,\n setSelectedMessage,\n threadList,\n videos,\n VideoThumbnail,\n }}\n />\n );\n};\n\nGallery.displayName = 'Gallery{messageSimple{gallery}}';\n"]}
@@ -151,9 +151,9 @@ var GiphyWithContext = function GiphyWithContext(props) {
151
151
  _onPress = props.onPress,
152
152
  _onPressIn = props.onPressIn,
153
153
  preventPress = props.preventPress,
154
- setImage = props.setImage,
155
- setImages = props.setImages,
156
- setOverlay = props.setOverlay;
154
+ setMessages = props.setMessages,
155
+ setOverlay = props.setOverlay,
156
+ setSelectedMessage = props.setSelectedMessage;
157
157
  var actions = attachment.actions,
158
158
  giphyData = attachment.giphy,
159
159
  image_url = attachment.image_url,
@@ -196,8 +196,8 @@ var GiphyWithContext = function GiphyWithContext(props) {
196
196
  var giphyDimensions = {};
197
197
 
198
198
  var defaultOnPress = function defaultOnPress() {
199
- setImages([message]);
200
- setImage({
199
+ setMessages([message]);
200
+ setSelectedMessage({
201
201
  messageId: message.id,
202
202
  url: uri
203
203
  });
@@ -536,13 +536,15 @@ var areEqual = function areEqual(prevProps, nextProps) {
536
536
  prevImageUrl = _prevProps$attachment.image_url,
537
537
  prevThumbUrl = _prevProps$attachment.thumb_url,
538
538
  prevGiphyVersion = prevProps.giphyVersion,
539
- prevIsMyMessage = prevProps.isMyMessage;
539
+ prevIsMyMessage = prevProps.isMyMessage,
540
+ prevMessage = prevProps.message;
540
541
  var _nextProps$attachment = nextProps.attachment,
541
542
  nextActions = _nextProps$attachment.actions,
542
543
  nextImageUrl = _nextProps$attachment.image_url,
543
544
  nextThumbUrl = _nextProps$attachment.thumb_url,
544
545
  nextGiphyVersion = nextProps.giphyVersion,
545
- nextIsMyMessage = nextProps.isMyMessage;
546
+ nextIsMyMessage = nextProps.isMyMessage,
547
+ nextMessage = nextProps.message;
546
548
  var imageUrlEqual = prevImageUrl === nextImageUrl;
547
549
  if (!imageUrlEqual) return false;
548
550
  var thumbUrlEqual = prevThumbUrl === nextThumbUrl;
@@ -553,6 +555,8 @@ var areEqual = function areEqual(prevProps, nextProps) {
553
555
  if (!giphyVersionEqual) return false;
554
556
  var isMyMessageEqual = prevIsMyMessage === nextIsMyMessage;
555
557
  if (!isMyMessageEqual) return false;
558
+ 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);
559
+ if (!messageEqual) return false;
556
560
  return true;
557
561
  };
558
562
 
@@ -573,8 +577,8 @@ var Giphy = function Giphy(props) {
573
577
  giphyVersion = _useMessagesContext.giphyVersion;
574
578
 
575
579
  var _useImageGalleryConte = (0, _ImageGalleryContext.useImageGalleryContext)(),
576
- setImage = _useImageGalleryConte.setImage,
577
- setImages = _useImageGalleryConte.setImages;
580
+ setMessages = _useImageGalleryConte.setMessages,
581
+ setSelectedMessage = _useImageGalleryConte.setSelectedMessage;
578
582
 
579
583
  var _useOverlayContext = (0, _OverlayContext.useOverlayContext)(),
580
584
  setOverlay = _useOverlayContext.setOverlay;
@@ -597,14 +601,14 @@ var Giphy = function Giphy(props) {
597
601
  onPress: onPress,
598
602
  onPressIn: onPressIn,
599
603
  preventPress: preventPress,
600
- setImage: setImage,
601
- setImages: setImages,
602
- setOverlay: setOverlay
604
+ setMessages: setMessages,
605
+ setOverlay: setOverlay,
606
+ setSelectedMessage: setSelectedMessage
603
607
  }, props, {
604
608
  __self: _this,
605
609
  __source: {
606
610
  fileName: _jsxFileName,
607
- lineNumber: 455,
611
+ lineNumber: 462,
608
612
  columnNumber: 5
609
613
  }
610
614
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["Giphy.tsx"],"names":["styles","StyleSheet","create","actionsRow","flexDirection","buttonContainer","alignItems","borderTopWidth","flex","justifyContent","cancel","fontSize","fontWeight","paddingVertical","centerChild","display","container","overflow","width","giphy","alignSelf","borderRadius","height","maxWidth","giphyContainer","giphyHeaderText","giphyHeaderTitle","marginLeft","giphyMask","bottom","left","position","giphyMaskText","header","padding","imageErrorIndicatorStyle","imageLoadingIndicatorStyle","selectionContainer","borderBottomRightRadius","borderWidth","selectionImageContainer","margin","send","shuffle","shuffleButton","GiphyWithContext","props","additionalTouchableProps","attachment","giphyVersion","handleAction","ImageLoadingFailedIndicator","ImageLoadingIndicator","isMyMessage","message","onLongPress","onPress","onPressIn","preventPress","setImage","setImages","setOverlay","actions","giphyData","image_url","thumb_url","title","type","isLoadingImage","isLoadingImageError","setLoadingImage","setLoadingImageError","theme","colors","accent_blue","black","grey","grey_dark","grey_gainsboro","label_bg_transparent","white","messageSimple","uri","giphyDimensions","defaultOnPress","messageId","id","url","giphyVersionInfo","parseFloat","backgroundColor","borderColor","color","error","console","warn","name","value","borderRightWidth","text","event","emitter","defaultHandler","toUpperCase","areEqual","prevProps","nextProps","prevActions","prevImageUrl","prevThumbUrl","prevGiphyVersion","prevIsMyMessage","nextActions","nextImageUrl","nextThumbUrl","nextGiphyVersion","nextIsMyMessage","imageUrlEqual","thumbUrlEqual","actionsEqual","Array","isArray","length","giphyVersionEqual","isMyMessageEqual","MemoizedGiphy","React","memo","Giphy","ContextImageLoadingFailedIndicator","ContextImageLoadingIndicator","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Image, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\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 { GiphyIcon } from '../../icons';\nimport { Lightning } from '../../icons/Lightning';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n actionsRow: {\n flexDirection: 'row',\n },\n buttonContainer: {\n alignItems: 'center',\n borderTopWidth: 1,\n flex: 1,\n justifyContent: 'center',\n },\n cancel: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n centerChild: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n },\n container: {\n overflow: 'hidden',\n width: 270,\n },\n giphy: {\n alignSelf: 'center',\n borderRadius: 2,\n height: 170,\n maxWidth: 270,\n width: 270,\n },\n giphyContainer: {\n alignItems: 'center',\n borderRadius: 12,\n flexDirection: 'row',\n height: 24,\n justifyContent: 'center',\n width: 68,\n },\n giphyHeaderText: {\n fontSize: 16,\n fontWeight: '600',\n },\n giphyHeaderTitle: {\n fontSize: 14,\n marginLeft: 8,\n },\n giphyMask: {\n bottom: 8,\n left: 8,\n position: 'absolute',\n },\n giphyMaskText: {\n fontSize: 13,\n fontWeight: '600',\n },\n header: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 8,\n width: '60%',\n },\n imageErrorIndicatorStyle: {\n alignItems: 'center',\n flex: 1,\n justifyContent: 'center',\n },\n imageLoadingIndicatorStyle: {\n alignItems: 'center',\n flex: 1,\n justifyContent: 'center',\n position: 'absolute',\n },\n selectionContainer: {\n borderBottomRightRadius: 0,\n borderRadius: 16,\n borderWidth: 1,\n overflow: 'hidden',\n width: 272,\n },\n selectionImageContainer: {\n alignSelf: 'center',\n margin: 1,\n },\n send: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n shuffle: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n shuffleButton: {\n alignItems: 'center',\n borderRadius: 16,\n borderWidth: 1,\n height: 32,\n justifyContent: 'center',\n width: 32,\n },\n});\n\nexport type GiphyPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setImage' | 'setImages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n | 'handleAction'\n | 'isMyMessage'\n | 'message'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'giphyVersion'\n | 'additionalTouchableProps'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n > & {\n attachment: Attachment<StreamChatGenerics>;\n } & Pick<OverlayContextValue, 'setOverlay'>;\n\nconst GiphyWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GiphyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n attachment,\n giphyVersion,\n handleAction,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n isMyMessage,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setImage,\n setImages,\n setOverlay,\n } = props;\n\n const { actions, giphy: giphyData, image_url, thumb_url, title, type } = attachment;\n\n const { isLoadingImage, isLoadingImageError, setLoadingImage, setLoadingImageError } =\n useLoadingImage();\n\n const {\n theme: {\n colors: { accent_blue, black, grey, grey_dark, grey_gainsboro, label_bg_transparent, white },\n messageSimple: {\n giphy: {\n buttonContainer,\n cancel,\n container,\n giphy,\n giphyContainer,\n giphyHeaderText,\n giphyHeaderTitle,\n giphyMask,\n giphyMaskText,\n header,\n selectionContainer,\n send,\n shuffle,\n },\n },\n },\n } = useTheme();\n\n let uri = image_url || thumb_url;\n const giphyDimensions: { height?: number; width?: number } = {};\n\n const defaultOnPress = () => {\n setImages([message]);\n setImage({ messageId: message.id, url: uri });\n setOverlay('gallery');\n };\n\n if (type === 'giphy' && giphyData) {\n const giphyVersionInfo = giphyData[giphyVersion];\n uri = giphyVersionInfo.url;\n giphyDimensions.height = parseFloat(giphyVersionInfo.height);\n giphyDimensions.width = parseFloat(giphyVersionInfo.width);\n }\n\n if (!uri) return null;\n\n return actions ? (\n <View\n style={[\n styles.selectionContainer,\n { backgroundColor: white, borderColor: `${black}0D` },\n selectionContainer,\n ]}\n testID='giphy-action-attachment'\n >\n <View style={[styles.header, header]}>\n <GiphyIcon />\n <Text style={[styles.giphyHeaderText, giphyHeaderText]}>Giphy</Text>\n <Text\n style={[styles.giphyHeaderTitle, giphyHeaderTitle, { color: grey_dark }]}\n >{`/giphy ${title}`}</Text>\n </View>\n <View style={styles.selectionImageContainer}>\n <Image\n onError={(error) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode='contain'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphyDimensions, giphy]}\n />\n </View>\n <View>\n <View style={styles.actionsRow}>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[2].name && actions?.[2].value && handleAction) {\n handleAction(actions[2].name, actions[2].value);\n }\n }}\n style={[\n styles.buttonContainer,\n { borderColor: grey_gainsboro, borderRightWidth: 1 },\n buttonContainer,\n ]}\n testID={`${actions?.[2].value}-action-button`}\n >\n <Text style={[styles.cancel, { color: grey }, cancel]}>{actions?.[2].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[1].name && actions?.[1].value && handleAction) {\n handleAction(actions[1].name, actions[1].value);\n }\n }}\n style={[\n styles.buttonContainer,\n { borderColor: grey_gainsboro, borderRightWidth: 1 },\n buttonContainer,\n ]}\n testID={`${actions?.[1].value}-action-button`}\n >\n <Text style={[styles.shuffle, { color: grey }, shuffle]}>{actions?.[1].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[0].name && actions?.[0].value && handleAction) {\n handleAction(actions[0].name, actions[0].value);\n }\n }}\n style={[styles.buttonContainer, { borderColor: grey_gainsboro }, buttonContainer]}\n testID={`${actions?.[0].value}-action-button`}\n >\n <Text style={[styles.send, { color: accent_blue }, send]}>{actions?.[0].text}</Text>\n </TouchableOpacity>\n </View>\n </View>\n </View>\n ) : (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n emitter: 'giphy',\n event,\n });\n }\n }}\n testID='giphy-attachment'\n {...additionalTouchableProps}\n >\n <View\n style={[\n styles.container,\n styles.centerChild,\n { backgroundColor: isMyMessage ? grey_gainsboro : white },\n container,\n ]}\n >\n <Image\n accessibilityLabel='Giphy Attachment Image'\n onError={(error) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode='contain'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphyDimensions, giphy]}\n testID='giphy-attachment-image'\n />\n\n {isLoadingImageError && (\n <View style={{ position: 'absolute' }}>\n <ImageLoadingFailedIndicator style={styles.imageErrorIndicatorStyle} />\n </View>\n )}\n {isLoadingImage && (\n <View style={{ position: 'absolute' }}>\n <ImageLoadingIndicator style={styles.imageLoadingIndicatorStyle} />\n </View>\n )}\n <View style={[styles.giphyMask, giphyMask]}>\n <View\n style={[\n styles.giphyContainer,\n { backgroundColor: label_bg_transparent },\n giphyContainer,\n ]}\n >\n <Lightning height={16} pathFill={white} width={16} />\n <Text style={[styles.giphyMaskText, { color: white }, giphyMaskText]}>\n {type?.toUpperCase()}\n </Text>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: GiphyPropsWithContext<StreamChatGenerics>,\n nextProps: GiphyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n attachment: { actions: prevActions, image_url: prevImageUrl, thumb_url: prevThumbUrl },\n giphyVersion: prevGiphyVersion,\n isMyMessage: prevIsMyMessage,\n } = prevProps;\n const {\n attachment: { actions: nextActions, image_url: nextImageUrl, thumb_url: nextThumbUrl },\n giphyVersion: nextGiphyVersion,\n isMyMessage: nextIsMyMessage,\n } = nextProps;\n\n const imageUrlEqual = prevImageUrl === nextImageUrl;\n if (!imageUrlEqual) return false;\n\n const thumbUrlEqual = prevThumbUrl === nextThumbUrl;\n if (!thumbUrlEqual) return false;\n\n const actionsEqual =\n Array.isArray(prevActions) === Array.isArray(nextActions) &&\n ((Array.isArray(prevActions) &&\n Array.isArray(nextActions) &&\n prevActions.length === nextActions.length) ||\n prevActions === nextActions);\n if (!actionsEqual) return false;\n\n const giphyVersionEqual = prevGiphyVersion === nextGiphyVersion;\n if (!giphyVersionEqual) return false;\n\n const isMyMessageEqual = prevIsMyMessage === nextIsMyMessage;\n if (!isMyMessageEqual) return false;\n\n return true;\n};\n\nconst MemoizedGiphy = React.memo(GiphyWithContext, areEqual) as typeof GiphyWithContext;\n\nexport type GiphyProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<GiphyPropsWithContext<StreamChatGenerics>> & {\n attachment: Attachment<StreamChatGenerics>;\n};\n\n/**\n * UI component for card in attachments.\n */\nexport const Giphy = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GiphyProps<StreamChatGenerics>,\n) => {\n const { handleAction, isMyMessage, message, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<StreamChatGenerics>();\n const { additionalTouchableProps, giphyVersion } = useMessagesContext<StreamChatGenerics>();\n const { setImage, setImages } = useImageGalleryContext<StreamChatGenerics>();\n const { setOverlay } = useOverlayContext();\n\n const {\n ImageLoadingFailedIndicator: ContextImageLoadingFailedIndicator,\n ImageLoadingIndicator: ContextImageLoadingIndicator,\n } = useMessagesContext<StreamChatGenerics>();\n const ImageLoadingFailedIndicator =\n ContextImageLoadingFailedIndicator || props.ImageLoadingFailedIndicator;\n const ImageLoadingIndicator = ContextImageLoadingIndicator || props.ImageLoadingIndicator;\n\n return (\n <MemoizedGiphy\n {...{\n additionalTouchableProps,\n giphyVersion,\n handleAction,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n isMyMessage,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setImage,\n setImages,\n setOverlay,\n }}\n {...props}\n />\n );\n};\n\nGiphy.displayName = 'Giphy{messageSimple{giphy}}';\n"]}
1
+ {"version":3,"sources":["Giphy.tsx"],"names":["styles","StyleSheet","create","actionsRow","flexDirection","buttonContainer","alignItems","borderTopWidth","flex","justifyContent","cancel","fontSize","fontWeight","paddingVertical","centerChild","display","container","overflow","width","giphy","alignSelf","borderRadius","height","maxWidth","giphyContainer","giphyHeaderText","giphyHeaderTitle","marginLeft","giphyMask","bottom","left","position","giphyMaskText","header","padding","imageErrorIndicatorStyle","imageLoadingIndicatorStyle","selectionContainer","borderBottomRightRadius","borderWidth","selectionImageContainer","margin","send","shuffle","shuffleButton","GiphyWithContext","props","additionalTouchableProps","attachment","giphyVersion","handleAction","ImageLoadingFailedIndicator","ImageLoadingIndicator","isMyMessage","message","onLongPress","onPress","onPressIn","preventPress","setMessages","setOverlay","setSelectedMessage","actions","giphyData","image_url","thumb_url","title","type","isLoadingImage","isLoadingImageError","setLoadingImage","setLoadingImageError","theme","colors","accent_blue","black","grey","grey_dark","grey_gainsboro","label_bg_transparent","white","messageSimple","uri","giphyDimensions","defaultOnPress","messageId","id","url","giphyVersionInfo","parseFloat","backgroundColor","borderColor","color","error","console","warn","name","value","borderRightWidth","text","event","emitter","defaultHandler","toUpperCase","areEqual","prevProps","nextProps","prevActions","prevImageUrl","prevThumbUrl","prevGiphyVersion","prevIsMyMessage","prevMessage","nextActions","nextImageUrl","nextThumbUrl","nextGiphyVersion","nextIsMyMessage","nextMessage","imageUrlEqual","thumbUrlEqual","actionsEqual","Array","isArray","length","giphyVersionEqual","isMyMessageEqual","messageEqual","updated_at","MemoizedGiphy","React","memo","Giphy","ContextImageLoadingFailedIndicator","ContextImageLoadingIndicator","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Image, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\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 { GiphyIcon } from '../../icons';\nimport { Lightning } from '../../icons/Lightning';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n actionsRow: {\n flexDirection: 'row',\n },\n buttonContainer: {\n alignItems: 'center',\n borderTopWidth: 1,\n flex: 1,\n justifyContent: 'center',\n },\n cancel: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n centerChild: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n },\n container: {\n overflow: 'hidden',\n width: 270,\n },\n giphy: {\n alignSelf: 'center',\n borderRadius: 2,\n height: 170,\n maxWidth: 270,\n width: 270,\n },\n giphyContainer: {\n alignItems: 'center',\n borderRadius: 12,\n flexDirection: 'row',\n height: 24,\n justifyContent: 'center',\n width: 68,\n },\n giphyHeaderText: {\n fontSize: 16,\n fontWeight: '600',\n },\n giphyHeaderTitle: {\n fontSize: 14,\n marginLeft: 8,\n },\n giphyMask: {\n bottom: 8,\n left: 8,\n position: 'absolute',\n },\n giphyMaskText: {\n fontSize: 13,\n fontWeight: '600',\n },\n header: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 8,\n width: '60%',\n },\n imageErrorIndicatorStyle: {\n alignItems: 'center',\n flex: 1,\n justifyContent: 'center',\n },\n imageLoadingIndicatorStyle: {\n alignItems: 'center',\n flex: 1,\n justifyContent: 'center',\n position: 'absolute',\n },\n selectionContainer: {\n borderBottomRightRadius: 0,\n borderRadius: 16,\n borderWidth: 1,\n overflow: 'hidden',\n width: 272,\n },\n selectionImageContainer: {\n alignSelf: 'center',\n margin: 1,\n },\n send: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n shuffle: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n shuffleButton: {\n alignItems: 'center',\n borderRadius: 16,\n borderWidth: 1,\n height: 32,\n justifyContent: 'center',\n width: 32,\n },\n});\n\nexport type GiphyPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setSelectedMessage' | 'setMessages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n | 'handleAction'\n | 'isMyMessage'\n | 'message'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'giphyVersion'\n | 'additionalTouchableProps'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n > & {\n attachment: Attachment<StreamChatGenerics>;\n } & Pick<OverlayContextValue, 'setOverlay'>;\n\nconst GiphyWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GiphyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n attachment,\n giphyVersion,\n handleAction,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n isMyMessage,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setMessages,\n setOverlay,\n setSelectedMessage,\n } = props;\n\n const { actions, giphy: giphyData, image_url, thumb_url, title, type } = attachment;\n\n const { isLoadingImage, isLoadingImageError, setLoadingImage, setLoadingImageError } =\n useLoadingImage();\n\n const {\n theme: {\n colors: { accent_blue, black, grey, grey_dark, grey_gainsboro, label_bg_transparent, white },\n messageSimple: {\n giphy: {\n buttonContainer,\n cancel,\n container,\n giphy,\n giphyContainer,\n giphyHeaderText,\n giphyHeaderTitle,\n giphyMask,\n giphyMaskText,\n header,\n selectionContainer,\n send,\n shuffle,\n },\n },\n },\n } = useTheme();\n\n let uri = image_url || thumb_url;\n const giphyDimensions: { height?: number; width?: number } = {};\n\n const defaultOnPress = () => {\n setMessages([message]);\n setSelectedMessage({ messageId: message.id, url: uri });\n setOverlay('gallery');\n };\n\n if (type === 'giphy' && giphyData) {\n const giphyVersionInfo = giphyData[giphyVersion];\n uri = giphyVersionInfo.url;\n giphyDimensions.height = parseFloat(giphyVersionInfo.height);\n giphyDimensions.width = parseFloat(giphyVersionInfo.width);\n }\n\n if (!uri) return null;\n\n return actions ? (\n <View\n style={[\n styles.selectionContainer,\n { backgroundColor: white, borderColor: `${black}0D` },\n selectionContainer,\n ]}\n testID='giphy-action-attachment'\n >\n <View style={[styles.header, header]}>\n <GiphyIcon />\n <Text style={[styles.giphyHeaderText, giphyHeaderText]}>Giphy</Text>\n <Text\n style={[styles.giphyHeaderTitle, giphyHeaderTitle, { color: grey_dark }]}\n >{`/giphy ${title}`}</Text>\n </View>\n <View style={styles.selectionImageContainer}>\n <Image\n onError={(error) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode='contain'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphyDimensions, giphy]}\n />\n </View>\n <View>\n <View style={styles.actionsRow}>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[2].name && actions?.[2].value && handleAction) {\n handleAction(actions[2].name, actions[2].value);\n }\n }}\n style={[\n styles.buttonContainer,\n { borderColor: grey_gainsboro, borderRightWidth: 1 },\n buttonContainer,\n ]}\n testID={`${actions?.[2].value}-action-button`}\n >\n <Text style={[styles.cancel, { color: grey }, cancel]}>{actions?.[2].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[1].name && actions?.[1].value && handleAction) {\n handleAction(actions[1].name, actions[1].value);\n }\n }}\n style={[\n styles.buttonContainer,\n { borderColor: grey_gainsboro, borderRightWidth: 1 },\n buttonContainer,\n ]}\n testID={`${actions?.[1].value}-action-button`}\n >\n <Text style={[styles.shuffle, { color: grey }, shuffle]}>{actions?.[1].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[0].name && actions?.[0].value && handleAction) {\n handleAction(actions[0].name, actions[0].value);\n }\n }}\n style={[styles.buttonContainer, { borderColor: grey_gainsboro }, buttonContainer]}\n testID={`${actions?.[0].value}-action-button`}\n >\n <Text style={[styles.send, { color: accent_blue }, send]}>{actions?.[0].text}</Text>\n </TouchableOpacity>\n </View>\n </View>\n </View>\n ) : (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n emitter: 'giphy',\n event,\n });\n }\n }}\n testID='giphy-attachment'\n {...additionalTouchableProps}\n >\n <View\n style={[\n styles.container,\n styles.centerChild,\n { backgroundColor: isMyMessage ? grey_gainsboro : white },\n container,\n ]}\n >\n <Image\n accessibilityLabel='Giphy Attachment Image'\n onError={(error) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode='contain'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphyDimensions, giphy]}\n testID='giphy-attachment-image'\n />\n\n {isLoadingImageError && (\n <View style={{ position: 'absolute' }}>\n <ImageLoadingFailedIndicator style={styles.imageErrorIndicatorStyle} />\n </View>\n )}\n {isLoadingImage && (\n <View style={{ position: 'absolute' }}>\n <ImageLoadingIndicator style={styles.imageLoadingIndicatorStyle} />\n </View>\n )}\n <View style={[styles.giphyMask, giphyMask]}>\n <View\n style={[\n styles.giphyContainer,\n { backgroundColor: label_bg_transparent },\n giphyContainer,\n ]}\n >\n <Lightning height={16} pathFill={white} width={16} />\n <Text style={[styles.giphyMaskText, { color: white }, giphyMaskText]}>\n {type?.toUpperCase()}\n </Text>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: GiphyPropsWithContext<StreamChatGenerics>,\n nextProps: GiphyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n attachment: { actions: prevActions, image_url: prevImageUrl, thumb_url: prevThumbUrl },\n giphyVersion: prevGiphyVersion,\n isMyMessage: prevIsMyMessage,\n message: prevMessage,\n } = prevProps;\n const {\n attachment: { actions: nextActions, image_url: nextImageUrl, thumb_url: nextThumbUrl },\n giphyVersion: nextGiphyVersion,\n isMyMessage: nextIsMyMessage,\n message: nextMessage,\n } = nextProps;\n\n const imageUrlEqual = prevImageUrl === nextImageUrl;\n if (!imageUrlEqual) return false;\n\n const thumbUrlEqual = prevThumbUrl === nextThumbUrl;\n if (!thumbUrlEqual) return false;\n\n const actionsEqual =\n Array.isArray(prevActions) === Array.isArray(nextActions) &&\n ((Array.isArray(prevActions) &&\n Array.isArray(nextActions) &&\n prevActions.length === nextActions.length) ||\n prevActions === nextActions);\n if (!actionsEqual) return false;\n\n const giphyVersionEqual = prevGiphyVersion === nextGiphyVersion;\n if (!giphyVersionEqual) return false;\n\n const isMyMessageEqual = prevIsMyMessage === nextIsMyMessage;\n if (!isMyMessageEqual) return false;\n\n const messageEqual =\n prevMessage?.id === nextMessage?.id &&\n `${prevMessage?.updated_at}` === `${nextMessage?.updated_at}`;\n\n if (!messageEqual) return false;\n return true;\n};\n\nconst MemoizedGiphy = React.memo(GiphyWithContext, areEqual) as typeof GiphyWithContext;\n\nexport type GiphyProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<GiphyPropsWithContext<StreamChatGenerics>> & {\n attachment: Attachment<StreamChatGenerics>;\n};\n\n/**\n * UI component for card in attachments.\n */\nexport const Giphy = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GiphyProps<StreamChatGenerics>,\n) => {\n const { handleAction, isMyMessage, message, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<StreamChatGenerics>();\n const { additionalTouchableProps, giphyVersion } = useMessagesContext<StreamChatGenerics>();\n const { setMessages, setSelectedMessage } = useImageGalleryContext<StreamChatGenerics>();\n const { setOverlay } = useOverlayContext();\n\n const {\n ImageLoadingFailedIndicator: ContextImageLoadingFailedIndicator,\n ImageLoadingIndicator: ContextImageLoadingIndicator,\n } = useMessagesContext<StreamChatGenerics>();\n const ImageLoadingFailedIndicator =\n ContextImageLoadingFailedIndicator || props.ImageLoadingFailedIndicator;\n const ImageLoadingIndicator = ContextImageLoadingIndicator || props.ImageLoadingIndicator;\n\n return (\n <MemoizedGiphy\n {...{\n additionalTouchableProps,\n giphyVersion,\n handleAction,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n isMyMessage,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setMessages,\n setOverlay,\n setSelectedMessage,\n }}\n {...props}\n />\n );\n};\n\nGiphy.displayName = 'Giphy{messageSimple{giphy}}';\n"]}
@@ -45,7 +45,11 @@ var styles = _reactNative.StyleSheet.create({
45
45
 
46
46
  var VideoThumbnail = function VideoThumbnail(props) {
47
47
  var _useTheme = (0, _ThemeContext.useTheme)(),
48
- _useTheme$theme$messa = _useTheme.theme.messageSimple.videoThumbnail,
48
+ _useTheme$theme = _useTheme.theme,
49
+ _useTheme$theme$color = _useTheme$theme.colors,
50
+ static_black = _useTheme$theme$color.static_black,
51
+ static_white = _useTheme$theme$color.static_white,
52
+ _useTheme$theme$messa = _useTheme$theme.messageSimple.videoThumbnail,
49
53
  container = _useTheme$theme$messa.container,
50
54
  roundedView = _useTheme$theme$messa.roundedView;
51
55
 
@@ -62,25 +66,27 @@ var VideoThumbnail = function VideoThumbnail(props) {
62
66
  __self: _this,
63
67
  __source: {
64
68
  fileName: _jsxFileName,
65
- lineNumber: 50,
69
+ lineNumber: 51,
66
70
  columnNumber: 5
67
71
  }
68
72
  }, _react["default"].createElement(_reactNative.View, {
69
- style: [styles.roundedView, roundedView],
73
+ style: [styles.roundedView, roundedView, {
74
+ backgroundColor: static_white
75
+ }],
70
76
  __self: _this,
71
77
  __source: {
72
78
  fileName: _jsxFileName,
73
- lineNumber: 56,
79
+ lineNumber: 57,
74
80
  columnNumber: 7
75
81
  }
76
82
  }, _react["default"].createElement(_icons.Play, {
77
83
  height: 24,
78
- pathFill: '#000',
84
+ pathFill: static_black,
79
85
  width: 24,
80
86
  __self: _this,
81
87
  __source: {
82
88
  fileName: _jsxFileName,
83
- lineNumber: 57,
89
+ lineNumber: 58,
84
90
  columnNumber: 9
85
91
  }
86
92
  })));
@@ -1 +1 @@
1
- {"version":3,"sources":["VideoThumbnail.tsx"],"names":["styles","StyleSheet","create","container","alignItems","backgroundColor","display","height","justifyContent","width","roundedView","borderRadius","elevation","shadowColor","shadowOffset","shadowOpacity","shadowRadius","VideoThumbnail","props","theme","messageSimple","videoThumbnail","imageStyle","style","thumb_url","uri"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;AAEA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,UAAU,EAAE,QADH;AAETC,IAAAA,eAAe,EAAE,OAFR;AAGTC,IAAAA,OAAO,EAAE,MAHA;AAITC,IAAAA,MAAM,EAAE,MAJC;AAKTC,IAAAA,cAAc,EAAE,QALP;AAMTC,IAAAA,KAAK,EAAE;AANE,GADoB;AAS/BC,EAAAA,WAAW,EAAE;AACXN,IAAAA,UAAU,EAAE,QADD;AAEXO,IAAAA,YAAY,EAAE,EAFH;AAGXL,IAAAA,OAAO,EAAE,MAHE;AAIXM,IAAAA,SAAS,EAAE,CAJA;AAKXL,IAAAA,MAAM,EAAE,EALG;AAMXC,IAAAA,cAAc,EAAE,QANL;AAOXK,IAAAA,WAAW,EAAE,MAPF;AAQXC,IAAAA,YAAY,EAAE;AACZP,MAAAA,MAAM,EAAE,CADI;AAEZE,MAAAA,KAAK,EAAE;AAFK,KARH;AAYXM,IAAAA,aAAa,EAAE,IAZJ;AAaXC,IAAAA,YAAY,EAAE,IAbH;AAcXP,IAAAA,KAAK,EAAE;AAdI;AATkB,CAAlB,CAAf;;AAiCO,IAAMQ,cAA6C,GAAG,SAAhDA,cAAgD,CAACC,KAAD,EAAW;AACtE,kBAMI,6BANJ;AAAA,wCACEC,KADF,CAEIC,aAFJ,CAGMC,cAHN;AAAA,MAGwBlB,SAHxB,yBAGwBA,SAHxB;AAAA,MAGmCO,WAHnC,yBAGmCA,WAHnC;;AAOA,MAAQY,UAAR,GAAyCJ,KAAzC,CAAQI,UAAR;AAAA,MAAoBC,KAApB,GAAyCL,KAAzC,CAAoBK,KAApB;AAAA,MAA2BC,SAA3B,GAAyCN,KAAzC,CAA2BM,SAA3B;AACA,SACE,gCAAC,4BAAD;AACE,IAAA,kBAAkB,EAAC,iBADrB;AAEE,IAAA,UAAU,EAAEF,UAFd;AAGE,IAAA,MAAM,EAAE;AAAEG,MAAAA,GAAG,EAAED;AAAP,KAHV;AAIE,IAAA,KAAK,EAAE,CAACxB,MAAM,CAACG,SAAR,EAAmBA,SAAnB,EAA8BoB,KAA9B,CAJT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAME,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACvB,MAAM,CAACU,WAAR,EAAqBA,WAArB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,WAAD;AAAM,IAAA,MAAM,EAAE,EAAd;AAAkB,IAAA,QAAQ,EAAE,MAA5B;AAAoC,IAAA,KAAK,EAAE,EAA3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,CANF,CADF;AAYD,CArBM","sourcesContent":["import React from 'react';\nimport { ImageBackground, ImageStyle, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Play } from '../../icons';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n backgroundColor: 'black',\n display: 'flex',\n height: '100%',\n justifyContent: 'center',\n width: '100%',\n },\n roundedView: {\n alignItems: 'center',\n borderRadius: 50,\n display: 'flex',\n elevation: 6,\n height: 36,\n justifyContent: 'center',\n shadowColor: '#000',\n shadowOffset: {\n height: 3,\n width: 0,\n },\n shadowOpacity: 0.27,\n shadowRadius: 4.65,\n width: 36,\n },\n});\n\nexport type VideoThumbnailProps = {\n imageStyle?: StyleProp<ImageStyle>;\n style?: StyleProp<ViewStyle>;\n thumb_url?: string;\n};\n\nexport const VideoThumbnail: React.FC<VideoThumbnailProps> = (props) => {\n const {\n theme: {\n messageSimple: {\n videoThumbnail: { container, roundedView },\n },\n },\n } = useTheme();\n const { imageStyle, style, thumb_url } = props;\n return (\n <ImageBackground\n accessibilityLabel='Video Thumbnail'\n imageStyle={imageStyle}\n source={{ uri: thumb_url }}\n style={[styles.container, container, style]}\n >\n <View style={[styles.roundedView, roundedView]}>\n <Play height={24} pathFill={'#000'} width={24} />\n </View>\n </ImageBackground>\n );\n};\n"]}
1
+ {"version":3,"sources":["VideoThumbnail.tsx"],"names":["styles","StyleSheet","create","container","alignItems","backgroundColor","display","height","justifyContent","width","roundedView","borderRadius","elevation","shadowColor","shadowOffset","shadowOpacity","shadowRadius","VideoThumbnail","props","theme","colors","static_black","static_white","messageSimple","videoThumbnail","imageStyle","style","thumb_url","uri"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;AAEA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,UAAU,EAAE,QADH;AAETC,IAAAA,eAAe,EAAE,OAFR;AAGTC,IAAAA,OAAO,EAAE,MAHA;AAITC,IAAAA,MAAM,EAAE,MAJC;AAKTC,IAAAA,cAAc,EAAE,QALP;AAMTC,IAAAA,KAAK,EAAE;AANE,GADoB;AAS/BC,EAAAA,WAAW,EAAE;AACXN,IAAAA,UAAU,EAAE,QADD;AAEXO,IAAAA,YAAY,EAAE,EAFH;AAGXL,IAAAA,OAAO,EAAE,MAHE;AAIXM,IAAAA,SAAS,EAAE,CAJA;AAKXL,IAAAA,MAAM,EAAE,EALG;AAMXC,IAAAA,cAAc,EAAE,QANL;AAOXK,IAAAA,WAAW,EAAE,MAPF;AAQXC,IAAAA,YAAY,EAAE;AACZP,MAAAA,MAAM,EAAE,CADI;AAEZE,MAAAA,KAAK,EAAE;AAFK,KARH;AAYXM,IAAAA,aAAa,EAAE,IAZJ;AAaXC,IAAAA,YAAY,EAAE,IAbH;AAcXP,IAAAA,KAAK,EAAE;AAdI;AATkB,CAAlB,CAAf;;AAiCO,IAAMQ,cAA6C,GAAG,SAAhDA,cAAgD,CAACC,KAAD,EAAW;AACtE,kBAOI,6BAPJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,MAFJ;AAAA,MAEcC,YAFd,yBAEcA,YAFd;AAAA,MAE4BC,YAF5B,yBAE4BA,YAF5B;AAAA,8CAGIC,aAHJ,CAIMC,cAJN;AAAA,MAIwBrB,SAJxB,yBAIwBA,SAJxB;AAAA,MAImCO,WAJnC,yBAImCA,WAJnC;;AAQA,MAAQe,UAAR,GAAyCP,KAAzC,CAAQO,UAAR;AAAA,MAAoBC,KAApB,GAAyCR,KAAzC,CAAoBQ,KAApB;AAAA,MAA2BC,SAA3B,GAAyCT,KAAzC,CAA2BS,SAA3B;AACA,SACE,gCAAC,4BAAD;AACE,IAAA,kBAAkB,EAAC,iBADrB;AAEE,IAAA,UAAU,EAAEF,UAFd;AAGE,IAAA,MAAM,EAAE;AAAEG,MAAAA,GAAG,EAAED;AAAP,KAHV;AAIE,IAAA,KAAK,EAAE,CAAC3B,MAAM,CAACG,SAAR,EAAmBA,SAAnB,EAA8BuB,KAA9B,CAJT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAME,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAAC1B,MAAM,CAACU,WAAR,EAAqBA,WAArB,EAAkC;AAAEL,MAAAA,eAAe,EAAEiB;AAAnB,KAAlC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,WAAD;AAAM,IAAA,MAAM,EAAE,EAAd;AAAkB,IAAA,QAAQ,EAAED,YAA5B;AAA0C,IAAA,KAAK,EAAE,EAAjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,CANF,CADF;AAYD,CAtBM","sourcesContent":["import React from 'react';\nimport { ImageBackground, ImageStyle, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Play } from '../../icons';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n backgroundColor: 'black',\n display: 'flex',\n height: '100%',\n justifyContent: 'center',\n width: '100%',\n },\n roundedView: {\n alignItems: 'center',\n borderRadius: 50,\n display: 'flex',\n elevation: 6,\n height: 36,\n justifyContent: 'center',\n shadowColor: '#000',\n shadowOffset: {\n height: 3,\n width: 0,\n },\n shadowOpacity: 0.27,\n shadowRadius: 4.65,\n width: 36,\n },\n});\n\nexport type VideoThumbnailProps = {\n imageStyle?: StyleProp<ImageStyle>;\n style?: StyleProp<ViewStyle>;\n thumb_url?: string;\n};\n\nexport const VideoThumbnail: React.FC<VideoThumbnailProps> = (props) => {\n const {\n theme: {\n colors: { static_black, static_white },\n messageSimple: {\n videoThumbnail: { container, roundedView },\n },\n },\n } = useTheme();\n const { imageStyle, style, thumb_url } = props;\n return (\n <ImageBackground\n accessibilityLabel='Video Thumbnail'\n imageStyle={imageStyle}\n source={{ uri: thumb_url }}\n style={[styles.container, container, style]}\n >\n <View style={[styles.roundedView, roundedView, { backgroundColor: static_white }]}>\n <Play height={24} pathFill={static_black} width={24} />\n </View>\n </ImageBackground>\n );\n};\n"]}
@@ -0,0 +1,15 @@
1
+ Object.defineProperty(exports, "__esModule", {
2
+ value: true
3
+ });
4
+ exports.getGiphyMimeType = getGiphyMimeType;
5
+
6
+ function getGiphyMimeType(giphyUrl) {
7
+ if (giphyUrl.includes('.mp4')) {
8
+ return 'video/mp4';
9
+ } else if (giphyUrl.includes('.webp')) {
10
+ return 'image/webp';
11
+ }
12
+
13
+ return 'image/gif';
14
+ }
15
+ //# sourceMappingURL=getGiphyMimeType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["getGiphyMimeType.ts"],"names":["getGiphyMimeType","giphyUrl","includes"],"mappings":";;;;;AAKO,SAASA,gBAAT,CAA0BC,QAA1B,EAAoD;AACzD,MAAIA,QAAQ,CAACC,QAAT,CAAkB,MAAlB,CAAJ,EAA+B;AAC7B,WAAO,WAAP;AACD,GAFD,MAEO,IAAID,QAAQ,CAACC,QAAT,CAAkB,OAAlB,CAAJ,EAAgC;AACrC,WAAO,YAAP;AACD;;AACD,SAAO,WAAP;AACD","sourcesContent":["/**\n *\n * @param giphyUrl The giphy attachment url\n * @returns mimeType for the giphy attachment\n */\nexport function getGiphyMimeType(giphyUrl: string): string {\n if (giphyUrl.includes('.mp4')) {\n return 'video/mp4';\n } else if (giphyUrl.includes('.webp')) {\n return 'image/webp';\n }\n return 'image/gif';\n}\n"]}