stream-chat-react-native-core 5.15.3 → 5.16.0-beta.2

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 (68) hide show
  1. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +1 -1
  2. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
  3. package/lib/commonjs/components/Channel/Channel.js +1 -1
  4. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  5. package/lib/commonjs/components/ImageGallery/ImageGallery.js +25 -22
  6. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  7. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +4 -4
  8. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  9. package/lib/commonjs/components/MessageInput/MessageInput.js +1 -1
  10. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  11. package/lib/commonjs/components/MessageList/utils/getDateSeparators.js +2 -2
  12. package/lib/commonjs/components/MessageList/utils/getDateSeparators.js.map +1 -1
  13. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +38 -54
  14. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  15. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +4 -4
  16. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  17. package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -1
  18. package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
  19. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +14 -12
  20. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
  21. package/lib/commonjs/native.js.map +1 -1
  22. package/lib/commonjs/types/types.js.map +1 -1
  23. package/lib/commonjs/version.json +1 -1
  24. package/lib/module/components/Attachment/FileAttachmentGroup.js +1 -1
  25. package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
  26. package/lib/module/components/Channel/Channel.js +1 -1
  27. package/lib/module/components/Channel/Channel.js.map +1 -1
  28. package/lib/module/components/ImageGallery/ImageGallery.js +25 -22
  29. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  30. package/lib/module/components/MessageInput/FileUploadPreview.js +4 -4
  31. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  32. package/lib/module/components/MessageInput/MessageInput.js +1 -1
  33. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  34. package/lib/module/components/MessageList/utils/getDateSeparators.js +2 -2
  35. package/lib/module/components/MessageList/utils/getDateSeparators.js.map +1 -1
  36. package/lib/module/contexts/messageInputContext/MessageInputContext.js +38 -54
  37. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  38. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +4 -4
  39. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  40. package/lib/module/contexts/overlayContext/OverlayContext.js +1 -1
  41. package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
  42. package/lib/module/contexts/overlayContext/OverlayProvider.js +14 -12
  43. package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
  44. package/lib/module/native.js.map +1 -1
  45. package/lib/module/types/types.js.map +1 -1
  46. package/lib/module/version.json +1 -1
  47. package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +1 -1
  48. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +1 -1
  49. package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts +1 -0
  50. package/lib/typescript/native.d.ts +1 -1
  51. package/lib/typescript/types/types.d.ts +6 -4
  52. package/package.json +1 -1
  53. package/src/components/Attachment/FileAttachmentGroup.tsx +1 -1
  54. package/src/components/Channel/Channel.tsx +1 -1
  55. package/src/components/ImageGallery/ImageGallery.tsx +4 -1
  56. package/src/components/MessageInput/FileUploadPreview.tsx +3 -3
  57. package/src/components/MessageInput/MessageInput.tsx +2 -2
  58. package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +1 -1
  59. package/src/components/MessageList/utils/getDateSeparators.ts +4 -2
  60. package/src/contexts/messageInputContext/MessageInputContext.tsx +25 -32
  61. package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +10 -12
  62. package/src/contexts/messageInputContext/__tests__/pickFile.test.tsx +2 -2
  63. package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +2 -2
  64. package/src/contexts/overlayContext/OverlayContext.tsx +1 -0
  65. package/src/contexts/overlayContext/OverlayProvider.tsx +2 -0
  66. package/src/native.ts +1 -1
  67. package/src/types/types.ts +9 -4
  68. package/src/version.json +1 -1
