stream-chat-react-native-core 4.6.0 → 4.7.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 (206) hide show
  1. package/lib/commonjs/components/Attachment/Attachment.js +22 -13
  2. package/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
  3. package/lib/commonjs/components/Attachment/Gallery.js +72 -37
  4. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  5. package/lib/commonjs/components/Attachment/VideoThumbnail.js +83 -0
  6. package/lib/commonjs/components/Attachment/VideoThumbnail.js.map +1 -0
  7. package/lib/commonjs/components/Attachment/hooks/useGoToURL.js +1 -1
  8. package/lib/commonjs/components/Attachment/hooks/useGoToURL.js.map +1 -1
  9. package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnail.js +1 -0
  10. package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnail.js.map +1 -1
  11. package/lib/commonjs/components/Attachment/utils/getAspectRatio.js +5 -5
  12. package/lib/commonjs/components/Attachment/utils/getAspectRatio.js.map +1 -1
  13. package/lib/commonjs/components/Channel/Channel.js +19 -14
  14. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  15. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +4 -2
  16. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  17. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +43 -28
  18. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  19. package/lib/commonjs/components/ImageGallery/ImageGallery.js +167 -345
  20. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  21. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +4 -4
  22. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  23. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js +225 -0
  24. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -0
  25. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +102 -40
  26. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  27. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +145 -0
  28. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -0
  29. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +31 -34
  30. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
  31. package/lib/commonjs/components/ImageGallery/components/ProgressControl.js +153 -0
  32. package/lib/commonjs/components/ImageGallery/components/ProgressControl.js.map +1 -0
  33. package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js +373 -0
  34. package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -0
  35. package/lib/commonjs/components/Message/Message.js +23 -13
  36. package/lib/commonjs/components/Message/Message.js.map +1 -1
  37. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +58 -33
  38. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
  39. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js +4 -2
  40. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  41. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +25 -23
  42. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
  43. package/lib/commonjs/components/Reply/Reply.js +32 -12
  44. package/lib/commonjs/components/Reply/Reply.js.map +1 -1
  45. package/lib/commonjs/components/Spinner/Spinner.js +12 -4
  46. package/lib/commonjs/components/Spinner/Spinner.js.map +1 -1
  47. package/lib/commonjs/components/index.js +26 -0
  48. package/lib/commonjs/components/index.js.map +1 -1
  49. package/lib/commonjs/contexts/messageContext/MessageContext.js +2 -2
  50. package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
  51. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js +2 -2
  52. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  53. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
  54. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  55. package/lib/commonjs/contexts/themeContext/utils/theme.js +10 -1
  56. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  57. package/lib/commonjs/icons/Pause.js +61 -0
  58. package/lib/commonjs/icons/Pause.js.map +1 -0
  59. package/lib/commonjs/icons/Play.js +42 -0
  60. package/lib/commonjs/icons/Play.js.map +1 -0
  61. package/lib/commonjs/icons/index.js +26 -0
  62. package/lib/commonjs/icons/index.js.map +1 -1
  63. package/lib/commonjs/mock-builders/api/queryMembers.js +98 -1
  64. package/lib/commonjs/mock-builders/api/queryMembers.js.map +1 -1
  65. package/lib/commonjs/native.js +7 -1
  66. package/lib/commonjs/native.js.map +1 -1
  67. package/lib/commonjs/utils/getUrlOfImageAttachment.js +1 -1
  68. package/lib/commonjs/utils/getUrlOfImageAttachment.js.map +1 -1
  69. package/lib/commonjs/version.json +1 -1
  70. package/lib/module/components/Attachment/Attachment.js +22 -13
  71. package/lib/module/components/Attachment/Attachment.js.map +1 -1
  72. package/lib/module/components/Attachment/Gallery.js +72 -37
  73. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  74. package/lib/module/components/Attachment/VideoThumbnail.js +83 -0
  75. package/lib/module/components/Attachment/VideoThumbnail.js.map +1 -0
  76. package/lib/module/components/Attachment/hooks/useGoToURL.js +1 -1
  77. package/lib/module/components/Attachment/hooks/useGoToURL.js.map +1 -1
  78. package/lib/module/components/Attachment/utils/buildGallery/buildThumbnail.js +1 -0
  79. package/lib/module/components/Attachment/utils/buildGallery/buildThumbnail.js.map +1 -1
  80. package/lib/module/components/Attachment/utils/getAspectRatio.js +5 -5
  81. package/lib/module/components/Attachment/utils/getAspectRatio.js.map +1 -1
  82. package/lib/module/components/Channel/Channel.js +19 -14
  83. package/lib/module/components/Channel/Channel.js.map +1 -1
  84. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +4 -2
  85. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  86. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +43 -28
  87. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  88. package/lib/module/components/ImageGallery/ImageGallery.js +167 -345
  89. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  90. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +4 -4
  91. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  92. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js +225 -0
  93. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -0
  94. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +102 -40
  95. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  96. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +145 -0
  97. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -0
  98. package/lib/module/components/ImageGallery/components/ImageGrid.js +31 -34
  99. package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
  100. package/lib/module/components/ImageGallery/components/ProgressControl.js +153 -0
  101. package/lib/module/components/ImageGallery/components/ProgressControl.js.map +1 -0
  102. package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js +373 -0
  103. package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -0
  104. package/lib/module/components/Message/Message.js +23 -13
  105. package/lib/module/components/Message/Message.js.map +1 -1
  106. package/lib/module/components/Message/MessageSimple/MessageContent.js +58 -33
  107. package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
  108. package/lib/module/components/Message/hooks/useCreateMessageContext.js +4 -2
  109. package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  110. package/lib/module/components/MessageOverlay/MessageOverlay.js +25 -23
  111. package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
  112. package/lib/module/components/Reply/Reply.js +32 -12
  113. package/lib/module/components/Reply/Reply.js.map +1 -1
  114. package/lib/module/components/Spinner/Spinner.js +12 -4
  115. package/lib/module/components/Spinner/Spinner.js.map +1 -1
  116. package/lib/module/components/index.js +26 -0
  117. package/lib/module/components/index.js.map +1 -1
  118. package/lib/module/contexts/messageContext/MessageContext.js +2 -2
  119. package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
  120. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js +2 -2
  121. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  122. package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
  123. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  124. package/lib/module/contexts/themeContext/utils/theme.js +10 -1
  125. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  126. package/lib/module/icons/Pause.js +61 -0
  127. package/lib/module/icons/Pause.js.map +1 -0
  128. package/lib/module/icons/Play.js +42 -0
  129. package/lib/module/icons/Play.js.map +1 -0
  130. package/lib/module/icons/index.js +26 -0
  131. package/lib/module/icons/index.js.map +1 -1
  132. package/lib/module/mock-builders/api/queryMembers.js +98 -1
  133. package/lib/module/mock-builders/api/queryMembers.js.map +1 -1
  134. package/lib/module/native.js +7 -1
  135. package/lib/module/native.js.map +1 -1
  136. package/lib/module/utils/getUrlOfImageAttachment.js +1 -1
  137. package/lib/module/utils/getUrlOfImageAttachment.js.map +1 -1
  138. package/lib/module/version.json +1 -1
  139. package/lib/typescript/components/Attachment/Gallery.d.ts +1 -1
  140. package/lib/typescript/components/Attachment/VideoThumbnail.d.ts +4 -0
  141. package/lib/typescript/components/Attachment/utils/buildGallery/types.d.ts +1 -0
  142. package/lib/typescript/components/Attachment/utils/getAspectRatio.d.ts +1 -1
  143. package/lib/typescript/components/Channel/Channel.d.ts +1 -1
  144. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
  145. package/lib/typescript/components/ChannelPreview/hooks/__tests__/useChannelPreviewDisplayName.test.d.ts +1 -0
  146. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayName.d.ts +4 -4
  147. package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +2 -0
  148. package/lib/typescript/components/ImageGallery/components/AnimatedGalleryVideo.d.ts +27 -0
  149. package/lib/typescript/components/ImageGallery/components/ImageGalleryFooter.d.ts +18 -2
  150. package/lib/typescript/components/ImageGallery/components/ImageGalleryVideoControl.d.ts +3 -0
  151. package/lib/typescript/components/ImageGallery/components/ProgressControl.d.ts +5 -0
  152. package/lib/typescript/components/ImageGallery/hooks/useImageGalleryGestures.d.ts +36 -0
  153. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts +1 -1
  154. package/lib/typescript/components/Spinner/Spinner.d.ts +7 -1
  155. package/lib/typescript/components/index.d.ts +2 -0
  156. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +3 -1
  157. package/lib/typescript/contexts/messageOverlayContext/MessageOverlayContext.d.ts +1 -0
  158. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +2 -0
  159. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +9 -0
  160. package/lib/typescript/icons/Pause.d.ts +3 -0
  161. package/lib/typescript/icons/Play.d.ts +3 -0
  162. package/lib/typescript/icons/index.d.ts +2 -0
  163. package/lib/typescript/mock-builders/api/queryMembers.d.ts +161 -0
  164. package/lib/typescript/mock-builders/api/utils.d.ts +7 -0
  165. package/lib/typescript/mock-builders/generator/user.d.ts +30 -0
  166. package/lib/typescript/mock-builders/mock.d.ts +3 -0
  167. package/lib/typescript/native.d.ts +66 -1
  168. package/package.json +1 -1
  169. package/src/components/Attachment/Attachment.tsx +11 -7
  170. package/src/components/Attachment/Gallery.tsx +75 -36
  171. package/src/components/Attachment/VideoThumbnail.tsx +45 -0
  172. package/src/components/Attachment/hooks/useGoToURL.ts +1 -1
  173. package/src/components/Attachment/utils/buildGallery/buildThumbnail.ts +1 -0
  174. package/src/components/Attachment/utils/buildGallery/types.ts +1 -0
  175. package/src/components/Attachment/utils/getAspectRatio.ts +7 -5
  176. package/src/components/Channel/Channel.tsx +4 -0
  177. package/src/components/Channel/hooks/useCreateMessagesContext.ts +2 -0
  178. package/src/components/ChannelPreview/hooks/__tests__/useChannelPreviewDisplayName.test.tsx +83 -0
  179. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayName.ts +43 -26
  180. package/src/components/ImageGallery/ImageGallery.tsx +145 -667
  181. package/src/components/ImageGallery/components/AnimatedGalleryImage.tsx +4 -4
  182. package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx +224 -0
  183. package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +114 -19
  184. package/src/components/ImageGallery/components/ImageGalleryVideoControl.tsx +103 -0
  185. package/src/components/ImageGallery/components/ImageGrid.tsx +12 -25
  186. package/src/components/ImageGallery/components/ProgressControl.tsx +107 -0
  187. package/src/components/ImageGallery/hooks/useImageGalleryGestures.tsx +722 -0
  188. package/src/components/Message/Message.tsx +10 -3
  189. package/src/components/Message/MessageSimple/MessageContent.tsx +50 -16
  190. package/src/components/Message/hooks/useCreateMessageContext.ts +2 -0
  191. package/src/components/MessageOverlay/MessageOverlay.tsx +2 -0
  192. package/src/components/Reply/Reply.tsx +36 -23
  193. package/src/components/Spinner/Spinner.tsx +11 -4
  194. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +0 -12
  195. package/src/components/index.ts +2 -0
  196. package/src/contexts/messageContext/MessageContext.tsx +2 -0
  197. package/src/contexts/messageOverlayContext/MessageOverlayContext.tsx +1 -0
  198. package/src/contexts/messagesContext/MessagesContext.tsx +2 -0
  199. package/src/contexts/themeContext/utils/theme.ts +18 -0
  200. package/src/icons/Pause.tsx +14 -0
  201. package/src/icons/Play.tsx +17 -0
  202. package/src/icons/index.ts +2 -0
  203. package/src/mock-builders/api/queryMembers.js +98 -0
  204. package/src/native.ts +59 -1
  205. package/src/utils/getUrlOfImageAttachment.ts +1 -1
  206. package/src/version.json +1 -1
