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.
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +1 -1
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +1 -1
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/ImageGallery.js +25 -22
- package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +4 -4
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getDateSeparators.js +2 -2
- package/lib/commonjs/components/MessageList/utils/getDateSeparators.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +38 -54
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +4 -4
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +14 -12
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/types/types.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/FileAttachmentGroup.js +1 -1
- package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +1 -1
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/ImageGallery/ImageGallery.js +25 -22
- package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +4 -4
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js +1 -1
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/components/MessageList/utils/getDateSeparators.js +2 -2
- package/lib/module/components/MessageList/utils/getDateSeparators.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +38 -54
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +4 -4
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayContext.js +1 -1
- package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayProvider.js +14 -12
- package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/module/native.js.map +1 -1
- package/lib/module/types/types.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +1 -1
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +1 -1
- package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts +1 -0
- package/lib/typescript/native.d.ts +1 -1
- package/lib/typescript/types/types.d.ts +6 -4
- package/package.json +1 -1
- package/src/components/Attachment/FileAttachmentGroup.tsx +1 -1
- package/src/components/Channel/Channel.tsx +1 -1
- package/src/components/ImageGallery/ImageGallery.tsx +4 -1
- package/src/components/MessageInput/FileUploadPreview.tsx +3 -3
- package/src/components/MessageInput/MessageInput.tsx +2 -2
- package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +1 -1
- package/src/components/MessageList/utils/getDateSeparators.ts +4 -2
- package/src/contexts/messageInputContext/MessageInputContext.tsx +25 -32
- package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +10 -12
- package/src/contexts/messageInputContext/__tests__/pickFile.test.tsx +2 -2
- package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +2 -2
- package/src/contexts/overlayContext/OverlayContext.tsx +1 -0
- package/src/contexts/overlayContext/OverlayProvider.tsx +2 -0
- package/src/native.ts +1 -1
- package/src/types/types.ts +9 -4
- 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
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|
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":""}
|
|
@@ -75,7 +75,7 @@ var FileAttachmentGroupWithContext = function FileAttachmentGroupWithContext(pro
|
|
|
75
75
|
setFilesToDisplay(function (prevFileUploads) {
|
|
76
76
|
return prevFileUploads.map(function (fileUpload, id) {
|
|
77
77
|
return (0, _extends2["default"])({}, fileUpload, {
|
|
78
|
-
paused: id.toString()
|
|
78
|
+
paused: id.toString() !== index
|
|
79
79
|
});
|
|
80
80
|
});
|
|
81
81
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_Attachment","_MessageContext","_MessagesContext","_ThemeContext","_native","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","FILE_PREVIEW_HEIGHT","styles","StyleSheet","create","container","padding","fileContainer","borderRadius","borderWidth","flexDirection","height","justifyContent","paddingLeft","paddingRight","FileAttachmentGroupWithContext","props","Attachment","AudioAttachment","files","messageId","_props$styles","stylesProp","_useState","useState","_useState2","_slicedToArray2","filesToDisplay","setFilesToDisplay","useEffect","map","file","_extends2","duration","paused","progress","onLoad","index","prevFilesToDisplay","fileToDisplay","id","toString","onProgress","currentTime","hasEnd","prevFileUploads","fileUpload","onPlayPause","pausedStatus","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","grey_whisper","white","messageSimple","fileAttachmentGroup","createElement","View","style","__self","__source","fileName","lineNumber","columnNumber","paddingBottom","length","attachmentContainer","type","isAudioPackageAvailable","accessibilityLabel","marginBottom","backgroundColor","borderColor","width","item","name","title","uri","asset_url","testID","attachment","areEqual","prevProps","nextProps","prevFiles","nextFiles","MemoizedFileAttachmentGroup","React","memo","FileAttachmentGroup","propFiles","_useMessageContext","useMessageContext","contextFiles","_useMessagesContext","useMessagesContext","_useMessagesContext$A","AttachmentDefault","exports","displayName"],"sources":["FileAttachmentGroup.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { Attachment as AttachmentDefault } from './Attachment';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\n\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { isAudioPackageAvailable } from '../../native';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst FILE_PREVIEW_HEIGHT = 60;\n\nconst styles = StyleSheet.create({\n container: {\n padding: 4,\n },\n fileContainer: {\n borderRadius: 12,\n borderWidth: 1,\n flexDirection: 'row',\n height: FILE_PREVIEW_HEIGHT,\n justifyContent: 'space-between',\n paddingLeft: 8,\n paddingRight: 8,\n },\n});\n\nexport type FileAttachmentGroupPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<MessageContextValue<StreamChatGenerics>, 'files'> &\n Pick<MessagesContextValue<StreamChatGenerics>, 'Attachment' | 'AudioAttachment'> & {\n /**\n * The unique id for the message with file attachments\n */\n messageId: string;\n styles?: Partial<{\n attachmentContainer: StyleProp<ViewStyle>;\n container: StyleProp<ViewStyle>;\n }>;\n };\n\ntype FilesToDisplayType<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> & {\n duration: number;\n paused: boolean;\n progress: number;\n};\n\nconst FileAttachmentGroupWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileAttachmentGroupPropsWithContext<StreamChatGenerics>,\n) => {\n const { Attachment, AudioAttachment, files, messageId, styles: stylesProp = {} } = props;\n const [filesToDisplay, setFilesToDisplay] = useState<FilesToDisplayType[]>([]);\n\n useEffect(() => {\n setFilesToDisplay(files.map((file) => ({ ...file, duration: 0, paused: true, progress: 0 })));\n }, [files]);\n\n // Handler triggered when an audio is loaded in the message input. The initial state is defined for the audio here and the duration is set.\n const onLoad = (index: string, duration: number) => {\n setFilesToDisplay((prevFilesToDisplay) =>\n prevFilesToDisplay.map((fileToDisplay, id) => ({\n ...fileToDisplay,\n duration: id.toString() === index ? duration : fileToDisplay.duration,\n })),\n );\n };\n\n // The handler which is triggered when the audio progresses/ the thumb is dragged in the progress control. The progressed duration is set here.\n const onProgress = (index: string, currentTime?: number, hasEnd?: boolean) => {\n setFilesToDisplay((prevFileUploads) =>\n prevFileUploads.map((fileUpload, id) => ({\n ...fileUpload,\n progress:\n id.toString() === index\n ? hasEnd\n ? 1\n : currentTime\n ? currentTime / (fileUpload.duration as number)\n : 0\n : fileUpload.progress,\n })),\n );\n };\n\n // The handler which controls or sets the paused/played state of the audio.\n const onPlayPause = (index: string, pausedStatus?: boolean) => {\n if (pausedStatus === false) {\n // If the status is false we set the audio with the index as playing and the others as paused.\n setFilesToDisplay((prevFileUploads) =>\n prevFileUploads.map((fileUpload, id) => ({\n ...fileUpload,\n paused: id.toString() === index ? false : true,\n })),\n );\n } else {\n // If the status is true we simply set all the audio's paused state as true.\n setFilesToDisplay((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n paused: true,\n })),\n );\n }\n };\n\n const {\n theme: {\n colors: { grey_whisper, white },\n messageSimple: {\n fileAttachmentGroup: { container },\n },\n },\n } = useTheme();\n\n return (\n <View style={[styles.container, container, stylesProp.container]}>\n {filesToDisplay.map((file, index) => (\n <View\n key={`${messageId}-${index}`}\n style={[\n { paddingBottom: index !== files.length - 1 ? 4 : 0 },\n stylesProp.attachmentContainer,\n ]}\n >\n {file.type === 'audio' && isAudioPackageAvailable() ? (\n <View\n accessibilityLabel='audio-attachment-preview'\n style={[\n styles.fileContainer,\n index === filesToDisplay.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n backgroundColor: white,\n borderColor: grey_whisper,\n width: -16,\n },\n ]}\n >\n <AudioAttachment\n item={{\n duration: file.duration,\n file: { name: file.title as string, uri: file.asset_url },\n id: index.toString(),\n paused: file.paused,\n progress: file.progress,\n }}\n onLoad={onLoad}\n onPlayPause={onPlayPause}\n onProgress={onProgress}\n testID='audio-attachment-preview'\n />\n </View>\n ) : (\n <Attachment attachment={file} />\n )}\n </View>\n ))}\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: FileAttachmentGroupPropsWithContext<StreamChatGenerics>,\n nextProps: FileAttachmentGroupPropsWithContext<StreamChatGenerics>,\n) => {\n const { files: prevFiles } = prevProps;\n const { files: nextFiles } = nextProps;\n\n return prevFiles.length === nextFiles.length;\n};\n\nconst MemoizedFileAttachmentGroup = React.memo(\n FileAttachmentGroupWithContext,\n areEqual,\n) as typeof FileAttachmentGroupWithContext;\n\nexport type FileAttachmentGroupProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<FileAttachmentGroupPropsWithContext<StreamChatGenerics>, 'messageId'>> &\n Pick<FileAttachmentGroupPropsWithContext<StreamChatGenerics>, 'messageId'>;\n\nexport const FileAttachmentGroup = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileAttachmentGroupProps<StreamChatGenerics>,\n) => {\n const { files: propFiles, messageId } = props;\n\n const { files: contextFiles } = useMessageContext<StreamChatGenerics>();\n\n const { Attachment = AttachmentDefault, AudioAttachment } =\n useMessagesContext<StreamChatGenerics>();\n\n const files = propFiles || contextFiles;\n\n if (!files.length) return null;\n\n return (\n <MemoizedFileAttachmentGroup\n {...{\n Attachment,\n AudioAttachment,\n files,\n messageId,\n }}\n />\n );\n};\n\nFileAttachmentGroup.displayName = 'FileAttachmentGroup{messageSimple{fileAttachmentGroup}}';\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAIA,IAAAE,WAAA,GAAAF,OAAA;AAEA,IAAAG,eAAA,GAAAH,OAAA;AAKA,IAAAI,gBAAA,GAAAJ,OAAA;AAIA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AAAuD,IAAAO,KAAA;EAAAC,YAAA;AAAA,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAX,wBAAAe,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAIvD,IAAMW,mBAAmB,GAAG,EAAE;AAE9B,IAAMC,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,SAAS,EAAE;IACTC,OAAO,EAAE;EACX,CAAC;EACDC,aAAa,EAAE;IACbC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,aAAa,EAAE,KAAK;IACpBC,MAAM,EAAEV,mBAAmB;IAC3BW,cAAc,EAAE,eAAe;IAC/BC,WAAW,EAAE,CAAC;IACdC,YAAY,EAAE;EAChB;AACF,CAAC,CAAC;AAwBF,IAAMC,8BAA8B,GAAG,SAAjCA,8BAA8BA,CAGlCC,KAA8D,EAC3D;EACH,IAAQC,UAAU,GAAiED,KAAK,CAAhFC,UAAU;IAAEC,eAAe,GAAgDF,KAAK,CAApEE,eAAe;IAAEC,KAAK,GAAyCH,KAAK,CAAnDG,KAAK;IAAEC,SAAS,GAA8BJ,KAAK,CAA5CI,SAAS;IAAAC,aAAA,GAA8BL,KAAK,CAAjCd,MAAM;IAAEoB,UAAU,GAAAD,aAAA,cAAG,CAAC,CAAC,GAAAA,aAAA;EAC9E,IAAAE,SAAA,GAA4C,IAAAC,eAAQ,EAAuB,EAAE,CAAC;IAAAC,UAAA,OAAAC,eAAA,aAAAH,SAAA;IAAvEI,cAAc,GAAAF,UAAA;IAAEG,iBAAiB,GAAAH,UAAA;EAExC,IAAAI,gBAAS,EAAC,YAAM;IACdD,iBAAiB,CAACT,KAAK,CAACW,GAAG,CAAC,UAACC,IAAI;MAAA,WAAAC,SAAA,iBAAWD,IAAI;QAAEE,QAAQ,EAAE,CAAC;QAAEC,MAAM,EAAE,IAAI;QAAEC,QAAQ,EAAE;MAAC;IAAA,CAAG,CAAC,CAAC;EAC/F,CAAC,EAAE,CAAChB,KAAK,CAAC,CAAC;EAGX,IAAMiB,MAAM,GAAG,SAATA,MAAMA,CAAIC,KAAa,EAAEJ,QAAgB,EAAK;IAClDL,iBAAiB,CAAC,UAACU,kBAAkB;MAAA,OACnCA,kBAAkB,CAACR,GAAG,CAAC,UAACS,aAAa,EAAEC,EAAE;QAAA,WAAAR,SAAA,iBACpCO,aAAa;UAChBN,QAAQ,EAAEO,EAAE,CAACC,QAAQ,CAAC,CAAC,KAAKJ,KAAK,GAAGJ,QAAQ,GAAGM,aAAa,CAACN;QAAQ;MAAA,CACrE,CAAC;IAAA,CACL,CAAC;EACH,CAAC;EAGD,IAAMS,UAAU,GAAG,SAAbA,UAAUA,CAAIL,KAAa,EAAEM,WAAoB,EAAEC,MAAgB,EAAK;IAC5EhB,iBAAiB,CAAC,UAACiB,eAAe;MAAA,OAChCA,eAAe,CAACf,GAAG,CAAC,UAACgB,UAAU,EAAEN,EAAE;QAAA,WAAAR,SAAA,iBAC9Bc,UAAU;UACbX,QAAQ,EACNK,EAAE,CAACC,QAAQ,CAAC,CAAC,KAAKJ,KAAK,GACnBO,MAAM,GACJ,CAAC,GACDD,WAAW,GACXA,WAAW,GAAIG,UAAU,CAACb,QAAmB,GAC7C,CAAC,GACHa,UAAU,CAACX;QAAQ;MAAA,CACzB,CAAC;IAAA,CACL,CAAC;EACH,CAAC;EAGD,IAAMY,WAAW,GAAG,SAAdA,WAAWA,CAAIV,KAAa,EAAEW,YAAsB,EAAK;IAC7D,IAAIA,YAAY,KAAK,KAAK,EAAE;MAE1BpB,iBAAiB,CAAC,UAACiB,eAAe;QAAA,OAChCA,eAAe,CAACf,GAAG,CAAC,UAACgB,UAAU,EAAEN,EAAE;UAAA,WAAAR,SAAA,iBAC9Bc,UAAU;YACbZ,MAAM,EAAEM,EAAE,CAACC,QAAQ,CAAC,CAAC,KAAKJ,KAAK,GAAG,KAAK,GAAG;UAAI;QAAA,CAC9C,CAAC;MAAA,CACL,CAAC;IACH,CAAC,MAAM;MAELT,iBAAiB,CAAC,UAACiB,eAAe;QAAA,OAChCA,eAAe,CAACf,GAAG,CAAC,UAACgB,UAAU;UAAA,WAAAd,SAAA,iBAC1Bc,UAAU;YACbZ,MAAM,EAAE;UAAI;QAAA,CACZ,CAAC;MAAA,CACL,CAAC;IACH;EACF,CAAC;EAED,IAAAe,SAAA,GAOI,IAAAC,sBAAQ,EAAC,CAAC;IAAAC,eAAA,GAAAF,SAAA,CANZG,KAAK;IAAAC,qBAAA,GAAAF,eAAA,CACHG,MAAM;IAAIC,YAAY,GAAAF,qBAAA,CAAZE,YAAY;IAAEC,KAAK,GAAAH,qBAAA,CAALG,KAAK;IAEJnD,SAAS,GAAA8C,eAAA,CADlCM,aAAa,CACXC,mBAAmB,CAAIrD,SAAS;EAKtC,OACErC,MAAA,YAAA2F,aAAA,CAACxF,YAAA,CAAAyF,IAAI;IAACC,KAAK,EAAE,CAAC3D,MAAM,CAACG,SAAS,EAAEA,SAAS,EAAEiB,UAAU,CAACjB,SAAS,CAAE;IAAAyD,MAAA,EAAArF,KAAA;IAAAsF,QAAA;MAAAC,QAAA,EAAAtF,YAAA;MAAAuF,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC9DvC,cAAc,CAACG,GAAG,CAAC,UAACC,IAAI,EAAEM,KAAK;IAAA,OAC9BrE,MAAA,YAAA2F,aAAA,CAACxF,YAAA,CAAAyF,IAAI;MACHjE,GAAG,EAAKyB,SAAS,SAAIiB,KAAQ;MAC7BwB,KAAK,EAAE,CACL;QAAEM,aAAa,EAAE9B,KAAK,KAAKlB,KAAK,CAACiD,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG;MAAE,CAAC,EACrD9C,UAAU,CAAC+C,mBAAmB,CAC9B;MAAAP,MAAA,EAAArF,KAAA;MAAAsF,QAAA;QAAAC,QAAA,EAAAtF,YAAA;QAAAuF,UAAA;QAAAC,YAAA;MAAA;IAAA,GAEDnC,IAAI,CAACuC,IAAI,KAAK,OAAO,IAAI,IAAAC,+BAAuB,EAAC,CAAC,GACjDvG,MAAA,YAAA2F,aAAA,CAACxF,YAAA,CAAAyF,IAAI;MACHY,kBAAkB,EAAC,0BAA0B;MAC7CX,KAAK,EAAE,CACL3D,MAAM,CAACK,aAAa,EACpB8B,KAAK,KAAKV,cAAc,CAACyC,MAAM,GAAG,CAAC,GAC/B;QACEK,YAAY,EAAE;MAChB,CAAC,GACD,CAAC,CAAC,EACN;QACEC,eAAe,EAAElB,KAAK;QACtBmB,WAAW,EAAEpB,YAAY;QACzBqB,KAAK,EAAE,CAAC;MACV,CAAC,CACD;MAAAd,MAAA,EAAArF,KAAA;MAAAsF,QAAA;QAAAC,QAAA,EAAAtF,YAAA;QAAAuF,UAAA;QAAAC,YAAA;MAAA;IAAA,GAEFlG,MAAA,YAAA2F,aAAA,CAACzC,eAAe;MACd2D,IAAI,EAAE;QACJ5C,QAAQ,EAAEF,IAAI,CAACE,QAAQ;QACvBF,IAAI,EAAE;UAAE+C,IAAI,EAAE/C,IAAI,CAACgD,KAAe;UAAEC,GAAG,EAAEjD,IAAI,CAACkD;QAAU,CAAC;QACzDzC,EAAE,EAAEH,KAAK,CAACI,QAAQ,CAAC,CAAC;QACpBP,MAAM,EAAEH,IAAI,CAACG,MAAM;QACnBC,QAAQ,EAAEJ,IAAI,CAACI;MACjB,CAAE;MACFC,MAAM,EAAEA,MAAO;MACfW,WAAW,EAAEA,WAAY;MACzBL,UAAU,EAAEA,UAAW;MACvBwC,MAAM,EAAC,0BAA0B;MAAApB,MAAA,EAAArF,KAAA;MAAAsF,QAAA;QAAAC,QAAA,EAAAtF,YAAA;QAAAuF,UAAA;QAAAC,YAAA;MAAA;IAAA,CAClC,CACG,CAAC,GAEPlG,MAAA,YAAA2F,aAAA,CAAC1C,UAAU;MAACkE,UAAU,EAAEpD,IAAK;MAAA+B,MAAA,EAAArF,KAAA;MAAAsF,QAAA;QAAAC,QAAA,EAAAtF,YAAA;QAAAuF,UAAA;QAAAC,YAAA;MAAA;IAAA,CAAE,CAE7B,CAAC;EAAA,CACR,CACG,CAAC;AAEX,CAAC;AAED,IAAMkB,QAAQ,GAAG,SAAXA,QAAQA,CACZC,SAAkE,EAClEC,SAAkE,EAC/D;EACH,IAAeC,SAAS,GAAKF,SAAS,CAA9BlE,KAAK;EACb,IAAeqE,SAAS,GAAKF,SAAS,CAA9BnE,KAAK;EAEb,OAAOoE,SAAS,CAACnB,MAAM,KAAKoB,SAAS,CAACpB,MAAM;AAC9C,CAAC;AAED,IAAMqB,2BAA2B,GAAGC,iBAAK,CAACC,IAAI,CAC5C5E,8BAA8B,EAC9BqE,QACF,CAA0C;AAOnC,IAAMQ,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAG9B5E,KAAmD,EAChD;EACH,IAAe6E,SAAS,GAAgB7E,KAAK,CAArCG,KAAK;IAAaC,SAAS,GAAKJ,KAAK,CAAnBI,SAAS;EAEnC,IAAA0E,kBAAA,GAAgC,IAAAC,iCAAiB,EAAqB,CAAC;IAAxDC,YAAY,GAAAF,kBAAA,CAAnB3E,KAAK;EAEb,IAAA8E,mBAAA,GACE,IAAAC,mCAAkB,EAAqB,CAAC;IAAAC,qBAAA,GAAAF,mBAAA,CADlChF,UAAU;IAAVA,UAAU,GAAAkF,qBAAA,cAAGC,sBAAiB,GAAAD,qBAAA;IAAEjF,eAAe,GAAA+E,mBAAA,CAAf/E,eAAe;EAGvD,IAAMC,KAAK,GAAG0E,SAAS,IAAIG,YAAY;EAEvC,IAAI,CAAC7E,KAAK,CAACiD,MAAM,EAAE,OAAO,IAAI;EAE9B,OACEpG,MAAA,YAAA2F,aAAA,CAAC8B,2BAA2B;IAExBxE,UAAU,EAAVA,UAAU;IACVC,eAAe,EAAfA,eAAe;IACfC,KAAK,EAALA,KAAK;IACLC,SAAS,EAATA,SAAS;IAAA0C,MAAA,EAAArF,KAAA;IAAAsF,QAAA;MAAAC,QAAA,EAAAtF,YAAA;MAAAuF,UAAA;MAAAC,YAAA;IAAA;EAAA,CAEZ,CAAC;AAEN,CAAC;AAACmC,OAAA,CAAAT,mBAAA,GAAAA,mBAAA;AAEFA,mBAAmB,CAACU,WAAW,GAAG,yDAAyD"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_Attachment","_MessageContext","_MessagesContext","_ThemeContext","_native","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","FILE_PREVIEW_HEIGHT","styles","StyleSheet","create","container","padding","fileContainer","borderRadius","borderWidth","flexDirection","height","justifyContent","paddingLeft","paddingRight","FileAttachmentGroupWithContext","props","Attachment","AudioAttachment","files","messageId","_props$styles","stylesProp","_useState","useState","_useState2","_slicedToArray2","filesToDisplay","setFilesToDisplay","useEffect","map","file","_extends2","duration","paused","progress","onLoad","index","prevFilesToDisplay","fileToDisplay","id","toString","onProgress","currentTime","hasEnd","prevFileUploads","fileUpload","onPlayPause","pausedStatus","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","grey_whisper","white","messageSimple","fileAttachmentGroup","createElement","View","style","__self","__source","fileName","lineNumber","columnNumber","paddingBottom","length","attachmentContainer","type","isAudioPackageAvailable","accessibilityLabel","marginBottom","backgroundColor","borderColor","width","item","name","title","uri","asset_url","testID","attachment","areEqual","prevProps","nextProps","prevFiles","nextFiles","MemoizedFileAttachmentGroup","React","memo","FileAttachmentGroup","propFiles","_useMessageContext","useMessageContext","contextFiles","_useMessagesContext","useMessagesContext","_useMessagesContext$A","AttachmentDefault","exports","displayName"],"sources":["FileAttachmentGroup.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { Attachment as AttachmentDefault } from './Attachment';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\n\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { isAudioPackageAvailable } from '../../native';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst FILE_PREVIEW_HEIGHT = 60;\n\nconst styles = StyleSheet.create({\n container: {\n padding: 4,\n },\n fileContainer: {\n borderRadius: 12,\n borderWidth: 1,\n flexDirection: 'row',\n height: FILE_PREVIEW_HEIGHT,\n justifyContent: 'space-between',\n paddingLeft: 8,\n paddingRight: 8,\n },\n});\n\nexport type FileAttachmentGroupPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<MessageContextValue<StreamChatGenerics>, 'files'> &\n Pick<MessagesContextValue<StreamChatGenerics>, 'Attachment' | 'AudioAttachment'> & {\n /**\n * The unique id for the message with file attachments\n */\n messageId: string;\n styles?: Partial<{\n attachmentContainer: StyleProp<ViewStyle>;\n container: StyleProp<ViewStyle>;\n }>;\n };\n\ntype FilesToDisplayType<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> & {\n duration: number;\n paused: boolean;\n progress: number;\n};\n\nconst FileAttachmentGroupWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileAttachmentGroupPropsWithContext<StreamChatGenerics>,\n) => {\n const { Attachment, AudioAttachment, files, messageId, styles: stylesProp = {} } = props;\n const [filesToDisplay, setFilesToDisplay] = useState<FilesToDisplayType[]>([]);\n\n useEffect(() => {\n setFilesToDisplay(files.map((file) => ({ ...file, duration: 0, paused: true, progress: 0 })));\n }, [files]);\n\n // Handler triggered when an audio is loaded in the message input. The initial state is defined for the audio here and the duration is set.\n const onLoad = (index: string, duration: number) => {\n setFilesToDisplay((prevFilesToDisplay) =>\n prevFilesToDisplay.map((fileToDisplay, id) => ({\n ...fileToDisplay,\n duration: id.toString() === index ? duration : fileToDisplay.duration,\n })),\n );\n };\n\n // The handler which is triggered when the audio progresses/ the thumb is dragged in the progress control. The progressed duration is set here.\n const onProgress = (index: string, currentTime?: number, hasEnd?: boolean) => {\n setFilesToDisplay((prevFileUploads) =>\n prevFileUploads.map((fileUpload, id) => ({\n ...fileUpload,\n progress:\n id.toString() === index\n ? hasEnd\n ? 1\n : currentTime\n ? currentTime / (fileUpload.duration as number)\n : 0\n : fileUpload.progress,\n })),\n );\n };\n\n // The handler which controls or sets the paused/played state of the audio.\n const onPlayPause = (index: string, pausedStatus?: boolean) => {\n if (pausedStatus === false) {\n // If the status is false we set the audio with the index as playing and the others as paused.\n setFilesToDisplay((prevFileUploads) =>\n prevFileUploads.map((fileUpload, id) => ({\n ...fileUpload,\n paused: id.toString() !== index,\n })),\n );\n } else {\n // If the status is true we simply set all the audio's paused state as true.\n setFilesToDisplay((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n paused: true,\n })),\n );\n }\n };\n\n const {\n theme: {\n colors: { grey_whisper, white },\n messageSimple: {\n fileAttachmentGroup: { container },\n },\n },\n } = useTheme();\n\n return (\n <View style={[styles.container, container, stylesProp.container]}>\n {filesToDisplay.map((file, index) => (\n <View\n key={`${messageId}-${index}`}\n style={[\n { paddingBottom: index !== files.length - 1 ? 4 : 0 },\n stylesProp.attachmentContainer,\n ]}\n >\n {file.type === 'audio' && isAudioPackageAvailable() ? (\n <View\n accessibilityLabel='audio-attachment-preview'\n style={[\n styles.fileContainer,\n index === filesToDisplay.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n backgroundColor: white,\n borderColor: grey_whisper,\n width: -16,\n },\n ]}\n >\n <AudioAttachment\n item={{\n duration: file.duration,\n file: { name: file.title as string, uri: file.asset_url },\n id: index.toString(),\n paused: file.paused,\n progress: file.progress,\n }}\n onLoad={onLoad}\n onPlayPause={onPlayPause}\n onProgress={onProgress}\n testID='audio-attachment-preview'\n />\n </View>\n ) : (\n <Attachment attachment={file} />\n )}\n </View>\n ))}\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: FileAttachmentGroupPropsWithContext<StreamChatGenerics>,\n nextProps: FileAttachmentGroupPropsWithContext<StreamChatGenerics>,\n) => {\n const { files: prevFiles } = prevProps;\n const { files: nextFiles } = nextProps;\n\n return prevFiles.length === nextFiles.length;\n};\n\nconst MemoizedFileAttachmentGroup = React.memo(\n FileAttachmentGroupWithContext,\n areEqual,\n) as typeof FileAttachmentGroupWithContext;\n\nexport type FileAttachmentGroupProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<FileAttachmentGroupPropsWithContext<StreamChatGenerics>, 'messageId'>> &\n Pick<FileAttachmentGroupPropsWithContext<StreamChatGenerics>, 'messageId'>;\n\nexport const FileAttachmentGroup = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileAttachmentGroupProps<StreamChatGenerics>,\n) => {\n const { files: propFiles, messageId } = props;\n\n const { files: contextFiles } = useMessageContext<StreamChatGenerics>();\n\n const { Attachment = AttachmentDefault, AudioAttachment } =\n useMessagesContext<StreamChatGenerics>();\n\n const files = propFiles || contextFiles;\n\n if (!files.length) return null;\n\n return (\n <MemoizedFileAttachmentGroup\n {...{\n Attachment,\n AudioAttachment,\n files,\n messageId,\n }}\n />\n );\n};\n\nFileAttachmentGroup.displayName = 'FileAttachmentGroup{messageSimple{fileAttachmentGroup}}';\n"],"mappings":"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"}
|
|
@@ -1225,7 +1225,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1225
1225
|
break;
|
|
1226
1226
|
case 36:
|
|
1227
1227
|
_context12.next = 38;
|
|
1228
|
-
return channel.sendFile(file.uri, file.name, file.
|
|
1228
|
+
return channel.sendFile(file.uri, file.name, file.mimeType);
|
|
1229
1229
|
case 38:
|
|
1230
1230
|
_context12.t2 = _context12.sent;
|
|
1231
1231
|
case 39:
|