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
package/src/native.ts CHANGED
@@ -93,8 +93,6 @@ type HapticFeedbackMethod =
93
93
  type TriggerHaptic = (method: HapticFeedbackMethod) => void | never;
94
94
  export let triggerHaptic: TriggerHaptic = fail;
95
95
 
96
- export let SDK: string;
97
-
98
96
  export type PlaybackStatus = {
99
97
  didJustFinish: boolean;
100
98
  durationMillis: number;
@@ -106,6 +104,65 @@ export type PlaybackStatus = {
106
104
  positionMillis: number;
107
105
  };
108
106
 
107
+ export type AVPlaybackStatusToSet = {
108
+ isLooping: boolean;
109
+ isMuted: boolean;
110
+ positionMillis: number;
111
+ progressUpdateIntervalMillis: number;
112
+ rate: number;
113
+ shouldCorrectPitch: boolean;
114
+ shouldPlay: boolean;
115
+ volume: number;
116
+ };
117
+
118
+ export let SDK: string;
119
+
120
+ export type SoundOptions = {
121
+ basePathOrCallback?: string;
122
+ callback?: () => void;
123
+ filenameOrFile?: string;
124
+ initialStatus?: Partial<AVPlaybackStatusToSet>;
125
+ onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;
126
+ source?: { uri: string };
127
+ };
128
+
129
+ export type SoundReturnType = {
130
+ paused: boolean;
131
+ testID: string;
132
+ getDuration?: () => number;
133
+ isPlaying?: () => boolean;
134
+ onBuffer?: (props: { isBuffering: boolean }) => void;
135
+ onEnd?: () => void;
136
+ onLoad?: (payload: VideoPayloadData) => void;
137
+ onLoadStart?: () => void;
138
+ onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;
139
+ onProgress?: (data: VideoProgressData) => void;
140
+ onReadyForDisplay?: () => void;
141
+ pauseAsync?: () => void;
142
+ play?: () => void;
143
+ playAsync?: () => void;
144
+ replayAsync?: () => void;
145
+ resizeMode?: string;
146
+ seek?: (progress: number) => void;
147
+ setPositionAsync?: (millis: number) => void;
148
+ soundRef?: React.RefObject<SoundReturnType>;
149
+ stopAsync?: () => void;
150
+ style?: StyleProp<ViewStyle>;
151
+ unloadAsync?: () => void;
152
+ uri?: string;
153
+ };
154
+
155
+ export type SoundType = {
156
+ initializeSound: (
157
+ source?: { uri: string },
158
+ initialStatus?: Partial<AVPlaybackStatusToSet>,
159
+ onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void,
160
+ ) => SoundReturnType | null;
161
+ Player: React.ComponentType<SoundReturnType> | null;
162
+ };
163
+
164
+ export let Sound: SoundType;
165
+
109
166
  export type VideoProgressData = {
110
167
  currentTime?: number;
111
168
  playableDuration?: number;
@@ -113,9 +170,9 @@ export type VideoProgressData = {
113
170
  };
114
171
 
115
172
  export type VideoPayloadData = {
173
+ duration: number;
116
174
  audioTracks?: { index: number; language: string; title: string; type: string }[];
117
175
  currentPosition?: number;
118
- duration?: number;
119
176
  naturalSize?: { height: number; orientation: 'portrait' | 'landscape'; width: number };
120
177
  textTracks?: { index: number; language: string; title: string; type: string }[];
121
178
  videoTracks?: {
@@ -129,6 +186,7 @@ export type VideoPayloadData = {
129
186
 
130
187
  export type VideoType = {
131
188
  paused: boolean;
189
+ testID: string;
132
190
  uri: string;
133
191
  videoRef: React.RefObject<VideoType>;
134
192
  onBuffer?: (props: { isBuffering: boolean }) => void;
@@ -158,6 +216,7 @@ type Handlers = {
158
216
  saveFile?: SaveFile;
159
217
  SDK?: string;
160
218
  shareImage?: ShareImage;
219
+ Sound?: SoundType;
161
220
  takePhoto?: TakePhoto;
162
221
  triggerHaptic?: TriggerHaptic;
163
222
  Video?: React.ComponentType<VideoType>;
@@ -187,10 +246,6 @@ export const registerNativeHandlers = (handlers: Handlers) => {
187
246
  getPhotos = handlers.getPhotos;
188
247
  }
189
248
 
190
- if (handlers.NetInfo) {
191
- NetInfo = handlers.NetInfo;
192
- }
193
-
194
249
  if (handlers.pickDocument) {
195
250
  pickDocument = handlers.pickDocument;
196
251
  }
@@ -207,6 +262,10 @@ export const registerNativeHandlers = (handlers: Handlers) => {
207
262
  shareImage = handlers.shareImage;
208
263
  }
209
264
 
265
+ if (handlers.Sound) {
266
+ Sound = handlers.Sound;
267
+ }
268
+
210
269
  if (handlers.takePhoto) {
211
270
  takePhoto = handlers.takePhoto;
212
271
  }
@@ -221,3 +280,4 @@ export const registerNativeHandlers = (handlers: Handlers) => {
221
280
  };
222
281
 
223
282
  export const isVideoPackageAvailable = () => !!Video;
283
+ export const isAudioPackageAvailable = () => !!Sound.Player || !!Sound.initializeSound;
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "4.11.1-beta.4"
2
+ "version": "4.12.0-beta.1"
3
3
  }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["ProgressControl.tsx"],"names":["width","height","styles","StyleSheet","create","containerStyle","borderRadius","innerStyle","progressControlThumbStyle","backgroundColor","top","ProgressControlThumb","ProgressControl","React","memo","props","duration","onPlayPause","onProgressDrag","progress","theme","colors","grey_dark","white_snow","state","translateX","value","animatedStyles","thumbStyles","transform","onGestureEvent","onActive","event","translationX","onFinish","dragFinishLocationInSeconds","onStart","prevProps","nextProps"],"mappings":"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","sourcesContent":["import React, { useEffect } from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { PanGestureHandler } from 'react-native-gesture-handler';\nimport Animated, {\n cancelAnimation,\n runOnJS,\n useAnimatedGestureHandler,\n useAnimatedStyle,\n useSharedValue,\n} from 'react-native-reanimated';\n\nimport type { ImageGalleryFooterVideoControlProps } from './ImageGalleryFooter';\n\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\n\ntype ProgressControlProps = Pick<\n ImageGalleryFooterVideoControlProps,\n 'duration' | 'onPlayPause' | 'onProgressDrag' | 'progress'\n>;\n\nconst width = 180;\nconst height = 2;\nconst styles = StyleSheet.create({\n containerStyle: {\n borderRadius: 50,\n height,\n width,\n },\n innerStyle: {\n height,\n },\n progressControlThumbStyle: {\n backgroundColor: '#fff',\n borderRadius: 5,\n height: 20,\n top: -11,\n width: 4,\n },\n});\n\nconst ProgressControlThumb = () => <View style={styles.progressControlThumbStyle} />;\n\nexport const ProgressControl: React.FC<ProgressControlProps> = React.memo(\n (props) => {\n const { duration, onPlayPause, onProgressDrag, progress } = props;\n const {\n theme: {\n colors: { grey_dark, white_snow },\n },\n } = useTheme();\n\n const state = useSharedValue(0);\n const translateX = useSharedValue(0);\n\n useEffect(() => {\n state.value = progress * width;\n translateX.value = progress * width;\n }, [progress]);\n\n const animatedStyles = useAnimatedStyle(() => ({\n backgroundColor: white_snow,\n width: state.value,\n }));\n\n const thumbStyles = useAnimatedStyle(() => ({\n transform: [{ translateX: state.value }],\n }));\n\n const onGestureEvent = useAnimatedGestureHandler(\n {\n onActive: (event) => {\n state.value = translateX.value + event.translationX;\n if (state.value > width) state.value = width;\n else if (state.value < 0) state.value = 0;\n },\n onFinish: () => {\n translateX.value = state.value;\n const dragFinishLocationInSeconds = (state.value / width) * duration;\n runOnJS(onProgressDrag)(dragFinishLocationInSeconds);\n runOnJS(onPlayPause)();\n },\n onStart: () => {\n runOnJS(onPlayPause)();\n cancelAnimation(translateX);\n state.value = translateX.value;\n },\n },\n [duration],\n );\n return (\n <View style={[styles.containerStyle, { backgroundColor: grey_dark }]}>\n <Animated.View style={[styles.innerStyle, animatedStyles]} />\n\n <PanGestureHandler maxPointers={1} onGestureEvent={onGestureEvent}>\n <Animated.View style={[thumbStyles]}>\n <ProgressControlThumb />\n </Animated.View>\n </PanGestureHandler>\n </View>\n );\n },\n (prevProps, nextProps) => {\n if (prevProps.duration === nextProps.duration && prevProps.progress === nextProps.progress)\n return true;\n else return false;\n },\n);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["ProgressControl.tsx"],"names":["width","height","styles","StyleSheet","create","containerStyle","borderRadius","innerStyle","progressControlThumbStyle","backgroundColor","top","ProgressControlThumb","ProgressControl","React","memo","props","duration","onPlayPause","onProgressDrag","progress","theme","colors","grey_dark","white_snow","state","translateX","value","animatedStyles","thumbStyles","transform","onGestureEvent","onActive","event","translationX","onFinish","dragFinishLocationInSeconds","onStart","prevProps","nextProps"],"mappings":"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","sourcesContent":["import React, { useEffect } from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { PanGestureHandler } from 'react-native-gesture-handler';\nimport Animated, {\n cancelAnimation,\n runOnJS,\n useAnimatedGestureHandler,\n useAnimatedStyle,\n useSharedValue,\n} from 'react-native-reanimated';\n\nimport type { ImageGalleryFooterVideoControlProps } from './ImageGalleryFooter';\n\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\n\ntype ProgressControlProps = Pick<\n ImageGalleryFooterVideoControlProps,\n 'duration' | 'onPlayPause' | 'onProgressDrag' | 'progress'\n>;\n\nconst width = 180;\nconst height = 2;\nconst styles = StyleSheet.create({\n containerStyle: {\n borderRadius: 50,\n height,\n width,\n },\n innerStyle: {\n height,\n },\n progressControlThumbStyle: {\n backgroundColor: '#fff',\n borderRadius: 5,\n height: 20,\n top: -11,\n width: 4,\n },\n});\n\nconst ProgressControlThumb = () => <View style={styles.progressControlThumbStyle} />;\n\nexport const ProgressControl: React.FC<ProgressControlProps> = React.memo(\n (props) => {\n const { duration, onPlayPause, onProgressDrag, progress } = props;\n const {\n theme: {\n colors: { grey_dark, white_snow },\n },\n } = useTheme();\n\n const state = useSharedValue(0);\n const translateX = useSharedValue(0);\n\n useEffect(() => {\n state.value = progress * width;\n translateX.value = progress * width;\n }, [progress]);\n\n const animatedStyles = useAnimatedStyle(() => ({\n backgroundColor: white_snow,\n width: state.value,\n }));\n\n const thumbStyles = useAnimatedStyle(() => ({\n transform: [{ translateX: state.value }],\n }));\n\n const onGestureEvent = useAnimatedGestureHandler(\n {\n onActive: (event) => {\n state.value = translateX.value + event.translationX;\n if (state.value > width) state.value = width;\n else if (state.value < 0) state.value = 0;\n },\n onFinish: () => {\n translateX.value = state.value;\n const dragFinishLocationInSeconds = (state.value / width) * duration;\n runOnJS(onProgressDrag)(dragFinishLocationInSeconds);\n runOnJS(onPlayPause)();\n },\n onStart: () => {\n runOnJS(onPlayPause)();\n cancelAnimation(translateX);\n state.value = translateX.value;\n },\n },\n [duration],\n );\n return (\n <View style={[styles.containerStyle, { backgroundColor: grey_dark }]}>\n <Animated.View style={[styles.innerStyle, animatedStyles]} />\n\n <PanGestureHandler maxPointers={1} onGestureEvent={onGestureEvent}>\n <Animated.View style={[thumbStyles]}>\n <ProgressControlThumb />\n </Animated.View>\n </PanGestureHandler>\n </View>\n );\n },\n (prevProps, nextProps) => {\n if (prevProps.duration === nextProps.duration && prevProps.progress === nextProps.progress)\n return true;\n else return false;\n },\n);\n"]}
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- import type { ImageGalleryFooterVideoControlProps } from './ImageGalleryFooter';
3
- declare type ProgressControlProps = Pick<ImageGalleryFooterVideoControlProps, 'duration' | 'onPlayPause' | 'onProgressDrag' | 'progress'>;
4
- export declare const ProgressControl: React.FC<ProgressControlProps>;
5
- export {};