@@ -25,6 +25,8 @@ var _bottomSheet = require("@gorhom/bottom-sheet");
25
25
 
26
26
  var _AnimatedGalleryImage = require("./components/AnimatedGalleryImage");
27
27
 
28
+ var _AnimatedGalleryVideo = require("./components/AnimatedGalleryVideo");
29
+
28
30
  var _ImageGalleryFooter = require("./components/ImageGalleryFooter");
29
31
 
30
32
  var _ImageGalleryHeader = require("./components/ImageGalleryHeader");
@@ -35,14 +37,14 @@ var _ImageGrid = require("./components/ImageGrid");
35
37
 
36
38
  var _ImageGridHandle = require("./components/ImageGridHandle");
37
39
 
40
+ var _useImageGalleryGestures = require("./hooks/useImageGalleryGestures");
41
+
38
42
  var _ImageGalleryContext = require("../../contexts/imageGalleryContext/ImageGalleryContext");
39
43
 
40
44
  var _OverlayContext = require("../../contexts/overlayContext/OverlayContext");
41
45
 
42
46
  var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
43
47
 
44
- var _native = require("../../native");
45
-
46
48
  var _getResizedImageUrl = require("../../utils/getResizedImageUrl");
47
49
 
48
50
  var _getUrlOfImageAttachment = require("../../utils/getUrlOfImageAttachment");
