stream-chat-react-native-core 4.11.1-beta.4 → 4.12.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/lib/commonjs/components/Attachment/Gallery.js +2 -2
  2. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  3. package/lib/commonjs/components/Attachment/{GallaryImage.js → GalleryImage.js} +3 -3
  4. package/lib/{module/components/Attachment/GallaryImage.js.map → commonjs/components/Attachment/GalleryImage.js.map} +1 -1
  5. package/lib/commonjs/components/Attachment/Giphy.js +1 -1
  6. package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
  7. package/lib/commonjs/components/Attachment/VideoThumbnail.js +4 -5
  8. package/lib/commonjs/components/Attachment/VideoThumbnail.js.map +1 -1
  9. package/lib/commonjs/components/Avatar/Avatar.js +1 -1
  10. package/lib/commonjs/components/Avatar/Avatar.js.map +1 -1
  11. package/lib/commonjs/components/Avatar/GroupAvatar.js +1 -1
  12. package/lib/commonjs/components/Avatar/GroupAvatar.js.map +1 -1
  13. package/lib/commonjs/components/Channel/Channel.js +18 -13
  14. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  15. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -0
  16. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  17. package/lib/commonjs/components/ImageGallery/ImageGallery.js +37 -30
  18. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  19. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +5 -3
  20. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  21. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js +10 -6
  22. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
  23. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +17 -14
  24. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  25. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +1 -0
  26. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  27. package/lib/commonjs/components/ImageGallery/components/ImageGalleryOverlay.js +2 -1
  28. package/lib/commonjs/components/ImageGallery/components/ImageGalleryOverlay.js.map +1 -1
  29. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +36 -18
  30. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  31. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +3 -1
  32. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
  33. package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js +5 -4
  34. package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
  35. package/lib/commonjs/components/Message/Message.js +8 -6
  36. package/lib/commonjs/components/Message/Message.js.map +1 -1
  37. package/lib/commonjs/components/MessageInput/AudioAttachmentUploadPreview.js +538 -0
  38. package/lib/commonjs/components/MessageInput/AudioAttachmentUploadPreview.js.map +1 -0
  39. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +143 -32
  40. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  41. package/lib/{module/components/ImageGallery/components → commonjs/components/ProgressControl}/ProgressControl.js +37 -24
  42. package/lib/commonjs/components/ProgressControl/ProgressControl.js.map +1 -0
  43. package/lib/commonjs/components/index.js +26 -0
  44. package/lib/commonjs/components/index.js.map +1 -1
  45. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +5 -2
  46. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  47. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +7 -2
  48. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  49. package/lib/commonjs/contexts/themeContext/utils/theme.js +9 -0
  50. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  51. package/lib/commonjs/icons/Pause.js +2 -2
  52. package/lib/commonjs/icons/Pause.js.map +1 -1
  53. package/lib/commonjs/mock-builders/api/channelMocks.js +1 -0
  54. package/lib/commonjs/mock-builders/api/channelMocks.js.map +1 -1
  55. package/lib/commonjs/native.js +13 -5
  56. package/lib/commonjs/native.js.map +1 -1
  57. package/lib/commonjs/version.json +1 -1
  58. package/lib/module/components/Attachment/Gallery.js +2 -2
  59. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  60. package/lib/module/components/Attachment/{GallaryImage.js → GalleryImage.js} +3 -3
  61. package/lib/{commonjs/components/Attachment/GallaryImage.js.map → module/components/Attachment/GalleryImage.js.map} +1 -1
  62. package/lib/module/components/Attachment/Giphy.js +1 -1
  63. package/lib/module/components/Attachment/Giphy.js.map +1 -1
  64. package/lib/module/components/Attachment/VideoThumbnail.js +4 -5
  65. package/lib/module/components/Attachment/VideoThumbnail.js.map +1 -1
  66. package/lib/module/components/Avatar/Avatar.js +1 -1
  67. package/lib/module/components/Avatar/Avatar.js.map +1 -1
  68. package/lib/module/components/Avatar/GroupAvatar.js +1 -1
  69. package/lib/module/components/Avatar/GroupAvatar.js.map +1 -1
  70. package/lib/module/components/Channel/Channel.js +18 -13
  71. package/lib/module/components/Channel/Channel.js.map +1 -1
  72. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -0
  73. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  74. package/lib/module/components/ImageGallery/ImageGallery.js +37 -30
  75. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  76. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +5 -3
  77. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  78. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js +10 -6
  79. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
  80. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +17 -14
  81. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  82. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +1 -0
  83. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  84. package/lib/module/components/ImageGallery/components/ImageGalleryOverlay.js +2 -1
  85. package/lib/module/components/ImageGallery/components/ImageGalleryOverlay.js.map +1 -1
  86. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +36 -18
  87. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  88. package/lib/module/components/ImageGallery/components/ImageGrid.js +3 -1
  89. package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
  90. package/lib/module/components/ImageGallery/components/ImageGridHandle.js +5 -4
  91. package/lib/module/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
  92. package/lib/module/components/Message/Message.js +8 -6
  93. package/lib/module/components/Message/Message.js.map +1 -1
  94. package/lib/module/components/MessageInput/AudioAttachmentUploadPreview.js +538 -0
  95. package/lib/module/components/MessageInput/AudioAttachmentUploadPreview.js.map +1 -0
  96. package/lib/module/components/MessageInput/FileUploadPreview.js +143 -32
  97. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  98. package/lib/{commonjs/components/ImageGallery/components → module/components/ProgressControl}/ProgressControl.js +37 -24
  99. package/lib/module/components/ProgressControl/ProgressControl.js.map +1 -0
  100. package/lib/module/components/index.js +26 -0
  101. package/lib/module/components/index.js.map +1 -1
  102. package/lib/module/contexts/messageInputContext/MessageInputContext.js +5 -2
  103. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  104. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +7 -2
  105. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  106. package/lib/module/contexts/themeContext/utils/theme.js +9 -0
  107. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  108. package/lib/module/icons/Pause.js +2 -2
  109. package/lib/module/icons/Pause.js.map +1 -1
  110. package/lib/module/mock-builders/api/channelMocks.js +1 -0
  111. package/lib/module/mock-builders/api/channelMocks.js.map +1 -1
  112. package/lib/module/native.js +13 -5
  113. package/lib/module/native.js.map +1 -1
  114. package/lib/module/version.json +1 -1
  115. package/lib/typescript/components/Attachment/{GallaryImage.d.ts → GalleryImage.d.ts} +0 -0
  116. package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +1 -1
  117. package/lib/typescript/components/ImageGallery/__tests__/AnimatedVideoGallery.test.d.ts +1 -0
  118. package/lib/typescript/components/ImageGallery/__tests__/ImageGallery.test.d.ts +1 -0
  119. package/lib/typescript/components/ImageGallery/__tests__/ImageGalleryFooter.test.d.ts +1 -0
  120. package/lib/typescript/components/ImageGallery/__tests__/ImageGalleryGrid.test.d.ts +1 -0
  121. package/lib/typescript/components/ImageGallery/__tests__/ImageGalleryGridHandle.test.d.ts +1 -0
  122. package/lib/typescript/components/ImageGallery/__tests__/ImageGalleryHeader.test.d.ts +1 -0
  123. package/lib/typescript/components/ImageGallery/__tests__/ImageGalleryOverlay.test.d.ts +1 -0
  124. package/lib/typescript/components/ImageGallery/__tests__/ImageGalleryVideoControl.test.d.ts +1 -0
  125. package/lib/typescript/components/ImageGallery/components/AnimatedGalleryImage.d.ts +1 -0
  126. package/lib/typescript/components/ImageGallery/components/AnimatedGalleryVideo.d.ts +2 -3
  127. package/lib/typescript/components/ImageGallery/components/ImageGalleryFooter.d.ts +2 -1
  128. package/lib/typescript/components/ImageGallery/components/ImageGrid.d.ts +2 -3
  129. package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +1 -1
  130. package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +1 -1
  131. package/lib/typescript/components/MessageInput/AudioAttachmentUploadPreview.d.ts +26 -0
  132. package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +1 -1
  133. package/lib/typescript/components/MessageInput/__tests__/AudioAttachmentUploadPreviewExpo.test.d.ts +1 -0
  134. package/lib/typescript/components/MessageInput/__tests__/AudioAttachmentUploadPreviewNative.test.d.ts +1 -0
  135. package/lib/typescript/components/ProgressControl/ProgressControl.d.ts +11 -0
  136. package/lib/typescript/components/index.d.ts +2 -0
  137. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +1 -1
  138. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +7 -1
  139. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
  140. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +9 -0
  141. package/lib/typescript/native.d.ts +59 -2
  142. package/package.json +1 -1
  143. package/src/components/Attachment/Gallery.tsx +1 -1
  144. package/src/components/Attachment/{GallaryImage.tsx → GalleryImage.tsx} +1 -1
  145. package/src/components/Attachment/Giphy.tsx +1 -1
  146. package/src/components/Attachment/VideoThumbnail.tsx +1 -2
  147. package/src/components/Attachment/__tests__/Gallery.test.js +6 -6
  148. package/src/components/Attachment/__tests__/Giphy.test.js +4 -4
  149. package/src/components/Avatar/Avatar.tsx +1 -1
  150. package/src/components/Avatar/GroupAvatar.tsx +1 -1
  151. package/src/components/Channel/Channel.tsx +3 -0
  152. package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +2 -0
  153. package/src/components/ImageGallery/ImageGallery.tsx +21 -11
  154. package/src/components/ImageGallery/__tests__/AnimatedVideoGallery.test.tsx +241 -0
  155. package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +192 -0
  156. package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +190 -0
  157. package/src/components/ImageGallery/__tests__/ImageGalleryGrid.test.tsx +98 -0
  158. package/src/components/ImageGallery/__tests__/ImageGalleryGridHandle.test.tsx +79 -0
  159. package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +172 -0
  160. package/src/components/ImageGallery/__tests__/ImageGalleryOverlay.test.tsx +94 -0
  161. package/src/components/ImageGallery/__tests__/ImageGalleryVideoControl.test.tsx +84 -0
  162. package/src/components/ImageGallery/components/AnimatedGalleryImage.tsx +3 -0
  163. package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx +11 -3
  164. package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +9 -2
  165. package/src/components/ImageGallery/components/ImageGalleryHeader.tsx +1 -1
  166. package/src/components/ImageGallery/components/ImageGalleryOverlay.tsx +6 -1
  167. package/src/components/ImageGallery/components/ImageGalleryVideoControl.tsx +22 -9
  168. package/src/components/ImageGallery/components/ImageGrid.tsx +19 -17
  169. package/src/components/ImageGallery/components/ImageGridHandle.tsx +4 -1
  170. package/src/components/Message/Message.tsx +2 -1
  171. package/src/components/Message/MessageSimple/__tests__/MessageContent.test.js +9 -3
  172. package/src/components/Message/MessageSimple/__tests__/__snapshots__/MessageAvatar.test.js.snap +1 -1
  173. package/src/components/MessageInput/AudioAttachmentUploadPreview.tsx +362 -0
  174. package/src/components/MessageInput/FileUploadPreview.tsx +162 -57
  175. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewExpo.test.tsx +199 -0
  176. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewNative.test.tsx +215 -0
  177. package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +64 -0
  178. package/src/components/{ImageGallery/components → ProgressControl}/ProgressControl.tsx +37 -19
  179. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +4 -4
  180. package/src/components/index.ts +3 -0
  181. package/src/contexts/messageInputContext/MessageInputContext.tsx +13 -0
  182. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +5 -1
  183. package/src/contexts/themeContext/utils/theme.ts +15 -0
  184. package/src/icons/Pause.tsx +2 -2
  185. package/src/mock-builders/api/channelMocks.tsx +1 -0
  186. package/src/native.ts +67 -7
  187. package/src/version.json +1 -1
  188. package/lib/commonjs/components/ImageGallery/components/ProgressControl.js.map +0 -1
  189. package/lib/module/components/ImageGallery/components/ProgressControl.js.map +0 -1
  190. package/lib/typescript/components/ImageGallery/components/ProgressControl.d.ts +0 -5