@@ -33,7 +33,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
33
33
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
34
34
  var OverlayProvider = function OverlayProvider(props) {
35
35
  var bottomSheetCloseTimeoutRef = (0, _react.useRef)();
36
- var _props$AttachmentPick = props.AttachmentPickerBottomSheetHandle,
36
+ var autoPlayVideo = props.autoPlayVideo,
37
+ _props$AttachmentPick = props.AttachmentPickerBottomSheetHandle,
37
38
  AttachmentPickerBottomSheetHandle = _props$AttachmentPick === void 0 ? _AttachmentPickerBottomSheetHandle.AttachmentPickerBottomSheetHandle : _props$AttachmentPick,
38
39
  attachmentPickerBottomSheetHandleHeight = props.attachmentPickerBottomSheetHandleHeight,
39
40
  attachmentPickerBottomSheetHeight = props.attachmentPickerBottomSheetHeight,
@@ -183,7 +184,7 @@ var OverlayProvider = function OverlayProvider(props) {
183
184
  __self: _this,
184
185
  __source: {
185
186
  fileName: _jsxFileName,
186
- lineNumber: 214,
187
+ lineNumber: 215,
187
188
  columnNumber: 5
188
189
  }
189
190
  }, _react["default"].createElement(_OverlayContext.OverlayContext.Provider, {
@@ -191,14 +192,14 @@ var OverlayProvider = function OverlayProvider(props) {
191
192
  __self: _this,
192
193
  __source: {
193
194
  fileName: _jsxFileName,
194
- lineNumber: 215,
195
+ lineNumber: 216,
195
196
  columnNumber: 7
196
197
  }
197
198
  }, _react["default"].createElement(_MessageOverlayContext.MessageOverlayProvider, {
198
199
  __self: _this,
199
200
  __source: {
200
201
  fileName: _jsxFileName,
201
- lineNumber: 216,
202
+ lineNumber: 217,
202
203
  columnNumber: 9
203
204
  }
204
205
  }, _react["default"].createElement(_AttachmentPickerContext.AttachmentPickerProvider, {
@@ -206,14 +207,14 @@ var OverlayProvider = function OverlayProvider(props) {
206
207
  __self: _this,
207
208
  __source: {
208
209
  fileName: _jsxFileName,
209
- lineNumber: 217,
210
+ lineNumber: 218,
210
211
  columnNumber: 11
211
212
  }
212
213
  }, _react["default"].createElement(_ImageGalleryContext.ImageGalleryProvider, {
213
214
  __self: _this,
214
215
  __source: {
215
216
  fileName: _jsxFileName,
216
- lineNumber: 218,
217
+ lineNumber: 219,
217
218
  columnNumber: 13
218
219
  }
219
220
  }, children, _react["default"].createElement(_ThemeContext.ThemeProvider, {
@@ -221,7 +222,7 @@ var OverlayProvider = function OverlayProvider(props) {
221
222
  __self: _this,
222
223
  __source: {
223
224
  fileName: _jsxFileName,
224
- lineNumber: 220,
225
+ lineNumber: 221,
225
226
  columnNumber: 15
226
227
  }
227
228
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -230,7 +231,7 @@ var OverlayProvider = function OverlayProvider(props) {
230
231
  __self: _this,
231
232
  __source: {
232
233
  fileName: _jsxFileName,
233
- lineNumber: 221,
234
+ lineNumber: 222,
234
235
  columnNumber: 17
235
236
  }
236
237
  }, _react["default"].createElement(_OverlayBackdrop.OverlayBackdrop, {
@@ -241,7 +242,7 @@ var OverlayProvider = function OverlayProvider(props) {
241
242
  __self: _this,
242
243
  __source: {
243
244
  fileName: _jsxFileName,
244
- lineNumber: 225,
245
+ lineNumber: 226,
245
246
  columnNumber: 19
246
247
  }
247
248
  })), overlay === 'message' && _react["default"].createElement(_MessageOverlay.MessageOverlay, {
@@ -255,10 +256,11 @@ var OverlayProvider = function OverlayProvider(props) {
255
256
  __self: _this,
256
257
  __source: {
257
258
  fileName: _jsxFileName,
258
- lineNumber: 228,
259
+ lineNumber: 229,
259
260
  columnNumber: 19
260
261
  }
261
262
  }), overlay === 'gallery' && _react["default"].createElement(_ImageGallery.ImageGallery, {
263
+ autoPlayVideo: autoPlayVideo,
262
264
  giphyVersion: giphyVersion,
263
265
  imageGalleryCustomComponents: imageGalleryCustomComponents,
264
266
  imageGalleryGridHandleHeight: imageGalleryGridHandleHeight,
@@ -268,7 +270,7 @@ var OverlayProvider = function OverlayProvider(props) {
268
270
  __self: _this,
269
271
  __source: {
270
272
  fileName: _jsxFileName,
271
- lineNumber: 239,
273
+ lineNumber: 240,
272
274
  columnNumber: 19
273
275
  }
274
276
  }), _react["default"].createElement(_AttachmentPicker.AttachmentPicker, (0, _extends2["default"])({
@@ -277,7 +279,7 @@ var OverlayProvider = function OverlayProvider(props) {
277
279
  __self: _this,
278
280
  __source: {
279
281
  fileName: _jsxFileName,
280
- lineNumber: 248,
282
+ lineNumber: 250,
281
283
  columnNumber: 17
282
284
  }
283
285
  }))))))));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_OverlayContext","_AttachmentPicker","_AttachmentPickerBottomSheetHandle","_AttachmentPickerError","_AttachmentPickerErrorImage","_CameraSelectorIcon","_FileSelectorIcon","_ImageOverlaySelectedComponent","_ImageSelectorIcon","_ImageGallery","_MessageOverlay","_OverlayBackdrop","_useStreami18n","_AttachmentPickerContext","_ImageGalleryContext","_MessageOverlayContext","_ThemeContext","_TranslationContext","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","OverlayProvider","props","bottomSheetCloseTimeoutRef","useRef","_props$AttachmentPick","AttachmentPickerBottomSheetHandle","DefaultAttachmentPickerBottomSheetHandle","attachmentPickerBottomSheetHandleHeight","attachmentPickerBottomSheetHeight","_props$AttachmentPick2","AttachmentPickerError","DefaultAttachmentPickerError","attachmentPickerErrorButtonText","_props$AttachmentPick3","AttachmentPickerErrorImage","DefaultAttachmentPickerErrorImage","attachmentPickerErrorText","attachmentSelectionBarHeight","bottomInset","_props$CameraSelector","CameraSelectorIcon","DefaultCameraSelectorIcon","children","_props$closePicker","closePicker","ref","_ref$current","current","close","clearTimeout","setTimeout","_ref$current2","_props$FileSelectorIc","FileSelectorIcon","DefaultFileSelectorIcon","giphyVersion","i18nInstance","imageGalleryCustomComponents","imageGalleryGridHandleHeight","imageGalleryGridSnapPoints","_props$ImageOverlaySe","ImageOverlaySelectedComponent","DefaultImageOverlaySelectedComponent","_props$ImageSelectorI","ImageSelectorIcon","DefaultImageSelectorIcon","MessageActionList","MessageActionListItem","messageTextNumberOfLines","numberOfAttachmentImagesToLoadPerCall","numberOfAttachmentPickerImageColumns","numberOfImageGalleryGridColumns","_props$openPicker","openPicker","_ref$current3","snapToIndex","console","warn","topInset","translucentStatusBar","OverlayReactionList","OverlayReactions","OverlayReactionsAvatar","value","attachmentPickerProps","bottomSheetRef","_useState","useState","overlay","_useState2","_slicedToArray2","setOverlay","overlayOpacity","useSharedValue","_Dimensions$get","Dimensions","height","width","translators","useStreami18n","useEffect","backAction","backHandler","BackHandler","addEventListener","remove","cancelAnimation","withTiming","attachmentPickerContext","overlayStyle","useAnimatedStyle","opacity","overlayContext","style","createElement","TranslationProvider","_extends2","userLanguage","DEFAULT_USER_LANGUAGE","__self","__source","fileName","lineNumber","columnNumber","OverlayContext","Provider","MessageOverlayProvider","AttachmentPickerProvider","ImageGalleryProvider","ThemeProvider","View","pointerEvents","StyleSheet","absoluteFill","OverlayBackdrop","MessageOverlay","ImageGallery","AttachmentPicker","exports"],"sources":["OverlayProvider.tsx"],"sourcesContent":["import React, { PropsWithChildren, useEffect, useRef, useState } from 'react';\n\nimport { BackHandler, Dimensions, StyleSheet, ViewStyle } from 'react-native';\n\nimport Animated, {\n cancelAnimation,\n useAnimatedStyle,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\n\nimport type BottomSheet from '@gorhom/bottom-sheet';\n\nimport { OverlayContext, OverlayProviderProps } from './OverlayContext';\n\nimport { AttachmentPicker } from '../../components/AttachmentPicker/AttachmentPicker';\n\nimport { AttachmentPickerBottomSheetHandle as DefaultAttachmentPickerBottomSheetHandle } from '../../components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle';\nimport { AttachmentPickerError as DefaultAttachmentPickerError } from '../../components/AttachmentPicker/components/AttachmentPickerError';\nimport { AttachmentPickerErrorImage as DefaultAttachmentPickerErrorImage } from '../../components/AttachmentPicker/components/AttachmentPickerErrorImage';\nimport { CameraSelectorIcon as DefaultCameraSelectorIcon } from '../../components/AttachmentPicker/components/CameraSelectorIcon';\nimport { FileSelectorIcon as DefaultFileSelectorIcon } from '../../components/AttachmentPicker/components/FileSelectorIcon';\nimport { ImageOverlaySelectedComponent as DefaultImageOverlaySelectedComponent } from '../../components/AttachmentPicker/components/ImageOverlaySelectedComponent';\nimport { ImageSelectorIcon as DefaultImageSelectorIcon } from '../../components/AttachmentPicker/components/ImageSelectorIcon';\nimport { ImageGallery } from '../../components/ImageGallery/ImageGallery';\nimport { MessageOverlay } from '../../components/MessageOverlay/MessageOverlay';\nimport { OverlayBackdrop } from '../../components/MessageOverlay/OverlayBackdrop';\nimport { useStreami18n } from '../../hooks/useStreami18n';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { AttachmentPickerProvider } from '../attachmentPickerContext/AttachmentPickerContext';\nimport { ImageGalleryProvider } from '../imageGalleryContext/ImageGalleryContext';\nimport { MessageOverlayProvider } from '../messageOverlayContext/MessageOverlayContext';\nimport { ThemeProvider } from '../themeContext/ThemeContext';\nimport {\n DEFAULT_USER_LANGUAGE,\n TranslationProvider,\n} from '../translationContext/TranslationContext';\n\n/**\n * - The highest level of these components is the `OverlayProvider`. The `OverlayProvider` allows users to interact with messages on long press above the underlying views, use the full screen image viewer, and use the `AttachmentPicker` as a keyboard-esk view.\n * Because these views must exist above all others `OverlayProvider` should wrap your navigation stack as well. Assuming [`React Navigation`](https://reactnavigation.org/) is being used, your highest level navigation stack should be wrapped in the provider:\n *\n * ```js\n * <NavigationContainer>\n * <OverlayProvider>\n * <Stack.Navigator>\n * <Stack.Screen />\n * </Stack.Navigator>\n * </OverlayProvider>\n * </NavigationContainer>\n * ```\n *\n * - Don't forget to check our cookbook section of [OverlayProvider](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#overlayprovider)\n *\n * - Also check the [visual component guide](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#custom-components), to learn about component customizations.\n *\n * @example ./OverlayProvider.md\n */\nexport const OverlayProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<OverlayProviderProps<StreamChatGenerics>>,\n) => {\n const bottomSheetCloseTimeoutRef = useRef<NodeJS.Timeout>();\n const {\n AttachmentPickerBottomSheetHandle = DefaultAttachmentPickerBottomSheetHandle,\n attachmentPickerBottomSheetHandleHeight,\n attachmentPickerBottomSheetHeight,\n AttachmentPickerError = DefaultAttachmentPickerError,\n attachmentPickerErrorButtonText,\n AttachmentPickerErrorImage = DefaultAttachmentPickerErrorImage,\n attachmentPickerErrorText,\n attachmentSelectionBarHeight,\n bottomInset,\n CameraSelectorIcon = DefaultCameraSelectorIcon,\n children,\n closePicker = (ref) => {\n if (ref.current?.close) {\n if (bottomSheetCloseTimeoutRef.current) {\n clearTimeout(bottomSheetCloseTimeoutRef.current);\n }\n ref.current.close();\n // Attempt to close the bottomsheet again to circumvent accidental opening on Android.\n // Details: This to prevent a race condition where the close function is called during the point when a internal container layout happens within the bottomsheet due to keyboard affecting the layout\n // If the container layout measures a shorter height than previous but if the close snapped to the previous height's position, the bottom sheet will show up\n // this short delay ensures that close function is always called after a container layout due to keyboard change\n // NOTE: this timeout has to be above 500 as the keyboardAnimationDuration is 500 in the bottomsheet library - see src/hooks/useKeyboard.ts there for more details\n bottomSheetCloseTimeoutRef.current = setTimeout(() => {\n ref.current?.close();\n }, 600);\n }\n },\n FileSelectorIcon = DefaultFileSelectorIcon,\n giphyVersion,\n i18nInstance,\n imageGalleryCustomComponents,\n imageGalleryGridHandleHeight,\n imageGalleryGridSnapPoints,\n ImageOverlaySelectedComponent = DefaultImageOverlaySelectedComponent,\n ImageSelectorIcon = DefaultImageSelectorIcon,\n MessageActionList,\n MessageActionListItem,\n messageTextNumberOfLines,\n numberOfAttachmentImagesToLoadPerCall,\n numberOfAttachmentPickerImageColumns,\n numberOfImageGalleryGridColumns,\n openPicker = (ref) => {\n if (bottomSheetCloseTimeoutRef.current) {\n clearTimeout(bottomSheetCloseTimeoutRef.current);\n }\n if (ref.current?.snapToIndex) {\n ref.current.snapToIndex(0);\n } else {\n console.warn('bottom and top insets must be set for the image picker to work correctly');\n }\n },\n topInset,\n translucentStatusBar,\n OverlayReactionList,\n OverlayReactions,\n OverlayReactionsAvatar,\n value,\n } = props;\n\n const attachmentPickerProps = {\n AttachmentPickerBottomSheetHandle,\n attachmentPickerBottomSheetHandleHeight,\n attachmentPickerBottomSheetHeight,\n AttachmentPickerError,\n attachmentPickerErrorButtonText,\n AttachmentPickerErrorImage,\n attachmentPickerErrorText,\n attachmentSelectionBarHeight,\n ImageOverlaySelectedComponent,\n numberOfAttachmentImagesToLoadPerCall,\n numberOfAttachmentPickerImageColumns,\n translucentStatusBar,\n };\n\n const bottomSheetRef = useRef<BottomSheet>(null);\n\n const [overlay, setOverlay] = useState(value?.overlay || 'none');\n\n const overlayOpacity = useSharedValue(0);\n const { height, width } = Dimensions.get('screen');\n\n // Setup translators\n const translators = useStreami18n(i18nInstance);\n\n useEffect(() => {\n const backAction = () => {\n if (overlay !== 'none') {\n setOverlay('none');\n return true;\n }\n\n return false;\n };\n\n const backHandler = BackHandler.addEventListener('hardwareBackPress', backAction);\n\n return () => backHandler.remove();\n }, [overlay]);\n\n useEffect(\n () =>\n // cleanup the timeout if the component unmounts\n () => {\n if (bottomSheetCloseTimeoutRef.current) {\n clearTimeout(bottomSheetCloseTimeoutRef.current);\n }\n },\n [],\n );\n\n useEffect(() => {\n closePicker(bottomSheetRef);\n cancelAnimation(overlayOpacity);\n if (overlay !== 'none') {\n overlayOpacity.value = withTiming(1);\n } else {\n overlayOpacity.value = withTiming(0);\n }\n }, [overlay]);\n\n const attachmentPickerContext = {\n attachmentPickerBottomSheetHeight,\n attachmentSelectionBarHeight,\n bottomInset,\n CameraSelectorIcon,\n closePicker: () => closePicker(bottomSheetRef),\n FileSelectorIcon,\n ImageSelectorIcon,\n openPicker: () => openPicker(bottomSheetRef),\n topInset,\n };\n\n const overlayStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n opacity: overlayOpacity.value,\n }),\n [],\n );\n\n const overlayContext = {\n overlay,\n setOverlay,\n style: value?.style,\n translucentStatusBar,\n };\n\n return (\n <TranslationProvider value={{ ...translators, userLanguage: DEFAULT_USER_LANGUAGE }}>\n <OverlayContext.Provider value={overlayContext}>\n <MessageOverlayProvider<StreamChatGenerics>>\n <AttachmentPickerProvider value={attachmentPickerContext}>\n <ImageGalleryProvider>\n {children}\n <ThemeProvider style={overlayContext.style}>\n <Animated.View\n pointerEvents={overlay === 'none' ? 'none' : 'auto'}\n style={[StyleSheet.absoluteFill, overlayStyle]}\n >\n <OverlayBackdrop style={[StyleSheet.absoluteFill, { height, width }]} />\n </Animated.View>\n {overlay === 'message' && (\n <MessageOverlay<StreamChatGenerics>\n MessageActionList={MessageActionList}\n MessageActionListItem={MessageActionListItem}\n messageTextNumberOfLines={messageTextNumberOfLines}\n overlayOpacity={overlayOpacity}\n OverlayReactionList={OverlayReactionList}\n OverlayReactions={OverlayReactions}\n OverlayReactionsAvatar={OverlayReactionsAvatar}\n />\n )}\n {overlay === 'gallery' && (\n <ImageGallery<StreamChatGenerics>\n giphyVersion={giphyVersion}\n imageGalleryCustomComponents={imageGalleryCustomComponents}\n imageGalleryGridHandleHeight={imageGalleryGridHandleHeight}\n imageGalleryGridSnapPoints={imageGalleryGridSnapPoints}\n numberOfImageGalleryGridColumns={numberOfImageGalleryGridColumns}\n overlayOpacity={overlayOpacity}\n />\n )}\n <AttachmentPicker ref={bottomSheetRef} {...attachmentPickerProps} />\n </ThemeProvider>\n </ImageGalleryProvider>\n </AttachmentPickerProvider>\n </MessageOverlayProvider>\n </OverlayContext.Provider>\n </TranslationProvider>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_OverlayContext","_AttachmentPicker","_AttachmentPickerBottomSheetHandle","_AttachmentPickerError","_AttachmentPickerErrorImage","_CameraSelectorIcon","_FileSelectorIcon","_ImageOverlaySelectedComponent","_ImageSelectorIcon","_ImageGallery","_MessageOverlay","_OverlayBackdrop","_useStreami18n","_AttachmentPickerContext","_ImageGalleryContext","_MessageOverlayContext","_ThemeContext","_TranslationContext","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","OverlayProvider","props","bottomSheetCloseTimeoutRef","useRef","autoPlayVideo","_props$AttachmentPick","AttachmentPickerBottomSheetHandle","DefaultAttachmentPickerBottomSheetHandle","attachmentPickerBottomSheetHandleHeight","attachmentPickerBottomSheetHeight","_props$AttachmentPick2","AttachmentPickerError","DefaultAttachmentPickerError","attachmentPickerErrorButtonText","_props$AttachmentPick3","AttachmentPickerErrorImage","DefaultAttachmentPickerErrorImage","attachmentPickerErrorText","attachmentSelectionBarHeight","bottomInset","_props$CameraSelector","CameraSelectorIcon","DefaultCameraSelectorIcon","children","_props$closePicker","closePicker","ref","_ref$current","current","close","clearTimeout","setTimeout","_ref$current2","_props$FileSelectorIc","FileSelectorIcon","DefaultFileSelectorIcon","giphyVersion","i18nInstance","imageGalleryCustomComponents","imageGalleryGridHandleHeight","imageGalleryGridSnapPoints","_props$ImageOverlaySe","ImageOverlaySelectedComponent","DefaultImageOverlaySelectedComponent","_props$ImageSelectorI","ImageSelectorIcon","DefaultImageSelectorIcon","MessageActionList","MessageActionListItem","messageTextNumberOfLines","numberOfAttachmentImagesToLoadPerCall","numberOfAttachmentPickerImageColumns","numberOfImageGalleryGridColumns","_props$openPicker","openPicker","_ref$current3","snapToIndex","console","warn","topInset","translucentStatusBar","OverlayReactionList","OverlayReactions","OverlayReactionsAvatar","value","attachmentPickerProps","bottomSheetRef","_useState","useState","overlay","_useState2","_slicedToArray2","setOverlay","overlayOpacity","useSharedValue","_Dimensions$get","Dimensions","height","width","translators","useStreami18n","useEffect","backAction","backHandler","BackHandler","addEventListener","remove","cancelAnimation","withTiming","attachmentPickerContext","overlayStyle","useAnimatedStyle","opacity","overlayContext","style","createElement","TranslationProvider","_extends2","userLanguage","DEFAULT_USER_LANGUAGE","__self","__source","fileName","lineNumber","columnNumber","OverlayContext","Provider","MessageOverlayProvider","AttachmentPickerProvider","ImageGalleryProvider","ThemeProvider","View","pointerEvents","StyleSheet","absoluteFill","OverlayBackdrop","MessageOverlay","ImageGallery","AttachmentPicker","exports"],"sources":["OverlayProvider.tsx"],"sourcesContent":["import React, { PropsWithChildren, useEffect, useRef, useState } from 'react';\n\nimport { BackHandler, Dimensions, StyleSheet, ViewStyle } from 'react-native';\n\nimport Animated, {\n cancelAnimation,\n useAnimatedStyle,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\n\nimport type BottomSheet from '@gorhom/bottom-sheet';\n\nimport { OverlayContext, OverlayProviderProps } from './OverlayContext';\n\nimport { AttachmentPicker } from '../../components/AttachmentPicker/AttachmentPicker';\n\nimport { AttachmentPickerBottomSheetHandle as DefaultAttachmentPickerBottomSheetHandle } from '../../components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle';\nimport { AttachmentPickerError as DefaultAttachmentPickerError } from '../../components/AttachmentPicker/components/AttachmentPickerError';\nimport { AttachmentPickerErrorImage as DefaultAttachmentPickerErrorImage } from '../../components/AttachmentPicker/components/AttachmentPickerErrorImage';\nimport { CameraSelectorIcon as DefaultCameraSelectorIcon } from '../../components/AttachmentPicker/components/CameraSelectorIcon';\nimport { FileSelectorIcon as DefaultFileSelectorIcon } from '../../components/AttachmentPicker/components/FileSelectorIcon';\nimport { ImageOverlaySelectedComponent as DefaultImageOverlaySelectedComponent } from '../../components/AttachmentPicker/components/ImageOverlaySelectedComponent';\nimport { ImageSelectorIcon as DefaultImageSelectorIcon } from '../../components/AttachmentPicker/components/ImageSelectorIcon';\nimport { ImageGallery } from '../../components/ImageGallery/ImageGallery';\nimport { MessageOverlay } from '../../components/MessageOverlay/MessageOverlay';\nimport { OverlayBackdrop } from '../../components/MessageOverlay/OverlayBackdrop';\nimport { useStreami18n } from '../../hooks/useStreami18n';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { AttachmentPickerProvider } from '../attachmentPickerContext/AttachmentPickerContext';\nimport { ImageGalleryProvider } from '../imageGalleryContext/ImageGalleryContext';\nimport { MessageOverlayProvider } from '../messageOverlayContext/MessageOverlayContext';\nimport { ThemeProvider } from '../themeContext/ThemeContext';\nimport {\n DEFAULT_USER_LANGUAGE,\n TranslationProvider,\n} from '../translationContext/TranslationContext';\n\n/**\n * - The highest level of these components is the `OverlayProvider`. The `OverlayProvider` allows users to interact with messages on long press above the underlying views, use the full screen image viewer, and use the `AttachmentPicker` as a keyboard-esk view.\n * Because these views must exist above all others `OverlayProvider` should wrap your navigation stack as well. Assuming [`React Navigation`](https://reactnavigation.org/) is being used, your highest level navigation stack should be wrapped in the provider:\n *\n * ```js\n * <NavigationContainer>\n * <OverlayProvider>\n * <Stack.Navigator>\n * <Stack.Screen />\n * </Stack.Navigator>\n * </OverlayProvider>\n * </NavigationContainer>\n * ```\n *\n * - Don't forget to check our cookbook section of [OverlayProvider](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#overlayprovider)\n *\n * - Also check the [visual component guide](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#custom-components), to learn about component customizations.\n *\n * @example ./OverlayProvider.md\n */\nexport const OverlayProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<OverlayProviderProps<StreamChatGenerics>>,\n) => {\n const bottomSheetCloseTimeoutRef = useRef<NodeJS.Timeout>();\n const {\n autoPlayVideo,\n AttachmentPickerBottomSheetHandle = DefaultAttachmentPickerBottomSheetHandle,\n attachmentPickerBottomSheetHandleHeight,\n attachmentPickerBottomSheetHeight,\n AttachmentPickerError = DefaultAttachmentPickerError,\n attachmentPickerErrorButtonText,\n AttachmentPickerErrorImage = DefaultAttachmentPickerErrorImage,\n attachmentPickerErrorText,\n attachmentSelectionBarHeight,\n bottomInset,\n CameraSelectorIcon = DefaultCameraSelectorIcon,\n children,\n closePicker = (ref) => {\n if (ref.current?.close) {\n if (bottomSheetCloseTimeoutRef.current) {\n clearTimeout(bottomSheetCloseTimeoutRef.current);\n }\n ref.current.close();\n // Attempt to close the bottomsheet again to circumvent accidental opening on Android.\n // Details: This to prevent a race condition where the close function is called during the point when a internal container layout happens within the bottomsheet due to keyboard affecting the layout\n // If the container layout measures a shorter height than previous but if the close snapped to the previous height's position, the bottom sheet will show up\n // this short delay ensures that close function is always called after a container layout due to keyboard change\n // NOTE: this timeout has to be above 500 as the keyboardAnimationDuration is 500 in the bottomsheet library - see src/hooks/useKeyboard.ts there for more details\n bottomSheetCloseTimeoutRef.current = setTimeout(() => {\n ref.current?.close();\n }, 600);\n }\n },\n FileSelectorIcon = DefaultFileSelectorIcon,\n giphyVersion,\n i18nInstance,\n imageGalleryCustomComponents,\n imageGalleryGridHandleHeight,\n imageGalleryGridSnapPoints,\n ImageOverlaySelectedComponent = DefaultImageOverlaySelectedComponent,\n ImageSelectorIcon = DefaultImageSelectorIcon,\n MessageActionList,\n MessageActionListItem,\n messageTextNumberOfLines,\n numberOfAttachmentImagesToLoadPerCall,\n numberOfAttachmentPickerImageColumns,\n numberOfImageGalleryGridColumns,\n openPicker = (ref) => {\n if (bottomSheetCloseTimeoutRef.current) {\n clearTimeout(bottomSheetCloseTimeoutRef.current);\n }\n if (ref.current?.snapToIndex) {\n ref.current.snapToIndex(0);\n } else {\n console.warn('bottom and top insets must be set for the image picker to work correctly');\n }\n },\n topInset,\n translucentStatusBar,\n OverlayReactionList,\n OverlayReactions,\n OverlayReactionsAvatar,\n value,\n } = props;\n\n const attachmentPickerProps = {\n AttachmentPickerBottomSheetHandle,\n attachmentPickerBottomSheetHandleHeight,\n attachmentPickerBottomSheetHeight,\n AttachmentPickerError,\n attachmentPickerErrorButtonText,\n AttachmentPickerErrorImage,\n attachmentPickerErrorText,\n attachmentSelectionBarHeight,\n ImageOverlaySelectedComponent,\n numberOfAttachmentImagesToLoadPerCall,\n numberOfAttachmentPickerImageColumns,\n translucentStatusBar,\n };\n\n const bottomSheetRef = useRef<BottomSheet>(null);\n\n const [overlay, setOverlay] = useState(value?.overlay || 'none');\n\n const overlayOpacity = useSharedValue(0);\n const { height, width } = Dimensions.get('screen');\n\n // Setup translators\n const translators = useStreami18n(i18nInstance);\n\n useEffect(() => {\n const backAction = () => {\n if (overlay !== 'none') {\n setOverlay('none');\n return true;\n }\n\n return false;\n };\n\n const backHandler = BackHandler.addEventListener('hardwareBackPress', backAction);\n\n return () => backHandler.remove();\n }, [overlay]);\n\n useEffect(\n () =>\n // cleanup the timeout if the component unmounts\n () => {\n if (bottomSheetCloseTimeoutRef.current) {\n clearTimeout(bottomSheetCloseTimeoutRef.current);\n }\n },\n [],\n );\n\n useEffect(() => {\n closePicker(bottomSheetRef);\n cancelAnimation(overlayOpacity);\n if (overlay !== 'none') {\n overlayOpacity.value = withTiming(1);\n } else {\n overlayOpacity.value = withTiming(0);\n }\n }, [overlay]);\n\n const attachmentPickerContext = {\n attachmentPickerBottomSheetHeight,\n attachmentSelectionBarHeight,\n bottomInset,\n CameraSelectorIcon,\n closePicker: () => closePicker(bottomSheetRef),\n FileSelectorIcon,\n ImageSelectorIcon,\n openPicker: () => openPicker(bottomSheetRef),\n topInset,\n };\n\n const overlayStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n opacity: overlayOpacity.value,\n }),\n [],\n );\n\n const overlayContext = {\n overlay,\n setOverlay,\n style: value?.style,\n translucentStatusBar,\n };\n\n return (\n <TranslationProvider value={{ ...translators, userLanguage: DEFAULT_USER_LANGUAGE }}>\n <OverlayContext.Provider value={overlayContext}>\n <MessageOverlayProvider<StreamChatGenerics>>\n <AttachmentPickerProvider value={attachmentPickerContext}>\n <ImageGalleryProvider>\n {children}\n <ThemeProvider style={overlayContext.style}>\n <Animated.View\n pointerEvents={overlay === 'none' ? 'none' : 'auto'}\n style={[StyleSheet.absoluteFill, overlayStyle]}\n >\n <OverlayBackdrop style={[StyleSheet.absoluteFill, { height, width }]} />\n </Animated.View>\n {overlay === 'message' && (\n <MessageOverlay<StreamChatGenerics>\n MessageActionList={MessageActionList}\n MessageActionListItem={MessageActionListItem}\n messageTextNumberOfLines={messageTextNumberOfLines}\n overlayOpacity={overlayOpacity}\n OverlayReactionList={OverlayReactionList}\n OverlayReactions={OverlayReactions}\n OverlayReactionsAvatar={OverlayReactionsAvatar}\n />\n )}\n {overlay === 'gallery' && (\n <ImageGallery<StreamChatGenerics>\n autoPlayVideo={autoPlayVideo}\n giphyVersion={giphyVersion}\n imageGalleryCustomComponents={imageGalleryCustomComponents}\n imageGalleryGridHandleHeight={imageGalleryGridHandleHeight}\n imageGalleryGridSnapPoints={imageGalleryGridSnapPoints}\n numberOfImageGalleryGridColumns={numberOfImageGalleryGridColumns}\n overlayOpacity={overlayOpacity}\n />\n )}\n <AttachmentPicker ref={bottomSheetRef} {...attachmentPickerProps} />\n </ThemeProvider>\n </ImageGalleryProvider>\n </AttachmentPickerProvider>\n </MessageOverlayProvider>\n </OverlayContext.Provider>\n </TranslationProvider>\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","fail","Error","compressImage","exports","deleteFile","getLocalAssetUri","oniOS14GalleryLibrarySelectionChange","getPhotos","FlatList","DefaultFlatList","NetInfo","addEventListener","fetch","pickDocument","saveFile","setClipboardString","shareImage","takePhoto","triggerHaptic","SDK","Sound","Video","registerNativeHandlers","handlers","undefined","isVideoPackageAvailable","isAudioPackageAvailable","Player","initializeSound"],"sources":["native.ts"],"sourcesContent":["import type React from 'react';\nimport { FlatList as DefaultFlatList, StyleProp, ViewStyle } from 'react-native';\n\nimport type { NetInfoSubscription } from '@react-native-community/netinfo';\n\nimport type { Asset, File } from './types/types';\n\nconst fail = () => {\n throw Error(\n 'Native handler was not registered, you should import stream-chat-expo or stream-chat-react-native',\n );\n};\n\ntype CompressImage = ({\n compressImageQuality,\n height,\n uri,\n width,\n}: {\n compressImageQuality: number;\n height: number;\n uri: string;\n width: number;\n}) => Promise<string> | never;\nexport let compressImage: CompressImage = fail;\n\ntype DeleteFile = ({ uri }: { uri: string }) => Promise<boolean> | never;\nexport let deleteFile: DeleteFile = fail;\n\ntype GetLocalAssetUri = (uriOrAssetId: string) => Promise<string | undefined> | never;\nexport let getLocalAssetUri: GetLocalAssetUri = fail;\n\ntype OniOS14LibrarySelectionChange = (callback: () => void) => { unsubscribe: () => void };\nexport let oniOS14GalleryLibrarySelectionChange: OniOS14LibrarySelectionChange = fail;\n\ntype GetPhotos = ({ after, first }: { first: number; after?: string }) =>\n | Promise<{\n assets: Array<Omit<Asset, 'source'> & { source: 'picker' }>;\n endCursor: string;\n hasNextPage: boolean;\n }>\n | never;\nexport let getPhotos: GetPhotos = fail;\n\ntype NetInfo = {\n addEventListener: (listener: (isConnected: boolean) => void) => NetInfoSubscription | never;\n fetch: (requestedInterface?: string | undefined) => Promise<boolean> | never;\n};\n\nexport let FlatList = DefaultFlatList;\n\nexport let NetInfo: NetInfo = {\n addEventListener: fail,\n fetch: fail,\n};\n\ntype PickDocument = ({ maxNumberOfFiles }: { maxNumberOfFiles?: number }) =>\n | Promise<{\n cancelled: boolean;\n docs?: File[];\n }>\n | never;\nexport let pickDocument: PickDocument = fail;\n\ntype SaveFileOptions = {\n fileName: string;\n fromUrl: string;\n};\ntype SaveFile = (options: SaveFileOptions) => Promise<string> | never;\nexport let saveFile: SaveFile = fail;\n\ntype SetClipboardString = (text: string) => Promise<void> | never;\nexport let setClipboardString: SetClipboardString = fail;\n\ntype ShareOptions = {\n type?: string;\n url?: string;\n};\ntype ShareImage = (options: ShareOptions) => Promise<boolean> | never;\nexport let shareImage: ShareImage = fail;\n\ntype Photo =\n | (Omit<Asset, 'source'> & {\n cancelled: false;\n source: 'camera';\n })\n | { cancelled: true };\ntype TakePhoto = (options: { compressImageQuality?: number }) => Promise<Photo> | never;\nexport let takePhoto: TakePhoto = fail;\n\ntype HapticFeedbackMethod =\n | 'impactHeavy'\n | 'impactLight'\n | 'impactMedium'\n | 'notificationError'\n | 'notificationSuccess'\n | 'notificationWarning'\n | 'selection';\ntype TriggerHaptic = (method: HapticFeedbackMethod) => void | never;\nexport let triggerHaptic: TriggerHaptic = fail;\n\nexport type PlaybackStatus = {\n didJustFinish: boolean;\n durationMillis: number;\n error: string;\n isBuffering: boolean;\n isLoaded: boolean;\n isLooping: boolean;\n isPlaying: boolean;\n positionMillis: number;\n};\n\nexport type AVPlaybackStatusToSet = {\n isLooping: boolean;\n isMuted: boolean;\n positionMillis: number;\n progressUpdateIntervalMillis: number;\n rate: number;\n shouldCorrectPitch: boolean;\n shouldPlay: boolean;\n volume: number;\n};\n\nexport let SDK: string;\n\nexport type SoundOptions = {\n basePathOrCallback?: string;\n callback?: () => void;\n filenameOrFile?: string;\n initialStatus?: Partial<AVPlaybackStatusToSet>;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n source?: { uri: string };\n};\n\nexport type SoundReturnType = {\n paused: boolean;\n testID: string;\n getDuration?: () => number;\n isPlaying?: () => boolean;\n onBuffer?: (props: { isBuffering: boolean }) => void;\n onEnd?: () => void;\n onLoad?: (payload: VideoPayloadData) => void;\n onLoadStart?: () => void;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n onProgress?: (data: VideoProgressData) => void;\n onReadyForDisplay?: () => void;\n pauseAsync?: () => void;\n play?: () => void;\n playAsync?: () => void;\n replayAsync?: () => void;\n resizeMode?: string;\n seek?: (progress: number) => void;\n setPositionAsync?: (millis: number) => void;\n soundRef?: React.RefObject<SoundReturnType>;\n stopAsync?: () => void;\n style?: StyleProp<ViewStyle>;\n unloadAsync?: () => void;\n uri?: string;\n};\n\nexport type SoundType = {\n initializeSound: (\n source?: { uri: string },\n initialStatus?: Partial<AVPlaybackStatusToSet>,\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void,\n ) => Promise<SoundReturnType | null>;\n Player: React.ComponentType<SoundReturnType> | null;\n};\n\nexport let Sound: SoundType;\n\nexport type VideoProgressData = {\n currentTime: number;\n seekableDuration: number;\n playableDuration?: number;\n};\n\nexport type VideoPayloadData = {\n duration: number;\n audioTracks?: { index: number; language: string; title: string; type: string }[];\n currentPosition?: number;\n naturalSize?: { height: number; orientation: 'portrait' | 'landscape'; width: number };\n textTracks?: { index: number; language: string; title: string; type: string }[];\n videoTracks?: {\n bitrate: number;\n codecs: string;\n height: number;\n trackId: number;\n width: number;\n }[];\n};\n\nexport type VideoType = {\n paused: boolean;\n testID: string;\n uri: string;\n videoRef: React.RefObject<VideoType>;\n onBuffer?: (props: { isBuffering: boolean }) => void;\n onEnd?: () => void;\n onLoad?: (payload: VideoPayloadData) => void;\n onLoadStart?: () => void;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n onProgress?: (data: VideoProgressData) => void;\n onReadyForDisplay?: () => void;\n repeat?: boolean;\n replayAsync?: () => void;\n resizeMode?: string;\n seek?: (progress: number) => void;\n setPositionAsync?: (position: number) => void;\n style?: StyleProp<ViewStyle>;\n};\n\nexport let Video: React.ComponentType<VideoType>;\n\ntype Handlers = {\n compressImage?: CompressImage;\n deleteFile?: DeleteFile;\n FlatList?: typeof DefaultFlatList;\n getLocalAssetUri?: GetLocalAssetUri;\n getPhotos?: GetPhotos;\n NetInfo?: NetInfo;\n oniOS14GalleryLibrarySelectionChange?: OniOS14LibrarySelectionChange;\n pickDocument?: PickDocument;\n saveFile?: SaveFile;\n SDK?: string;\n setClipboardString?: SetClipboardString;\n shareImage?: ShareImage;\n Sound?: SoundType;\n takePhoto?: TakePhoto;\n triggerHaptic?: TriggerHaptic;\n Video?: React.ComponentType<VideoType>;\n};\n\nexport const registerNativeHandlers = (handlers: Handlers) => {\n if (handlers.compressImage) {\n compressImage = handlers.compressImage;\n }\n\n if (handlers.deleteFile) {\n deleteFile = handlers.deleteFile;\n }\n\n if (handlers.FlatList) {\n FlatList = handlers.FlatList;\n }\n if (handlers.NetInfo) {\n NetInfo = handlers.NetInfo;\n }\n\n if (handlers.getLocalAssetUri) {\n getLocalAssetUri = handlers.getLocalAssetUri;\n }\n\n if (handlers.getPhotos) {\n getPhotos = handlers.getPhotos;\n }\n\n if (handlers.oniOS14GalleryLibrarySelectionChange) {\n oniOS14GalleryLibrarySelectionChange = handlers.oniOS14GalleryLibrarySelectionChange;\n }\n\n if (handlers.pickDocument !== undefined) {\n pickDocument = handlers.pickDocument;\n }\n\n if (handlers.saveFile) {\n saveFile = handlers.saveFile;\n }\n\n if (handlers.SDK) {\n SDK = handlers.SDK;\n }\n\n if (handlers.shareImage !== undefined) {\n shareImage = handlers.shareImage;\n }\n\n if (handlers.Sound) {\n Sound = handlers.Sound;\n }\n\n if (handlers.takePhoto) {\n takePhoto = handlers.takePhoto;\n }\n\n if (handlers.triggerHaptic) {\n triggerHaptic = handlers.triggerHaptic;\n }\n\n if (handlers.Video) {\n Video = handlers.Video;\n }\n\n if (handlers.setClipboardString !== undefined) {\n setClipboardString = handlers.setClipboardString;\n }\n};\n\nexport const isVideoPackageAvailable = () => !!Video;\nexport const isAudioPackageAvailable = () => !!Sound.Player || !!Sound.initializeSound;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","fail","Error","compressImage","exports","deleteFile","getLocalAssetUri","oniOS14GalleryLibrarySelectionChange","getPhotos","FlatList","DefaultFlatList","NetInfo","addEventListener","fetch","pickDocument","saveFile","setClipboardString","shareImage","takePhoto","triggerHaptic","SDK","Sound","Video","registerNativeHandlers","handlers","undefined","isVideoPackageAvailable","isAudioPackageAvailable","Player","initializeSound"],"sources":["native.ts"],"sourcesContent":["import type React from 'react';\nimport { FlatList as DefaultFlatList, StyleProp, ViewStyle } from 'react-native';\n\nimport type { NetInfoSubscription } from '@react-native-community/netinfo';\n\nimport type { Asset, File } from './types/types';\n\nconst fail = () => {\n throw Error(\n 'Native handler was not registered, you should import stream-chat-expo or stream-chat-react-native',\n );\n};\n\ntype CompressImage = ({\n compressImageQuality,\n height,\n uri,\n width,\n}: {\n compressImageQuality: number;\n height: number;\n uri: string;\n width: number;\n}) => Promise<string> | never;\nexport let compressImage: CompressImage = fail;\n\ntype DeleteFile = ({ uri }: { uri: string }) => Promise<boolean> | never;\nexport let deleteFile: DeleteFile = fail;\n\ntype GetLocalAssetUri = (uriOrAssetId: string) => Promise<string | undefined> | never;\nexport let getLocalAssetUri: GetLocalAssetUri = fail;\n\ntype OniOS14LibrarySelectionChange = (callback: () => void) => { unsubscribe: () => void };\nexport let oniOS14GalleryLibrarySelectionChange: OniOS14LibrarySelectionChange = fail;\n\ntype GetPhotos = ({ after, first }: { first: number; after?: string }) =>\n | Promise<{\n assets: Array<Omit<Asset, 'source'> & { source: 'picker' }>;\n endCursor: string;\n hasNextPage: boolean;\n }>\n | never;\nexport let getPhotos: GetPhotos = fail;\n\ntype NetInfo = {\n addEventListener: (listener: (isConnected: boolean) => void) => NetInfoSubscription | never;\n fetch: (requestedInterface?: string | undefined) => Promise<boolean> | never;\n};\n\nexport let FlatList = DefaultFlatList;\n\nexport let NetInfo: NetInfo = {\n addEventListener: fail,\n fetch: fail,\n};\n\ntype PickDocument = ({ maxNumberOfFiles }: { maxNumberOfFiles?: number }) =>\n | Promise<{\n cancelled: boolean;\n assets?: File[];\n }>\n | never;\nexport let pickDocument: PickDocument = fail;\n\ntype SaveFileOptions = {\n fileName: string;\n fromUrl: string;\n};\ntype SaveFile = (options: SaveFileOptions) => Promise<string> | never;\nexport let saveFile: SaveFile = fail;\n\ntype SetClipboardString = (text: string) => Promise<void> | never;\nexport let setClipboardString: SetClipboardString = fail;\n\ntype ShareOptions = {\n type?: string;\n url?: string;\n};\ntype ShareImage = (options: ShareOptions) => Promise<boolean> | never;\nexport let shareImage: ShareImage = fail;\n\ntype Photo =\n | (Omit<Asset, 'source'> & {\n cancelled: false;\n source: 'camera';\n })\n | { cancelled: true };\ntype TakePhoto = (options: { compressImageQuality?: number }) => Promise<Photo> | never;\nexport let takePhoto: TakePhoto = fail;\n\ntype HapticFeedbackMethod =\n | 'impactHeavy'\n | 'impactLight'\n | 'impactMedium'\n | 'notificationError'\n | 'notificationSuccess'\n | 'notificationWarning'\n | 'selection';\ntype TriggerHaptic = (method: HapticFeedbackMethod) => void | never;\nexport let triggerHaptic: TriggerHaptic = fail;\n\nexport type PlaybackStatus = {\n didJustFinish: boolean;\n durationMillis: number;\n error: string;\n isBuffering: boolean;\n isLoaded: boolean;\n isLooping: boolean;\n isPlaying: boolean;\n positionMillis: number;\n};\n\nexport type AVPlaybackStatusToSet = {\n isLooping: boolean;\n isMuted: boolean;\n positionMillis: number;\n progressUpdateIntervalMillis: number;\n rate: number;\n shouldCorrectPitch: boolean;\n shouldPlay: boolean;\n volume: number;\n};\n\nexport let SDK: string;\n\nexport type SoundOptions = {\n basePathOrCallback?: string;\n callback?: () => void;\n filenameOrFile?: string;\n initialStatus?: Partial<AVPlaybackStatusToSet>;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n source?: { uri: string };\n};\n\nexport type SoundReturnType = {\n paused: boolean;\n testID: string;\n getDuration?: () => number;\n isPlaying?: () => boolean;\n onBuffer?: (props: { isBuffering: boolean }) => void;\n onEnd?: () => void;\n onLoad?: (payload: VideoPayloadData) => void;\n onLoadStart?: () => void;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n onProgress?: (data: VideoProgressData) => void;\n onReadyForDisplay?: () => void;\n pauseAsync?: () => void;\n play?: () => void;\n playAsync?: () => void;\n replayAsync?: () => void;\n resizeMode?: string;\n seek?: (progress: number) => void;\n setPositionAsync?: (millis: number) => void;\n soundRef?: React.RefObject<SoundReturnType>;\n stopAsync?: () => void;\n style?: StyleProp<ViewStyle>;\n unloadAsync?: () => void;\n uri?: string;\n};\n\nexport type SoundType = {\n initializeSound: (\n source?: { uri: string },\n initialStatus?: Partial<AVPlaybackStatusToSet>,\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void,\n ) => Promise<SoundReturnType | null>;\n Player: React.ComponentType<SoundReturnType> | null;\n};\n\nexport let Sound: SoundType;\n\nexport type VideoProgressData = {\n currentTime: number;\n seekableDuration: number;\n playableDuration?: number;\n};\n\nexport type VideoPayloadData = {\n duration: number;\n audioTracks?: { index: number; language: string; title: string; type: string }[];\n currentPosition?: number;\n naturalSize?: { height: number; orientation: 'portrait' | 'landscape'; width: number };\n textTracks?: { index: number; language: string; title: string; type: string }[];\n videoTracks?: {\n bitrate: number;\n codecs: string;\n height: number;\n trackId: number;\n width: number;\n }[];\n};\n\nexport type VideoType = {\n paused: boolean;\n testID: string;\n uri: string;\n videoRef: React.RefObject<VideoType>;\n onBuffer?: (props: { isBuffering: boolean }) => void;\n onEnd?: () => void;\n onLoad?: (payload: VideoPayloadData) => void;\n onLoadStart?: () => void;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n onProgress?: (data: VideoProgressData) => void;\n onReadyForDisplay?: () => void;\n repeat?: boolean;\n replayAsync?: () => void;\n resizeMode?: string;\n seek?: (progress: number) => void;\n setPositionAsync?: (position: number) => void;\n style?: StyleProp<ViewStyle>;\n};\n\nexport let Video: React.ComponentType<VideoType>;\n\ntype Handlers = {\n compressImage?: CompressImage;\n deleteFile?: DeleteFile;\n FlatList?: typeof DefaultFlatList;\n getLocalAssetUri?: GetLocalAssetUri;\n getPhotos?: GetPhotos;\n NetInfo?: NetInfo;\n oniOS14GalleryLibrarySelectionChange?: OniOS14LibrarySelectionChange;\n pickDocument?: PickDocument;\n saveFile?: SaveFile;\n SDK?: string;\n setClipboardString?: SetClipboardString;\n shareImage?: ShareImage;\n Sound?: SoundType;\n takePhoto?: TakePhoto;\n triggerHaptic?: TriggerHaptic;\n Video?: React.ComponentType<VideoType>;\n};\n\nexport const registerNativeHandlers = (handlers: Handlers) => {\n if (handlers.compressImage) {\n compressImage = handlers.compressImage;\n }\n\n if (handlers.deleteFile) {\n deleteFile = handlers.deleteFile;\n }\n\n if (handlers.FlatList) {\n FlatList = handlers.FlatList;\n }\n if (handlers.NetInfo) {\n NetInfo = handlers.NetInfo;\n }\n\n if (handlers.getLocalAssetUri) {\n getLocalAssetUri = handlers.getLocalAssetUri;\n }\n\n if (handlers.getPhotos) {\n getPhotos = handlers.getPhotos;\n }\n\n if (handlers.oniOS14GalleryLibrarySelectionChange) {\n oniOS14GalleryLibrarySelectionChange = handlers.oniOS14GalleryLibrarySelectionChange;\n }\n\n if (handlers.pickDocument !== undefined) {\n pickDocument = handlers.pickDocument;\n }\n\n if (handlers.saveFile) {\n saveFile = handlers.saveFile;\n }\n\n if (handlers.SDK) {\n SDK = handlers.SDK;\n }\n\n if (handlers.shareImage !== undefined) {\n shareImage = handlers.shareImage;\n }\n\n if (handlers.Sound) {\n Sound = handlers.Sound;\n }\n\n if (handlers.takePhoto) {\n takePhoto = handlers.takePhoto;\n }\n\n if (handlers.triggerHaptic) {\n triggerHaptic = handlers.triggerHaptic;\n }\n\n if (handlers.Video) {\n Video = handlers.Video;\n }\n\n if (handlers.setClipboardString !== undefined) {\n setClipboardString = handlers.setClipboardString;\n }\n};\n\nexport const isVideoPackageAvailable = () => !!Video;\nexport const isAudioPackageAvailable = () => !!Sound.Player || !!Sound.initializeSound;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ExtendableGenerics, LiteralStringForUnion } from 'stream-chat';\n\nexport type Asset = {\n duration: number | null;\n filename: string;\n height: number;\n source: 'camera' | 'picker';\n type: string;\n uri: string;\n width: number;\n fileSize?: number;\n id?: string;\n size?: number | string;\n};\n\nexport type File = {\n name: string;\n duration?: string | null;\n id?: string;\n size?: number | string;\n type?: string;\n uri?: string;\n};\n\nexport type DefaultAttachmentType = UnknownType & {\n file_size?: number | string;\n mime_type?: string;\n originalFile?: File;\n};\n\ninterface DefaultUserType extends UnknownType {\n image?: string;\n}\n\ninterface DefaultChannelType extends UnknownType {\n [key: string]: unknown;\n image?: string;\n}\n\nexport interface DefaultStreamChatGenerics extends ExtendableGenerics {\n attachmentType: DefaultAttachmentType;\n channelType: DefaultChannelType;\n commandType: LiteralStringForUnion;\n eventType: UnknownType;\n messageType: UnknownType;\n reactionType: UnknownType;\n userType: DefaultUserType;\n}\n\nexport type UnknownType = Record<string, unknown>;\n\nexport type ValueOf<T> = T[keyof T];\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ExtendableGenerics, LiteralStringForUnion } from 'stream-chat';\n\nexport type Asset = {\n duration: number | null;\n filename: string;\n height: number;\n source: 'camera' | 'picker';\n type: string;\n uri: string;\n width: number;\n fileSize?: number;\n id?: string;\n size?: number | string;\n};\n\nexport type FileAssetType = {\n name: string;\n mimeType?: string;\n size?: number | string;\n // The uri should be of type `string`. But is `string|undefined` because the same type is used for the response from Stream's Attachment. This shall be fixed.\n uri?: string;\n};\n\nexport type File = FileAssetType & {\n duration?: string | null;\n id?: string;\n};\n\nexport type DefaultAttachmentType = UnknownType & {\n file_size?: number | string;\n mime_type?: string;\n originalFile?: File;\n};\n\ninterface DefaultUserType extends UnknownType {\n image?: string;\n}\n\ninterface DefaultChannelType extends UnknownType {\n [key: string]: unknown;\n\n image?: string;\n}\n\nexport interface DefaultStreamChatGenerics extends ExtendableGenerics {\n attachmentType: DefaultAttachmentType;\n channelType: DefaultChannelType;\n commandType: LiteralStringForUnion;\n eventType: UnknownType;\n messageType: UnknownType;\n reactionType: UnknownType;\n userType: DefaultUserType;\n}\n\nexport type UnknownType = Record<string, unknown>;\n\nexport type ValueOf<T> = T[keyof T];\n"],"mappings":""}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.15.3"
2
+ "version": "5.16.0-beta.2"
3
3
  }
@@ -57,7 +57,7 @@ export declare type ImageGalleryCustomComponents<StreamChatGenerics extends Defa
57
57
  };
58
58
  declare type Props<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = ImageGalleryCustomComponents<StreamChatGenerics> & {
59
59
  overlayOpacity: Animated.SharedValue<number>;
60
- } & Pick<OverlayProviderProps<StreamChatGenerics>, 'giphyVersion' | 'imageGalleryGridSnapPoints' | 'imageGalleryGridHandleHeight' | 'numberOfImageGalleryGridColumns'>;
60
+ } & Pick<OverlayProviderProps<StreamChatGenerics>, 'giphyVersion' | 'imageGalleryGridSnapPoints' | 'imageGalleryGridHandleHeight' | 'numberOfImageGalleryGridColumns' | 'autoPlayVideo'>;
61
61
  export declare const ImageGallery: {
62
62
  <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(props: Props<StreamChatGenerics>): JSX.Element;
63
63
  displayName: string;
@@ -1,5 +1,5 @@
1
- import React, { PropsWithChildren } from 'react';
2
1
  import type { LegacyRef } from 'react';
2
+ import React, { PropsWithChildren } from 'react';
3
3
  import type { TextInput, TextInputProps } from 'react-native';
4
4
  import { Attachment, SendFileAPIResponse, StreamChat, Message as StreamMessage, UserFilters, UserOptions, UserResponse, UserSort } from 'stream-chat';
5
5
  import type { AttachButtonProps } from '../../components/MessageInput/AttachButton';
@@ -19,6 +19,7 @@ export declare type OverlayContextValue = {
19
19
  };
20
20
  export declare const OverlayContext: React.Context<OverlayContextValue>;
21
21
  export declare type OverlayProviderProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = Partial<AttachmentPickerProps> & Partial<Pick<AttachmentPickerContextValue, 'attachmentPickerBottomSheetHeight' | 'attachmentSelectionBarHeight' | 'bottomInset' | 'CameraSelectorIcon' | 'FileSelectorIcon' | 'ImageSelectorIcon' | 'topInset'>> & ImageGalleryCustomComponents<StreamChatGenerics> & Partial<Pick<MessageOverlayContextValue<StreamChatGenerics>, 'MessageActionList' | 'MessageActionListItem' | 'OverlayReactionList' | 'OverlayReactions' | 'OverlayReactionsAvatar'>> & Pick<OverlayContextValue, 'translucentStatusBar'> & {
22
+ autoPlayVideo?: boolean;
22
23
  /**
23
24
  * The giphy version to render - check the keys of the [Image Object](https://developers.giphy.com/docs/api/schema#image-object) for possible values. Uses 'fixed_height' by default
24
25
  * */
@@ -40,7 +40,7 @@ declare type PickDocument = ({ maxNumberOfFiles }: {
40
40
  maxNumberOfFiles?: number;
41
41
  }) => Promise<{
42
42
  cancelled: boolean;
43
- docs?: File[];
43
+ assets?: File[];
44
44
  }> | never;
45
45
  export declare let pickDocument: PickDocument;
46
46
  declare type SaveFileOptions = {
@@ -11,14 +11,16 @@ export declare type Asset = {
11
11
  id?: string;
12
12
  size?: number | string;
13
13
  };
14
- export declare type File = {
14
+ export declare type FileAssetType = {
15
15
  name: string;
16
- duration?: string | null;
17
- id?: string;
16
+ mimeType?: string;
18
17
  size?: number | string;
19
- type?: string;
20
18
  uri?: string;
21
19
  };
20
+ export declare type File = FileAssetType & {
21
+ duration?: string | null;
22
+ id?: string;
23
+ };
22
24
  export declare type DefaultAttachmentType = UnknownType & {
23
25
  file_size?: number | string;
24
26
  mime_type?: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "stream-chat-react-native-core",
3
3
  "description": "The official React Native and Expo components for Stream Chat, a service for building chat applications",
4
- "version": "5.15.3",
4
+ "version": "5.16.0-beta.2",
5
5
  "author": {
6
6
  "company": "Stream.io Inc",
7
7
  "name": "Stream.io Inc"
@@ -104,7 +104,7 @@ const FileAttachmentGroupWithContext = <
104
104
  setFilesToDisplay((prevFileUploads) =>
105
105
  prevFileUploads.map((fileUpload, id) => ({
106
106
  ...fileUpload,
107
- paused: id.toString() === index ? false : true,
107
+ paused: id.toString() !== index,
108
108
  })),
109
109
  );
110
110
  } else {
@@ -1324,7 +1324,7 @@ const ChannelWithContext = <
1324
1324
  ) {
1325
1325
  const response = doDocUploadRequest
1326
1326
  ? await doDocUploadRequest(file, channel)
1327
- : await channel.sendFile(file.uri, file.name, file.type);
1327
+ : await channel.sendFile(file.uri, file.name, file.mimeType);
1328
1328
  attachment.asset_url = response.file;
1329
1329
  if (response.thumb_url) {
1330
1330
  attachment.thumb_url = response.thumb_url;
@@ -131,6 +131,7 @@ type Props<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamC
131
131
  | 'imageGalleryGridSnapPoints'
132
132
  | 'imageGalleryGridHandleHeight'
133
133
  | 'numberOfImageGalleryGridColumns'
134
+ | 'autoPlayVideo'
134
135
  >;
135
136
 
136
137
  export const ImageGallery = <
@@ -139,6 +140,7 @@ export const ImageGallery = <
139
140
  props: Props<StreamChatGenerics>,
140
141
  ) => {
141
142
  const {
143
+ autoPlayVideo = false,
142
144
  giphyVersion = 'fixed_height',
143
145
  imageGalleryCustomComponents,
144
146
  imageGalleryGridHandleHeight,
@@ -273,6 +275,7 @@ export const ImageGallery = <
273
275
  const attachmentPhotos = attachmentImages.map((a) => {
274
276
  const imageUrl = getUrlOfImageAttachment(a) as string;
275
277
  const giphyURL = a.giphy?.[giphyVersion]?.url || a.thumb_url || a.image_url;
278
+ const isInitiallyPaused = !autoPlayVideo;
276
279
 
277
280
  return {
278
281
  channelId: cur.cid,
@@ -283,7 +286,7 @@ export const ImageGallery = <
283
286
  mime_type: a.type === 'giphy' ? getGiphyMimeType(giphyURL ?? '') : a.mime_type,
284
287
  original_height: a.original_height,
285
288
  original_width: a.original_width,
286
- paused: true,
289
+ paused: isInitiallyPaused,
287
290
  progress: 0,
288
291
  type: a.type,
289
292
  uri:
@@ -183,7 +183,7 @@ const FileUploadPreviewWithContext = <
183
183
  setFileUploads((prevFileUploads) =>
184
184
  prevFileUploads.map((fileUpload) => ({
185
185
  ...fileUpload,
186
- paused: fileUpload.id === index ? false : true,
186
+ paused: fileUpload.id !== index,
187
187
  })),
188
188
  );
189
189
  } else {
@@ -228,7 +228,7 @@ const FileUploadPreviewWithContext = <
228
228
  style={styles.overlay}
229
229
  type={indicatorType}
230
230
  >
231
- {item.file.type?.startsWith('audio/') && isAudioPackageAvailable() ? (
231
+ {item.file.mimeType?.startsWith('audio/') && isAudioPackageAvailable() ? (
232
232
  <View
233
233
  style={[
234
234
  { marginBottom: item.state === FileState.UPLOADED ? 8 : 0 },
@@ -279,7 +279,7 @@ const FileUploadPreviewWithContext = <
279
279
  >
280
280
  <View style={[styles.fileContentContainer, fileContentContainer]}>
281
281
  <View style={styles.fileIcon}>
282
- <FileAttachmentIcon mimeType={item.file.type} />
282
+ <FileAttachmentIcon mimeType={item.file.mimeType} />
283
283
  </View>
284
284
  <View style={[styles.fileTextContainer, fileTextContainer]}>
285
285
  <Text
@@ -406,15 +406,15 @@ const MessageInputWithContext = <
406
406
  } else if (fileUploadsLength > selectedFilesLength) {
407
407
  /**
408
408
  * User is editing some message which contains video attachments OR
409
- * video attachment is added from custom image picker (other than the default bottomsheet image picker)
409
+ * video attachment is added from custom image picker (other than the default bottom-sheet image picker)
410
410
  * using `uploadNewFile` function from `MessageInputContext`.
411
411
  **/
412
412
  setSelectedFiles(
413
413
  fileUploads.map((fileUpload) => ({
414
414
  duration: fileUpload.file.duration,
415
+ mimeType: fileUpload.file.mimeType,
415
416
  name: fileUpload.file.name,
416
417
  size: fileUpload.file.size,
417
- type: fileUpload.file.type,
418
418
  uri: fileUpload.file.uri,
419
419
  })),
420
420
  );
@@ -318,8 +318,8 @@ describe('FileUploadPreview', () => {
318
318
  const fileUploads = [
319
319
  generateFileUploadPreview({
320
320
  id: 'file-upload-id-1',
321
+ mimeType: 'audio/mp3',
321
322
  state: FileState.UPLOADED,
322
- type: 'audio/mp3',
323
323
  }),
324
324
  ];
325
325
  const removeFile = jest.fn();
@@ -45,9 +45,11 @@ export const getDateSeparators = <
45
45
  const previousMessage = messagesWithoutDeleted[i - 1];
46
46
  const message = messagesWithoutDeleted[i];
47
47
 
48
- const messageDate = message.created_at.getDay();
48
+ const messageDate = message.created_at.toDateString();
49
49
 
50
- const prevMessageDate = previousMessage ? previousMessage.created_at.getDay() : messageDate;
50
+ const prevMessageDate = previousMessage
51
+ ? previousMessage.created_at.toDateString()
52
+ : messageDate;
51
53
 
52
54
  if (i === 0 || messageDate !== prevMessageDate) {
53
55
  dateSeparators[message.id] = message.created_at;