@@ -92,6 +94,21 @@ var ImageGallery = function ImageGallery(props) {
92
94
  numberOfImageGalleryGridColumns = props.numberOfImageGalleryGridColumns,
93
95
  overlayOpacity = props.overlayOpacity;
94
96
 
97
+ var _useState = (0, _react.useState)(false),
98
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
99
+ paused = _useState2[0],
100
+ setPaused = _useState2[1];
101
+
102
+ var _useState3 = (0, _react.useState)(0),
103
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
104
+ progress = _useState4[0],
105
+ setProgress = _useState4[1];
106
+
107
+ var _useState5 = (0, _react.useState)(0),
108
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
109
+ duration = _useState6[0],
110
+ setDuration = _useState6[1];
111
+
95
112
  var _useTheme = (0, _ThemeContext.useTheme)(),
96
113
  _useTheme$theme = _useTheme.theme,
97
114
  white_snow = _useTheme$theme.colors.white_snow,
@@ -100,14 +117,13 @@ var ImageGallery = function ImageGallery(props) {
100
117
  pager = _useTheme$theme$image.pager,
101
118
  slide = _useTheme$theme$image.slide;
102
119
 
103
- var _useState = (0, _react.useState)([]),
104
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
105
- gridPhotos = _useState2[0],
106
- setGridPhotos = _useState2[1];
120
+ var _useState7 = (0, _react.useState)([]),
121
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
122
+ gridPhotos = _useState8[0],
123
+ setGridPhotos = _useState8[1];
107
124
 
108
125
  var _useOverlayContext = (0, _OverlayContext.useOverlayContext)(),
109
126
  overlay = _useOverlayContext.overlay,
110
- setOverlay = _useOverlayContext.setOverlay,
111
127
  translucentStatusBar = _useOverlayContext.translucentStatusBar;
112
128
 
113
129
  var _useImageGalleryConte = (0, _ImageGalleryContext.useImageGalleryContext)(),
@@ -123,15 +139,15 @@ var ImageGallery = function ImageGallery(props) {
123
139
  var quarterScreenHeight = screenHeight / 4;
124
140
 
125
141
  var snapPoints = _react["default"].useMemo(function () {
126
- return [screenHeight * 9 / 10];
142
+ return [screenHeight * 3 / 4, screenHeight - (imageGalleryGridHandleHeight != null ? imageGalleryGridHandleHeight : 40)];
127
143
  }, []);
128
144
 
129
145
  var bottomSheetModalRef = (0, _react.useRef)(null);
130
146
 
131
- var _useState3 = (0, _react.useState)(0),
132
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
133
- currentBottomSheetIndex = _useState4[0],
134
- setCurrentBottomSheetIndex = _useState4[1];
147
+ var _useState9 = (0, _react.useState)(0),
148
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
149
+ currentBottomSheetIndex = _useState10[0],
150
+ setCurrentBottomSheetIndex = _useState10[1];
135
151
 
136
152
  var animatedBottomSheetIndex = (0, _reactNativeReanimated.useSharedValue)(0);
137
153
  var screenTranslateY = (0, _reactNativeReanimated.useSharedValue)(screenHeight);
@@ -151,80 +167,35 @@ var ImageGallery = function ImageGallery(props) {
151
167
  showScreen();
152
168
  }, []);
153
169
 
154
- var _useState5 = (0, _react.useState)(screenHeight),
155
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
156
- currentImageHeight = _useState6[0],
157
- setCurrentImageHeight = _useState6[1];
170
+ var _useState11 = (0, _react.useState)(screenHeight),
171
+ _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
172
+ currentImageHeight = _useState12[0],
173
+ setCurrentImageHeight = _useState12[1];
158
174
 
159
- var _useState7 = (0, _react.useState)(0),
160
- _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
161
- selectedIndex = _useState8[0],
162
- setSelectedIndex = _useState8[1];
175
+ var _useState13 = (0, _react.useState)(0),
176
+ _useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
177
+ selectedIndex = _useState14[0],
178
+ setSelectedIndex = _useState14[1];
163
179
 
164
180
  var index = (0, _reactNativeReanimated.useSharedValue)(0);
165
181
  var headerFooterVisible = (0, _reactNativeReanimated.useSharedValue)(1);
166
- var hasHitBottomScale = (0, _reactNativeReanimated.useSharedValue)(1);
167
- var hasHitTopScale = (0, _reactNativeReanimated.useSharedValue)(0);
168
182
  var doubleTapRef = (0, _react.useRef)(null);
169
183
  var panRef = (0, _react.useRef)(null);
170
184
  var pinchRef = (0, _react.useRef)(null);
171
185
  var singleTapRef = (0, _react.useRef)(null);
172
- var offsetX = (0, _reactNativeReanimated.useSharedValue)(0);
173
- var offsetY = (0, _reactNativeReanimated.useSharedValue)(0);
174
186
  var translateX = (0, _reactNativeReanimated.useSharedValue)(0);
175
187
  var translateY = (0, _reactNativeReanimated.useSharedValue)(0);
176
188
  var offsetScale = (0, _reactNativeReanimated.useSharedValue)(1);
177
189
  var scale = (0, _reactNativeReanimated.useSharedValue)(1);
178
190
  var translationX = (0, _reactNativeReanimated.useSharedValue)(0);
179
- var originX = (0, _reactNativeReanimated.useSharedValue)(0);
180
- var originY = (0, _reactNativeReanimated.useSharedValue)(0);
181
- var focalX = (0, _reactNativeReanimated.useSharedValue)(0);
182
- var focalY = (0, _reactNativeReanimated.useSharedValue)(0);
183
- var oldFocalX = (0, _reactNativeReanimated.useSharedValue)(0);
184
- var oldFocalY = (0, _reactNativeReanimated.useSharedValue)(0);
185
- var focalOffsetX = (0, _reactNativeReanimated.useSharedValue)(0);
186
- var focalOffsetY = (0, _reactNativeReanimated.useSharedValue)(0);
187
- var adjustedFocalX = (0, _reactNativeReanimated.useSharedValue)(0);
188
- var adjustedFocalY = (0, _reactNativeReanimated.useSharedValue)(0);
189
- var tapX = (0, _reactNativeReanimated.useSharedValue)(0);
190
- var tapY = (0, _reactNativeReanimated.useSharedValue)(0);
191
- var numberOfPinchFingers = (0, _reactNativeReanimated.useSharedValue)(0);
192
- var isSwiping = (0, _reactNativeReanimated.useSharedValue)(0);
193
- var isPinch = (0, _reactNativeReanimated.useSharedValue)(false);
194
- var hasPinched = (0, _reactNativeReanimated.useSharedValue)(0);
195
-
196
- var resetTouchValues = function resetTouchValues() {
197
- 'worklet';
198
-
199
- focalX.value = 0;
200
- focalY.value = 0;
201
- oldFocalX.value = 0;
202
- oldFocalY.value = 0;
203
- originX.value = 0;
204
- originY.value = 0;
205
- focalOffsetX.value = 0;
206
- focalOffsetY.value = 0;
207
- numberOfPinchFingers.value = 0;
208
- isPinch.value = false;
209
- isSwiping.value = IsSwiping.UNDETERMINED;
210
- };
211
-
212
- var resetMovementValues = function resetMovementValues() {
213
- 'worklet';
214
-
215
- translateX.value = 0;
216
- translateY.value = 0;
217
- scale.value = 1;
218
- offsetScale.value = 1;
219
- };
220
-
221
191
  var photos = images.reduce(function (acc, cur) {
222
192
  var _cur$attachments;
223
193
 
194
+ console.log(cur);
224
195
  var attachmentImages = ((_cur$attachments = cur.attachments) == null ? void 0 : _cur$attachments.filter(function (attachment) {
225
196
  var _attachment$giphy, _attachment$giphy$gip;
226
197
 
227
- return attachment.type === 'giphy' && (((_attachment$giphy = attachment.giphy) == null ? void 0 : (_attachment$giphy$gip = _attachment$giphy[giphyVersion]) == null ? void 0 : _attachment$giphy$gip.url) || attachment.thumb_url || attachment.image_url) || attachment.type === 'image' && !attachment.title_link && !attachment.og_scrape_url && (0, _getUrlOfImageAttachment.getUrlOfImageAttachment)(attachment);
198
+ return attachment.type === 'giphy' && (((_attachment$giphy = attachment.giphy) == null ? void 0 : (_attachment$giphy$gip = _attachment$giphy[giphyVersion]) == null ? void 0 : _attachment$giphy$gip.url) || attachment.thumb_url || attachment.image_url) || attachment.type === 'image' && !attachment.title_link && !attachment.og_scrape_url && (0, _getUrlOfImageAttachment.getUrlOfImageAttachment)(attachment) || attachment.type === 'video';
228
199
  })) || [];
229
200
  var attachmentPhotos = attachmentImages.map(function (a) {
230
201
  var imageUrl = (0, _getUrlOfImageAttachment.getUrlOfImageAttachment)(a);
@@ -233,8 +204,10 @@ var ImageGallery = function ImageGallery(props) {
233
204
  created_at: cur.created_at,
234
205
  id: "photoId-" + cur.id + "-" + imageUrl,
235
206
  messageId: cur.id,
207
+ mime_type: a.mime_type,
236
208
  original_height: a.original_height,
237
209
  original_width: a.original_width,
210
+ type: a.type,
238
211
  uri: (0, _getResizedImageUrl.getResizedImageUrl)({
239
212
  height: screenHeight,
240
213
  url: imageUrl,
@@ -261,6 +234,11 @@ var ImageGallery = function ImageGallery(props) {
261
234
  var newIndex = photos.findIndex(function (photo) {
262
235
  return photo.messageId === (image == null ? void 0 : image.messageId) && photo.uri === (image == null ? void 0 : image.url);
263
236
  });
237
+
238
+ if (photoLength > 1) {
239
+ setPaused(true);
240
+ }
241
+
264
242
  (0, _reactNativeReanimated.runOnUI)(updatePosition)(newIndex);
265
243
  }, [image, photoLength]);
266
244
  var uriForCurrentImage = (_photos$selectedIndex = photos[selectedIndex]) == null ? void 0 : _photos$selectedIndex.uri;
@@ -274,268 +252,36 @@ var ImageGallery = function ImageGallery(props) {
274
252
  var imageHeight = Math.floor(height * (screenWidth / width));
275
253
  setCurrentImageHeight(imageHeight > screenHeight ? screenHeight : imageHeight);
276
254
  } else if (photo != null && photo.uri) {
277
- _reactNative.Image.getSize(photo.uri, function (width, height) {
278
- var imageHeight = Math.floor(height * (screenWidth / width));
279
- setCurrentImageHeight(imageHeight > screenHeight ? screenHeight : imageHeight);
280
- });
281
- }
282
- }, [uriForCurrentImage]);
283
- var onPan = (0, _reactNativeReanimated.useAnimatedGestureHandler)({
284
- onActive: function onActive(evt) {
285
- if (evt.numberOfPointers === 1 && !isPinch.value) {
286
- if (isAndroid && hasPinched.value === HasPinched.TRUE) {
287
- hasPinched.value = HasPinched.FALSE;
288
- isSwiping.value = IsSwiping.FALSE;
289
- offsetX.value = translateX.value + evt.translationX;
290
- offsetY.value = translateY.value - evt.translationY;
291
- }
292
-
293
- if (isSwiping.value === IsSwiping.UNDETERMINED) {
294
- var maxXYRatio = isAndroid ? 1 : 0.25;
295
-
296
- if (Math.abs(evt.translationX / evt.translationY) > maxXYRatio && (Math.abs(-halfScreenWidth * (scale.value - 1) - offsetX.value) < 3 || Math.abs(halfScreenWidth * (scale.value - 1) - offsetX.value) < 3)) {
297
- isSwiping.value = IsSwiping.TRUE;
298
- }
299
-
300
- if (Math.abs(evt.translationY) > 25) {
301
- isSwiping.value = IsSwiping.FALSE;
302
- }
303
- }
304
-
305
- var localEvtScale = scale.value / offsetScale.value;
306
- translateX.value = scale.value !== offsetScale.value ? offsetX.value * localEvtScale - evt.translationX : offsetX.value - evt.translationX;
307
- translateY.value = isSwiping.value !== IsSwiping.TRUE ? scale.value !== offsetScale.value ? offsetY.value * localEvtScale + evt.translationY : offsetY.value + evt.translationY : translateY.value;
308
- scale.value = currentImageHeight * offsetScale.value < screenHeight && translateY.value > 0 ? offsetScale.value * (1 - 1 / 3 * (translateY.value / screenHeight)) : currentImageHeight * offsetScale.value > screenHeight && translateY.value > currentImageHeight / 2 * offsetScale.value - halfScreenHeight ? offsetScale.value * (1 - 1 / 3 * ((translateY.value - (currentImageHeight / 2 * offsetScale.value - halfScreenHeight)) / screenHeight)) : scale.value;
309
- overlayOpacity.value = localEvtScale;
310
- }
311
- },
312
- onFinish: function onFinish(evt) {
313
- if (!isPinch.value && evt.numberOfPointers < 2) {
314
- var finalXPosition = evt.translationX - evt.velocityX * 0.3;
315
- var finalYPosition = evt.translationY + evt.velocityY * 0.1;
316
-
317
- if (index.value < photoLength - 1 && Math.abs(halfScreenWidth * (scale.value - 1) + offsetX.value) < 3 && translateX.value < 0 && finalXPosition < -halfScreenWidth && isSwiping.value === IsSwiping.TRUE) {
318
- (0, _reactNativeReanimated.cancelAnimation)(translationX);
319
- translationX.value = (0, _reactNativeReanimated.withTiming)(-(screenWidth + MARGIN) * (index.value + 1), {
320
- duration: 200,
321
- easing: _reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.ease)
322
- }, function () {
323
- resetMovementValues();
324
- index.value = index.value + 1;
325
- (0, _reactNativeReanimated.runOnJS)(setSelectedIndex)(index.value);
326
- });
327
- } else if (index.value > 0 && Math.abs(-halfScreenWidth * (scale.value - 1) + offsetX.value) < 3 && translateX.value > 0 && finalXPosition > halfScreenWidth && isSwiping.value === IsSwiping.TRUE) {
328
- (0, _reactNativeReanimated.cancelAnimation)(translationX);
329
- translationX.value = (0, _reactNativeReanimated.withTiming)(-(screenWidth + MARGIN) * (index.value - 1), {
330
- duration: 200,
331
- easing: _reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.ease)
332
- }, function () {
333
- resetMovementValues();
334
- index.value = index.value - 1;
335
- (0, _reactNativeReanimated.runOnJS)(setSelectedIndex)(index.value);
336
- });
337
- }
338
-
339
- translateX.value = scale.value < 1 ? (0, _reactNativeReanimated.withTiming)(0) : translateX.value > halfScreenWidth * (scale.value - 1) ? (0, _reactNativeReanimated.withTiming)(halfScreenWidth * (scale.value - 1), {
340
- duration: 200
341
- }) : translateX.value < -halfScreenWidth * (scale.value - 1) ? (0, _reactNativeReanimated.withTiming)(-halfScreenWidth * (scale.value - 1), {
342
- duration: 200
343
- }) : (0, _reactNativeReanimated.withDecay)({
344
- clamp: [-halfScreenWidth * (scale.value - 1), halfScreenWidth * (scale.value - 1)],
345
- deceleration: 0.99,
346
- velocity: -evt.velocityX
347
- });
348
- translateY.value = currentImageHeight * scale.value < screenHeight ? (0, _reactNativeReanimated.withTiming)(0) : translateY.value > currentImageHeight / 2 * scale.value - halfScreenHeight ? (0, _reactNativeReanimated.withTiming)(currentImageHeight / 2 * scale.value - halfScreenHeight) : translateY.value < -currentImageHeight / 2 * scale.value + halfScreenHeight ? (0, _reactNativeReanimated.withTiming)(-currentImageHeight / 2 * scale.value + halfScreenHeight) : (0, _reactNativeReanimated.withDecay)({
349
- clamp: [-currentImageHeight / 2 * scale.value + halfScreenHeight, currentImageHeight / 2 * scale.value - halfScreenHeight],
350
- deceleration: 0.99,
351
- velocity: evt.velocityY
255
+ if (photo.type === 'image') {
256
+ _reactNative.Image.getSize(photo.uri, function (width, height) {
257
+ var imageHeight = Math.floor(height * (screenWidth / width));
258
+ setCurrentImageHeight(imageHeight > screenHeight ? screenHeight : imageHeight);
352
259
  });
353
- resetTouchValues();
354
- scale.value = scale.value !== offsetScale.value ? (0, _reactNativeReanimated.withTiming)(offsetScale.value) : offsetScale.value;
355
-
356
- if (finalYPosition > halfScreenHeight && offsetY.value + 8 >= currentImageHeight / 2 * scale.value - halfScreenHeight && isSwiping.value !== IsSwiping.TRUE && translateY.value !== 0 && !(Math.abs(halfScreenWidth * (scale.value - 1) + offsetX.value) < 3 && translateX.value < 0 && finalXPosition < -halfScreenWidth) && !(Math.abs(-halfScreenWidth * (scale.value - 1) + offsetX.value) < 3 && translateX.value > 0 && finalXPosition > halfScreenWidth)) {
357
- (0, _reactNativeReanimated.cancelAnimation)(translateX);
358
- (0, _reactNativeReanimated.cancelAnimation)(translateY);
359
- (0, _reactNativeReanimated.cancelAnimation)(scale);
360
- overlayOpacity.value = (0, _reactNativeReanimated.withTiming)(0, {
361
- duration: 200,
362
- easing: _reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.ease)
363
- }, function () {
364
- (0, _reactNativeReanimated.runOnJS)(setOverlay)('none');
365
- });
366
- scale.value = (0, _reactNativeReanimated.withTiming)(0.6, {
367
- duration: 200,
368
- easing: _reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.ease)
369
- });
370
- translateY.value = evt.velocityY > 1000 ? (0, _reactNativeReanimated.withDecay)({
371
- velocity: evt.velocityY
372
- }) : (0, _reactNativeReanimated.withTiming)(halfScreenHeight + currentImageHeight / 2 * scale.value, {
373
- duration: 200,
374
- easing: _reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.ease)
375
- });
376
- translateX.value = (0, _reactNativeReanimated.withDecay)({
377
- velocity: -evt.velocityX
378
- });
379
- }
380
- }
381
- },
382
- onStart: function onStart() {
383
- if (!isPinch.value) {
384
- (0, _reactNativeReanimated.cancelAnimation)(translateX);
385
- (0, _reactNativeReanimated.cancelAnimation)(translateY);
386
- (0, _reactNativeReanimated.cancelAnimation)(scale);
387
- offsetX.value = translateX.value;
388
- offsetY.value = translateY.value;
389
260
  }
390
-
391
- hasPinched.value = HasPinched.FALSE;
392
261
  }
393
- }, [currentImageHeight, photoLength]);
394
- var onPinch = (0, _reactNativeReanimated.useAnimatedGestureHandler)({
395
- onActive: function onActive(evt) {
396
- if (!isPinch.value && isAndroid) {
397
- hasPinched.value = HasPinched.TRUE;
398
- (0, _reactNativeReanimated.cancelAnimation)(translateX);
399
- (0, _reactNativeReanimated.cancelAnimation)(translateY);
400
- (0, _reactNativeReanimated.cancelAnimation)(scale);
401
- isSwiping.value = IsSwiping.UNDETERMINED;
402
- numberOfPinchFingers.value = evt.numberOfPointers;
403
- offsetX.value = translateX.value;
404
- offsetY.value = translateY.value;
405
- adjustedFocalX.value = evt.focalX - (halfScreenWidth - offsetX.value);
406
- adjustedFocalY.value = evt.focalY - (halfScreenHeight + offsetY.value);
407
- originX.value = adjustedFocalX.value;
408
- originY.value = adjustedFocalY.value;
409
- offsetScale.value = scale.value;
410
- }
411
-
412
- isPinch.value = true;
413
- scale.value = clamp(offsetScale.value * evt.scale, 1, 8);
414
- var localEvtScale = scale.value / offsetScale.value;
415
-
416
- if (scale.value !== 8 && scale.value !== 1) {
417
- hasHitTopScale.value = 0;
418
- hasHitBottomScale.value = 0;
419
- } else if (scale.value === 8 && hasHitTopScale.value === 0) {
420
- hasHitTopScale.value = 1;
421
- (0, _reactNativeReanimated.runOnJS)(_native.triggerHaptic)('impactLight');
422
- } else if (scale.value === 1 && hasHitBottomScale.value === 0) {
423
- hasHitBottomScale.value = 1;
424
- (0, _reactNativeReanimated.runOnJS)(_native.triggerHaptic)('impactLight');
425
- }
426
-
427
- adjustedFocalX.value = evt.focalX - (halfScreenWidth - offsetX.value);
428
- adjustedFocalY.value = evt.focalY - (halfScreenHeight + offsetY.value);
429
-
430
- if (numberOfPinchFingers.value !== evt.numberOfPointers) {
431
- numberOfPinchFingers.value = evt.numberOfPointers;
432
-
433
- if (evt.numberOfPointers === 1) {
434
- focalOffsetX.value = oldFocalX.value - adjustedFocalX.value;
435
- focalOffsetY.value = oldFocalY.value - adjustedFocalY.value;
436
- } else if (numberOfPinchFingers.value > 1) {
437
- originX.value = originX.value - (oldFocalX.value / localEvtScale - adjustedFocalX.value / localEvtScale);
438
- originY.value = originY.value - (oldFocalY.value / localEvtScale - adjustedFocalY.value / localEvtScale);
439
- }
440
- }
262
+ }, [uriForCurrentImage]);
441
263
 
442
- if (numberOfPinchFingers.value === 1) {
443
- oldFocalX.value = adjustedFocalX.value + focalOffsetX.value;
444
- oldFocalY.value = adjustedFocalY.value + focalOffsetY.value;
445
- translateX.value = offsetX.value - oldFocalX.value + localEvtScale * originX.value;
446
- translateY.value = offsetY.value + oldFocalY.value - localEvtScale * originY.value;
447
- } else if (numberOfPinchFingers.value > 1) {
448
- oldFocalX.value = adjustedFocalX.value;
449
- oldFocalY.value = adjustedFocalY.value;
450
- translateX.value = offsetX.value - adjustedFocalX.value + localEvtScale * originX.value;
451
- translateY.value = offsetY.value + adjustedFocalY.value - localEvtScale * originY.value;
452
- }
453
- },
454
- onFinish: function onFinish() {
455
- if (isPinch.value) {
456
- translateX.value = scale.value < 1 ? (0, _reactNativeReanimated.withTiming)(0) : translateX.value > halfScreenWidth * (scale.value - 1) ? (0, _reactNativeReanimated.withTiming)(halfScreenWidth * (scale.value - 1)) : translateX.value < -halfScreenWidth * (scale.value - 1) ? (0, _reactNativeReanimated.withTiming)(-halfScreenWidth * (scale.value - 1)) : translateX.value;
457
- translateY.value = currentImageHeight * scale.value < screenHeight ? (0, _reactNativeReanimated.withTiming)(0) : translateY.value > currentImageHeight / 2 * scale.value - screenHeight / 2 ? (0, _reactNativeReanimated.withTiming)(currentImageHeight / 2 * scale.value - screenHeight / 2) : translateY.value < -currentImageHeight / 2 * scale.value + screenHeight / 2 ? (0, _reactNativeReanimated.withTiming)(-currentImageHeight / 2 * scale.value + screenHeight / 2) : translateY.value;
458
- offsetScale.value = scale.value < 1 ? 1 : scale.value;
459
- scale.value = scale.value < 1 ? (0, _reactNativeReanimated.withTiming)(1) : scale.value;
460
- resetTouchValues();
461
- }
462
- },
463
- onStart: function onStart(evt) {
464
- if (!isAndroid) {
465
- (0, _reactNativeReanimated.cancelAnimation)(translateX);
466
- (0, _reactNativeReanimated.cancelAnimation)(translateY);
467
- (0, _reactNativeReanimated.cancelAnimation)(scale);
468
- isPinch.value = true;
469
- isSwiping.value = IsSwiping.UNDETERMINED;
470
- numberOfPinchFingers.value = evt.numberOfPointers;
471
- offsetX.value = translateX.value;
472
- offsetY.value = translateY.value;
473
- adjustedFocalX.value = evt.focalX - (halfScreenWidth - offsetX.value);
474
- adjustedFocalY.value = evt.focalY - (halfScreenHeight + offsetY.value);
475
- originX.value = adjustedFocalX.value;
476
- originY.value = adjustedFocalY.value;
477
- offsetScale.value = scale.value;
478
- }
264
+ var _useImageGalleryGestu = (0, _useImageGalleryGestures.useImageGalleryGestures)({
265
+ currentImageHeight: currentImageHeight,
266
+ halfScreenHeight: halfScreenHeight,
267
+ halfScreenWidth: halfScreenWidth,
268
+ headerFooterVisible: headerFooterVisible,
269
+ offsetScale: offsetScale,
270
+ overlayOpacity: overlayOpacity,
271
+ photoLength: photoLength,
272
+ scale: scale,
273
+ screenHeight: screenHeight,
274
+ screenWidth: screenWidth,
275
+ setSelectedIndex: setSelectedIndex,
276
+ translateX: translateX,
277
+ translateY: translateY,
278
+ translationX: translationX
279
+ }),
280
+ onDoubleTap = _useImageGalleryGestu.onDoubleTap,
281
+ onPan = _useImageGalleryGestu.onPan,
282
+ onPinch = _useImageGalleryGestu.onPinch,
283
+ onSingleTap = _useImageGalleryGestu.onSingleTap;
479
284
 
480
- hasPinched.value = HasPinched.FALSE;
481
- }
482
- }, [currentImageHeight]);
483
- var onSingleTap = (0, _reactNativeReanimated.useAnimatedGestureHandler)({
484
- onActive: function onActive() {
485
- (0, _reactNativeReanimated.cancelAnimation)(headerFooterVisible);
486
- headerFooterVisible.value = headerFooterVisible.value > 0 ? (0, _reactNativeReanimated.withTiming)(0) : (0, _reactNativeReanimated.withTiming)(1);
487
- }
488
- });
489
- var onDoubleTap = (0, _reactNativeReanimated.useAnimatedGestureHandler)({
490
- onActive: function onActive(evt) {
491
- if (Math.abs(tapX.value - evt.absoluteX) < 64 && Math.abs(tapY.value - evt.absoluteY) < 64) {
492
- if (offsetScale.value === 1 && offsetX.value === 0 && offsetY.value === 0) {
493
- offsetScale.value = 2;
494
- scale.value = (0, _reactNativeReanimated.withTiming)(2, {
495
- duration: 200,
496
- easing: _reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.ease)
497
- });
498
- translateX.value = (0, _reactNativeReanimated.withTiming)(evt.absoluteX - halfScreenWidth, {
499
- duration: 200,
500
- easing: _reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.ease)
501
- });
502
-
503
- if (currentImageHeight * 2 > screenHeight) {
504
- var translateYTopBottom = evt.absoluteY > halfScreenHeight ? -(currentImageHeight * 2 - screenHeight) / 2 : (currentImageHeight * 2 - screenHeight) / 2;
505
- translateY.value = (0, _reactNativeReanimated.withTiming)(translateYTopBottom, {
506
- duration: 200,
507
- easing: _reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.ease)
508
- });
509
- }
510
- } else {
511
- offsetScale.value = 1;
512
- scale.value = (0, _reactNativeReanimated.withTiming)(1, {
513
- duration: 200,
514
- easing: _reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.ease)
515
- });
516
- offsetX.value = 0;
517
- offsetY.value = 0;
518
- translateX.value = (0, _reactNativeReanimated.withTiming)(0, {
519
- duration: 200,
520
- easing: _reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.ease)
521
- });
522
- translateY.value = (0, _reactNativeReanimated.withTiming)(0, {
523
- duration: 200,
524
- easing: _reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.ease)
525
- });
526
-
527
- if (headerFooterVisible.value !== 0) {
528
- (0, _reactNativeReanimated.cancelAnimation)(headerFooterVisible);
529
- headerFooterVisible.value = (0, _reactNativeReanimated.withTiming)(0);
530
- }
531
- }
532
- }
533
- },
534
- onStart: function onStart(evt) {
535
- tapX.value = evt.absoluteX;
536
- tapY.value = evt.absoluteY;
537
- }
538
- });
539
285
  var headerFooterOpacity = (0, _reactNativeReanimated.useDerivedValue)(function () {
540
286
  return currentImageHeight * scale.value < screenHeight && translateY.value > 0 ? 1 - translateY.value / quarterScreenHeight : currentImageHeight * scale.value > screenHeight && translateY.value > currentImageHeight / 2 * scale.value - halfScreenHeight ? 1 - (translateY.value - (currentImageHeight / 2 * scale.value - halfScreenHeight)) / quarterScreenHeight : 1;
541
287
  }, [currentImageHeight]);