@@ -8,6 +8,7 @@ var _react = require("react");
8
8
  var useCreateInputMessageInputContext = function useCreateInputMessageInputContext(_ref) {
9
9
  var additionalTextInputProps = _ref.additionalTextInputProps,
10
10
  AttachButton = _ref.AttachButton,
11
+ AudioAttachmentUploadPreview = _ref.AudioAttachmentUploadPreview,
11
12
  autoCompleteSuggestionsLimit = _ref.autoCompleteSuggestionsLimit,
12
13
  autoCompleteTriggerSettings = _ref.autoCompleteTriggerSettings,
13
14
  channelId = _ref.channelId,
@@ -53,6 +54,7 @@ var useCreateInputMessageInputContext = function useCreateInputMessageInputConte
53
54
  return {
54
55
  additionalTextInputProps: additionalTextInputProps,
55
56
  AttachButton: AttachButton,
57
+ AudioAttachmentUploadPreview: AudioAttachmentUploadPreview,
56
58
  autoCompleteSuggestionsLimit: autoCompleteSuggestionsLimit,
57
59
  autoCompleteTriggerSettings: autoCompleteTriggerSettings,
58
60
  clearEditingState: clearEditingState,
@@ -1 +1 @@
1
- {"version":3,"sources":["useCreateInputMessageInputContext.ts"],"names":["useCreateInputMessageInputContext","additionalTextInputProps","AttachButton","autoCompleteSuggestionsLimit","autoCompleteTriggerSettings","channelId","clearEditingState","clearQuotedMessageState","CommandsButton","compressImageQuality","CooldownTimer","doDocUploadRequest","doImageUploadRequest","editing","editMessage","FileUploadPreview","hasCommands","hasFilePicker","hasImagePicker","ImageUploadPreview","initialValue","Input","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","maxMessageLength","maxNumberOfFiles","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","MoreOptionsButton","numberOfLines","onChangeText","quotedMessage","SendButton","sendImageAsync","sendMessage","SendMessageDisallowedIndicator","setInputRef","setQuotedMessageState","ShowThreadMessageInChannelButton","UploadProgressIndicator","editingExists","quotedMessageId","id","inputMessageInputContext"],"mappings":";;;;;AAAA;;AAKO,IAAMA,iCAAiC,GAAG,SAApCA,iCAAoC,OAiD3C;AAAA,MA9CJC,wBA8CI,QA9CJA,wBA8CI;AAAA,MA7CJC,YA6CI,QA7CJA,YA6CI;AAAA,MA5CJC,4BA4CI,QA5CJA,4BA4CI;AAAA,MA3CJC,2BA2CI,QA3CJA,2BA2CI;AAAA,MA1CJC,SA0CI,QA1CJA,SA0CI;AAAA,MAzCJC,iBAyCI,QAzCJA,iBAyCI;AAAA,MAxCJC,uBAwCI,QAxCJA,uBAwCI;AAAA,MAvCJC,cAuCI,QAvCJA,cAuCI;AAAA,MAtCJC,oBAsCI,QAtCJA,oBAsCI;AAAA,MArCJC,aAqCI,QArCJA,aAqCI;AAAA,MApCJC,kBAoCI,QApCJA,kBAoCI;AAAA,MAnCJC,oBAmCI,QAnCJA,oBAmCI;AAAA,MAlCJC,OAkCI,QAlCJA,OAkCI;AAAA,MAjCJC,WAiCI,QAjCJA,WAiCI;AAAA,MAhCJC,iBAgCI,QAhCJA,iBAgCI;AAAA,MA/BJC,WA+BI,QA/BJA,WA+BI;AAAA,MA9BJC,aA8BI,QA9BJA,aA8BI;AAAA,MA7BJC,cA6BI,QA7BJA,cA6BI;AAAA,MA5BJC,kBA4BI,QA5BJA,kBA4BI;AAAA,MA3BJC,YA2BI,QA3BJA,YA2BI;AAAA,MA1BJC,KA0BI,QA1BJA,KA0BI;AAAA,MAzBJC,YAyBI,QAzBJA,YAyBI;AAAA,MAxBJC,uBAwBI,QAxBJA,uBAwBI;AAAA,MAvBJC,gBAuBI,QAvBJA,gBAuBI;AAAA,MAtBJC,qBAsBI,QAtBJA,qBAsBI;AAAA,MArBJC,gBAqBI,QArBJA,gBAqBI;AAAA,MApBJC,gBAoBI,QApBJA,gBAoBI;AAAA,MAnBJC,yBAmBI,QAnBJA,yBAmBI;AAAA,MAlBJC,uBAkBI,QAlBJA,uBAkBI;AAAA,MAjBJC,iBAiBI,QAjBJA,iBAiBI;AAAA,MAhBJC,aAgBI,QAhBJA,aAgBI;AAAA,MAfJC,YAeI,QAfJA,YAeI;AAAA,MAdJC,aAcI,QAdJA,aAcI;AAAA,MAbJC,UAaI,QAbJA,UAaI;AAAA,MAZJC,cAYI,QAZJA,cAYI;AAAA,MAXJC,WAWI,QAXJA,WAWI;AAAA,MAVJC,8BAUI,QAVJA,8BAUI;AAAA,MATJC,WASI,QATJA,WASI;AAAA,MARJC,qBAQI,QARJA,qBAQI;AAAA,MAPJC,gCAOI,QAPJA,gCAOI;AAAA,MANJC,uBAMI,QANJA,uBAMI;AACJ,MAAMC,aAAa,GAAG,CAAC,CAAC7B,OAAxB;AACA,MAAM8B,eAAe,GAAGV,aAAa,GACjC,OAAOA,aAAP,KAAyB,SAAzB,GACE,EADF,GAEEA,aAAa,CAACW,EAHiB,GAIjC,EAJJ;AAMA,MAAMC,wBAA2E,GAAG,oBAClF;AAAA,WAAO;AACL5C,MAAAA,wBAAwB,EAAxBA,wBADK;AAELC,MAAAA,YAAY,EAAZA,YAFK;AAGLC,MAAAA,4BAA4B,EAA5BA,4BAHK;AAILC,MAAAA,2BAA2B,EAA3BA,2BAJK;AAKLE,MAAAA,iBAAiB,EAAjBA,iBALK;AAMLC,MAAAA,uBAAuB,EAAvBA,uBANK;AAOLC,MAAAA,cAAc,EAAdA,cAPK;AAQLC,MAAAA,oBAAoB,EAApBA,oBARK;AASLC,MAAAA,aAAa,EAAbA,aATK;AAULC,MAAAA,kBAAkB,EAAlBA,kBAVK;AAWLC,MAAAA,oBAAoB,EAApBA,oBAXK;AAYLC,MAAAA,OAAO,EAAPA,OAZK;AAaLC,MAAAA,WAAW,EAAXA,WAbK;AAcLC,MAAAA,iBAAiB,EAAjBA,iBAdK;AAeLC,MAAAA,WAAW,EAAXA,WAfK;AAgBLC,MAAAA,aAAa,EAAbA,aAhBK;AAiBLC,MAAAA,cAAc,EAAdA,cAjBK;AAkBLC,MAAAA,kBAAkB,EAAlBA,kBAlBK;AAmBLC,MAAAA,YAAY,EAAZA,YAnBK;AAoBLC,MAAAA,KAAK,EAALA,KApBK;AAqBLC,MAAAA,YAAY,EAAZA,YArBK;AAsBLC,MAAAA,uBAAuB,EAAvBA,uBAtBK;AAuBLC,MAAAA,gBAAgB,EAAhBA,gBAvBK;AAwBLC,MAAAA,qBAAqB,EAArBA,qBAxBK;AAyBLC,MAAAA,gBAAgB,EAAhBA,gBAzBK;AA0BLC,MAAAA,gBAAgB,EAAhBA,gBA1BK;AA2BLC,MAAAA,yBAAyB,EAAzBA,yBA3BK;AA4BLC,MAAAA,uBAAuB,EAAvBA,uBA5BK;AA6BLC,MAAAA,iBAAiB,EAAjBA,iBA7BK;AA8BLC,MAAAA,aAAa,EAAbA,aA9BK;AA+BLC,MAAAA,YAAY,EAAZA,YA/BK;AAgCLC,MAAAA,aAAa,EAAbA,aAhCK;AAiCLC,MAAAA,UAAU,EAAVA,UAjCK;AAkCLC,MAAAA,cAAc,EAAdA,cAlCK;AAmCLC,MAAAA,WAAW,EAAXA,WAnCK;AAoCLC,MAAAA,8BAA8B,EAA9BA,8BApCK;AAqCLC,MAAAA,WAAW,EAAXA,WArCK;AAsCLC,MAAAA,qBAAqB,EAArBA,qBAtCK;AAuCLC,MAAAA,gCAAgC,EAAhCA,gCAvCK;AAwCLC,MAAAA,uBAAuB,EAAvBA;AAxCK,KAAP;AAAA,GADkF,EA2ClF,CACEhC,oBADF,EAEEJ,SAFF,EAGEqC,aAHF,EAIEtB,YAJF,EAKEM,gBALF,EAMEiB,eANF,CA3CkF,CAApF;AAqDA,SAAOE,wBAAP;AACD,CA/GM","sourcesContent":["import { useMemo } from 'react';\n\nimport type { InputMessageInputContextValue } from '../../../contexts/messageInputContext/MessageInputContext';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nexport const useCreateInputMessageInputContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTextInputProps,\n AttachButton,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n channelId,\n clearEditingState,\n clearQuotedMessageState,\n CommandsButton,\n compressImageQuality,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n initialValue,\n Input,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n MoreOptionsButton,\n numberOfLines,\n onChangeText,\n quotedMessage,\n SendButton,\n sendImageAsync,\n sendMessage,\n SendMessageDisallowedIndicator,\n setInputRef,\n setQuotedMessageState,\n ShowThreadMessageInChannelButton,\n UploadProgressIndicator,\n}: InputMessageInputContextValue<StreamChatGenerics> & {\n /**\n * To ensure we allow re-render, when channel is changed\n */\n channelId?: string;\n}) => {\n const editingExists = !!editing;\n const quotedMessageId = quotedMessage\n ? typeof quotedMessage === 'boolean'\n ? ''\n : quotedMessage.id\n : '';\n\n const inputMessageInputContext: InputMessageInputContextValue<StreamChatGenerics> = useMemo(\n () => ({\n additionalTextInputProps,\n AttachButton,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n clearEditingState,\n clearQuotedMessageState,\n CommandsButton,\n compressImageQuality,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n initialValue,\n Input,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n MoreOptionsButton,\n numberOfLines,\n onChangeText,\n quotedMessage,\n SendButton,\n sendImageAsync,\n sendMessage,\n SendMessageDisallowedIndicator,\n setInputRef,\n setQuotedMessageState,\n ShowThreadMessageInChannelButton,\n UploadProgressIndicator,\n }),\n [\n compressImageQuality,\n channelId,\n editingExists,\n initialValue,\n maxMessageLength,\n quotedMessageId,\n ],\n );\n\n return inputMessageInputContext;\n};\n"]}
1
+ {"version":3,"sources":["useCreateInputMessageInputContext.ts"],"names":["useCreateInputMessageInputContext","additionalTextInputProps","AttachButton","AudioAttachmentUploadPreview","autoCompleteSuggestionsLimit","autoCompleteTriggerSettings","channelId","clearEditingState","clearQuotedMessageState","CommandsButton","compressImageQuality","CooldownTimer","doDocUploadRequest","doImageUploadRequest","editing","editMessage","FileUploadPreview","hasCommands","hasFilePicker","hasImagePicker","ImageUploadPreview","initialValue","Input","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","maxMessageLength","maxNumberOfFiles","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","MoreOptionsButton","numberOfLines","onChangeText","quotedMessage","SendButton","sendImageAsync","sendMessage","SendMessageDisallowedIndicator","setInputRef","setQuotedMessageState","ShowThreadMessageInChannelButton","UploadProgressIndicator","editingExists","quotedMessageId","id","inputMessageInputContext"],"mappings":"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","sourcesContent":["import { useMemo } from 'react';\n\nimport type { InputMessageInputContextValue } from '../../../contexts/messageInputContext/MessageInputContext';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nexport const useCreateInputMessageInputContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTextInputProps,\n AttachButton,\n AudioAttachmentUploadPreview,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n channelId,\n clearEditingState,\n clearQuotedMessageState,\n CommandsButton,\n compressImageQuality,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n initialValue,\n Input,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n MoreOptionsButton,\n numberOfLines,\n onChangeText,\n quotedMessage,\n SendButton,\n sendImageAsync,\n sendMessage,\n SendMessageDisallowedIndicator,\n setInputRef,\n setQuotedMessageState,\n ShowThreadMessageInChannelButton,\n UploadProgressIndicator,\n}: InputMessageInputContextValue<StreamChatGenerics> & {\n /**\n * To ensure we allow re-render, when channel is changed\n */\n channelId?: string;\n}) => {\n const editingExists = !!editing;\n const quotedMessageId = quotedMessage\n ? typeof quotedMessage === 'boolean'\n ? ''\n : quotedMessage.id\n : '';\n\n const inputMessageInputContext: InputMessageInputContextValue<StreamChatGenerics> = useMemo(\n () => ({\n additionalTextInputProps,\n AttachButton,\n AudioAttachmentUploadPreview,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n clearEditingState,\n clearQuotedMessageState,\n CommandsButton,\n compressImageQuality,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n initialValue,\n Input,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n MoreOptionsButton,\n numberOfLines,\n onChangeText,\n quotedMessage,\n SendButton,\n sendImageAsync,\n sendMessage,\n SendMessageDisallowedIndicator,\n setInputRef,\n setQuotedMessageState,\n ShowThreadMessageInChannelButton,\n UploadProgressIndicator,\n }),\n [\n compressImageQuality,\n channelId,\n editingExists,\n initialValue,\n maxMessageLength,\n quotedMessageId,\n ],\n );\n\n return inputMessageInputContext;\n};\n"]}
@@ -347,18 +347,22 @@ var ImageGallery = function ImageGallery(props) {
347
347
  }
348
348
  };
349
349
 
350
- var handlePlayPause = function handlePlayPause() {
351
- if (progress === 1 && videoRef.current && videoRef.current.seek) {
352
- videoRef.current.seek(0);
353
- }
350
+ var handlePlayPause = function handlePlayPause(status) {
351
+ if (status === undefined) {
352
+ if (progress === 1 && videoRef.current && videoRef.current.seek) {
353
+ videoRef.current.seek(0);
354
+ }
354
355
 
355
- if (progress === 1 && videoRef.current && videoRef.current.replayAsync) {
356
- videoRef.current.replayAsync();
357
- }
356
+ if (progress === 1 && videoRef.current && videoRef.current.replayAsync) {
357
+ videoRef.current.replayAsync();
358
+ }
358
359
 
359
- setPaused(function (state) {
360
- return !state;
361
- });
360
+ setPaused(function (state) {
361
+ return !state;
362
+ });
363
+ } else {
364
+ setPaused(status);
365
+ }
362
366
  };
363
367
 
364
368
  var onProgressDrag = function onProgressDrag(progress) {
@@ -372,12 +376,13 @@ var ImageGallery = function ImageGallery(props) {
372
376
  };
373
377
 
374
378
  return _react["default"].createElement(_reactNativeReanimated["default"].View, {
379
+ accessibilityLabel: "Image Gallery",
375
380
  pointerEvents: 'auto',
376
381
  style: [_reactNative.StyleSheet.absoluteFillObject, showScreenStyle],
377
382
  __self: _this,
378
383
  __source: {
379
384
  fileName: _jsxFileName,
380
- lineNumber: 500,
385
+ lineNumber: 504,
381
386
  columnNumber: 5
382
387
  }
383
388
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -385,7 +390,7 @@ var ImageGallery = function ImageGallery(props) {
385
390
  __self: _this,
386
391
  __source: {
387
392
  fileName: _jsxFileName,
388
- lineNumber: 501,
393
+ lineNumber: 509,
389
394
  columnNumber: 7
390
395
  }
391
396
  }), _react["default"].createElement(_reactNativeGestureHandler.TapGestureHandler, {
@@ -397,7 +402,7 @@ var ImageGallery = function ImageGallery(props) {
397
402
  __self: _this,
398
403
  __source: {
399
404
  fileName: _jsxFileName,
400
- lineNumber: 502,
405
+ lineNumber: 510,
401
406
  columnNumber: 7
402
407
  }
403
408
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -405,7 +410,7 @@ var ImageGallery = function ImageGallery(props) {
405
410
  __self: _this,
406
411
  __source: {
407
412
  fileName: _jsxFileName,
408
- lineNumber: 509,
413
+ lineNumber: 517,
409
414
  columnNumber: 9
410
415
  }
411
416
  }, _react["default"].createElement(_reactNativeGestureHandler.TapGestureHandler, {
@@ -419,7 +424,7 @@ var ImageGallery = function ImageGallery(props) {
419
424
  __self: _this,
420
425
  __source: {
421
426
  fileName: _jsxFileName,
422
- lineNumber: 510,
427
+ lineNumber: 518,
423
428
  columnNumber: 11
424
429
  }
425
430
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -427,7 +432,7 @@ var ImageGallery = function ImageGallery(props) {
427
432
  __self: _this,
428
433
  __source: {
429
434
  fileName: _jsxFileName,
430
- lineNumber: 519,
435
+ lineNumber: 527,
431
436
  columnNumber: 13
432
437
  }
433
438
  }, _react["default"].createElement(_reactNativeGestureHandler.PinchGestureHandler, {
@@ -437,7 +442,7 @@ var ImageGallery = function ImageGallery(props) {
437
442
  __self: _this,
438
443
  __source: {
439
444
  fileName: _jsxFileName,
440
- lineNumber: 520,
445
+ lineNumber: 528,
441
446
  columnNumber: 15
442
447
  }
443
448
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -445,7 +450,7 @@ var ImageGallery = function ImageGallery(props) {
445
450
  __self: _this,
446
451
  __source: {
447
452
  fileName: _jsxFileName,
448
- lineNumber: 525,
453
+ lineNumber: 533,
449
454
  columnNumber: 17
450
455
  }
451
456
  }, _react["default"].createElement(_reactNativeGestureHandler.PanGestureHandler, {
@@ -458,7 +463,7 @@ var ImageGallery = function ImageGallery(props) {
458
463
  __self: _this,
459
464
  __source: {
460
465
  fileName: _jsxFileName,
461
- lineNumber: 526,
466
+ lineNumber: 534,
462
467
  columnNumber: 19
463
468
  }
464
469
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -466,7 +471,7 @@ var ImageGallery = function ImageGallery(props) {
466
471
  __self: _this,
467
472
  __source: {
468
473
  fileName: _jsxFileName,
469
- lineNumber: 534,
474
+ lineNumber: 542,
470
475
  columnNumber: 21
471
476
  }
472
477
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -480,7 +485,7 @@ var ImageGallery = function ImageGallery(props) {
480
485
  __self: _this,
481
486
  __source: {
482
487
  fileName: _jsxFileName,
483
- lineNumber: 535,
488
+ lineNumber: 543,
484
489
  columnNumber: 23
485
490
  }
486
491
  }, photos.map(function (photo, i) {
@@ -511,10 +516,11 @@ var ImageGallery = function ImageGallery(props) {
511
516
  __self: _this,
512
517
  __source: {
513
518
  fileName: _jsxFileName,
514
- lineNumber: 552,
519
+ lineNumber: 560,
515
520
  columnNumber: 29
516
521
  }
517
522
  }) : _react["default"].createElement(_AnimatedGalleryImage.AnimatedGalleryImage, {
523
+ accessibilityLabel: 'Image Item',
518
524
  index: i,
519
525
  key: photo.uri + "-" + i,
520
526
  offsetScale: offsetScale,
@@ -534,7 +540,7 @@ var ImageGallery = function ImageGallery(props) {
534
540
  __self: _this,
535
541
  __source: {
536
542
  fileName: _jsxFileName,
537
- lineNumber: 579,
543
+ lineNumber: 587,
538
544
  columnNumber: 29
539
545
  }
540
546
  });
@@ -546,10 +552,11 @@ var ImageGallery = function ImageGallery(props) {
546
552
  __self: _this,
547
553
  __source: {
548
554
  fileName: _jsxFileName,
549
- lineNumber: 611,
555
+ lineNumber: 620,
550
556
  columnNumber: 7
551
557
  }
552
558
  })), _react["default"].createElement(_ImageGalleryFooter.ImageGalleryFooter, (0, _extends2["default"])({
559
+ accessibilityLabel: 'Image Gallery Footer',
553
560
  duration: duration,
554
561
  onPlayPause: handlePlayPause,
555
562
  onProgressDrag: onProgressDrag,
@@ -565,7 +572,7 @@ var ImageGallery = function ImageGallery(props) {
565
572
  __self: _this,
566
573
  __source: {
567
574
  fileName: _jsxFileName,
568
- lineNumber: 617,
575
+ lineNumber: 626,
569
576
  columnNumber: 7
570
577
  }
571
578
  })), _react["default"].createElement(_ImageGalleryOverlay.ImageGalleryOverlay, {
@@ -575,14 +582,14 @@ var ImageGallery = function ImageGallery(props) {
575
582
  __self: _this,
576
583
  __source: {
577
584
  fileName: _jsxFileName,
578
- lineNumber: 632,
585
+ lineNumber: 642,
579
586
  columnNumber: 7
580
587
  }
581
588
  }), _react["default"].createElement(_bottomSheet.BottomSheetModalProvider, {
582
589
  __self: _this,
583
590
  __source: {
584
591
  fileName: _jsxFileName,
585
- lineNumber: 637,
592
+ lineNumber: 647,
586
593
  columnNumber: 7
587
594
  }
588
595
  }, _react["default"].createElement(_bottomSheet.BottomSheetModal, {
@@ -595,7 +602,7 @@ var ImageGallery = function ImageGallery(props) {
595
602
  __self: _this,
596
603
  __source: {
597
604
  fileName: _jsxFileName,
598
- lineNumber: 642,
605
+ lineNumber: 652,
599
606
  columnNumber: 13
600
607
  }
601
608
  }));
@@ -610,7 +617,7 @@ var ImageGallery = function ImageGallery(props) {
610
617
  __self: _this,
611
618
  __source: {
612
619
  fileName: _jsxFileName,
613
- lineNumber: 638,
620
+ lineNumber: 648,
614
621
  columnNumber: 9
615
622
  }
616
623
  }, _react["default"].createElement(_ImageGrid.ImageGrid, (0, _extends2["default"])({
@@ -622,7 +629,7 @@ var ImageGallery = function ImageGallery(props) {
622
629
  __self: _this,
623
630
  __source: {
624
631
  fileName: _jsxFileName,
625
- lineNumber: 653,
632
+ lineNumber: 663,
626
633
  columnNumber: 11
627
634
  }
628
635
  })))));
@@ -1 +1 @@
1
- {"version":3,"sources":["ImageGallery.tsx"],"names":["isAndroid","Platform","OS","fullScreenHeight","Dimensions","get","height","measuredScreenHeight","screenWidth","halfScreenWidth","MARGIN","HasPinched","IsSwiping","ImageGallery","props","giphyVersion","imageGalleryCustomComponents","imageGalleryGridHandleHeight","imageGalleryGridSnapPoints","numberOfImageGalleryGridColumns","overlayOpacity","paused","setPaused","progress","setProgress","duration","setDuration","theme","white_snow","colors","imageGallery","backgroundColor","pager","slide","gridPhotos","setGridPhotos","overlay","translucentStatusBar","image","images","setImage","statusBarHeight","StatusBar","currentHeight","bottomBarHeight","androidScreenHeightAdjustment","screenHeight","halfScreenHeight","quarterScreenHeight","snapPoints","React","useMemo","bottomSheetModalRef","currentBottomSheetIndex","setCurrentBottomSheetIndex","animatedBottomSheetIndex","screenTranslateY","showScreen","value","easing","Easing","out","ease","Keyboard","dismiss","currentImageHeight","setCurrentImageHeight","selectedIndex","setSelectedIndex","index","headerFooterVisible","doubleTapRef","panRef","pinchRef","singleTapRef","translateX","translateY","offsetScale","scale","translationX","photos","reduce","acc","cur","attachmentImages","attachments","filter","attachment","type","giphy","url","thumb_url","image_url","title_link","og_scrape_url","attachmentPhotos","map","a","imageUrl","giphyURL","channelId","cid","created_at","id","messageId","mime_type","original_height","original_width","uri","width","user","user_id","photoLength","length","updatePosition","newIndex","findIndex","photo","uriForCurrentImage","imageHeight","Math","floor","Image","getSize","onDoubleTap","onPan","onPinch","onSingleTap","headerFooterOpacity","pagerStyle","transform","scaleX","containerBackground","opacity","showScreenStyle","closeGridView","current","close","openGridView","present","videoRef","handleEnd","handleLoad","payload","handleProgress","data","currentTime","seekableDuration","handlePlayPause","seek","replayAsync","state","onProgressDrag","setPositionAsync","StyleSheet","absoluteFillObject","absoluteFill","undefined","styles","animatedContainer","i","abs","marginRight","header","footer","gridHandle","grid","clamp","lowerBound","upperBound","min","max","create","alignItems","flexDirection","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport {\n Dimensions,\n Image,\n ImageStyle,\n Keyboard,\n Platform,\n StatusBar,\n StyleSheet,\n ViewStyle,\n} from 'react-native';\n\nimport {\n PanGestureHandler,\n PinchGestureHandler,\n TapGestureHandler,\n} from 'react-native-gesture-handler';\n\nimport Animated, {\n Easing,\n runOnJS,\n runOnUI,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { BottomSheetModal, BottomSheetModalProvider } from '@gorhom/bottom-sheet';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { AnimatedGalleryImage } from './components/AnimatedGalleryImage';\nimport { AnimatedGalleryVideo } from './components/AnimatedGalleryVideo';\nimport {\n ImageGalleryFooter,\n ImageGalleryFooterCustomComponentProps,\n} from './components/ImageGalleryFooter';\nimport {\n ImageGalleryHeader,\n ImageGalleryHeaderCustomComponentProps,\n} from './components/ImageGalleryHeader';\nimport { ImageGalleryOverlay } from './components/ImageGalleryOverlay';\nimport { ImageGalleryGridImageComponents, ImageGrid } from './components/ImageGrid';\nimport {\n ImageGalleryGridHandleCustomComponentProps,\n ImageGridHandle,\n} from './components/ImageGridHandle';\n\nimport { useImageGalleryGestures } from './hooks/useImageGalleryGestures';\n\nimport { useImageGalleryContext } from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n OverlayProviderProps,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n isVideoPackageAvailable,\n VideoPayloadData,\n VideoProgressData,\n VideoType,\n} from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getResizedImageUrl } from '../../utils/getResizedImageUrl';\nimport { getUrlOfImageAttachment } from '../../utils/getUrlOfImageAttachment';\nimport { vh, vw } from '../../utils/utils';\n\nconst isAndroid = Platform.OS === 'android';\nconst fullScreenHeight = Dimensions.get('screen').height;\nconst measuredScreenHeight = vh(100);\nconst screenWidth = vw(100);\nconst halfScreenWidth = vw(50);\nconst MARGIN = 32;\n\nexport enum HasPinched {\n FALSE = 0,\n TRUE,\n}\n\nexport enum IsSwiping {\n UNDETERMINED = 0,\n TRUE,\n FALSE,\n}\n\nexport type ImageGalleryCustomComponents<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Override props for following UI components, which are part of [image gallery](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#gallery-components).\n *\n * - [ImageGalleryFooter](#ImageGalleryFooter)\n *\n * - [ImageGrid](#ImageGrid)\n *\n * - [ImageGridHandle](#ImageGridHandle)\n *\n * - [ImageGalleryHeader](#ImageGalleryHeader)\n *\n * e.g.,\n *\n * ```js\n * {\n * footer: {\n * ShareIcon: CustomShareIconComponent\n * },\n * grid: {\n * avatarComponent: CustomAvatarComponent\n * },\n * gridHandle: {\n * centerComponent: CustomCenterComponent\n * },\n * header: {\n * CloseIcon: CustomCloseButtonComponent\n * },\n * }\n * ```\n * @overrideType object\n */\n imageGalleryCustomComponents?: {\n footer?: ImageGalleryFooterCustomComponentProps<StreamChatGenerics>;\n grid?: ImageGalleryGridImageComponents<StreamChatGenerics>;\n gridHandle?: ImageGalleryGridHandleCustomComponentProps;\n header?: ImageGalleryHeaderCustomComponentProps<StreamChatGenerics>;\n };\n};\n\ntype Props<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n ImageGalleryCustomComponents<StreamChatGenerics> & {\n overlayOpacity: Animated.SharedValue<number>;\n } & Pick<\n OverlayProviderProps<StreamChatGenerics>,\n | 'giphyVersion'\n | 'imageGalleryGridSnapPoints'\n | 'imageGalleryGridHandleHeight'\n | 'numberOfImageGalleryGridColumns'\n >;\n\nexport const ImageGallery = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: Props<StreamChatGenerics>,\n) => {\n const {\n giphyVersion = 'fixed_height',\n imageGalleryCustomComponents,\n imageGalleryGridHandleHeight,\n imageGalleryGridSnapPoints,\n numberOfImageGalleryGridColumns,\n overlayOpacity,\n } = props;\n const [paused, setPaused] = useState<boolean>(false);\n const [progress, setProgress] = useState<number>(0);\n const [duration, setDuration] = useState<number>(0);\n const {\n theme: {\n colors: { white_snow },\n imageGallery: { backgroundColor, pager, slide },\n },\n } = useTheme();\n const [gridPhotos, setGridPhotos] = useState<Photo<StreamChatGenerics>[]>([]);\n const { overlay, translucentStatusBar } = useOverlayContext();\n const { image, images, setImage } = useImageGalleryContext<StreamChatGenerics>();\n\n /**\n * Height constants\n */\n const statusBarHeight = StatusBar.currentHeight ?? 0;\n const bottomBarHeight = fullScreenHeight - measuredScreenHeight - statusBarHeight;\n const androidScreenHeightAdjustment = translucentStatusBar\n ? bottomBarHeight === statusBarHeight || bottomBarHeight < 0\n ? 0\n : statusBarHeight\n : bottomBarHeight === statusBarHeight || bottomBarHeight < 0\n ? -statusBarHeight\n : 0;\n const screenHeight = isAndroid\n ? Dimensions.get('window').height + androidScreenHeightAdjustment\n : vh(100);\n const halfScreenHeight = screenHeight / 2;\n const quarterScreenHeight = screenHeight / 4;\n const snapPoints = React.useMemo(\n () => [(screenHeight * 3) / 4, screenHeight - (imageGalleryGridHandleHeight ?? 40)],\n [],\n );\n\n /**\n * BottomSheetModal ref\n */\n const bottomSheetModalRef = useRef<BottomSheetModal>(null);\n\n /**\n * BottomSheetModal state\n */\n const [currentBottomSheetIndex, setCurrentBottomSheetIndex] = useState(0);\n const animatedBottomSheetIndex = useSharedValue(0);\n\n /**\n * Fade animation for screen, it is always rendered with pointerEvents\n * set to none for fast opening\n */\n const screenTranslateY = useSharedValue(screenHeight);\n const showScreen = () => {\n 'worklet';\n screenTranslateY.value = withTiming(0, {\n duration: 250,\n easing: Easing.out(Easing.ease),\n });\n };\n\n /**\n * Run the fade animation on visible change\n */\n useEffect(() => {\n Keyboard.dismiss();\n showScreen();\n }, []);\n\n /**\n * Image height from URL or default to full screen height\n */\n const [currentImageHeight, setCurrentImageHeight] = useState<number>(screenHeight);\n\n /**\n * JS and UI index values, the JS follows the UI but is needed\n * for rendering the virtualized image list\n */\n const [selectedIndex, setSelectedIndex] = useState(0);\n const index = useSharedValue(0);\n\n /**\n * Header visible value for animating in out\n */\n const headerFooterVisible = useSharedValue(1);\n\n /**\n * Gesture handler refs\n */\n const doubleTapRef = useRef<TapGestureHandler>(null);\n const panRef = useRef<PanGestureHandler>(null);\n const pinchRef = useRef<PinchGestureHandler>(null);\n const singleTapRef = useRef<TapGestureHandler>(null);\n\n /**\n * Shared values for movement\n */\n const translateX = useSharedValue(0);\n const translateY = useSharedValue(0);\n const offsetScale = useSharedValue(1);\n const scale = useSharedValue(1);\n const translationX = useSharedValue(0);\n\n /**\n * Photos array created from all currently available\n * photo attachments\n */\n\n const photos = images.reduce((acc: Photo<StreamChatGenerics>[], cur) => {\n const attachmentImages =\n cur.attachments?.filter(\n (attachment) =>\n (attachment.type === 'giphy' &&\n (attachment.giphy?.[giphyVersion]?.url ||\n attachment.thumb_url ||\n attachment.image_url)) ||\n (attachment.type === 'image' &&\n !attachment.title_link &&\n !attachment.og_scrape_url &&\n getUrlOfImageAttachment(attachment)) ||\n (isVideoPackageAvailable() && attachment.type === 'video'),\n ) || [];\n\n const attachmentPhotos = attachmentImages.map((a) => {\n const imageUrl = getUrlOfImageAttachment(a) as string;\n const giphyURL = a.giphy?.[giphyVersion]?.url || a.thumb_url || a.image_url;\n\n return {\n channelId: cur.cid,\n created_at: cur.created_at,\n id: `photoId-${cur.id}-${imageUrl}`,\n messageId: cur.id,\n mime_type: a.type === 'giphy' ? 'image/gif' : a.mime_type,\n original_height: a.original_height,\n original_width: a.original_width,\n type: a.type,\n uri:\n a.type === 'giphy'\n ? giphyURL\n : getResizedImageUrl({\n height: screenHeight,\n url: imageUrl,\n width: screenWidth,\n }),\n user: cur.user,\n user_id: cur.user_id,\n };\n });\n\n return [...acc, ...attachmentPhotos] as Photo<StreamChatGenerics>[];\n }, []);\n\n /**\n * Photos length needs to be kept as a const here so if the length\n * changes it causes the pan gesture handler function to refresh. This\n * does not work if the calculation for the length of the array is left\n * inside the gesture handler as it will have an array as a dependency\n */\n const photoLength = photos.length;\n\n /**\n * Set selected photo when changed via pressing in the message list\n */\n useEffect(() => {\n const updatePosition = (newIndex: number) => {\n 'worklet';\n\n if (newIndex > -1) {\n index.value = newIndex;\n translationX.value = -(screenWidth + MARGIN) * newIndex;\n runOnJS(setSelectedIndex)(newIndex);\n }\n };\n\n const newIndex = photos.findIndex(\n (photo) => photo.messageId === image?.messageId && photo.uri === image?.url,\n );\n\n if (photoLength > 1) {\n setPaused(true);\n }\n\n runOnUI(updatePosition)(newIndex);\n }, [image, photoLength]);\n\n /**\n * Image heights are not provided and therefore need to be calculated.\n * We start by allowing the image to be the full height then reduce it\n * to the proper scaled height based on the width being restricted to the\n * screen width when the dimensions are received.\n */\n const uriForCurrentImage = photos[selectedIndex]?.uri;\n useEffect(() => {\n setCurrentImageHeight(screenHeight);\n const photo = photos[index.value];\n const height = photo?.original_height;\n const width = photo?.original_width;\n\n if (height && width) {\n const imageHeight = Math.floor(height * (screenWidth / width));\n setCurrentImageHeight(imageHeight > screenHeight ? screenHeight : imageHeight);\n } else if (photo?.uri) {\n if (photo.type === 'image') {\n Image.getSize(photo.uri, (width, height) => {\n const imageHeight = Math.floor(height * (screenWidth / width));\n setCurrentImageHeight(imageHeight > screenHeight ? screenHeight : imageHeight);\n });\n }\n }\n }, [uriForCurrentImage]);\n\n const { onDoubleTap, onPan, onPinch, onSingleTap } = useImageGalleryGestures({\n currentImageHeight,\n halfScreenHeight,\n halfScreenWidth,\n headerFooterVisible,\n offsetScale,\n overlayOpacity,\n photoLength,\n scale,\n screenHeight,\n screenWidth,\n setSelectedIndex,\n translateX,\n translateY,\n translationX,\n });\n\n /**\n * If the header is visible we scale down the opacity of it as the\n * image is swiped downward\n */\n const headerFooterOpacity = useDerivedValue(\n () =>\n currentImageHeight * scale.value < screenHeight && translateY.value > 0\n ? 1 - translateY.value / quarterScreenHeight\n : currentImageHeight * scale.value > screenHeight &&\n translateY.value > (currentImageHeight / 2) * scale.value - halfScreenHeight\n ? 1 -\n (translateY.value - ((currentImageHeight / 2) * scale.value - halfScreenHeight)) /\n quarterScreenHeight\n : 1,\n [currentImageHeight],\n );\n\n /**\n * This transition and scaleX reverse lets use scroll left\n */\n const pagerStyle = useAnimatedStyle<ImageStyle>(\n () => ({\n transform: [\n { scaleX: -1 },\n {\n translateX: translationX.value,\n },\n ],\n }),\n [],\n );\n\n /**\n * Simple background color animation on Y movement\n */\n const containerBackground = useAnimatedStyle<ViewStyle>(\n () => ({\n backgroundColor: backgroundColor || white_snow,\n opacity: headerFooterOpacity.value,\n }),\n [headerFooterOpacity],\n );\n\n /**\n * Show screen style as component is always rendered we hide it\n * down and up and set opacity to 0 for good measure\n */\n const showScreenStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n transform: [\n {\n translateY: screenTranslateY.value,\n },\n ],\n }),\n [],\n );\n\n /**\n * Functions toclose BottomSheetModal with image grid\n */\n const closeGridView = () => {\n if (bottomSheetModalRef.current?.close) {\n bottomSheetModalRef.current.close();\n setGridPhotos([]);\n }\n };\n\n /**\n * Function to open BottomSheetModal with image grid\n */\n const openGridView = () => {\n if (bottomSheetModalRef.current?.present) {\n bottomSheetModalRef.current.present();\n setGridPhotos(photos);\n }\n };\n\n const videoRef = useRef<VideoType>(null);\n\n const handleEnd = () => {\n setPaused(true);\n setProgress(1);\n };\n\n const handleLoad = (payload: VideoPayloadData) => {\n if (payload.duration) setDuration(payload.duration);\n };\n\n const handleProgress = (data: VideoProgressData) => {\n if (data.currentTime && data.seekableDuration) {\n setProgress(data.currentTime / data.seekableDuration);\n }\n };\n\n const handlePlayPause = () => {\n // React Native Video for RN CLI has seek as an API to move to a particular location in the video\n if (progress === 1 && videoRef.current && videoRef.current.seek) {\n videoRef.current.seek(0);\n }\n // Expo AV for Expo has replayAsync as an API to move to a starting of the video\n if (progress === 1 && videoRef.current && videoRef.current.replayAsync) {\n videoRef.current.replayAsync();\n }\n\n setPaused((state) => !state);\n };\n\n const onProgressDrag = (progress: number) => {\n // React Native Video for RN CLI has seek as an API to move to a particular location in the video\n if (videoRef.current && videoRef.current.seek) {\n videoRef.current.seek(progress);\n }\n\n // Expo AV for Expo has setPositionAsync as an API to move to a particular location of the video\n if (videoRef.current && videoRef.current.setPositionAsync) {\n videoRef.current.setPositionAsync(progress * 1000);\n }\n };\n\n return (\n <Animated.View pointerEvents={'auto'} style={[StyleSheet.absoluteFillObject, showScreenStyle]}>\n <Animated.View style={[StyleSheet.absoluteFillObject, containerBackground]} />\n <TapGestureHandler\n minPointers={1}\n numberOfTaps={1}\n onGestureEvent={onSingleTap}\n ref={singleTapRef}\n waitFor={[panRef, pinchRef, doubleTapRef]}\n >\n <Animated.View style={StyleSheet.absoluteFillObject}>\n <TapGestureHandler\n maxDeltaX={8}\n maxDeltaY={8}\n maxDist={8}\n minPointers={1}\n numberOfTaps={2}\n onGestureEvent={onDoubleTap}\n ref={doubleTapRef}\n >\n <Animated.View style={StyleSheet.absoluteFillObject}>\n <PinchGestureHandler\n onGestureEvent={onPinch}\n ref={pinchRef}\n simultaneousHandlers={[panRef]}\n >\n <Animated.View style={StyleSheet.absoluteFill}>\n <PanGestureHandler\n enabled={overlay === 'gallery'}\n maxPointers={isAndroid ? undefined : 1}\n minDist={10}\n onGestureEvent={onPan}\n ref={panRef}\n simultaneousHandlers={[pinchRef]}\n >\n <Animated.View style={StyleSheet.absoluteFill}>\n <Animated.View\n style={[\n styles.animatedContainer,\n pagerStyle,\n pager,\n {\n transform: [\n { scaleX: -1 }, // Also only here for opening, wrong direction when not included\n {\n translateX: translationX.value, // Only here for opening, wrong index when this is not included\n },\n ],\n },\n ]}\n >\n {photos.map((photo, i) =>\n photo.type === 'video' ? (\n <AnimatedGalleryVideo\n handleEnd={handleEnd}\n handleLoad={handleLoad}\n handleProgress={handleProgress}\n index={i}\n key={`${photo.uri}-${i}`}\n offsetScale={offsetScale}\n paused={paused}\n previous={selectedIndex > i}\n scale={scale}\n screenHeight={screenHeight}\n selected={selectedIndex === i}\n shouldRender={Math.abs(selectedIndex - i) < 4}\n source={{ uri: photo.uri }}\n style={[\n {\n height: screenHeight * 8,\n marginRight: MARGIN,\n width: screenWidth * 8,\n },\n slide,\n ]}\n translateX={translateX}\n translateY={translateY}\n videoRef={videoRef}\n />\n ) : (\n <AnimatedGalleryImage\n index={i}\n key={`${photo.uri}-${i}`}\n offsetScale={offsetScale}\n photo={photo}\n previous={selectedIndex > i}\n scale={scale}\n screenHeight={screenHeight}\n selected={selectedIndex === i}\n shouldRender={Math.abs(selectedIndex - i) < 4}\n style={[\n {\n height: screenHeight * 8,\n marginRight: MARGIN,\n width: screenWidth * 8,\n },\n slide,\n ]}\n translateX={translateX}\n translateY={translateY}\n />\n ),\n )}\n </Animated.View>\n </Animated.View>\n </PanGestureHandler>\n </Animated.View>\n </PinchGestureHandler>\n </Animated.View>\n </TapGestureHandler>\n </Animated.View>\n </TapGestureHandler>\n <ImageGalleryHeader<StreamChatGenerics>\n opacity={headerFooterOpacity}\n photo={photos[selectedIndex]}\n visible={headerFooterVisible}\n {...imageGalleryCustomComponents?.header}\n />\n <ImageGalleryFooter<StreamChatGenerics>\n duration={duration}\n onPlayPause={handlePlayPause}\n onProgressDrag={onProgressDrag}\n opacity={headerFooterOpacity}\n openGridView={openGridView}\n paused={paused}\n photo={photos[selectedIndex]}\n photoLength={photoLength}\n progress={progress}\n selectedIndex={selectedIndex}\n visible={headerFooterVisible}\n {...imageGalleryCustomComponents?.footer}\n />\n\n <ImageGalleryOverlay\n animatedBottomSheetIndex={animatedBottomSheetIndex}\n closeGridView={closeGridView}\n currentBottomSheetIndex={currentBottomSheetIndex}\n />\n <BottomSheetModalProvider>\n <BottomSheetModal\n animatedIndex={animatedBottomSheetIndex}\n enablePanDownToClose={true}\n handleComponent={() => (\n <ImageGridHandle\n closeGridView={closeGridView}\n {...imageGalleryCustomComponents?.gridHandle}\n />\n )}\n handleHeight={imageGalleryGridHandleHeight ?? 40}\n index={0}\n onChange={(index: number) => setCurrentBottomSheetIndex(index)}\n ref={bottomSheetModalRef}\n snapPoints={imageGalleryGridSnapPoints || snapPoints}\n >\n <ImageGrid\n closeGridView={closeGridView}\n numberOfImageGalleryGridColumns={numberOfImageGalleryGridColumns}\n photos={gridPhotos}\n setImage={setImage}\n {...imageGalleryCustomComponents?.grid}\n />\n </BottomSheetModal>\n </BottomSheetModalProvider>\n </Animated.View>\n );\n};\n\n/**\n * Clamping worklet to clamp the scaling\n */\nexport const clamp = (value: number, lowerBound: number, upperBound: number) => {\n 'worklet';\n return Math.min(Math.max(lowerBound, value), upperBound);\n};\n\nconst styles = StyleSheet.create({\n animatedContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n },\n});\n\nexport type Photo<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n id: string;\n uri: string;\n channelId?: string;\n created_at?: string | Date;\n messageId?: string;\n mime_type?: string;\n original_height?: number;\n original_width?: number;\n type?: string;\n user?: UserResponse<StreamChatGenerics> | null;\n user_id?: string;\n};\n\nImageGallery.displayName = 'ImageGallery{imageGallery}';\n"]}
1
+ {"version":3,"sources":["ImageGallery.tsx"],"names":["isAndroid","Platform","OS","fullScreenHeight","Dimensions","get","height","measuredScreenHeight","screenWidth","halfScreenWidth","MARGIN","HasPinched","IsSwiping","ImageGallery","props","giphyVersion","imageGalleryCustomComponents","imageGalleryGridHandleHeight","imageGalleryGridSnapPoints","numberOfImageGalleryGridColumns","overlayOpacity","paused","setPaused","progress","setProgress","duration","setDuration","theme","white_snow","colors","imageGallery","backgroundColor","pager","slide","gridPhotos","setGridPhotos","overlay","translucentStatusBar","image","images","setImage","statusBarHeight","StatusBar","currentHeight","bottomBarHeight","androidScreenHeightAdjustment","screenHeight","halfScreenHeight","quarterScreenHeight","snapPoints","React","useMemo","bottomSheetModalRef","currentBottomSheetIndex","setCurrentBottomSheetIndex","animatedBottomSheetIndex","screenTranslateY","showScreen","value","easing","Easing","out","ease","Keyboard","dismiss","currentImageHeight","setCurrentImageHeight","selectedIndex","setSelectedIndex","index","headerFooterVisible","doubleTapRef","panRef","pinchRef","singleTapRef","translateX","translateY","offsetScale","scale","translationX","photos","reduce","acc","cur","attachmentImages","attachments","filter","attachment","type","giphy","url","thumb_url","image_url","title_link","og_scrape_url","attachmentPhotos","map","a","imageUrl","giphyURL","channelId","cid","created_at","id","messageId","mime_type","original_height","original_width","uri","width","user","user_id","photoLength","length","updatePosition","newIndex","findIndex","photo","uriForCurrentImage","imageHeight","Math","floor","Image","getSize","onDoubleTap","onPan","onPinch","onSingleTap","headerFooterOpacity","pagerStyle","transform","scaleX","containerBackground","opacity","showScreenStyle","closeGridView","current","close","openGridView","present","videoRef","handleEnd","handleLoad","payload","handleProgress","data","currentTime","seekableDuration","handlePlayPause","status","undefined","seek","replayAsync","state","onProgressDrag","setPositionAsync","StyleSheet","absoluteFillObject","absoluteFill","styles","animatedContainer","i","abs","marginRight","header","footer","gridHandle","grid","clamp","lowerBound","upperBound","min","max","create","alignItems","flexDirection","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport {\n Dimensions,\n Image,\n ImageStyle,\n Keyboard,\n Platform,\n StatusBar,\n StyleSheet,\n ViewStyle,\n} from 'react-native';\n\nimport {\n PanGestureHandler,\n PinchGestureHandler,\n TapGestureHandler,\n} from 'react-native-gesture-handler';\n\nimport Animated, {\n Easing,\n runOnJS,\n runOnUI,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { BottomSheetModal, BottomSheetModalProvider } from '@gorhom/bottom-sheet';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { AnimatedGalleryImage } from './components/AnimatedGalleryImage';\nimport { AnimatedGalleryVideo } from './components/AnimatedGalleryVideo';\nimport {\n ImageGalleryFooter,\n ImageGalleryFooterCustomComponentProps,\n} from './components/ImageGalleryFooter';\nimport {\n ImageGalleryHeader,\n ImageGalleryHeaderCustomComponentProps,\n} from './components/ImageGalleryHeader';\nimport { ImageGalleryOverlay } from './components/ImageGalleryOverlay';\nimport { ImageGalleryGridImageComponents, ImageGrid } from './components/ImageGrid';\nimport {\n ImageGalleryGridHandleCustomComponentProps,\n ImageGridHandle,\n} from './components/ImageGridHandle';\n\nimport { useImageGalleryGestures } from './hooks/useImageGalleryGestures';\n\nimport { useImageGalleryContext } from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n OverlayProviderProps,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n isVideoPackageAvailable,\n VideoPayloadData,\n VideoProgressData,\n VideoType,\n} from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getResizedImageUrl } from '../../utils/getResizedImageUrl';\nimport { getUrlOfImageAttachment } from '../../utils/getUrlOfImageAttachment';\nimport { vh, vw } from '../../utils/utils';\n\nconst isAndroid = Platform.OS === 'android';\nconst fullScreenHeight = Dimensions.get('screen').height;\nconst measuredScreenHeight = vh(100);\nconst screenWidth = vw(100);\nconst halfScreenWidth = vw(50);\nconst MARGIN = 32;\n\nexport enum HasPinched {\n FALSE = 0,\n TRUE,\n}\n\nexport enum IsSwiping {\n UNDETERMINED = 0,\n TRUE,\n FALSE,\n}\n\nexport type ImageGalleryCustomComponents<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Override props for following UI components, which are part of [image gallery](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#gallery-components).\n *\n * - [ImageGalleryFooter](#ImageGalleryFooter)\n *\n * - [ImageGrid](#ImageGrid)\n *\n * - [ImageGridHandle](#ImageGridHandle)\n *\n * - [ImageGalleryHeader](#ImageGalleryHeader)\n *\n * e.g.,\n *\n * ```js\n * {\n * footer: {\n * ShareIcon: CustomShareIconComponent\n * },\n * grid: {\n * avatarComponent: CustomAvatarComponent\n * },\n * gridHandle: {\n * centerComponent: CustomCenterComponent\n * },\n * header: {\n * CloseIcon: CustomCloseButtonComponent\n * },\n * }\n * ```\n * @overrideType object\n */\n imageGalleryCustomComponents?: {\n footer?: ImageGalleryFooterCustomComponentProps<StreamChatGenerics>;\n grid?: ImageGalleryGridImageComponents<StreamChatGenerics>;\n gridHandle?: ImageGalleryGridHandleCustomComponentProps;\n header?: ImageGalleryHeaderCustomComponentProps<StreamChatGenerics>;\n };\n};\n\ntype Props<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n ImageGalleryCustomComponents<StreamChatGenerics> & {\n overlayOpacity: Animated.SharedValue<number>;\n } & Pick<\n OverlayProviderProps<StreamChatGenerics>,\n | 'giphyVersion'\n | 'imageGalleryGridSnapPoints'\n | 'imageGalleryGridHandleHeight'\n | 'numberOfImageGalleryGridColumns'\n >;\n\nexport const ImageGallery = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: Props<StreamChatGenerics>,\n) => {\n const {\n giphyVersion = 'fixed_height',\n imageGalleryCustomComponents,\n imageGalleryGridHandleHeight,\n imageGalleryGridSnapPoints,\n numberOfImageGalleryGridColumns,\n overlayOpacity,\n } = props;\n const [paused, setPaused] = useState<boolean>(false);\n const [progress, setProgress] = useState<number>(0);\n const [duration, setDuration] = useState<number>(0);\n const {\n theme: {\n colors: { white_snow },\n imageGallery: { backgroundColor, pager, slide },\n },\n } = useTheme();\n const [gridPhotos, setGridPhotos] = useState<Photo<StreamChatGenerics>[]>([]);\n const { overlay, translucentStatusBar } = useOverlayContext();\n const { image, images, setImage } = useImageGalleryContext<StreamChatGenerics>();\n\n /**\n * Height constants\n */\n const statusBarHeight = StatusBar.currentHeight ?? 0;\n const bottomBarHeight = fullScreenHeight - measuredScreenHeight - statusBarHeight;\n const androidScreenHeightAdjustment = translucentStatusBar\n ? bottomBarHeight === statusBarHeight || bottomBarHeight < 0\n ? 0\n : statusBarHeight\n : bottomBarHeight === statusBarHeight || bottomBarHeight < 0\n ? -statusBarHeight\n : 0;\n const screenHeight = isAndroid\n ? Dimensions.get('window').height + androidScreenHeightAdjustment\n : vh(100);\n const halfScreenHeight = screenHeight / 2;\n const quarterScreenHeight = screenHeight / 4;\n const snapPoints = React.useMemo(\n () => [(screenHeight * 3) / 4, screenHeight - (imageGalleryGridHandleHeight ?? 40)],\n [],\n );\n\n /**\n * BottomSheetModal ref\n */\n const bottomSheetModalRef = useRef<BottomSheetModal>(null);\n\n /**\n * BottomSheetModal state\n */\n const [currentBottomSheetIndex, setCurrentBottomSheetIndex] = useState(0);\n const animatedBottomSheetIndex = useSharedValue(0);\n\n /**\n * Fade animation for screen, it is always rendered with pointerEvents\n * set to none for fast opening\n */\n const screenTranslateY = useSharedValue(screenHeight);\n const showScreen = () => {\n 'worklet';\n screenTranslateY.value = withTiming(0, {\n duration: 250,\n easing: Easing.out(Easing.ease),\n });\n };\n\n /**\n * Run the fade animation on visible change\n */\n useEffect(() => {\n Keyboard.dismiss();\n showScreen();\n }, []);\n\n /**\n * Image height from URL or default to full screen height\n */\n const [currentImageHeight, setCurrentImageHeight] = useState<number>(screenHeight);\n\n /**\n * JS and UI index values, the JS follows the UI but is needed\n * for rendering the virtualized image list\n */\n const [selectedIndex, setSelectedIndex] = useState(0);\n const index = useSharedValue(0);\n\n /**\n * Header visible value for animating in out\n */\n const headerFooterVisible = useSharedValue(1);\n\n /**\n * Gesture handler refs\n */\n const doubleTapRef = useRef<TapGestureHandler>(null);\n const panRef = useRef<PanGestureHandler>(null);\n const pinchRef = useRef<PinchGestureHandler>(null);\n const singleTapRef = useRef<TapGestureHandler>(null);\n\n /**\n * Shared values for movement\n */\n const translateX = useSharedValue(0);\n const translateY = useSharedValue(0);\n const offsetScale = useSharedValue(1);\n const scale = useSharedValue(1);\n const translationX = useSharedValue(0);\n\n /**\n * Photos array created from all currently available\n * photo attachments\n */\n\n const photos = images.reduce((acc: Photo<StreamChatGenerics>[], cur) => {\n const attachmentImages =\n cur.attachments?.filter(\n (attachment) =>\n (attachment.type === 'giphy' &&\n (attachment.giphy?.[giphyVersion]?.url ||\n attachment.thumb_url ||\n attachment.image_url)) ||\n (attachment.type === 'image' &&\n !attachment.title_link &&\n !attachment.og_scrape_url &&\n getUrlOfImageAttachment(attachment)) ||\n (isVideoPackageAvailable() && attachment.type === 'video'),\n ) || [];\n\n const attachmentPhotos = attachmentImages.map((a) => {\n const imageUrl = getUrlOfImageAttachment(a) as string;\n const giphyURL = a.giphy?.[giphyVersion]?.url || a.thumb_url || a.image_url;\n\n return {\n channelId: cur.cid,\n created_at: cur.created_at,\n id: `photoId-${cur.id}-${imageUrl}`,\n messageId: cur.id,\n mime_type: a.type === 'giphy' ? 'image/gif' : a.mime_type,\n original_height: a.original_height,\n original_width: a.original_width,\n type: a.type,\n uri:\n a.type === 'giphy'\n ? giphyURL\n : getResizedImageUrl({\n height: screenHeight,\n url: imageUrl,\n width: screenWidth,\n }),\n user: cur.user,\n user_id: cur.user_id,\n };\n });\n\n return [...acc, ...attachmentPhotos] as Photo<StreamChatGenerics>[];\n }, []);\n\n /**\n * Photos length needs to be kept as a const here so if the length\n * changes it causes the pan gesture handler function to refresh. This\n * does not work if the calculation for the length of the array is left\n * inside the gesture handler as it will have an array as a dependency\n */\n const photoLength = photos.length;\n\n /**\n * Set selected photo when changed via pressing in the message list\n */\n useEffect(() => {\n const updatePosition = (newIndex: number) => {\n 'worklet';\n\n if (newIndex > -1) {\n index.value = newIndex;\n translationX.value = -(screenWidth + MARGIN) * newIndex;\n runOnJS(setSelectedIndex)(newIndex);\n }\n };\n\n const newIndex = photos.findIndex(\n (photo) => photo.messageId === image?.messageId && photo.uri === image?.url,\n );\n\n if (photoLength > 1) {\n setPaused(true);\n }\n\n runOnUI(updatePosition)(newIndex);\n }, [image, photoLength]);\n\n /**\n * Image heights are not provided and therefore need to be calculated.\n * We start by allowing the image to be the full height then reduce it\n * to the proper scaled height based on the width being restricted to the\n * screen width when the dimensions are received.\n */\n const uriForCurrentImage = photos[selectedIndex]?.uri;\n useEffect(() => {\n setCurrentImageHeight(screenHeight);\n const photo = photos[index.value];\n const height = photo?.original_height;\n const width = photo?.original_width;\n\n if (height && width) {\n const imageHeight = Math.floor(height * (screenWidth / width));\n setCurrentImageHeight(imageHeight > screenHeight ? screenHeight : imageHeight);\n } else if (photo?.uri) {\n if (photo.type === 'image') {\n Image.getSize(photo.uri, (width, height) => {\n const imageHeight = Math.floor(height * (screenWidth / width));\n setCurrentImageHeight(imageHeight > screenHeight ? screenHeight : imageHeight);\n });\n }\n }\n }, [uriForCurrentImage]);\n\n const { onDoubleTap, onPan, onPinch, onSingleTap } = useImageGalleryGestures({\n currentImageHeight,\n halfScreenHeight,\n halfScreenWidth,\n headerFooterVisible,\n offsetScale,\n overlayOpacity,\n photoLength,\n scale,\n screenHeight,\n screenWidth,\n setSelectedIndex,\n translateX,\n translateY,\n translationX,\n });\n\n /**\n * If the header is visible we scale down the opacity of it as the\n * image is swiped downward\n */\n const headerFooterOpacity = useDerivedValue(\n () =>\n currentImageHeight * scale.value < screenHeight && translateY.value > 0\n ? 1 - translateY.value / quarterScreenHeight\n : currentImageHeight * scale.value > screenHeight &&\n translateY.value > (currentImageHeight / 2) * scale.value - halfScreenHeight\n ? 1 -\n (translateY.value - ((currentImageHeight / 2) * scale.value - halfScreenHeight)) /\n quarterScreenHeight\n : 1,\n [currentImageHeight],\n );\n\n /**\n * This transition and scaleX reverse lets use scroll left\n */\n const pagerStyle = useAnimatedStyle<ImageStyle>(\n () => ({\n transform: [\n { scaleX: -1 },\n {\n translateX: translationX.value,\n },\n ],\n }),\n [],\n );\n\n /**\n * Simple background color animation on Y movement\n */\n const containerBackground = useAnimatedStyle<ViewStyle>(\n () => ({\n backgroundColor: backgroundColor || white_snow,\n opacity: headerFooterOpacity.value,\n }),\n [headerFooterOpacity],\n );\n\n /**\n * Show screen style as component is always rendered we hide it\n * down and up and set opacity to 0 for good measure\n */\n const showScreenStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n transform: [\n {\n translateY: screenTranslateY.value,\n },\n ],\n }),\n [],\n );\n\n /**\n * Functions toclose BottomSheetModal with image grid\n */\n const closeGridView = () => {\n if (bottomSheetModalRef.current?.close) {\n bottomSheetModalRef.current.close();\n setGridPhotos([]);\n }\n };\n\n /**\n * Function to open BottomSheetModal with image grid\n */\n const openGridView = () => {\n if (bottomSheetModalRef.current?.present) {\n bottomSheetModalRef.current.present();\n setGridPhotos(photos);\n }\n };\n\n const videoRef = useRef<VideoType>(null);\n\n const handleEnd = () => {\n setPaused(true);\n setProgress(1);\n };\n\n const handleLoad = (payload: VideoPayloadData) => {\n if (payload.duration) setDuration(payload.duration);\n };\n\n const handleProgress = (data: VideoProgressData) => {\n if (data.currentTime && data.seekableDuration) {\n setProgress(data.currentTime / data.seekableDuration);\n }\n };\n\n const handlePlayPause = (status?: boolean) => {\n if (status === undefined) {\n // React Native Video for RN CLI has seek as an API to move to a particular location in the video\n if (progress === 1 && videoRef.current && videoRef.current.seek) {\n videoRef.current.seek(0);\n }\n // Expo AV for Expo has replayAsync as an API to move to a starting of the video\n if (progress === 1 && videoRef.current && videoRef.current.replayAsync) {\n videoRef.current.replayAsync();\n }\n\n setPaused((state) => !state);\n } else {\n setPaused(status);\n }\n };\n\n const onProgressDrag = (progress: number) => {\n // React Native Video for RN CLI has seek as an API to move to a particular location in the video\n if (videoRef.current && videoRef.current.seek) {\n videoRef.current.seek(progress);\n }\n\n // Expo AV for Expo has setPositionAsync as an API to move to a particular location of the video\n if (videoRef.current && videoRef.current.setPositionAsync) {\n videoRef.current.setPositionAsync(progress * 1000);\n }\n };\n\n return (\n <Animated.View\n accessibilityLabel='Image Gallery'\n pointerEvents={'auto'}\n style={[StyleSheet.absoluteFillObject, showScreenStyle]}\n >\n <Animated.View style={[StyleSheet.absoluteFillObject, containerBackground]} />\n <TapGestureHandler\n minPointers={1}\n numberOfTaps={1}\n onGestureEvent={onSingleTap}\n ref={singleTapRef}\n waitFor={[panRef, pinchRef, doubleTapRef]}\n >\n <Animated.View style={StyleSheet.absoluteFillObject}>\n <TapGestureHandler\n maxDeltaX={8}\n maxDeltaY={8}\n maxDist={8}\n minPointers={1}\n numberOfTaps={2}\n onGestureEvent={onDoubleTap}\n ref={doubleTapRef}\n >\n <Animated.View style={StyleSheet.absoluteFillObject}>\n <PinchGestureHandler\n onGestureEvent={onPinch}\n ref={pinchRef}\n simultaneousHandlers={[panRef]}\n >\n <Animated.View style={StyleSheet.absoluteFill}>\n <PanGestureHandler\n enabled={overlay === 'gallery'}\n maxPointers={isAndroid ? undefined : 1}\n minDist={10}\n onGestureEvent={onPan}\n ref={panRef}\n simultaneousHandlers={[pinchRef]}\n >\n <Animated.View style={StyleSheet.absoluteFill}>\n <Animated.View\n style={[\n styles.animatedContainer,\n pagerStyle,\n pager,\n {\n transform: [\n { scaleX: -1 }, // Also only here for opening, wrong direction when not included\n {\n translateX: translationX.value, // Only here for opening, wrong index when this is not included\n },\n ],\n },\n ]}\n >\n {photos.map((photo, i) =>\n photo.type === 'video' ? (\n <AnimatedGalleryVideo\n handleEnd={handleEnd}\n handleLoad={handleLoad}\n handleProgress={handleProgress}\n index={i}\n key={`${photo.uri}-${i}`}\n offsetScale={offsetScale}\n paused={paused}\n previous={selectedIndex > i}\n scale={scale}\n screenHeight={screenHeight}\n selected={selectedIndex === i}\n shouldRender={Math.abs(selectedIndex - i) < 4}\n source={{ uri: photo.uri }}\n style={[\n {\n height: screenHeight * 8,\n marginRight: MARGIN,\n width: screenWidth * 8,\n },\n slide,\n ]}\n translateX={translateX}\n translateY={translateY}\n videoRef={videoRef}\n />\n ) : (\n <AnimatedGalleryImage\n accessibilityLabel={'Image Item'}\n index={i}\n key={`${photo.uri}-${i}`}\n offsetScale={offsetScale}\n photo={photo}\n previous={selectedIndex > i}\n scale={scale}\n screenHeight={screenHeight}\n selected={selectedIndex === i}\n shouldRender={Math.abs(selectedIndex - i) < 4}\n style={[\n {\n height: screenHeight * 8,\n marginRight: MARGIN,\n width: screenWidth * 8,\n },\n slide,\n ]}\n translateX={translateX}\n translateY={translateY}\n />\n ),\n )}\n </Animated.View>\n </Animated.View>\n </PanGestureHandler>\n </Animated.View>\n </PinchGestureHandler>\n </Animated.View>\n </TapGestureHandler>\n </Animated.View>\n </TapGestureHandler>\n <ImageGalleryHeader<StreamChatGenerics>\n opacity={headerFooterOpacity}\n photo={photos[selectedIndex]}\n visible={headerFooterVisible}\n {...imageGalleryCustomComponents?.header}\n />\n <ImageGalleryFooter<StreamChatGenerics>\n accessibilityLabel={'Image Gallery Footer'}\n duration={duration}\n onPlayPause={handlePlayPause}\n onProgressDrag={onProgressDrag}\n opacity={headerFooterOpacity}\n openGridView={openGridView}\n paused={paused}\n photo={photos[selectedIndex]}\n photoLength={photoLength}\n progress={progress}\n selectedIndex={selectedIndex}\n visible={headerFooterVisible}\n {...imageGalleryCustomComponents?.footer}\n />\n\n <ImageGalleryOverlay\n animatedBottomSheetIndex={animatedBottomSheetIndex}\n closeGridView={closeGridView}\n currentBottomSheetIndex={currentBottomSheetIndex}\n />\n <BottomSheetModalProvider>\n <BottomSheetModal\n animatedIndex={animatedBottomSheetIndex}\n enablePanDownToClose={true}\n handleComponent={() => (\n <ImageGridHandle\n closeGridView={closeGridView}\n {...imageGalleryCustomComponents?.gridHandle}\n />\n )}\n handleHeight={imageGalleryGridHandleHeight ?? 40}\n index={0}\n onChange={(index: number) => setCurrentBottomSheetIndex(index)}\n ref={bottomSheetModalRef}\n snapPoints={imageGalleryGridSnapPoints || snapPoints}\n >\n <ImageGrid\n closeGridView={closeGridView}\n numberOfImageGalleryGridColumns={numberOfImageGalleryGridColumns}\n photos={gridPhotos}\n setImage={setImage}\n {...imageGalleryCustomComponents?.grid}\n />\n </BottomSheetModal>\n </BottomSheetModalProvider>\n </Animated.View>\n );\n};\n\n/**\n * Clamping worklet to clamp the scaling\n */\nexport const clamp = (value: number, lowerBound: number, upperBound: number) => {\n 'worklet';\n return Math.min(Math.max(lowerBound, value), upperBound);\n};\n\nconst styles = StyleSheet.create({\n animatedContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n },\n});\n\nexport type Photo<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n id: string;\n uri: string;\n channelId?: string;\n created_at?: string | Date;\n messageId?: string;\n mime_type?: string;\n original_height?: number;\n original_width?: number;\n type?: string;\n user?: UserResponse<StreamChatGenerics> | null;\n user_id?: string;\n};\n\nImageGallery.displayName = 'ImageGallery{imageGallery}';\n"]}
@@ -27,7 +27,8 @@ var halfScreenWidth = (0, _utils.vw)(50);
27
27
  var oneEighth = 1 / 8;
28
28
 
29
29
  var AnimatedGalleryImage = _react["default"].memo(function (props) {
30
- var index = props.index,
30
+ var accessibilityLabel = props.accessibilityLabel,
31
+ index = props.index,
31
32
  offsetScale = props.offsetScale,
32
33
  photo = props.photo,
33
34
  previous = props.previous,
@@ -64,13 +65,14 @@ var AnimatedGalleryImage = _react["default"].memo(function (props) {
64
65
  __self: _this,
65
66
  __source: {
66
67
  fileName: _jsxFileName,
67
- lineNumber: 81,
68
+ lineNumber: 83,
68
69
  columnNumber: 14
69
70
  }
70
71
  });
71
72
  }
72
73
 
73
74
  return _react["default"].createElement(_reactNativeReanimated["default"].Image, {
75
+ accessibilityLabel: accessibilityLabel,
74
76
  resizeMode: 'contain',
75
77
  source: {
76
78
  uri: photo.uri
@@ -89,7 +91,7 @@ var AnimatedGalleryImage = _react["default"].memo(function (props) {
89
91
  __self: _this,
90
92
  __source: {
91
93
  fileName: _jsxFileName,
92
- lineNumber: 85,
94
+ lineNumber: 87,
93
95
  columnNumber: 7
94
96
  }
95
97
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["AnimatedGalleryImage.tsx"],"names":["screenWidth","halfScreenWidth","oneEighth","AnimatedGalleryImage","React","memo","props","index","offsetScale","photo","previous","scale","screenHeight","selected","shouldRender","style","translateX","translateY","AnimatedGalleryImageStyle","xScaleOffset","yScaleOffset","transform","value","scaleX","uri","prevProps","nextProps","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport type { ImageStyle, StyleProp } from 'react-native';\nimport Animated, { useAnimatedStyle } from 'react-native-reanimated';\n\nimport { vw } from '../../../utils/utils';\n\nconst screenWidth = vw(100);\nconst halfScreenWidth = vw(50);\nconst oneEighth = 1 / 8;\n\ntype Props = {\n index: number;\n offsetScale: Animated.SharedValue<number>;\n photo: { uri: string };\n previous: boolean;\n scale: Animated.SharedValue<number>;\n screenHeight: number;\n selected: boolean;\n shouldRender: boolean;\n translateX: Animated.SharedValue<number>;\n translateY: Animated.SharedValue<number>;\n style?: StyleProp<ImageStyle>;\n};\n\nexport const AnimatedGalleryImage: React.FC<Props> = React.memo(\n (props) => {\n const {\n index,\n offsetScale,\n photo,\n previous,\n scale,\n screenHeight,\n selected,\n shouldRender,\n style,\n translateX,\n translateY,\n } = props;\n\n /**\n * The current image, designated by selected is scaled and translated\n * based on the gestures. The rendered images before and after the\n * currently selected image also translated in X if the scale is\n * greater than one so they keep the same distance from the selected\n * image as it is scaled. If the scale is less than one they stay in\n * place as to not come into the screen when the image shrinks.\n */\n const AnimatedGalleryImageStyle = useAnimatedStyle<ImageStyle>(() => {\n const xScaleOffset = -7 * screenWidth * (0.5 + index);\n const yScaleOffset = -screenHeight * 3.5;\n return {\n transform: [\n {\n translateX: selected\n ? translateX.value + xScaleOffset\n : scale.value < 1 || scale.value !== offsetScale.value\n ? xScaleOffset\n : previous\n ? translateX.value - halfScreenWidth * (scale.value - 1) + xScaleOffset\n : translateX.value + halfScreenWidth * (scale.value - 1) + xScaleOffset,\n },\n {\n translateY: selected ? translateY.value + yScaleOffset : yScaleOffset,\n },\n {\n scale: selected ? scale.value / 8 : oneEighth,\n },\n { scaleX: -1 },\n ],\n };\n }, [previous, selected]);\n\n /**\n * An empty view is rendered for images not close to the currently\n * selected in order to maintain spacing while reducing the image\n * load on memory.\n */\n if (!shouldRender) {\n return <View style={[style, { transform: [{ scale: oneEighth }] }]} />;\n }\n\n return (\n <Animated.Image\n resizeMode={'contain'}\n source={{ uri: photo.uri }}\n style={[\n style,\n AnimatedGalleryImageStyle,\n {\n transform: [\n { scaleX: -1 },\n { translateY: -screenHeight * 3.5 },\n {\n translateX: -translateX.value + 7 * screenWidth * (0.5 + index),\n },\n { scale: oneEighth },\n ],\n },\n ]}\n />\n );\n },\n (prevProps, nextProps) => {\n if (\n prevProps.selected === nextProps.selected &&\n prevProps.shouldRender === nextProps.shouldRender &&\n prevProps.photo.uri === nextProps.photo.uri &&\n prevProps.previous === nextProps.previous &&\n prevProps.index === nextProps.index &&\n prevProps.screenHeight === nextProps.screenHeight\n ) {\n return true;\n }\n return false;\n },\n);\n\nAnimatedGalleryImage.displayName = 'AnimatedGalleryImage';\n"]}
1
+ {"version":3,"sources":["AnimatedGalleryImage.tsx"],"names":["screenWidth","halfScreenWidth","oneEighth","AnimatedGalleryImage","React","memo","props","accessibilityLabel","index","offsetScale","photo","previous","scale","screenHeight","selected","shouldRender","style","translateX","translateY","AnimatedGalleryImageStyle","xScaleOffset","yScaleOffset","transform","value","scaleX","uri","prevProps","nextProps","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport type { ImageStyle, StyleProp } from 'react-native';\nimport Animated, { useAnimatedStyle } from 'react-native-reanimated';\n\nimport { vw } from '../../../utils/utils';\n\nconst screenWidth = vw(100);\nconst halfScreenWidth = vw(50);\nconst oneEighth = 1 / 8;\n\ntype Props = {\n accessibilityLabel: string;\n index: number;\n offsetScale: Animated.SharedValue<number>;\n photo: { uri: string };\n previous: boolean;\n scale: Animated.SharedValue<number>;\n screenHeight: number;\n selected: boolean;\n shouldRender: boolean;\n translateX: Animated.SharedValue<number>;\n translateY: Animated.SharedValue<number>;\n style?: StyleProp<ImageStyle>;\n};\n\nexport const AnimatedGalleryImage: React.FC<Props> = React.memo(\n (props) => {\n const {\n accessibilityLabel,\n index,\n offsetScale,\n photo,\n previous,\n scale,\n screenHeight,\n selected,\n shouldRender,\n style,\n translateX,\n translateY,\n } = props;\n\n /**\n * The current image, designated by selected is scaled and translated\n * based on the gestures. The rendered images before and after the\n * currently selected image also translated in X if the scale is\n * greater than one so they keep the same distance from the selected\n * image as it is scaled. If the scale is less than one they stay in\n * place as to not come into the screen when the image shrinks.\n */\n const AnimatedGalleryImageStyle = useAnimatedStyle<ImageStyle>(() => {\n const xScaleOffset = -7 * screenWidth * (0.5 + index);\n const yScaleOffset = -screenHeight * 3.5;\n return {\n transform: [\n {\n translateX: selected\n ? translateX.value + xScaleOffset\n : scale.value < 1 || scale.value !== offsetScale.value\n ? xScaleOffset\n : previous\n ? translateX.value - halfScreenWidth * (scale.value - 1) + xScaleOffset\n : translateX.value + halfScreenWidth * (scale.value - 1) + xScaleOffset,\n },\n {\n translateY: selected ? translateY.value + yScaleOffset : yScaleOffset,\n },\n {\n scale: selected ? scale.value / 8 : oneEighth,\n },\n { scaleX: -1 },\n ],\n };\n }, [previous, selected]);\n\n /**\n * An empty view is rendered for images not close to the currently\n * selected in order to maintain spacing while reducing the image\n * load on memory.\n */\n if (!shouldRender) {\n return <View style={[style, { transform: [{ scale: oneEighth }] }]} />;\n }\n\n return (\n <Animated.Image\n accessibilityLabel={accessibilityLabel}\n resizeMode={'contain'}\n source={{ uri: photo.uri }}\n style={[\n style,\n AnimatedGalleryImageStyle,\n {\n transform: [\n { scaleX: -1 },\n { translateY: -screenHeight * 3.5 },\n {\n translateX: -translateX.value + 7 * screenWidth * (0.5 + index),\n },\n { scale: oneEighth },\n ],\n },\n ]}\n />\n );\n },\n (prevProps, nextProps) => {\n if (\n prevProps.selected === nextProps.selected &&\n prevProps.shouldRender === nextProps.shouldRender &&\n prevProps.photo.uri === nextProps.photo.uri &&\n prevProps.previous === nextProps.previous &&\n prevProps.index === nextProps.index &&\n prevProps.screenHeight === nextProps.screenHeight\n ) {\n return true;\n }\n return false;\n },\n);\n\nAnimatedGalleryImage.displayName = 'AnimatedGalleryImage';\n"]}
@@ -135,6 +135,7 @@ var AnimatedGalleryVideo = _react["default"].memo(function (props) {
135
135
 
136
136
  if (!shouldRender) {
137
137
  return _react["default"].createElement(_reactNative.View, {
138
+ accessibilityLabel: "Empty View Image Gallery",
138
139
  style: [style, {
139
140
  transform: [{
140
141
  scale: oneEighth
@@ -143,13 +144,14 @@ var AnimatedGalleryVideo = _react["default"].memo(function (props) {
143
144
  __self: _this,
144
145
  __source: {
145
146
  fileName: _jsxFileName,
146
- lineNumber: 157,
147
- columnNumber: 14
147
+ lineNumber: 158,
148
+ columnNumber: 9
148
149
  }
149
150
  });
150
151
  }
151
152
 
152
153
  return _react["default"].createElement(_reactNativeReanimated["default"].View, {
154
+ accessibilityLabel: "Image Gallery Video",
153
155
  style: [style, animatedViewStyles, {
154
156
  transform: [{
155
157
  scaleX: -1
@@ -164,7 +166,7 @@ var AnimatedGalleryVideo = _react["default"].memo(function (props) {
164
166
  __self: _this,
165
167
  __source: {
166
168
  fileName: _jsxFileName,
167
- lineNumber: 161,
169
+ lineNumber: 166,
168
170
  columnNumber: 7
169
171
  }
170
172
  }, (0, _native.isVideoPackageAvailable)() && _react["default"].createElement(_native.Video, {
@@ -177,15 +179,17 @@ var AnimatedGalleryVideo = _react["default"].memo(function (props) {
177
179
  paused: paused,
178
180
  resizeMode: "contain",
179
181
  style: style,
182
+ testID: "video-player",
180
183
  uri: source.uri,
181
184
  videoRef: videoRef,
182
185
  __self: _this,
183
186
  __source: {
184
187
  fileName: _jsxFileName,
185
- lineNumber: 178,
188
+ lineNumber: 184,
186
189
  columnNumber: 11
187
190
  }
188
191
  }), _react["default"].createElement(_reactNativeReanimated["default"].View, {
192
+ accessibilityLabel: "Spinner",
189
193
  style: [styles.activityIndicator, {
190
194
  opacity: opacity,
191
195
  transform: [{
@@ -199,7 +203,7 @@ var AnimatedGalleryVideo = _react["default"].memo(function (props) {
199
203
  __self: _this,
200
204
  __source: {
201
205
  fileName: _jsxFileName,
202
- lineNumber: 192,
206
+ lineNumber: 199,
203
207
  columnNumber: 9
204
208
  }
205
209
  }, _react["default"].createElement(_Spinner.Spinner, {
@@ -208,7 +212,7 @@ var AnimatedGalleryVideo = _react["default"].memo(function (props) {
208
212
  __self: _this,
209
213
  __source: {
210
214
  fileName: _jsxFileName,
211
- lineNumber: 205,
215
+ lineNumber: 213,
212
216
  columnNumber: 11
213
217
  }
214
218
  })));