@@ -580,13 +326,54 @@ var ImageGallery = function ImageGallery(props) {
580
326
  }
581
327
  };
582
328
 
329
+ var videoRef = (0, _react.useRef)(null);
330
+
331
+ var handleEnd = function handleEnd() {
332
+ setPaused(true);
333
+ setProgress(1);
334
+ };
335
+
336
+ var handleLoad = function handleLoad(payload) {
337
+ if (payload.duration) setDuration(payload.duration);
338
+ };
339
+
340
+ var handleProgress = function handleProgress(data) {
341
+ if (data.currentTime && data.seekableDuration) {
342
+ setProgress(data.currentTime / data.seekableDuration);
343
+ }
344
+ };
345
+
346
+ var handlePlayPause = function handlePlayPause() {
347
+ if (progress === 1 && videoRef.current && videoRef.current.seek) {
348
+ videoRef.current.seek(0);
349
+ }
350
+
351
+ if (progress === 1 && videoRef.current && videoRef.current.replayAsync) {
352
+ videoRef.current.replayAsync();
353
+ }
354
+
355
+ setPaused(function (state) {
356
+ return !state;
357
+ });
358
+ };
359
+
360
+ var onProgressDrag = function onProgressDrag(progress) {
361
+ if (videoRef.current && videoRef.current.seek) {
362
+ videoRef.current.seek(progress);
363
+ }
364
+
365
+ if (videoRef.current && videoRef.current.setPositionAsync) {
366
+ videoRef.current.setPositionAsync(progress * 1000);
367
+ }
368
+ };
369
+
583
370
  return _react["default"].createElement(_reactNativeReanimated["default"].View, {
584
371
  pointerEvents: 'auto',
585
372
  style: [_reactNative.StyleSheet.absoluteFillObject, showScreenStyle],
586
373
  __self: _this,
587
374
  __source: {
588
375
  fileName: _jsxFileName,
589
- lineNumber: 1051,
376
+ lineNumber: 492,
590
377
  columnNumber: 5
591
378
  }
592
379
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -594,7 +381,7 @@ var ImageGallery = function ImageGallery(props) {
594
381
  __self: _this,
595
382
  __source: {
596
383
  fileName: _jsxFileName,
597
- lineNumber: 1052,
384
+ lineNumber: 493,
598
385
  columnNumber: 7
599
386
  }
600
387
  }), _react["default"].createElement(_reactNativeGestureHandler.TapGestureHandler, {
@@ -606,7 +393,7 @@ var ImageGallery = function ImageGallery(props) {
606
393
  __self: _this,
607
394
  __source: {
608
395
  fileName: _jsxFileName,
609
- lineNumber: 1053,
396
+ lineNumber: 494,
610
397
  columnNumber: 7
611
398
  }
612
399
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -614,7 +401,7 @@ var ImageGallery = function ImageGallery(props) {
614
401
  __self: _this,
615
402
  __source: {
616
403
  fileName: _jsxFileName,
617
- lineNumber: 1060,
404
+ lineNumber: 501,
618
405
  columnNumber: 9
619
406
  }
620
407
  }, _react["default"].createElement(_reactNativeGestureHandler.TapGestureHandler, {
@@ -628,7 +415,7 @@ var ImageGallery = function ImageGallery(props) {
628
415
  __self: _this,
629
416
  __source: {
630
417
  fileName: _jsxFileName,
631
- lineNumber: 1061,
418
+ lineNumber: 502,
632
419
  columnNumber: 11
633
420
  }
634
421
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -636,7 +423,7 @@ var ImageGallery = function ImageGallery(props) {
636
423
  __self: _this,
637
424
  __source: {
638
425
  fileName: _jsxFileName,
639
- lineNumber: 1070,
426
+ lineNumber: 511,
640
427
  columnNumber: 13
641
428
  }
642
429
  }, _react["default"].createElement(_reactNativeGestureHandler.PinchGestureHandler, {
@@ -646,7 +433,7 @@ var ImageGallery = function ImageGallery(props) {
646
433
  __self: _this,
647
434
  __source: {
648
435
  fileName: _jsxFileName,
649
- lineNumber: 1071,
436
+ lineNumber: 512,
650
437
  columnNumber: 15
651
438
  }
652
439
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -654,7 +441,7 @@ var ImageGallery = function ImageGallery(props) {
654
441
  __self: _this,
655
442
  __source: {
656
443
  fileName: _jsxFileName,
657
- lineNumber: 1076,
444
+ lineNumber: 517,
658
445
  columnNumber: 17
659
446
  }
660
447
  }, _react["default"].createElement(_reactNativeGestureHandler.PanGestureHandler, {
@@ -667,7 +454,7 @@ var ImageGallery = function ImageGallery(props) {
667
454
  __self: _this,
668
455
  __source: {
669
456
  fileName: _jsxFileName,
670
- lineNumber: 1077,
457
+ lineNumber: 518,
671
458
  columnNumber: 19
672
459
  }
673
460
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -675,7 +462,7 @@ var ImageGallery = function ImageGallery(props) {
675
462
  __self: _this,
676
463
  __source: {
677
464
  fileName: _jsxFileName,
678
- lineNumber: 1085,
465
+ lineNumber: 526,
679
466
  columnNumber: 21
680
467
  }
681
468
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -689,11 +476,41 @@ var ImageGallery = function ImageGallery(props) {
689
476
  __self: _this,
690
477
  __source: {
691
478
  fileName: _jsxFileName,
692
- lineNumber: 1086,
479
+ lineNumber: 527,
693
480
  columnNumber: 23
694
481
  }
695
482
  }, photos.map(function (photo, i) {
696
- return _react["default"].createElement(_AnimatedGalleryImage.AnimatedGalleryImage, {
483
+ return photo.type === 'video' ? _react["default"].createElement(_AnimatedGalleryVideo.AnimatedGalleryVideo, {
484
+ handleEnd: handleEnd,
485
+ handleLoad: handleLoad,
486
+ handleProgress: handleProgress,
487
+ index: i,
488
+ key: photo.uri + "-" + i,
489
+ offsetScale: offsetScale,
490
+ paused: paused,
491
+ previous: selectedIndex > i,
492
+ scale: scale,
493
+ screenHeight: screenHeight,
494
+ selected: selectedIndex === i,
495
+ shouldRender: Math.abs(selectedIndex - i) < 4,
496
+ source: {
497
+ uri: photo.uri
498
+ },
499
+ style: [{
500
+ height: screenHeight * 8,
501
+ marginRight: MARGIN,
502
+ width: screenWidth * 8
503
+ }, slide],
504
+ translateX: translateX,
505
+ translateY: translateY,
506
+ videoRef: videoRef,
507
+ __self: _this,
508
+ __source: {
509
+ fileName: _jsxFileName,
510
+ lineNumber: 544,
511
+ columnNumber: 29
512
+ }
513
+ }) : _react["default"].createElement(_AnimatedGalleryImage.AnimatedGalleryImage, {
697
514
  index: i,
698
515
  key: photo.uri + "-" + i,
699
516
  offsetScale: offsetScale,
@@ -713,8 +530,8 @@ var ImageGallery = function ImageGallery(props) {
713
530
  __self: _this,
714
531
  __source: {
715
532
  fileName: _jsxFileName,
716
- lineNumber: 1102,
717
- columnNumber: 27
533
+ lineNumber: 571,
534
+ columnNumber: 29
718
535
  }
719
536
  });
720
537
  })))))))))), _react["default"].createElement(_ImageGalleryHeader.ImageGalleryHeader, (0, _extends2["default"])({
@@ -725,21 +542,26 @@ var ImageGallery = function ImageGallery(props) {
725
542
  __self: _this,
726
543
  __source: {
727
544
  fileName: _jsxFileName,
728
- lineNumber: 1133,
545
+ lineNumber: 603,
729
546
  columnNumber: 7
730
547
  }
731
548
  })), _react["default"].createElement(_ImageGalleryFooter.ImageGalleryFooter, (0, _extends2["default"])({
549
+ duration: duration,
550
+ onPlayPause: handlePlayPause,
551
+ onProgressDrag: onProgressDrag,
732
552
  opacity: headerFooterOpacity,
733
553
  openGridView: openGridView,
554
+ paused: paused,
734
555
  photo: photos[selectedIndex],
735
556
  photoLength: photoLength,
557
+ progress: progress,
736
558
  selectedIndex: selectedIndex,
737
559
  visible: headerFooterVisible
738
560
  }, imageGalleryCustomComponents == null ? void 0 : imageGalleryCustomComponents.footer, {
739
561
  __self: _this,
740
562
  __source: {
741
563
  fileName: _jsxFileName,
742
- lineNumber: 1139,
564
+ lineNumber: 609,
743
565
  columnNumber: 7
744
566
  }
745
567
  })), _react["default"].createElement(_ImageGalleryOverlay.ImageGalleryOverlay, {
@@ -749,14 +571,14 @@ var ImageGallery = function ImageGallery(props) {
749
571
  __self: _this,
750
572
  __source: {
751
573
  fileName: _jsxFileName,
752
- lineNumber: 1148,
574
+ lineNumber: 624,
753
575
  columnNumber: 7
754
576
  }
755
577
  }), _react["default"].createElement(_bottomSheet.BottomSheetModalProvider, {
756
578
  __self: _this,
757
579
  __source: {
758
580
  fileName: _jsxFileName,
759
- lineNumber: 1153,
581
+ lineNumber: 629,
760
582
  columnNumber: 7
761
583
  }
762
584
  }, _react["default"].createElement(_bottomSheet.BottomSheetModal, {
@@ -769,7 +591,7 @@ var ImageGallery = function ImageGallery(props) {
769
591
  __self: _this,
770
592
  __source: {
771
593
  fileName: _jsxFileName,
772
- lineNumber: 1158,
594
+ lineNumber: 634,
773
595
  columnNumber: 13
774
596
  }
775
597
  }));
@@ -784,7 +606,7 @@ var ImageGallery = function ImageGallery(props) {
784
606
  __self: _this,
785
607
  __source: {
786
608
  fileName: _jsxFileName,
787
- lineNumber: 1154,
609
+ lineNumber: 630,
788
610
  columnNumber: 9
789
611
  }
790
612
  }, _react["default"].createElement(_ImageGrid.ImageGrid, (0, _extends2["default"])({
@@ -796,7 +618,7 @@ var ImageGallery = function ImageGallery(props) {
796
618
  __self: _this,
797
619
  __source: {
798
620
  fileName: _jsxFileName,
799
- lineNumber: 1169,
621
+ lineNumber: 645,
800
622
  columnNumber: 11
801
623
  }
802
624
  })))));