stream-chat-react-native-core 5.21.0 → 5.22.0-beta.10
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/README.md +10 -5
- package/lib/commonjs/components/Attachment/AudioAttachment.js +12 -12
- package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileAttachment.js +10 -7
- package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +8 -6
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js +24 -20
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js +26 -11
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +65 -46
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +2 -0
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -2
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +16 -14
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +4 -2
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/ImageGallery.js +30 -32
- package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +7 -5
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js +10 -8
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +18 -15
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +41 -12
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +10 -8
- package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
- package/lib/commonjs/components/Indicators/EmptyStateIndicator.js +17 -12
- package/lib/commonjs/components/Indicators/EmptyStateIndicator.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +20 -17
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +18 -17
- package/lib/commonjs/components/Message/MessageSimple/ReactionList.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.js +7 -5
- package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.test.js +8 -0
- package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.test.js.map +1 -0
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +25 -17
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +30 -20
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +13 -13
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.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/MessageInput/UploadProgressIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js +13 -11
- package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageActionList.js +8 -14
- package/lib/commonjs/components/MessageOverlay/MessageActionList.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +11 -8
- package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +32 -29
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +17 -15
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/commonjs/contexts/channelContext/ChannelContext.js +2 -2
- package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +66 -45
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -2
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +1 -4
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/hooks/index.js +11 -0
- package/lib/commonjs/hooks/index.js.map +1 -1
- package/lib/commonjs/hooks/useViewport.js +47 -0
- package/lib/commonjs/hooks/useViewport.js.map +1 -0
- package/lib/commonjs/i18n/en.json +6 -1
- package/lib/commonjs/i18n/es.json +77 -0
- package/lib/commonjs/i18n/fr.json +65 -60
- package/lib/commonjs/i18n/he.json +6 -1
- package/lib/commonjs/i18n/hi.json +65 -60
- package/lib/commonjs/i18n/it.json +65 -60
- package/lib/commonjs/i18n/ja.json +6 -1
- package/lib/commonjs/i18n/ko.json +6 -1
- package/lib/commonjs/i18n/nl.json +65 -60
- package/lib/commonjs/i18n/ru.json +65 -60
- package/lib/commonjs/i18n/tr.json +65 -60
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/types/types.js.map +1 -1
- package/lib/commonjs/utils/Streami18n.js +4 -1
- package/lib/commonjs/utils/Streami18n.js.map +1 -1
- package/lib/commonjs/utils/compressImage.js +37 -0
- package/lib/commonjs/utils/compressImage.js.map +1 -0
- package/lib/commonjs/utils/utils.js +1 -15
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/AudioAttachment.js +12 -12
- package/lib/module/components/Attachment/AudioAttachment.js.map +1 -1
- package/lib/module/components/Attachment/FileAttachment.js +10 -7
- package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js +8 -6
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js +24 -20
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js +26 -11
- package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +65 -46
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js +2 -0
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -2
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +16 -14
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +4 -2
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
- package/lib/module/components/ImageGallery/ImageGallery.js +30 -32
- package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +7 -5
- package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
- package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js +10 -8
- package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +18 -15
- package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +41 -12
- package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGrid.js +10 -8
- package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
- package/lib/module/components/Indicators/EmptyStateIndicator.js +17 -12
- package/lib/module/components/Indicators/EmptyStateIndicator.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageContent.js +20 -17
- package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/ReactionList.js +18 -17
- package/lib/module/components/Message/MessageSimple/ReactionList.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.js +7 -5
- package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.test.js +8 -0
- package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.test.js.map +1 -0
- package/lib/module/components/Message/MessageSimple/utils/renderText.js +25 -17
- package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +30 -20
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/ImageUploadPreview.js +13 -13
- package/lib/module/components/MessageInput/ImageUploadPreview.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/MessageInput/UploadProgressIndicator.js.map +1 -1
- package/lib/module/components/MessageList/InlineUnreadIndicator.js +13 -11
- package/lib/module/components/MessageList/InlineUnreadIndicator.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageActionList.js +8 -14
- package/lib/module/components/MessageOverlay/MessageActionList.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageActionListItem.js +11 -8
- package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageOverlay.js +32 -29
- package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/module/components/Thread/components/ThreadFooterComponent.js +17 -15
- package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/module/contexts/channelContext/ChannelContext.js +2 -2
- package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +66 -45
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -2
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +1 -4
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/hooks/index.js +11 -0
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/hooks/useViewport.js +47 -0
- package/lib/module/hooks/useViewport.js.map +1 -0
- package/lib/module/i18n/en.json +6 -1
- package/lib/module/i18n/es.json +77 -0
- package/lib/module/i18n/fr.json +65 -60
- package/lib/module/i18n/he.json +6 -1
- package/lib/module/i18n/hi.json +65 -60
- package/lib/module/i18n/it.json +65 -60
- package/lib/module/i18n/ja.json +6 -1
- package/lib/module/i18n/ko.json +6 -1
- package/lib/module/i18n/nl.json +65 -60
- package/lib/module/i18n/ru.json +65 -60
- package/lib/module/i18n/tr.json +65 -60
- package/lib/module/native.js.map +1 -1
- package/lib/module/types/types.js.map +1 -1
- package/lib/module/utils/Streami18n.js +4 -1
- package/lib/module/utils/Streami18n.js.map +1 -1
- package/lib/module/utils/compressImage.js +37 -0
- package/lib/module/utils/compressImage.js.map +1 -0
- package/lib/module/utils/utils.js +1 -15
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/AudioAttachment.d.ts +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
- package/lib/typescript/components/ImageGallery/components/ImageGalleryFooter.d.ts +3 -0
- package/lib/typescript/components/Message/MessageSimple/utils/generateMarkdownText.d.ts +1 -3
- package/lib/typescript/components/Message/MessageSimple/utils/generateMarkdownText.test.d.ts +1 -0
- package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +1 -1
- package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +1 -1
- package/lib/typescript/components/MessageInput/UploadProgressIndicator.d.ts +5 -2
- package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +5 -0
- package/lib/typescript/contexts/messageContext/MessageContext.d.ts +1 -1
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +3 -23
- package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts +2 -2
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +2 -2
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -3
- package/lib/typescript/hooks/index.d.ts +1 -0
- package/lib/typescript/hooks/useViewport.d.ts +11 -0
- package/lib/typescript/i18n/en.json +6 -1
- package/lib/typescript/i18n/es.json +77 -0
- package/lib/typescript/i18n/fr.json +65 -60
- package/lib/typescript/i18n/he.json +6 -1
- package/lib/typescript/i18n/hi.json +65 -60
- package/lib/typescript/i18n/it.json +65 -60
- package/lib/typescript/i18n/ja.json +6 -1
- package/lib/typescript/i18n/ko.json +6 -1
- package/lib/typescript/i18n/nl.json +65 -60
- package/lib/typescript/i18n/ru.json +65 -60
- package/lib/typescript/i18n/tr.json +65 -60
- package/lib/typescript/native.d.ts +2 -0
- package/lib/typescript/store/mappers/mapStorableToChannel.d.ts +1 -1
- package/lib/typescript/types/types.d.ts +27 -10
- package/lib/typescript/utils/Streami18n.d.ts +7 -1
- package/lib/typescript/utils/compressImage.d.ts +8 -0
- package/lib/typescript/utils/utils.d.ts +0 -2
- package/package.json +2 -2
- package/src/components/Attachment/AudioAttachment.tsx +2 -1
- package/src/components/Attachment/FileAttachment.tsx +12 -3
- package/src/components/AttachmentPicker/AttachmentPicker.tsx +4 -2
- package/src/components/AttachmentPicker/components/AttachmentPickerItem.tsx +7 -5
- package/src/components/AttachmentPicker/components/AttachmentSelectionBar.tsx +13 -1
- package/src/components/Channel/Channel.tsx +32 -8
- package/src/components/Channel/hooks/useCreateChannelContext.ts +2 -0
- package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +2 -9
- package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +4 -3
- package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayName.ts +4 -3
- package/src/components/ImageGallery/ImageGallery.tsx +10 -19
- package/src/components/ImageGallery/components/AnimatedGalleryImage.tsx +5 -3
- package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx +5 -3
- package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +6 -2
- package/src/components/ImageGallery/components/ImageGalleryVideoControl.tsx +12 -7
- package/src/components/ImageGallery/components/ImageGrid.tsx +2 -1
- package/src/components/Indicators/EmptyStateIndicator.tsx +8 -7
- package/src/components/Message/MessageSimple/MessageContent.tsx +3 -1
- package/src/components/Message/MessageSimple/ReactionList.tsx +2 -1
- package/src/components/Message/MessageSimple/utils/generateMarkdownText.test.ts +23 -0
- package/src/components/Message/MessageSimple/utils/generateMarkdownText.ts +12 -13
- package/src/components/Message/MessageSimple/utils/renderText.tsx +12 -2
- package/src/components/MessageInput/FileUploadPreview.tsx +17 -3
- package/src/components/MessageInput/ImageUploadPreview.tsx +1 -2
- package/src/components/MessageInput/MessageInput.tsx +1 -1
- package/src/components/MessageInput/UploadProgressIndicator.tsx +2 -2
- package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewExpo.test.tsx +1 -1
- package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewNative.test.tsx +1 -1
- package/src/components/MessageInput/__tests__/MessageInput.test.js +2 -2
- package/src/components/MessageList/InlineUnreadIndicator.tsx +2 -1
- package/src/components/MessageOverlay/MessageActionList.tsx +3 -11
- package/src/components/MessageOverlay/MessageActionListItem.tsx +5 -2
- package/src/components/MessageOverlay/MessageOverlay.tsx +5 -3
- package/src/components/Thread/components/ThreadFooterComponent.tsx +2 -1
- package/src/contexts/channelContext/ChannelContext.tsx +5 -0
- package/src/contexts/messageInputContext/MessageInputContext.tsx +81 -69
- package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +3 -3
- package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +2 -2
- package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +2 -2
- package/src/contexts/messagesContext/MessagesContext.tsx +2 -2
- package/src/contexts/themeContext/utils/theme.ts +2 -7
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useViewport.ts +41 -0
- package/src/i18n/en.json +6 -1
- package/src/i18n/es.json +77 -0
- package/src/i18n/fr.json +65 -60
- package/src/i18n/he.json +6 -1
- package/src/i18n/hi.json +65 -60
- package/src/i18n/it.json +65 -60
- package/src/i18n/ja.json +6 -1
- package/src/i18n/ko.json +6 -1
- package/src/i18n/nl.json +65 -60
- package/src/i18n/ru.json +65 -60
- package/src/i18n/tr.json +65 -60
- package/src/native.ts +5 -1
- package/src/types/types.ts +29 -10
- package/src/utils/Streami18n.ts +13 -6
- package/src/utils/compressImage.ts +32 -0
- package/src/utils/utils.ts +0 -13
- package/src/version.json +1 -1
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
[](https://www.npmjs.com/package/stream-chat-react-native)
|
|
12
|
-
[](https://github.com/GetStream/stream-chat-react-native/actions)
|
|
13
13
|
[](https://getstream.io/chat/docs/sdk/reactnative)
|
|
14
14
|
|
|
15
15
|
<img align="right" src="https://getstream.imgix.net/images/ios-chat-tutorial/iphone_chat_art@3x.png?auto=format,enhance" width="50%" />
|
|
@@ -25,10 +25,15 @@
|
|
|
25
25
|
|
|
26
26
|
## Contents
|
|
27
27
|
|
|
28
|
-
- [React Native Chat
|
|
29
|
-
- [
|
|
30
|
-
- [
|
|
31
|
-
- [
|
|
28
|
+
- [Official React Native SDK for Stream Chat](#official-react-native-sdk-for-stream-chat)
|
|
29
|
+
- [Contents](#contents)
|
|
30
|
+
- [📖 React Native Chat Tutorial](#-react-native-chat-tutorial)
|
|
31
|
+
- [Free for Makers](#free-for-makers)
|
|
32
|
+
- [🔮 Example Apps](#-example-apps)
|
|
33
|
+
- [💬 Keep in mind](#-keep-in-mind)
|
|
34
|
+
- [👏 Contributing](#-contributing)
|
|
35
|
+
- [Git flow \& Release process](#git-flow--release-process)
|
|
36
|
+
- [We are hiring](#we-are-hiring)
|
|
32
37
|
|
|
33
38
|
## 📖 React Native Chat Tutorial
|
|
34
39
|
|
|
@@ -297,7 +297,7 @@ var AudioAttachmentWithContext = function AudioAttachmentWithContext(props) {
|
|
|
297
297
|
__self: _this,
|
|
298
298
|
__source: {
|
|
299
299
|
fileName: _jsxFileName,
|
|
300
|
-
lineNumber:
|
|
300
|
+
lineNumber: 223,
|
|
301
301
|
columnNumber: 5
|
|
302
302
|
}
|
|
303
303
|
}, _react["default"].createElement(_reactNative.TouchableOpacity, {
|
|
@@ -312,7 +312,7 @@ var AudioAttachmentWithContext = function AudioAttachmentWithContext(props) {
|
|
|
312
312
|
__self: _this,
|
|
313
313
|
__source: {
|
|
314
314
|
fileName: _jsxFileName,
|
|
315
|
-
lineNumber:
|
|
315
|
+
lineNumber: 224,
|
|
316
316
|
columnNumber: 7
|
|
317
317
|
}
|
|
318
318
|
}, item.paused ? _react["default"].createElement(_icons.Play, {
|
|
@@ -322,7 +322,7 @@ var AudioAttachmentWithContext = function AudioAttachmentWithContext(props) {
|
|
|
322
322
|
__self: _this,
|
|
323
323
|
__source: {
|
|
324
324
|
fileName: _jsxFileName,
|
|
325
|
-
lineNumber:
|
|
325
|
+
lineNumber: 234,
|
|
326
326
|
columnNumber: 11
|
|
327
327
|
}
|
|
328
328
|
}) : _react["default"].createElement(_icons.Pause, {
|
|
@@ -332,7 +332,7 @@ var AudioAttachmentWithContext = function AudioAttachmentWithContext(props) {
|
|
|
332
332
|
__self: _this,
|
|
333
333
|
__source: {
|
|
334
334
|
fileName: _jsxFileName,
|
|
335
|
-
lineNumber:
|
|
335
|
+
lineNumber: 236,
|
|
336
336
|
columnNumber: 11
|
|
337
337
|
}
|
|
338
338
|
})), _react["default"].createElement(_reactNative.View, {
|
|
@@ -340,7 +340,7 @@ var AudioAttachmentWithContext = function AudioAttachmentWithContext(props) {
|
|
|
340
340
|
__self: _this,
|
|
341
341
|
__source: {
|
|
342
342
|
fileName: _jsxFileName,
|
|
343
|
-
lineNumber:
|
|
343
|
+
lineNumber: 239,
|
|
344
344
|
columnNumber: 7
|
|
345
345
|
}
|
|
346
346
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -357,7 +357,7 @@ var AudioAttachmentWithContext = function AudioAttachmentWithContext(props) {
|
|
|
357
357
|
__self: _this,
|
|
358
358
|
__source: {
|
|
359
359
|
fileName: _jsxFileName,
|
|
360
|
-
lineNumber:
|
|
360
|
+
lineNumber: 240,
|
|
361
361
|
columnNumber: 9
|
|
362
362
|
}
|
|
363
363
|
}, item.file.name.slice(0, 12) + '...' + item.file.name.slice(lastIndexOfDot)), _react["default"].createElement(_reactNative.View, {
|
|
@@ -369,7 +369,7 @@ var AudioAttachmentWithContext = function AudioAttachmentWithContext(props) {
|
|
|
369
369
|
__self: _this,
|
|
370
370
|
__source: {
|
|
371
371
|
fileName: _jsxFileName,
|
|
372
|
-
lineNumber:
|
|
372
|
+
lineNumber: 259,
|
|
373
373
|
columnNumber: 9
|
|
374
374
|
}
|
|
375
375
|
}, _native.Sound.Player && _react["default"].createElement(_native.Sound.Player, {
|
|
@@ -383,7 +383,7 @@ var AudioAttachmentWithContext = function AudioAttachmentWithContext(props) {
|
|
|
383
383
|
__self: _this,
|
|
384
384
|
__source: {
|
|
385
385
|
fileName: _jsxFileName,
|
|
386
|
-
lineNumber:
|
|
386
|
+
lineNumber: 268,
|
|
387
387
|
columnNumber: 13
|
|
388
388
|
}
|
|
389
389
|
}), _react["default"].createElement(_reactNative.Text, {
|
|
@@ -393,7 +393,7 @@ var AudioAttachmentWithContext = function AudioAttachmentWithContext(props) {
|
|
|
393
393
|
__self: _this,
|
|
394
394
|
__source: {
|
|
395
395
|
fileName: _jsxFileName,
|
|
396
|
-
lineNumber:
|
|
396
|
+
lineNumber: 278,
|
|
397
397
|
columnNumber: 11
|
|
398
398
|
}
|
|
399
399
|
}, progressDuration), _react["default"].createElement(_reactNative.View, {
|
|
@@ -401,7 +401,7 @@ var AudioAttachmentWithContext = function AudioAttachmentWithContext(props) {
|
|
|
401
401
|
__self: _this,
|
|
402
402
|
__source: {
|
|
403
403
|
fileName: _jsxFileName,
|
|
404
|
-
lineNumber:
|
|
404
|
+
lineNumber: 281,
|
|
405
405
|
columnNumber: 11
|
|
406
406
|
}
|
|
407
407
|
}, _react["default"].createElement(_ProgressControl.ProgressControl, {
|
|
@@ -415,7 +415,7 @@ var AudioAttachmentWithContext = function AudioAttachmentWithContext(props) {
|
|
|
415
415
|
__self: _this,
|
|
416
416
|
__source: {
|
|
417
417
|
fileName: _jsxFileName,
|
|
418
|
-
lineNumber:
|
|
418
|
+
lineNumber: 282,
|
|
419
419
|
columnNumber: 13
|
|
420
420
|
}
|
|
421
421
|
})))));
|
|
@@ -425,7 +425,7 @@ var AudioAttachment = function AudioAttachment(props) {
|
|
|
425
425
|
__self: _this,
|
|
426
426
|
__source: {
|
|
427
427
|
fileName: _jsxFileName,
|
|
428
|
-
lineNumber:
|
|
428
|
+
lineNumber: 311,
|
|
429
429
|
columnNumber: 3
|
|
430
430
|
}
|
|
431
431
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_dayjs","_interopRequireDefault","_duration","_contexts","_icons","_native","_ProgressControl","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","dayjs","extend","duration","FILE_PREVIEW_HEIGHT","styles","StyleSheet","create","fileContainer","borderRadius","borderWidth","flexDirection","height","paddingLeft","paddingRight","fileContentContainer","filenameText","fontSize","fontWeight","fileTextContainer","justifyContent","flatList","marginBottom","maxHeight","overlay","marginLeft","marginRight","progressControlView","flex","progressDurationText","roundedView","alignItems","alignSelf","display","elevation","shadowOffset","width","shadowOpacity","shadowRadius","AudioAttachmentWithContext","props","soundRef","React","useRef","item","onLoad","onPlayPause","onProgress","handleLoad","payload","id","handleProgress","data","currentTime","seekableDuration","handlePlayPause","_ref","_asyncToGenerator2","_regenerator","mark","_callee","isPausedStatusAvailable","wrap","_callee$","_context","prev","next","current","undefined","progress","seek","setPositionAsync","paused","playAsync","pauseAsync","stop","_x","apply","arguments","handleProgressDrag","_ref2","_callee2","position","_soundRef$current","_soundRef$current2","_callee2$","_context2","_x2","handleEnd","onPlaybackStatusUpdate","playbackStatus","isLoaded","error","console","log","durationMillis","positionMillis","isPlaying","isBuffering","didJustFinish","isLooping","useEffect","Sound","Player","initiateSound","_ref3","_callee3","_callee3$","_context3","file","uri","initializeSound","sent","_soundRef$current3","stopAsync","unloadAsync","initalPlayPause","_ref4","_callee4","_callee4$","_context4","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_blue","black","grey_dark","static_black","static_white","_useTheme$theme$messa","messageInput","fileUploadPreview","_useTheme$theme$messa2","audioAttachment","progressValueInSeconds","progressDuration","format","lastIndexOfDot","name","lastIndexOf","createElement","View","style","__self","__source","fileName","lineNumber","columnNumber","TouchableOpacity","accessibilityLabel","onPress","backgroundColor","shadowColor","Play","pathFill","Pause","Text","numberOfLines","color","I18nManager","isRTL","writingDirection","slice","onEnd","testID","ProgressControl","filledColor","onProgressDrag","AudioAttachment","_extends2","exports","displayName"],"sources":["AudioAttachment.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { I18nManager, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport dayjs from 'dayjs';\nimport duration from 'dayjs/plugin/duration';\n\nimport { FileUpload, useTheme } from '../../contexts';\nimport { Pause, Play } from '../../icons';\nimport {\n PlaybackStatus,\n Sound,\n SoundReturnType,\n VideoPayloadData,\n VideoProgressData,\n} from '../../native';\nimport { ProgressControl } from '../ProgressControl/ProgressControl';\n\ndayjs.extend(duration);\n\nconst FILE_PREVIEW_HEIGHT = 70;\n\nconst styles = StyleSheet.create({\n fileContainer: {\n borderRadius: 12,\n borderWidth: 1,\n flexDirection: 'row',\n height: FILE_PREVIEW_HEIGHT,\n paddingLeft: 8,\n paddingRight: 8,\n },\n fileContentContainer: { flexDirection: 'row', paddingRight: 40 },\n filenameText: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingLeft: 10,\n },\n fileTextContainer: {\n justifyContent: 'space-around',\n },\n flatList: { marginBottom: 12, maxHeight: FILE_PREVIEW_HEIGHT * 2.5 + 16 },\n overlay: {\n borderRadius: 12,\n marginLeft: 8,\n marginRight: 8,\n },\n progressControlView: {\n flex: 8,\n },\n progressDurationText: {\n flex: 4,\n fontSize: 12,\n paddingLeft: 10,\n paddingRight: 8,\n },\n roundedView: {\n alignItems: 'center',\n alignSelf: 'center',\n borderRadius: 50,\n display: 'flex',\n elevation: 4,\n height: 36,\n justifyContent: 'center',\n shadowOffset: {\n height: 2,\n width: 0,\n },\n shadowOpacity: 0.23,\n shadowRadius: 2.62,\n width: 36,\n },\n});\n\nexport type AudioAttachmentPropsWithContext = {\n item: Omit<FileUpload, 'state'>;\n onLoad: (index: string, duration: number) => void;\n onPlayPause: (index: string, pausedStatus?: boolean) => void;\n onProgress: (index: string, currentTime?: number, hasEnd?: boolean) => void;\n testID?: string;\n};\n\nconst AudioAttachmentWithContext = (props: AudioAttachmentPropsWithContext) => {\n const soundRef = React.useRef<SoundReturnType | null>(null);\n const { item, onLoad, onPlayPause, onProgress } = props;\n\n const handleLoad = (payload: VideoPayloadData) => {\n onLoad(item.id, payload.duration);\n };\n\n const handleProgress = (data: VideoProgressData) => {\n if (data.currentTime && data.seekableDuration) {\n onProgress(item.id, data.currentTime);\n }\n };\n\n const handlePlayPause = async (isPausedStatusAvailable?: boolean) => {\n if (soundRef.current) {\n if (isPausedStatusAvailable === undefined) {\n if (item.progress === 1) {\n // For native CLI\n if (soundRef.current.seek) soundRef.current.seek(0);\n // For expo CLI\n if (soundRef.current.setPositionAsync) soundRef.current.setPositionAsync(0);\n }\n if (item.paused) {\n if (soundRef.current.playAsync) await soundRef.current.playAsync();\n onPlayPause(item.id, false);\n } else {\n if (soundRef.current.pauseAsync) await soundRef.current.pauseAsync();\n onPlayPause(item.id, true);\n }\n } else {\n onPlayPause(item.id, isPausedStatusAvailable);\n }\n }\n };\n\n const handleProgressDrag = async (position: number) => {\n onProgress(item.id, position);\n if (soundRef.current?.seek) soundRef.current.seek(position);\n if (soundRef.current?.setPositionAsync) {\n await soundRef.current.setPositionAsync(position * 1000);\n }\n };\n\n const handleEnd = () => {\n onPlayPause(item.id, true);\n onProgress(item.id, item.duration, true);\n };\n\n const onPlaybackStatusUpdate = (playbackStatus: PlaybackStatus) => {\n if (!playbackStatus.isLoaded) {\n // Update your UI for the unloaded state\n if (playbackStatus.error) {\n console.log(`Encountered a fatal error during playback: ${playbackStatus.error}`);\n }\n } else {\n const { durationMillis, positionMillis } = playbackStatus;\n onLoad(item.id, durationMillis / 1000);\n // Update your UI for the loaded state\n if (playbackStatus.isPlaying) {\n // Update your UI for the playing state\n onProgress(item.id, positionMillis / 1000);\n } else {\n // Update your UI for the paused state\n }\n\n if (playbackStatus.isBuffering) {\n // Update your UI for the buffering state\n }\n\n if (playbackStatus.didJustFinish && !playbackStatus.isLooping) {\n // The player has just finished playing and will stop. Maybe you want to play something else?\n // status: opposite of pause,says i am playing\n handleEnd();\n }\n }\n };\n\n useEffect(() => {\n if (Sound.Player === null) {\n const initiateSound = async () => {\n if (item && item.file && item.file.uri) {\n soundRef.current = await Sound.initializeSound(\n { uri: item.file.uri },\n {},\n onPlaybackStatusUpdate,\n );\n }\n };\n initiateSound();\n }\n\n return () => {\n if (soundRef.current?.stopAsync && soundRef.current.unloadAsync) {\n soundRef.current.stopAsync();\n soundRef.current.unloadAsync();\n }\n };\n }, []);\n\n // This is needed for expo applications where the rerender doesn't occur on time thefore you need to update the state of the sound.\n useEffect(() => {\n const initalPlayPause = async () => {\n if (soundRef.current) {\n if (item.paused) {\n if (soundRef.current.pauseAsync) await soundRef.current.pauseAsync();\n } else {\n if (soundRef.current.playAsync) await soundRef.current.playAsync();\n }\n }\n };\n if (!Sound.Player) {\n initalPlayPause();\n }\n }, [item.paused]);\n\n const {\n theme: {\n colors: { accent_blue, black, grey_dark, static_black, static_white },\n messageInput: {\n fileUploadPreview: {\n audioAttachment: { progressControlView, progressDurationText, roundedView },\n fileContentContainer,\n filenameText,\n fileTextContainer,\n },\n },\n },\n } = useTheme();\n\n const progressValueInSeconds = (item.duration as number) * (item.progress as number);\n\n const progressDuration = progressValueInSeconds\n ? progressValueInSeconds / 3600 >= 1\n ? dayjs.duration(progressValueInSeconds, 'second').format('HH:mm:ss')\n : dayjs.duration(progressValueInSeconds, 'second').format('mm:ss')\n : '00:00';\n\n const lastIndexOfDot = item.file.name.lastIndexOf('.');\n\n return (\n <View style={[styles.fileContentContainer, fileContentContainer]}>\n <TouchableOpacity\n accessibilityLabel='Play Pause Button'\n onPress={() => handlePlayPause()}\n style={[\n styles.roundedView,\n roundedView,\n { backgroundColor: static_white, shadowColor: black },\n ]}\n >\n {item.paused ? (\n <Play height={24} pathFill={static_black} width={24} />\n ) : (\n <Pause height={24} pathFill={static_black} width={24} />\n )}\n </TouchableOpacity>\n <View style={[styles.fileTextContainer, fileTextContainer]}>\n <Text\n accessibilityLabel='File Name'\n numberOfLines={1}\n style={[\n styles.filenameText,\n {\n color: black,\n width:\n 16 - // 16 = horizontal padding\n 40 - // 40 = file icon size\n 24 - // 24 = close icon size\n 24, // 24 = internal padding\n },\n I18nManager.isRTL ? { writingDirection: 'rtl' } : { writingDirection: 'ltr' },\n filenameText,\n ]}\n >\n {item.file.name.slice(0, 12) + '...' + item.file.name.slice(lastIndexOfDot)}\n </Text>\n <View\n style={{\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n }}\n >\n {/* <ExpoSoundPlayer filePaused={!!item.paused} soundRef={soundRef} /> */}\n {Sound.Player && (\n <Sound.Player\n onEnd={handleEnd}\n onLoad={handleLoad}\n onProgress={handleProgress}\n paused={item.paused as boolean}\n soundRef={soundRef}\n testID='sound-player'\n uri={item.file.uri}\n />\n )}\n <Text style={[styles.progressDurationText, { color: grey_dark }, progressDurationText]}>\n {progressDuration}\n </Text>\n <View style={[styles.progressControlView, progressControlView]}>\n <ProgressControl\n duration={item.duration as number}\n filledColor={accent_blue}\n onPlayPause={handlePlayPause}\n onProgressDrag={handleProgressDrag}\n progress={item.progress as number}\n testID='progress-control'\n width={120}\n />\n </View>\n </View>\n </View>\n </View>\n );\n};\n\nexport type AudioAttachmentProps = Partial<AudioAttachmentPropsWithContext> & {\n item: Omit<FileUpload, 'state'>;\n onLoad: (index: string, duration: number) => void;\n onPlayPause: (index: string, pausedStatus?: boolean) => void;\n onProgress: (index: string, currentTime?: number, hasEnd?: boolean) => void;\n testID: string;\n};\n\n/**\n * AudioAttachment\n * UI Component to preview the audio files\n */\nexport const AudioAttachment = (props: AudioAttachmentProps) => (\n <AudioAttachmentWithContext {...props} />\n);\n\nAudioAttachment.displayName = 'AudioAttachment{messageInput{autoAttachment}}';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_dayjs","_interopRequireDefault","_duration","_contexts","_icons","_native","_ProgressControl","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","dayjs","extend","duration","FILE_PREVIEW_HEIGHT","styles","StyleSheet","create","fileContainer","borderRadius","borderWidth","flexDirection","height","paddingLeft","paddingRight","fileContentContainer","filenameText","fontSize","fontWeight","fileTextContainer","justifyContent","flatList","marginBottom","maxHeight","overlay","marginLeft","marginRight","progressControlView","flex","progressDurationText","roundedView","alignItems","alignSelf","display","elevation","shadowOffset","width","shadowOpacity","shadowRadius","AudioAttachmentWithContext","props","soundRef","React","useRef","item","onLoad","onPlayPause","onProgress","handleLoad","payload","id","handleProgress","data","currentTime","seekableDuration","handlePlayPause","_ref","_asyncToGenerator2","_regenerator","mark","_callee","isPausedStatusAvailable","wrap","_callee$","_context","prev","next","current","undefined","progress","seek","setPositionAsync","paused","playAsync","pauseAsync","stop","_x","apply","arguments","handleProgressDrag","_ref2","_callee2","position","_soundRef$current","_soundRef$current2","_callee2$","_context2","_x2","handleEnd","onPlaybackStatusUpdate","playbackStatus","isLoaded","error","console","log","durationMillis","positionMillis","isPlaying","isBuffering","didJustFinish","isLooping","useEffect","Sound","Player","initiateSound","_ref3","_callee3","_callee3$","_context3","file","uri","initializeSound","sent","_soundRef$current3","stopAsync","unloadAsync","initalPlayPause","_ref4","_callee4","_callee4$","_context4","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_blue","black","grey_dark","static_black","static_white","_useTheme$theme$messa","messageInput","fileUploadPreview","_useTheme$theme$messa2","audioAttachment","progressValueInSeconds","progressDuration","format","lastIndexOfDot","name","lastIndexOf","createElement","View","style","__self","__source","fileName","lineNumber","columnNumber","TouchableOpacity","accessibilityLabel","onPress","backgroundColor","shadowColor","Play","pathFill","Pause","Text","numberOfLines","color","I18nManager","isRTL","writingDirection","slice","onEnd","testID","ProgressControl","filledColor","onProgressDrag","AudioAttachment","_extends2","exports","displayName"],"sources":["AudioAttachment.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { I18nManager, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport dayjs from 'dayjs';\nimport duration from 'dayjs/plugin/duration';\n\nimport { useTheme } from '../../contexts';\nimport { Pause, Play } from '../../icons';\nimport {\n PlaybackStatus,\n Sound,\n SoundReturnType,\n VideoPayloadData,\n VideoProgressData,\n} from '../../native';\nimport type { FileUpload } from '../../types/types';\nimport { ProgressControl } from '../ProgressControl/ProgressControl';\n\ndayjs.extend(duration);\n\nconst FILE_PREVIEW_HEIGHT = 70;\n\nconst styles = StyleSheet.create({\n fileContainer: {\n borderRadius: 12,\n borderWidth: 1,\n flexDirection: 'row',\n height: FILE_PREVIEW_HEIGHT,\n paddingLeft: 8,\n paddingRight: 8,\n },\n fileContentContainer: { flexDirection: 'row', paddingRight: 40 },\n filenameText: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingLeft: 10,\n },\n fileTextContainer: {\n justifyContent: 'space-around',\n },\n flatList: { marginBottom: 12, maxHeight: FILE_PREVIEW_HEIGHT * 2.5 + 16 },\n overlay: {\n borderRadius: 12,\n marginLeft: 8,\n marginRight: 8,\n },\n progressControlView: {\n flex: 8,\n },\n progressDurationText: {\n flex: 4,\n fontSize: 12,\n paddingLeft: 10,\n paddingRight: 8,\n },\n roundedView: {\n alignItems: 'center',\n alignSelf: 'center',\n borderRadius: 50,\n display: 'flex',\n elevation: 4,\n height: 36,\n justifyContent: 'center',\n shadowOffset: {\n height: 2,\n width: 0,\n },\n shadowOpacity: 0.23,\n shadowRadius: 2.62,\n width: 36,\n },\n});\n\nexport type AudioAttachmentPropsWithContext = {\n item: Omit<FileUpload, 'state'>;\n onLoad: (index: string, duration: number) => void;\n onPlayPause: (index: string, pausedStatus?: boolean) => void;\n onProgress: (index: string, currentTime?: number, hasEnd?: boolean) => void;\n testID?: string;\n};\n\nconst AudioAttachmentWithContext = (props: AudioAttachmentPropsWithContext) => {\n const soundRef = React.useRef<SoundReturnType | null>(null);\n const { item, onLoad, onPlayPause, onProgress } = props;\n\n const handleLoad = (payload: VideoPayloadData) => {\n onLoad(item.id, payload.duration);\n };\n\n const handleProgress = (data: VideoProgressData) => {\n if (data.currentTime && data.seekableDuration) {\n onProgress(item.id, data.currentTime);\n }\n };\n\n const handlePlayPause = async (isPausedStatusAvailable?: boolean) => {\n if (soundRef.current) {\n if (isPausedStatusAvailable === undefined) {\n if (item.progress === 1) {\n // For native CLI\n if (soundRef.current.seek) soundRef.current.seek(0);\n // For expo CLI\n if (soundRef.current.setPositionAsync) soundRef.current.setPositionAsync(0);\n }\n if (item.paused) {\n if (soundRef.current.playAsync) await soundRef.current.playAsync();\n onPlayPause(item.id, false);\n } else {\n if (soundRef.current.pauseAsync) await soundRef.current.pauseAsync();\n onPlayPause(item.id, true);\n }\n } else {\n onPlayPause(item.id, isPausedStatusAvailable);\n }\n }\n };\n\n const handleProgressDrag = async (position: number) => {\n onProgress(item.id, position);\n if (soundRef.current?.seek) soundRef.current.seek(position);\n if (soundRef.current?.setPositionAsync) {\n await soundRef.current.setPositionAsync(position * 1000);\n }\n };\n\n const handleEnd = () => {\n onPlayPause(item.id, true);\n onProgress(item.id, item.duration, true);\n };\n\n const onPlaybackStatusUpdate = (playbackStatus: PlaybackStatus) => {\n if (!playbackStatus.isLoaded) {\n // Update your UI for the unloaded state\n if (playbackStatus.error) {\n console.log(`Encountered a fatal error during playback: ${playbackStatus.error}`);\n }\n } else {\n const { durationMillis, positionMillis } = playbackStatus;\n onLoad(item.id, durationMillis / 1000);\n // Update your UI for the loaded state\n if (playbackStatus.isPlaying) {\n // Update your UI for the playing state\n onProgress(item.id, positionMillis / 1000);\n } else {\n // Update your UI for the paused state\n }\n\n if (playbackStatus.isBuffering) {\n // Update your UI for the buffering state\n }\n\n if (playbackStatus.didJustFinish && !playbackStatus.isLooping) {\n // The player has just finished playing and will stop. Maybe you want to play something else?\n // status: opposite of pause,says i am playing\n handleEnd();\n }\n }\n };\n\n useEffect(() => {\n if (Sound.Player === null) {\n const initiateSound = async () => {\n if (item && item.file && item.file.uri) {\n soundRef.current = await Sound.initializeSound(\n { uri: item.file.uri },\n {},\n onPlaybackStatusUpdate,\n );\n }\n };\n initiateSound();\n }\n\n return () => {\n if (soundRef.current?.stopAsync && soundRef.current.unloadAsync) {\n soundRef.current.stopAsync();\n soundRef.current.unloadAsync();\n }\n };\n }, []);\n\n // This is needed for expo applications where the rerender doesn't occur on time thefore you need to update the state of the sound.\n useEffect(() => {\n const initalPlayPause = async () => {\n if (soundRef.current) {\n if (item.paused) {\n if (soundRef.current.pauseAsync) await soundRef.current.pauseAsync();\n } else {\n if (soundRef.current.playAsync) await soundRef.current.playAsync();\n }\n }\n };\n if (!Sound.Player) {\n initalPlayPause();\n }\n }, [item.paused]);\n\n const {\n theme: {\n colors: { accent_blue, black, grey_dark, static_black, static_white },\n messageInput: {\n fileUploadPreview: {\n audioAttachment: { progressControlView, progressDurationText, roundedView },\n fileContentContainer,\n filenameText,\n fileTextContainer,\n },\n },\n },\n } = useTheme();\n\n const progressValueInSeconds = (item.duration as number) * (item.progress as number);\n\n const progressDuration = progressValueInSeconds\n ? progressValueInSeconds / 3600 >= 1\n ? dayjs.duration(progressValueInSeconds, 'second').format('HH:mm:ss')\n : dayjs.duration(progressValueInSeconds, 'second').format('mm:ss')\n : '00:00';\n\n const lastIndexOfDot = item.file.name.lastIndexOf('.');\n\n return (\n <View style={[styles.fileContentContainer, fileContentContainer]}>\n <TouchableOpacity\n accessibilityLabel='Play Pause Button'\n onPress={() => handlePlayPause()}\n style={[\n styles.roundedView,\n roundedView,\n { backgroundColor: static_white, shadowColor: black },\n ]}\n >\n {item.paused ? (\n <Play height={24} pathFill={static_black} width={24} />\n ) : (\n <Pause height={24} pathFill={static_black} width={24} />\n )}\n </TouchableOpacity>\n <View style={[styles.fileTextContainer, fileTextContainer]}>\n <Text\n accessibilityLabel='File Name'\n numberOfLines={1}\n style={[\n styles.filenameText,\n {\n color: black,\n width:\n 16 - // 16 = horizontal padding\n 40 - // 40 = file icon size\n 24 - // 24 = close icon size\n 24, // 24 = internal padding\n },\n I18nManager.isRTL ? { writingDirection: 'rtl' } : { writingDirection: 'ltr' },\n filenameText,\n ]}\n >\n {item.file.name.slice(0, 12) + '...' + item.file.name.slice(lastIndexOfDot)}\n </Text>\n <View\n style={{\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n }}\n >\n {/* <ExpoSoundPlayer filePaused={!!item.paused} soundRef={soundRef} /> */}\n {Sound.Player && (\n <Sound.Player\n onEnd={handleEnd}\n onLoad={handleLoad}\n onProgress={handleProgress}\n paused={item.paused as boolean}\n soundRef={soundRef}\n testID='sound-player'\n uri={item.file.uri}\n />\n )}\n <Text style={[styles.progressDurationText, { color: grey_dark }, progressDurationText]}>\n {progressDuration}\n </Text>\n <View style={[styles.progressControlView, progressControlView]}>\n <ProgressControl\n duration={item.duration as number}\n filledColor={accent_blue}\n onPlayPause={handlePlayPause}\n onProgressDrag={handleProgressDrag}\n progress={item.progress as number}\n testID='progress-control'\n width={120}\n />\n </View>\n </View>\n </View>\n </View>\n );\n};\n\nexport type AudioAttachmentProps = Partial<AudioAttachmentPropsWithContext> & {\n item: Omit<FileUpload, 'state'>;\n onLoad: (index: string, duration: number) => void;\n onPlayPause: (index: string, pausedStatus?: boolean) => void;\n onProgress: (index: string, currentTime?: number, hasEnd?: boolean) => void;\n testID: string;\n};\n\n/**\n * AudioAttachment\n * UI Component to preview the audio files\n */\nexport const AudioAttachment = (props: AudioAttachmentProps) => (\n <AudioAttachmentWithContext {...props} />\n);\n\nAudioAttachment.displayName = 'AudioAttachment{messageInput{autoAttachment}}';\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,SAAA,GAAAD,sBAAA,CAAAH,OAAA;AAEA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AAQA,IAAAQ,gBAAA,GAAAR,OAAA;AAAqE,IAAAS,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,SAAAb,wBAAAiB,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;AAErEW,iBAAK,CAACC,MAAM,CAACC,oBAAQ,CAAC;AAEtB,IAAMC,mBAAmB,GAAG,EAAE;AAE9B,IAAMC,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,aAAa,EAAE;IACbC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,aAAa,EAAE,KAAK;IACpBC,MAAM,EAAER,mBAAmB;IAC3BS,WAAW,EAAE,CAAC;IACdC,YAAY,EAAE;EAChB,CAAC;EACDC,oBAAoB,EAAE;IAAEJ,aAAa,EAAE,KAAK;IAAEG,YAAY,EAAE;EAAG,CAAC;EAChEE,YAAY,EAAE;IACZC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,MAAM;IAClBL,WAAW,EAAE;EACf,CAAC;EACDM,iBAAiB,EAAE;IACjBC,cAAc,EAAE;EAClB,CAAC;EACDC,QAAQ,EAAE;IAAEC,YAAY,EAAE,EAAE;IAAEC,SAAS,EAAEnB,mBAAmB,GAAG,GAAG,GAAG;EAAG,CAAC;EACzEoB,OAAO,EAAE;IACPf,YAAY,EAAE,EAAE;IAChBgB,UAAU,EAAE,CAAC;IACbC,WAAW,EAAE;EACf,CAAC;EACDC,mBAAmB,EAAE;IACnBC,IAAI,EAAE;EACR,CAAC;EACDC,oBAAoB,EAAE;IACpBD,IAAI,EAAE,CAAC;IACPX,QAAQ,EAAE,EAAE;IACZJ,WAAW,EAAE,EAAE;IACfC,YAAY,EAAE;EAChB,CAAC;EACDgB,WAAW,EAAE;IACXC,UAAU,EAAE,QAAQ;IACpBC,SAAS,EAAE,QAAQ;IACnBvB,YAAY,EAAE,EAAE;IAChBwB,OAAO,EAAE,MAAM;IACfC,SAAS,EAAE,CAAC;IACZtB,MAAM,EAAE,EAAE;IACVQ,cAAc,EAAE,QAAQ;IACxBe,YAAY,EAAE;MACZvB,MAAM,EAAE,CAAC;MACTwB,KAAK,EAAE;IACT,CAAC;IACDC,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,IAAI;IAClBF,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAUF,IAAMG,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAIC,KAAsC,EAAK;EAC7E,IAAMC,QAAQ,GAAGC,iBAAK,CAACC,MAAM,CAAyB,IAAI,CAAC;EAC3D,IAAQC,IAAI,GAAsCJ,KAAK,CAA/CI,IAAI;IAAEC,MAAM,GAA8BL,KAAK,CAAzCK,MAAM;IAAEC,WAAW,GAAiBN,KAAK,CAAjCM,WAAW;IAAEC,UAAU,GAAKP,KAAK,CAApBO,UAAU;EAE7C,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAIC,OAAyB,EAAK;IAChDJ,MAAM,CAACD,IAAI,CAACM,EAAE,EAAED,OAAO,CAAC9C,QAAQ,CAAC;EACnC,CAAC;EAED,IAAMgD,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,IAAuB,EAAK;IAClD,IAAIA,IAAI,CAACC,WAAW,IAAID,IAAI,CAACE,gBAAgB,EAAE;MAC7CP,UAAU,CAACH,IAAI,CAACM,EAAE,EAAEE,IAAI,CAACC,WAAW,CAAC;IACvC;EACF,CAAC;EAED,IAAME,eAAe;IAAA,IAAAC,IAAA,OAAAC,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAC,QAAOC,uBAAiC;MAAA,OAAAH,YAAA,YAAAI,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,KAC1DzB,QAAQ,CAAC0B,OAAO;cAAAH,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAA,MACdL,uBAAuB,KAAKO,SAAS;cAAAJ,QAAA,CAAAE,IAAA;cAAA;YAAA;YACvC,IAAItB,IAAI,CAACyB,QAAQ,KAAK,CAAC,EAAE;cAEvB,IAAI5B,QAAQ,CAAC0B,OAAO,CAACG,IAAI,EAAE7B,QAAQ,CAAC0B,OAAO,CAACG,IAAI,CAAC,CAAC,CAAC;cAEnD,IAAI7B,QAAQ,CAAC0B,OAAO,CAACI,gBAAgB,EAAE9B,QAAQ,CAAC0B,OAAO,CAACI,gBAAgB,CAAC,CAAC,CAAC;YAC7E;YAAC,KACG3B,IAAI,CAAC4B,MAAM;cAAAR,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAA,KACTzB,QAAQ,CAAC0B,OAAO,CAACM,SAAS;cAAAT,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OAAQzB,QAAQ,CAAC0B,OAAO,CAACM,SAAS,CAAC,CAAC;UAAA;YAClE3B,WAAW,CAACF,IAAI,CAACM,EAAE,EAAE,KAAK,CAAC;YAACc,QAAA,CAAAE,IAAA;YAAA;UAAA;YAAA,KAExBzB,QAAQ,CAAC0B,OAAO,CAACO,UAAU;cAAAV,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OAAQzB,QAAQ,CAAC0B,OAAO,CAACO,UAAU,CAAC,CAAC;UAAA;YACpE5B,WAAW,CAACF,IAAI,CAACM,EAAE,EAAE,IAAI,CAAC;UAAC;YAAAc,QAAA,CAAAE,IAAA;YAAA;UAAA;YAG7BpB,WAAW,CAACF,IAAI,CAACM,EAAE,EAAEW,uBAAuB,CAAC;UAAC;UAAA;YAAA,OAAAG,QAAA,CAAAW,IAAA;QAAA;MAAA,GAAAf,OAAA;IAAA,CAGnD;IAAA,gBApBKL,eAAeA,CAAAqB,EAAA;MAAA,OAAApB,IAAA,CAAAqB,KAAA,OAAAC,SAAA;IAAA;EAAA,GAoBpB;EAED,IAAMC,kBAAkB;IAAA,IAAAC,KAAA,OAAAvB,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAsB,SAAOC,QAAgB;MAAA,IAAAC,iBAAA,EAAAC,kBAAA;MAAA,OAAA1B,YAAA,YAAAI,IAAA,UAAAuB,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAArB,IAAA,GAAAqB,SAAA,CAAApB,IAAA;UAAA;YAChDnB,UAAU,CAACH,IAAI,CAACM,EAAE,EAAEgC,QAAQ,CAAC;YAC7B,KAAAC,iBAAA,GAAI1C,QAAQ,CAAC0B,OAAO,aAAhBgB,iBAAA,CAAkBb,IAAI,EAAE7B,QAAQ,CAAC0B,OAAO,CAACG,IAAI,CAACY,QAAQ,CAAC;YAAC,OAAAE,kBAAA,GACxD3C,QAAQ,CAAC0B,OAAO,aAAhBiB,kBAAA,CAAkBb,gBAAgB;cAAAe,SAAA,CAAApB,IAAA;cAAA;YAAA;YAAAoB,SAAA,CAAApB,IAAA;YAAA,OAC9BzB,QAAQ,CAAC0B,OAAO,CAACI,gBAAgB,CAACW,QAAQ,GAAG,IAAI,CAAC;UAAA;UAAA;YAAA,OAAAI,SAAA,CAAAX,IAAA;QAAA;MAAA,GAAAM,QAAA;IAAA,CAE3D;IAAA,gBANKF,kBAAkBA,CAAAQ,GAAA;MAAA,OAAAP,KAAA,CAAAH,KAAA,OAAAC,SAAA;IAAA;EAAA,GAMvB;EAED,IAAMU,SAAS,GAAG,SAAZA,SAASA,CAAA,EAAS;IACtB1C,WAAW,CAACF,IAAI,CAACM,EAAE,EAAE,IAAI,CAAC;IAC1BH,UAAU,CAACH,IAAI,CAACM,EAAE,EAAEN,IAAI,CAACzC,QAAQ,EAAE,IAAI,CAAC;EAC1C,CAAC;EAED,IAAMsF,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIC,cAA8B,EAAK;IACjE,IAAI,CAACA,cAAc,CAACC,QAAQ,EAAE;MAE5B,IAAID,cAAc,CAACE,KAAK,EAAE;QACxBC,OAAO,CAACC,GAAG,iDAA+CJ,cAAc,CAACE,KAAO,CAAC;MACnF;IACF,CAAC,MAAM;MACL,IAAQG,cAAc,GAAqBL,cAAc,CAAjDK,cAAc;QAAEC,cAAc,GAAKN,cAAc,CAAjCM,cAAc;MACtCnD,MAAM,CAACD,IAAI,CAACM,EAAE,EAAE6C,cAAc,GAAG,IAAI,CAAC;MAEtC,IAAIL,cAAc,CAACO,SAAS,EAAE;QAE5BlD,UAAU,CAACH,IAAI,CAACM,EAAE,EAAE8C,cAAc,GAAG,IAAI,CAAC;MAC5C,CAAC,MAAM,CAEP;MAEA,IAAIN,cAAc,CAACQ,WAAW,EAAE,CAEhC;MAEA,IAAIR,cAAc,CAACS,aAAa,IAAI,CAACT,cAAc,CAACU,SAAS,EAAE;QAG7DZ,SAAS,CAAC,CAAC;MACb;IACF;EACF,CAAC;EAED,IAAAa,gBAAS,EAAC,YAAM;IACd,IAAIC,aAAK,CAACC,MAAM,KAAK,IAAI,EAAE;MACzB,IAAMC,aAAa;QAAA,IAAAC,KAAA,OAAAhD,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAA+C,SAAA;UAAA,OAAAhD,YAAA,YAAAI,IAAA,UAAA6C,UAAAC,SAAA;YAAA,kBAAAA,SAAA,CAAA3C,IAAA,GAAA2C,SAAA,CAAA1C,IAAA;cAAA;gBAAA,MAChBtB,IAAI,IAAIA,IAAI,CAACiE,IAAI,IAAIjE,IAAI,CAACiE,IAAI,CAACC,GAAG;kBAAAF,SAAA,CAAA1C,IAAA;kBAAA;gBAAA;gBAAA0C,SAAA,CAAA1C,IAAA;gBAAA,OACXoC,aAAK,CAACS,eAAe,CAC5C;kBAAED,GAAG,EAAElE,IAAI,CAACiE,IAAI,CAACC;gBAAI,CAAC,EACtB,CAAC,CAAC,EACFrB,sBACF,CAAC;cAAA;gBAJDhD,QAAQ,CAAC0B,OAAO,GAAAyC,SAAA,CAAAI,IAAA;cAAA;cAAA;gBAAA,OAAAJ,SAAA,CAAAjC,IAAA;YAAA;UAAA,GAAA+B,QAAA;QAAA,CAMnB;QAAA,gBARKF,aAAaA,CAAA;UAAA,OAAAC,KAAA,CAAA5B,KAAA,OAAAC,SAAA;QAAA;MAAA,GAQlB;MACD0B,aAAa,CAAC,CAAC;IACjB;IAEA,OAAO,YAAM;MAAA,IAAAS,kBAAA;MACX,IAAI,CAAAA,kBAAA,GAAAxE,QAAQ,CAAC0B,OAAO,aAAhB8C,kBAAA,CAAkBC,SAAS,IAAIzE,QAAQ,CAAC0B,OAAO,CAACgD,WAAW,EAAE;QAC/D1E,QAAQ,CAAC0B,OAAO,CAAC+C,SAAS,CAAC,CAAC;QAC5BzE,QAAQ,CAAC0B,OAAO,CAACgD,WAAW,CAAC,CAAC;MAChC;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAGN,IAAAd,gBAAS,EAAC,YAAM;IACd,IAAMe,eAAe;MAAA,IAAAC,KAAA,OAAA5D,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAA2D,SAAA;QAAA,OAAA5D,YAAA,YAAAI,IAAA,UAAAyD,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAvD,IAAA,GAAAuD,SAAA,CAAAtD,IAAA;YAAA;cAAA,KAClBzB,QAAQ,CAAC0B,OAAO;gBAAAqD,SAAA,CAAAtD,IAAA;gBAAA;cAAA;cAAA,KACdtB,IAAI,CAAC4B,MAAM;gBAAAgD,SAAA,CAAAtD,IAAA;gBAAA;cAAA;cAAA,KACTzB,QAAQ,CAAC0B,OAAO,CAACO,UAAU;gBAAA8C,SAAA,CAAAtD,IAAA;gBAAA;cAAA;cAAAsD,SAAA,CAAAtD,IAAA;cAAA,OAAQzB,QAAQ,CAAC0B,OAAO,CAACO,UAAU,CAAC,CAAC;YAAA;cAAA8C,SAAA,CAAAtD,IAAA;cAAA;YAAA;cAAA,KAEhEzB,QAAQ,CAAC0B,OAAO,CAACM,SAAS;gBAAA+C,SAAA,CAAAtD,IAAA;gBAAA;cAAA;cAAAsD,SAAA,CAAAtD,IAAA;cAAA,OAAQzB,QAAQ,CAAC0B,OAAO,CAACM,SAAS,CAAC,CAAC;YAAA;YAAA;cAAA,OAAA+C,SAAA,CAAA7C,IAAA;UAAA;QAAA,GAAA2C,QAAA;MAAA,CAGvE;MAAA,gBARKF,eAAeA,CAAA;QAAA,OAAAC,KAAA,CAAAxC,KAAA,OAAAC,SAAA;MAAA;IAAA,GAQpB;IACD,IAAI,CAACwB,aAAK,CAACC,MAAM,EAAE;MACjBa,eAAe,CAAC,CAAC;IACnB;EACF,CAAC,EAAE,CAACxE,IAAI,CAAC4B,MAAM,CAAC,CAAC;EAEjB,IAAAiD,SAAA,GAYI,IAAAC,kBAAQ,EAAC,CAAC;IAAAC,eAAA,GAAAF,SAAA,CAXZG,KAAK;IAAAC,qBAAA,GAAAF,eAAA,CACHG,MAAM;IAAIC,WAAW,GAAAF,qBAAA,CAAXE,WAAW;IAAEC,KAAK,GAAAH,qBAAA,CAALG,KAAK;IAAEC,SAAS,GAAAJ,qBAAA,CAATI,SAAS;IAAEC,YAAY,GAAAL,qBAAA,CAAZK,YAAY;IAAEC,YAAY,GAAAN,qBAAA,CAAZM,YAAY;IAAAC,qBAAA,GAAAT,eAAA,CACnEU,YAAY,CACVC,iBAAiB;IAAAC,sBAAA,GAAAH,qBAAA,CACfI,eAAe;IAAI7G,mBAAmB,GAAA4G,sBAAA,CAAnB5G,mBAAmB;IAAEE,oBAAoB,GAAA0G,sBAAA,CAApB1G,oBAAoB;IAAEC,WAAW,GAAAyG,sBAAA,CAAXzG,WAAW;IACzEf,oBAAoB,GAAAqH,qBAAA,CAApBrH,oBAAoB;IACpBC,YAAY,GAAAoH,qBAAA,CAAZpH,YAAY;IACZG,iBAAiB,GAAAiH,qBAAA,CAAjBjH,iBAAiB;EAMzB,IAAMsH,sBAAsB,GAAI7F,IAAI,CAACzC,QAAQ,GAAeyC,IAAI,CAACyB,QAAmB;EAEpF,IAAMqE,gBAAgB,GAAGD,sBAAsB,GAC3CA,sBAAsB,GAAG,IAAI,IAAI,CAAC,GAChCxI,iBAAK,CAACE,QAAQ,CAACsI,sBAAsB,EAAE,QAAQ,CAAC,CAACE,MAAM,CAAC,UAAU,CAAC,GACnE1I,iBAAK,CAACE,QAAQ,CAACsI,sBAAsB,EAAE,QAAQ,CAAC,CAACE,MAAM,CAAC,OAAO,CAAC,GAClE,OAAO;EAEX,IAAMC,cAAc,GAAGhG,IAAI,CAACiE,IAAI,CAACgC,IAAI,CAACC,WAAW,CAAC,GAAG,CAAC;EAEtD,OACEhL,MAAA,YAAAiL,aAAA,CAAC9K,YAAA,CAAA+K,IAAI;IAACC,KAAK,EAAE,CAAC5I,MAAM,CAACU,oBAAoB,EAAEA,oBAAoB,CAAE;IAAAmI,MAAA,EAAAzK,KAAA;IAAA0K,QAAA;MAAAC,QAAA,EAAA1K,YAAA;MAAA2K,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC/DxL,MAAA,YAAAiL,aAAA,CAAC9K,YAAA,CAAAsL,gBAAgB;IACfC,kBAAkB,EAAC,mBAAmB;IACtCC,OAAO,EAAE,SAAAA,QAAA;MAAA,OAAMlG,eAAe,CAAC,CAAC;IAAA,CAAC;IACjC0F,KAAK,EAAE,CACL5I,MAAM,CAACyB,WAAW,EAClBA,WAAW,EACX;MAAE4H,eAAe,EAAEvB,YAAY;MAAEwB,WAAW,EAAE3B;IAAM,CAAC,CACrD;IAAAkB,MAAA,EAAAzK,KAAA;IAAA0K,QAAA;MAAAC,QAAA,EAAA1K,YAAA;MAAA2K,UAAA;MAAAC,YAAA;IAAA;EAAA,GAED1G,IAAI,CAAC4B,MAAM,GACV1G,MAAA,YAAAiL,aAAA,CAACzK,MAAA,CAAAsL,IAAI;IAAChJ,MAAM,EAAE,EAAG;IAACiJ,QAAQ,EAAE3B,YAAa;IAAC9F,KAAK,EAAE,EAAG;IAAA8G,MAAA,EAAAzK,KAAA;IAAA0K,QAAA;MAAAC,QAAA,EAAA1K,YAAA;MAAA2K,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,GAEvDxL,MAAA,YAAAiL,aAAA,CAACzK,MAAA,CAAAwL,KAAK;IAAClJ,MAAM,EAAE,EAAG;IAACiJ,QAAQ,EAAE3B,YAAa;IAAC9F,KAAK,EAAE,EAAG;IAAA8G,MAAA,EAAAzK,KAAA;IAAA0K,QAAA;MAAAC,QAAA,EAAA1K,YAAA;MAAA2K,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAEzC,CAAC,EACnBxL,MAAA,YAAAiL,aAAA,CAAC9K,YAAA,CAAA+K,IAAI;IAACC,KAAK,EAAE,CAAC5I,MAAM,CAACc,iBAAiB,EAAEA,iBAAiB,CAAE;IAAA+H,MAAA,EAAAzK,KAAA;IAAA0K,QAAA;MAAAC,QAAA,EAAA1K,YAAA;MAAA2K,UAAA;MAAAC,YAAA;IAAA;EAAA,GACzDxL,MAAA,YAAAiL,aAAA,CAAC9K,YAAA,CAAA8L,IAAI;IACHP,kBAAkB,EAAC,WAAW;IAC9BQ,aAAa,EAAE,CAAE;IACjBf,KAAK,EAAE,CACL5I,MAAM,CAACW,YAAY,EACnB;MACEiJ,KAAK,EAAEjC,KAAK;MACZ5F,KAAK,EACH,EAAE,GACF,EAAE,GACF,EAAE,GACF;IACJ,CAAC,EACD8H,wBAAW,CAACC,KAAK,GAAG;MAAEC,gBAAgB,EAAE;IAAM,CAAC,GAAG;MAAEA,gBAAgB,EAAE;IAAM,CAAC,EAC7EpJ,YAAY,CACZ;IAAAkI,MAAA,EAAAzK,KAAA;IAAA0K,QAAA;MAAAC,QAAA,EAAA1K,YAAA;MAAA2K,UAAA;MAAAC,YAAA;IAAA;EAAA,GAED1G,IAAI,CAACiE,IAAI,CAACgC,IAAI,CAACwB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAGzH,IAAI,CAACiE,IAAI,CAACgC,IAAI,CAACwB,KAAK,CAACzB,cAAc,CACtE,CAAC,EACP9K,MAAA,YAAAiL,aAAA,CAAC9K,YAAA,CAAA+K,IAAI;IACHC,KAAK,EAAE;MACLlH,UAAU,EAAE,QAAQ;MACpBE,OAAO,EAAE,MAAM;MACftB,aAAa,EAAE;IACjB,CAAE;IAAAuI,MAAA,EAAAzK,KAAA;IAAA0K,QAAA;MAAAC,QAAA,EAAA1K,YAAA;MAAA2K,UAAA;MAAAC,YAAA;IAAA;EAAA,GAGDhD,aAAK,CAACC,MAAM,IACXzI,MAAA,YAAAiL,aAAA,CAACxK,OAAA,CAAA+H,KAAK,CAACC,MAAM;IACX+D,KAAK,EAAE9E,SAAU;IACjB3C,MAAM,EAAEG,UAAW;IACnBD,UAAU,EAAEI,cAAe;IAC3BqB,MAAM,EAAE5B,IAAI,CAAC4B,MAAkB;IAC/B/B,QAAQ,EAAEA,QAAS;IACnB8H,MAAM,EAAC,cAAc;IACrBzD,GAAG,EAAElE,IAAI,CAACiE,IAAI,CAACC,GAAI;IAAAoC,MAAA,EAAAzK,KAAA;IAAA0K,QAAA;MAAAC,QAAA,EAAA1K,YAAA;MAAA2K,UAAA;MAAAC,YAAA;IAAA;EAAA,CACpB,CACF,EACDxL,MAAA,YAAAiL,aAAA,CAAC9K,YAAA,CAAA8L,IAAI;IAACd,KAAK,EAAE,CAAC5I,MAAM,CAACwB,oBAAoB,EAAE;MAAEoI,KAAK,EAAEhC;IAAU,CAAC,EAAEpG,oBAAoB,CAAE;IAAAqH,MAAA,EAAAzK,KAAA;IAAA0K,QAAA;MAAAC,QAAA,EAAA1K,YAAA;MAAA2K,UAAA;MAAAC,YAAA;IAAA;EAAA,GACpFZ,gBACG,CAAC,EACP5K,MAAA,YAAAiL,aAAA,CAAC9K,YAAA,CAAA+K,IAAI;IAACC,KAAK,EAAE,CAAC5I,MAAM,CAACsB,mBAAmB,EAAEA,mBAAmB,CAAE;IAAAuH,MAAA,EAAAzK,KAAA;IAAA0K,QAAA;MAAAC,QAAA,EAAA1K,YAAA;MAAA2K,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC7DxL,MAAA,YAAAiL,aAAA,CAACvK,gBAAA,CAAAgM,eAAe;IACdrK,QAAQ,EAAEyC,IAAI,CAACzC,QAAmB;IAClCsK,WAAW,EAAE1C,WAAY;IACzBjF,WAAW,EAAES,eAAgB;IAC7BmH,cAAc,EAAE3F,kBAAmB;IACnCV,QAAQ,EAAEzB,IAAI,CAACyB,QAAmB;IAClCkG,MAAM,EAAC,kBAAkB;IACzBnI,KAAK,EAAE,GAAI;IAAA8G,MAAA,EAAAzK,KAAA;IAAA0K,QAAA;MAAAC,QAAA,EAAA1K,YAAA;MAAA2K,UAAA;MAAAC,YAAA;IAAA;EAAA,CACZ,CACG,CACF,CACF,CACF,CAAC;AAEX,CAAC;AAcM,IAAMqB,eAAe,GAAG,SAAlBA,eAAeA,CAAInI,KAA2B;EAAA,OACzD1E,MAAA,YAAAiL,aAAA,CAACxG,0BAA0B,MAAAqI,SAAA,iBAAKpI,KAAK;IAAA0G,MAAA,EAAAzK,KAAA;IAAA0K,QAAA;MAAAC,QAAA,EAAA1K,YAAA;MAAA2K,UAAA;MAAAC,YAAA;IAAA;EAAA,EAAG,CAAC;AAAA,CAC1C;AAACuB,OAAA,CAAAF,eAAA,GAAAA,eAAA;AAEFA,eAAe,CAACG,WAAW,GAAG,+CAA+C"}
|
|
@@ -12,7 +12,7 @@ var _FileIcon = require("../../components/Attachment/FileIcon");
|
|
|
12
12
|
var _MessageContext = require("../../contexts/messageContext/MessageContext");
|
|
13
13
|
var _MessagesContext = require("../../contexts/messagesContext/MessagesContext");
|
|
14
14
|
var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
15
|
-
var
|
|
15
|
+
var _useViewport2 = require("../../hooks/useViewport");
|
|
16
16
|
var _this = this,
|
|
17
17
|
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/FileAttachment.tsx";
|
|
18
18
|
var styles = _reactNative.StyleSheet.create({
|
|
@@ -23,7 +23,6 @@ var styles = _reactNative.StyleSheet.create({
|
|
|
23
23
|
padding: 8
|
|
24
24
|
},
|
|
25
25
|
details: {
|
|
26
|
-
maxWidth: (0, _utils.vw)(60),
|
|
27
26
|
paddingLeft: 16
|
|
28
27
|
},
|
|
29
28
|
size: {
|
|
@@ -58,6 +57,8 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
|
|
|
58
57
|
details = _useTheme$theme$messa.details,
|
|
59
58
|
fileSize = _useTheme$theme$messa.fileSize,
|
|
60
59
|
title = _useTheme$theme$messa.title;
|
|
60
|
+
var _useViewport = (0, _useViewport2.useViewport)(),
|
|
61
|
+
vw = _useViewport.vw;
|
|
61
62
|
var defaultOnPress = function defaultOnPress() {
|
|
62
63
|
return (0, _openUrlSafely.openUrlSafely)(attachment.asset_url);
|
|
63
64
|
};
|
|
@@ -126,7 +127,9 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
|
|
|
126
127
|
columnNumber: 9
|
|
127
128
|
}
|
|
128
129
|
}), _react["default"].createElement(_reactNative.View, {
|
|
129
|
-
style: [styles.details,
|
|
130
|
+
style: [styles.details, {
|
|
131
|
+
maxWidth: vw(60)
|
|
132
|
+
}, details, stylesProp.details],
|
|
130
133
|
__self: _this,
|
|
131
134
|
__source: {
|
|
132
135
|
fileName: _jsxFileName,
|
|
@@ -141,7 +144,7 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
|
|
|
141
144
|
__self: _this,
|
|
142
145
|
__source: {
|
|
143
146
|
fileName: _jsxFileName,
|
|
144
|
-
lineNumber:
|
|
147
|
+
lineNumber: 147,
|
|
145
148
|
columnNumber: 11
|
|
146
149
|
}
|
|
147
150
|
}, attachment.title), _react["default"].createElement(_reactNative.Text, {
|
|
@@ -151,14 +154,14 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
|
|
|
151
154
|
__self: _this,
|
|
152
155
|
__source: {
|
|
153
156
|
fileName: _jsxFileName,
|
|
154
|
-
lineNumber:
|
|
157
|
+
lineNumber: 150,
|
|
155
158
|
columnNumber: 11
|
|
156
159
|
}
|
|
157
160
|
}, getFileSizeDisplayText(attachment.file_size)))), (_attachment$actions = attachment.actions) != null && _attachment$actions.length ? _react["default"].createElement(AttachmentActions, (0, _extends2["default"])({}, attachment, {
|
|
158
161
|
__self: _this,
|
|
159
162
|
__source: {
|
|
160
163
|
fileName: _jsxFileName,
|
|
161
|
-
lineNumber:
|
|
164
|
+
lineNumber: 155,
|
|
162
165
|
columnNumber: 37
|
|
163
166
|
}
|
|
164
167
|
})) : null);
|
|
@@ -187,7 +190,7 @@ var FileAttachment = function FileAttachment(props) {
|
|
|
187
190
|
__self: _this,
|
|
188
191
|
__source: {
|
|
189
192
|
fileName: _jsxFileName,
|
|
190
|
-
lineNumber:
|
|
193
|
+
lineNumber: 178,
|
|
191
194
|
columnNumber: 5
|
|
192
195
|
}
|
|
193
196
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_openUrlSafely","_AttachmentActions","_FileIcon","_MessageContext","_MessagesContext","_ThemeContext","_utils","_this","_jsxFileName","styles","StyleSheet","create","container","alignItems","borderRadius","flexDirection","padding","details","maxWidth","vw","paddingLeft","size","fontSize","title","fontWeight","FileAttachmentWithContext","props","_attachment$actions","additionalTouchableProps","attachment","attachmentSize","AttachmentActions","FileAttachmentIcon","onLongPress","onPress","onPressIn","preventPress","_props$styles","stylesProp","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","black","grey","white","_useTheme$theme$messa","messageSimple","file","fileSize","defaultOnPress","openUrlSafely","asset_url","createElement","TouchableOpacity","_extends2","disabled","event","additionalInfo","emitter","defaultHandler","testID","__self","__source","fileName","lineNumber","columnNumber","View","style","backgroundColor","mimeType","mime_type","Text","numberOfLines","color","getFileSizeDisplayText","file_size","actions","length","FileAttachment","_useMessageContext","useMessageContext","_useMessagesContext","useMessagesContext","_useMessagesContext$A","AttachmentActionsDefault","_useMessagesContext$F","FileIconDefault","exports","parseFloat","Math","floor","displayName"],"sources":["FileAttachment.tsx"],"sourcesContent":["import React from 'react';\nimport {\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { openUrlSafely } from './utils/openUrlSafely';\n\nimport { AttachmentActions as AttachmentActionsDefault } from '../../components/Attachment/AttachmentActions';\nimport { FileIcon as FileIconDefault } from '../../components/Attachment/FileIcon';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { vw } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n borderRadius: 12,\n flexDirection: 'row',\n padding: 8,\n },\n details: {\n maxWidth: vw(60),\n paddingLeft: 16,\n },\n size: {\n fontSize: 12,\n },\n title: {\n fontSize: 14,\n fontWeight: '700',\n },\n});\n\nexport type FileAttachmentPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'AttachmentActions' | 'FileAttachmentIcon'\n > & {\n /** The attachment to render */\n attachment: Attachment<StreamChatGenerics>;\n attachmentSize?: number;\n styles?: Partial<{\n container: StyleProp<ViewStyle>;\n details: StyleProp<ViewStyle>;\n size: StyleProp<TextStyle>;\n title: StyleProp<TextStyle>;\n }>;\n };\n\nconst FileAttachmentWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileAttachmentPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n attachment,\n attachmentSize,\n AttachmentActions,\n FileAttachmentIcon,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n styles: stylesProp = {},\n } = props;\n\n const {\n theme: {\n colors: { black, grey, white },\n messageSimple: {\n file: { container, details, fileSize, title },\n },\n },\n } = useTheme();\n\n const defaultOnPress = () => openUrlSafely(attachment.asset_url);\n\n return (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n additionalInfo: { attachment },\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n additionalInfo: { attachment },\n defaultHandler: defaultOnPress,\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n additionalInfo: { attachment },\n defaultHandler: defaultOnPress,\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n testID='file-attachment'\n {...additionalTouchableProps}\n >\n <View style={[styles.container, { backgroundColor: white }, container, stylesProp.container]}>\n <FileAttachmentIcon mimeType={attachment.mime_type} size={attachmentSize} />\n <View style={[styles.details, details, stylesProp.details]}>\n <Text numberOfLines={2} style={[styles.title, { color: black }, title, stylesProp.title]}>\n {attachment.title}\n </Text>\n <Text style={[styles.size, { color: grey }, fileSize, stylesProp.size]}>\n {getFileSizeDisplayText(attachment.file_size)}\n </Text>\n </View>\n </View>\n {attachment.actions?.length ? <AttachmentActions {...attachment} /> : null}\n </TouchableOpacity>\n );\n};\n\nexport type FileAttachmentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<FileAttachmentPropsWithContext<StreamChatGenerics>, 'attachment'>> &\n Pick<FileAttachmentPropsWithContext<StreamChatGenerics>, 'attachment'>;\n\nexport const FileAttachment = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileAttachmentProps<StreamChatGenerics>,\n) => {\n const { onLongPress, onPress, onPressIn, preventPress } = useMessageContext<StreamChatGenerics>();\n const {\n additionalTouchableProps,\n AttachmentActions = AttachmentActionsDefault,\n FileAttachmentIcon = FileIconDefault,\n } = useMessagesContext<StreamChatGenerics>();\n\n return (\n <FileAttachmentWithContext\n {...{\n additionalTouchableProps,\n AttachmentActions,\n FileAttachmentIcon,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nexport const getFileSizeDisplayText = (size?: number | string) => {\n if (!size) return;\n if (typeof size === 'string') {\n size = parseFloat(size);\n }\n\n if (size < 1000 * 1000) {\n return `${Math.floor(Math.floor(size / 10) / 100)} KB`;\n }\n\n return `${Math.floor(Math.floor(size / 10000) / 100)} MB`;\n};\n\nFileAttachment.displayName = 'FileAttachment{messageSimple{file}}';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_openUrlSafely","_AttachmentActions","_FileIcon","_MessageContext","_MessagesContext","_ThemeContext","_useViewport2","_this","_jsxFileName","styles","StyleSheet","create","container","alignItems","borderRadius","flexDirection","padding","details","paddingLeft","size","fontSize","title","fontWeight","FileAttachmentWithContext","props","_attachment$actions","additionalTouchableProps","attachment","attachmentSize","AttachmentActions","FileAttachmentIcon","onLongPress","onPress","onPressIn","preventPress","_props$styles","stylesProp","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","black","grey","white","_useTheme$theme$messa","messageSimple","file","fileSize","_useViewport","useViewport","vw","defaultOnPress","openUrlSafely","asset_url","createElement","TouchableOpacity","_extends2","disabled","event","additionalInfo","emitter","defaultHandler","testID","__self","__source","fileName","lineNumber","columnNumber","View","style","backgroundColor","mimeType","mime_type","maxWidth","Text","numberOfLines","color","getFileSizeDisplayText","file_size","actions","length","FileAttachment","_useMessageContext","useMessageContext","_useMessagesContext","useMessagesContext","_useMessagesContext$A","AttachmentActionsDefault","_useMessagesContext$F","FileIconDefault","exports","parseFloat","Math","floor","displayName"],"sources":["FileAttachment.tsx"],"sourcesContent":["import React from 'react';\nimport {\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { openUrlSafely } from './utils/openUrlSafely';\n\nimport { AttachmentActions as AttachmentActionsDefault } from '../../components/Attachment/AttachmentActions';\nimport { FileIcon as FileIconDefault } from '../../components/Attachment/FileIcon';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useViewport } from '../../hooks/useViewport';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n borderRadius: 12,\n flexDirection: 'row',\n padding: 8,\n },\n details: {\n paddingLeft: 16,\n },\n size: {\n fontSize: 12,\n },\n title: {\n fontSize: 14,\n fontWeight: '700',\n },\n});\n\nexport type FileAttachmentPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'AttachmentActions' | 'FileAttachmentIcon'\n > & {\n /** The attachment to render */\n attachment: Attachment<StreamChatGenerics>;\n attachmentSize?: number;\n styles?: Partial<{\n container: StyleProp<ViewStyle>;\n details: StyleProp<ViewStyle>;\n size: StyleProp<TextStyle>;\n title: StyleProp<TextStyle>;\n }>;\n };\n\nconst FileAttachmentWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileAttachmentPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n attachment,\n attachmentSize,\n AttachmentActions,\n FileAttachmentIcon,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n styles: stylesProp = {},\n } = props;\n\n const {\n theme: {\n colors: { black, grey, white },\n messageSimple: {\n file: { container, details, fileSize, title },\n },\n },\n } = useTheme();\n const { vw } = useViewport();\n\n const defaultOnPress = () => openUrlSafely(attachment.asset_url);\n\n return (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n additionalInfo: { attachment },\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n additionalInfo: { attachment },\n defaultHandler: defaultOnPress,\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n additionalInfo: { attachment },\n defaultHandler: defaultOnPress,\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n testID='file-attachment'\n {...additionalTouchableProps}\n >\n <View style={[styles.container, { backgroundColor: white }, container, stylesProp.container]}>\n <FileAttachmentIcon mimeType={attachment.mime_type} size={attachmentSize} />\n <View\n style={[\n styles.details,\n {\n maxWidth: vw(60),\n },\n details,\n stylesProp.details,\n ]}\n >\n <Text numberOfLines={2} style={[styles.title, { color: black }, title, stylesProp.title]}>\n {attachment.title}\n </Text>\n <Text style={[styles.size, { color: grey }, fileSize, stylesProp.size]}>\n {getFileSizeDisplayText(attachment.file_size)}\n </Text>\n </View>\n </View>\n {attachment.actions?.length ? <AttachmentActions {...attachment} /> : null}\n </TouchableOpacity>\n );\n};\n\nexport type FileAttachmentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<FileAttachmentPropsWithContext<StreamChatGenerics>, 'attachment'>> &\n Pick<FileAttachmentPropsWithContext<StreamChatGenerics>, 'attachment'>;\n\nexport const FileAttachment = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileAttachmentProps<StreamChatGenerics>,\n) => {\n const { onLongPress, onPress, onPressIn, preventPress } = useMessageContext<StreamChatGenerics>();\n const {\n additionalTouchableProps,\n AttachmentActions = AttachmentActionsDefault,\n FileAttachmentIcon = FileIconDefault,\n } = useMessagesContext<StreamChatGenerics>();\n\n return (\n <FileAttachmentWithContext\n {...{\n additionalTouchableProps,\n AttachmentActions,\n FileAttachmentIcon,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nexport const getFileSizeDisplayText = (size?: number | string) => {\n if (!size) return;\n if (typeof size === 'string') {\n size = parseFloat(size);\n }\n\n if (size < 1000 * 1000) {\n return `${Math.floor(Math.floor(size / 10) / 100)} KB`;\n }\n\n return `${Math.floor(Math.floor(size / 10000) / 100)} MB`;\n};\n\nFileAttachment.displayName = 'FileAttachment{messageSimple{file}}';\n"],"mappings":"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"}
|
|
@@ -17,8 +17,8 @@ var _AttachmentPickerItem = require("./components/AttachmentPickerItem");
|
|
|
17
17
|
var _AttachmentPickerContext = require("../../contexts/attachmentPickerContext/AttachmentPickerContext");
|
|
18
18
|
var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
19
19
|
var _TranslationContext = require("../../contexts/translationContext/TranslationContext");
|
|
20
|
+
var _useViewport2 = require("../../hooks/useViewport");
|
|
20
21
|
var _native = require("../../native");
|
|
21
|
-
var _utils = require("../../utils/utils");
|
|
22
22
|
var _this = this,
|
|
23
23
|
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/AttachmentPicker/AttachmentPicker.tsx";
|
|
24
24
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -29,7 +29,6 @@ var styles = _reactNative.StyleSheet.create({
|
|
|
29
29
|
flexGrow: 1
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
|
-
var screenHeight = (0, _utils.vh)(100);
|
|
33
32
|
var fullScreenHeight = _reactNative.Dimensions.get('window').height;
|
|
34
33
|
var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
35
34
|
var AttachmentPickerBottomSheetHandle = props.AttachmentPickerBottomSheetHandle,
|
|
@@ -57,6 +56,9 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
57
56
|
setSelectedImages = _useAttachmentPickerC.setSelectedImages,
|
|
58
57
|
setSelectedPicker = _useAttachmentPickerC.setSelectedPicker,
|
|
59
58
|
topInset = _useAttachmentPickerC.topInset;
|
|
59
|
+
var _useViewport = (0, _useViewport2.useViewport)(),
|
|
60
|
+
vh = _useViewport.vh;
|
|
61
|
+
var screenHeight = vh(100);
|
|
60
62
|
var _useState = (0, _react.useState)(-1),
|
|
61
63
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
62
64
|
currentIndex = _useState2[0],
|
|
@@ -243,7 +245,7 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
243
245
|
__self: _this,
|
|
244
246
|
__source: {
|
|
245
247
|
fileName: _jsxFileName,
|
|
246
|
-
lineNumber:
|
|
248
|
+
lineNumber: 304,
|
|
247
249
|
columnNumber: 9
|
|
248
250
|
}
|
|
249
251
|
}, iOSLimited && _react["default"].createElement(_reactNative.Button, {
|
|
@@ -252,7 +254,7 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
252
254
|
__self: _this,
|
|
253
255
|
__source: {
|
|
254
256
|
fileName: _jsxFileName,
|
|
255
|
-
lineNumber:
|
|
257
|
+
lineNumber: 321,
|
|
256
258
|
columnNumber: 13
|
|
257
259
|
}
|
|
258
260
|
}), _react["default"].createElement(_bottomSheet.BottomSheetFlatList, {
|
|
@@ -271,7 +273,7 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
271
273
|
__self: _this,
|
|
272
274
|
__source: {
|
|
273
275
|
fileName: _jsxFileName,
|
|
274
|
-
lineNumber:
|
|
276
|
+
lineNumber: 323,
|
|
275
277
|
columnNumber: 11
|
|
276
278
|
}
|
|
277
279
|
})), selectedPicker === 'images' && photoError && _react["default"].createElement(AttachmentPickerError, {
|
|
@@ -282,7 +284,7 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
282
284
|
__self: _this,
|
|
283
285
|
__source: {
|
|
284
286
|
fileName: _jsxFileName,
|
|
285
|
-
lineNumber:
|
|
287
|
+
lineNumber: 338,
|
|
286
288
|
columnNumber: 11
|
|
287
289
|
}
|
|
288
290
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_bottomSheet","_dayjs","_interopRequireDefault","_duration","_AttachmentPickerItem","_AttachmentPickerContext","_ThemeContext","_TranslationContext","_native","_utils","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","dayjs","extend","duration","styles","StyleSheet","create","container","flexGrow","screenHeight","vh","fullScreenHeight","Dimensions","height","AttachmentPicker","React","forwardRef","props","ref","AttachmentPickerBottomSheetHandle","attachmentPickerBottomSheetHandleHeight","attachmentPickerBottomSheetHeight","AttachmentPickerError","attachmentPickerErrorButtonText","AttachmentPickerErrorImage","attachmentPickerErrorText","ImageOverlaySelectedComponent","numberOfAttachmentImagesToLoadPerCall","numberOfAttachmentPickerImageColumns","translucentStatusBar","_useTheme","useTheme","_useTheme$theme","theme","bottomSheetContentContainer","attachmentPicker","white","colors","_useAttachmentPickerC","useAttachmentPickerContext","closePicker","maxNumberOfFiles","selectedFiles","selectedImages","selectedPicker","setSelectedFiles","setSelectedImages","setSelectedPicker","topInset","_useState","useState","_useState2","_slicedToArray2","currentIndex","setCurrentIndex","endCursorRef","useRef","_useState3","_useState4","photoError","setPhotoError","_useState5","_useState6","iOSLimited","setIosLimited","hasNextPageRef","_useState7","_useState8","loadingPhotos","setLoadingPhotos","_useState9","_useState10","photos","setPhotos","attemptedToLoadPhotosOnOpenRef","_useTranslationContex","useTranslationContext","t","getMorePhotos","useCallback","_asyncToGenerator2","_regenerator","mark","_callee","endCursor","results","wrap","_callee$","_context","prev","next","current","getPhotos","after","first","sent","prevPhotos","concat","_toConsumableArray2","assets","hasNextPage","t0","stop","getMorePhotosRef","useEffect","_oniOS14GalleryLibrar","oniOS14GalleryLibrarySelectionChange","undefined","unsubscribe","backAction","backHandler","BackHandler","addEventListener","remove","keyboardShowEvent","Platform","OS","keyboardSubscription","Keyboard","addListener","removeListener","selectedPhotos","map","asset","numberOfUploads","length","selected","some","image","id","uri","file","handleHeight","getAndroidBottomBarHeightAdjustment","_StatusBar$currentHei","statusBarHeight","StatusBar","currentHeight","bottomBarHeight","getInitialSnapPoint","initialSnapPoint","finalSnapPoint","snapPoints","useMemo","createElement","Fragment","containerHeight","enablePanDownToClose","handleComponent","index","onChange","__self","__source","fileName","lineNumber","columnNumber","Button","onPress","iOS14RefreshGallerySelection","title","BottomSheetFlatList","contentContainerStyle","backgroundColor","opacity","data","keyExtractor","item","numColumns","onEndReached","renderItem","renderAttachmentPickerItem","exports","displayName"],"sources":["AttachmentPicker.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n BackHandler,\n Button,\n Dimensions,\n Keyboard,\n Platform,\n StatusBar,\n StyleSheet,\n} from 'react-native';\n\nimport BottomSheet, { BottomSheetFlatList, BottomSheetHandleProps } from '@gorhom/bottom-sheet';\nimport dayjs from 'dayjs';\nimport duration from 'dayjs/plugin/duration';\n\nimport type { AttachmentPickerErrorProps } from './components/AttachmentPickerError';\n\nimport { renderAttachmentPickerItem } from './components/AttachmentPickerItem';\n\nimport { useAttachmentPickerContext } from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\nimport {\n getPhotos,\n iOS14RefreshGallerySelection,\n oniOS14GalleryLibrarySelectionChange,\n} from '../../native';\nimport type { Asset } from '../../types/types';\nimport { vh } from '../../utils/utils';\n\ndayjs.extend(duration);\n\nconst styles = StyleSheet.create({\n container: {\n flexGrow: 1,\n },\n});\n\nconst screenHeight = vh(100);\nconst fullScreenHeight = Dimensions.get('window').height;\n\nexport type AttachmentPickerProps = {\n /**\n * Custom UI component to render [draggable handle](https://github.com/GetStream/stream-chat-react-native/blob/main/screenshots/docs/1.png) of attachment picker.\n *\n * **Default** [AttachmentPickerBottomSheetHandle](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.tsx)\n */\n AttachmentPickerBottomSheetHandle: React.FC<BottomSheetHandleProps>;\n /**\n * Custom UI component to render error component while opening attachment picker.\n *\n * **Default** [AttachmentPickerError](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/AttachmentPicker/components/AttachmentPickerError.tsx)\n */\n AttachmentPickerError: React.ComponentType<AttachmentPickerErrorProps>;\n /**\n * Custom UI component to render error image for attachment picker\n *\n * **Default** [AttachmentPickerErrorImage](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/AttachmentPicker/components/AttachmentPickerErrorImage.tsx)\n */\n AttachmentPickerErrorImage: React.ComponentType;\n /**\n * Custom UI component to render overlay component, that shows up on top of [selected image](https://github.com/GetStream/stream-chat-react-native/blob/main/screenshots/docs/1.png) (with tick mark)\n *\n * **Default** [ImageOverlaySelectedComponent](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/AttachmentPicker/components/ImageOverlaySelectedComponent.tsx)\n */\n ImageOverlaySelectedComponent: React.ComponentType;\n attachmentPickerBottomSheetHandleHeight?: number;\n attachmentPickerBottomSheetHeight?: number;\n attachmentPickerErrorButtonText?: string;\n attachmentPickerErrorText?: string;\n numberOfAttachmentImagesToLoadPerCall?: number;\n numberOfAttachmentPickerImageColumns?: number;\n translucentStatusBar?: boolean;\n};\n\nexport const AttachmentPicker = React.forwardRef(\n (props: AttachmentPickerProps, ref: React.ForwardedRef<BottomSheet>) => {\n const {\n AttachmentPickerBottomSheetHandle,\n attachmentPickerBottomSheetHandleHeight,\n attachmentPickerBottomSheetHeight,\n AttachmentPickerError,\n attachmentPickerErrorButtonText,\n AttachmentPickerErrorImage,\n attachmentPickerErrorText,\n ImageOverlaySelectedComponent,\n numberOfAttachmentImagesToLoadPerCall,\n numberOfAttachmentPickerImageColumns,\n translucentStatusBar,\n } = props;\n\n const {\n theme: {\n attachmentPicker: { bottomSheetContentContainer },\n colors: { white },\n },\n } = useTheme();\n const {\n closePicker,\n maxNumberOfFiles,\n selectedFiles,\n selectedImages,\n selectedPicker,\n setSelectedFiles,\n setSelectedImages,\n setSelectedPicker,\n topInset,\n } = useAttachmentPickerContext();\n\n const [currentIndex, setCurrentIndex] = useState(-1);\n const endCursorRef = useRef<string>();\n const [photoError, setPhotoError] = useState(false);\n const [iOSLimited, setIosLimited] = useState(false);\n const hasNextPageRef = useRef(true);\n const [loadingPhotos, setLoadingPhotos] = useState(false);\n const [photos, setPhotos] = useState<Asset[]>([]);\n const attemptedToLoadPhotosOnOpenRef = useRef(false);\n const { t } = useTranslationContext();\n\n const getMorePhotos = useCallback(async () => {\n if (\n hasNextPageRef.current &&\n !loadingPhotos &&\n currentIndex > -1 &&\n selectedPicker === 'images'\n ) {\n setPhotoError(false);\n setLoadingPhotos(true);\n const endCursor = endCursorRef.current;\n try {\n const results = await getPhotos({\n after: endCursor,\n first: numberOfAttachmentImagesToLoadPerCall ?? 60,\n });\n endCursorRef.current = results.endCursor;\n setPhotos((prevPhotos) =>\n endCursor ? [...prevPhotos, ...results.assets] : results.assets,\n );\n setIosLimited(results.iOSLimited);\n hasNextPageRef.current = !!results.hasNextPage;\n } catch (error) {\n setPhotoError(true);\n }\n setLoadingPhotos(false);\n }\n }, [currentIndex, selectedPicker, loadingPhotos]);\n\n // we need to use ref here to avoid running effect when getMorePhotos changes\n const getMorePhotosRef = useRef(getMorePhotos);\n getMorePhotosRef.current = getMorePhotos;\n\n useEffect(() => {\n if (selectedPicker !== 'images') return;\n // ios 14 library selection change event is fired when user reselects the images that are permitted to be readable by the app\n const { unsubscribe } = oniOS14GalleryLibrarySelectionChange(() => {\n // we reset the cursor and has next page to true to facilitate fetching of the first page of photos again\n hasNextPageRef.current = true;\n endCursorRef.current = undefined;\n // fetch the first page of photos again\n getMorePhotosRef.current();\n });\n return unsubscribe;\n }, [selectedPicker]);\n\n useEffect(() => {\n const backAction = () => {\n if (selectedPicker) {\n setSelectedPicker(undefined);\n closePicker();\n return true;\n }\n\n return false;\n };\n\n const backHandler = BackHandler.addEventListener('hardwareBackPress', backAction);\n\n return () => backHandler.remove();\n }, [selectedPicker, closePicker]);\n\n useEffect(() => {\n const keyboardShowEvent = Platform.OS === 'ios' ? 'keyboardWillShow' : 'keyboardDidShow';\n const keyboardSubscription = Keyboard.addListener(keyboardShowEvent, closePicker);\n\n return () => {\n if (keyboardSubscription?.remove) {\n keyboardSubscription.remove();\n return;\n }\n\n // To keep compatibility with older versions of React Native, where `remove()` is not available\n Keyboard.removeListener(keyboardShowEvent, closePicker);\n };\n }, [closePicker]);\n\n useEffect(() => {\n if (currentIndex < 0) {\n setSelectedPicker(undefined);\n if (!loadingPhotos) {\n endCursorRef.current = undefined;\n hasNextPageRef.current = true;\n attemptedToLoadPhotosOnOpenRef.current = false;\n setPhotoError(false);\n }\n }\n }, [currentIndex, loadingPhotos]);\n\n useEffect(() => {\n if (\n !attemptedToLoadPhotosOnOpenRef.current &&\n selectedPicker === 'images' &&\n endCursorRef.current === undefined &&\n currentIndex > -1 &&\n !loadingPhotos\n ) {\n getMorePhotos();\n // we do this only once on open for avoiding to request permissions in rationale dialog again and again on Android\n attemptedToLoadPhotosOnOpenRef.current = true;\n }\n }, [currentIndex, selectedPicker, getMorePhotos, loadingPhotos]);\n\n const selectedPhotos = photos.map((asset) => ({\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n numberOfUploads: selectedFiles.length + selectedImages.length,\n // `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`\n selected:\n selectedImages.some((image) =>\n image.id ? image.id === asset.id : image.uri === asset.uri,\n ) ||\n selectedFiles.some((file) => (file.id ? file.id === asset.id : file.uri === asset.uri)),\n selectedFiles,\n selectedImages,\n setSelectedFiles,\n setSelectedImages,\n }));\n\n const handleHeight = attachmentPickerBottomSheetHandleHeight || 20;\n\n /**\n * This is to handle issues with Android measurements coming back incorrect.\n * If the StatusBar height is perfectly 1/2 of the difference between the two\n * dimensions for screen and window, it is incorrect and we need to account for\n * this. If you use a translucent header bar more adjustments are needed.\n */\n const getAndroidBottomBarHeightAdjustment = (): number => {\n if (Platform.OS === 'android') {\n const statusBarHeight = StatusBar.currentHeight ?? 0;\n const bottomBarHeight = fullScreenHeight - screenHeight - statusBarHeight;\n if (bottomBarHeight === statusBarHeight) {\n return translucentStatusBar ? 0 : statusBarHeight;\n } else {\n if (translucentStatusBar) {\n if (bottomBarHeight > statusBarHeight) {\n return -bottomBarHeight + statusBarHeight;\n } else {\n return bottomBarHeight > 0 ? -statusBarHeight : 0;\n }\n } else {\n return bottomBarHeight > 0 ? 0 : statusBarHeight;\n }\n }\n }\n return 0;\n };\n\n const getInitialSnapPoint = (): number => {\n if (attachmentPickerBottomSheetHeight !== undefined) {\n return attachmentPickerBottomSheetHeight;\n }\n if (Platform.OS === 'android') {\n return (\n 308 +\n (fullScreenHeight - screenHeight + getAndroidBottomBarHeightAdjustment()) -\n handleHeight\n );\n } else {\n return 308 + (fullScreenHeight - screenHeight);\n }\n };\n\n const initialSnapPoint = getInitialSnapPoint();\n\n const finalSnapPoint =\n Platform.OS === 'android'\n ? fullScreenHeight - topInset - handleHeight\n : fullScreenHeight - topInset;\n\n /**\n * Snap points changing cause a rerender of the position,\n * this is an issue if you are calling close on the bottom sheet.\n */\n const snapPoints = useMemo(\n () => [initialSnapPoint, finalSnapPoint],\n [initialSnapPoint, finalSnapPoint],\n );\n\n return (\n <>\n <BottomSheet\n containerHeight={fullScreenHeight}\n enablePanDownToClose={true}\n handleComponent={\n /**\n * using `null` here instead of `style={{ opacity: photoError ? 0 : 1 }}`\n * as opacity is not an allowed style\n */\n photoError ? null : AttachmentPickerBottomSheetHandle\n }\n handleHeight={handleHeight}\n index={-1}\n onChange={setCurrentIndex}\n ref={ref}\n snapPoints={snapPoints}\n >\n {iOSLimited && (\n <Button onPress={iOS14RefreshGallerySelection} title={t('Select More Photos')} />\n )}\n <BottomSheetFlatList\n contentContainerStyle={[\n styles.container,\n { backgroundColor: white },\n bottomSheetContentContainer,\n { opacity: photoError ? 0 : 1 },\n ]}\n data={selectedPhotos}\n keyExtractor={(item) => item.asset.uri}\n numColumns={numberOfAttachmentPickerImageColumns ?? 3}\n onEndReached={photoError ? undefined : getMorePhotos}\n renderItem={renderAttachmentPickerItem}\n />\n </BottomSheet>\n {selectedPicker === 'images' && photoError && (\n <AttachmentPickerError\n attachmentPickerBottomSheetHeight={initialSnapPoint}\n attachmentPickerErrorButtonText={attachmentPickerErrorButtonText}\n AttachmentPickerErrorImage={AttachmentPickerErrorImage}\n attachmentPickerErrorText={attachmentPickerErrorText}\n />\n )}\n </>\n );\n },\n);\n\nAttachmentPicker.displayName = 'AttachmentPicker';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_bottomSheet","_dayjs","_interopRequireDefault","_duration","_AttachmentPickerItem","_AttachmentPickerContext","_ThemeContext","_TranslationContext","_useViewport2","_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","dayjs","extend","duration","styles","StyleSheet","create","container","flexGrow","fullScreenHeight","Dimensions","height","AttachmentPicker","React","forwardRef","props","ref","AttachmentPickerBottomSheetHandle","attachmentPickerBottomSheetHandleHeight","attachmentPickerBottomSheetHeight","AttachmentPickerError","attachmentPickerErrorButtonText","AttachmentPickerErrorImage","attachmentPickerErrorText","ImageOverlaySelectedComponent","numberOfAttachmentImagesToLoadPerCall","numberOfAttachmentPickerImageColumns","translucentStatusBar","_useTheme","useTheme","_useTheme$theme","theme","bottomSheetContentContainer","attachmentPicker","white","colors","_useAttachmentPickerC","useAttachmentPickerContext","closePicker","maxNumberOfFiles","selectedFiles","selectedImages","selectedPicker","setSelectedFiles","setSelectedImages","setSelectedPicker","topInset","_useViewport","useViewport","vh","screenHeight","_useState","useState","_useState2","_slicedToArray2","currentIndex","setCurrentIndex","endCursorRef","useRef","_useState3","_useState4","photoError","setPhotoError","_useState5","_useState6","iOSLimited","setIosLimited","hasNextPageRef","_useState7","_useState8","loadingPhotos","setLoadingPhotos","_useState9","_useState10","photos","setPhotos","attemptedToLoadPhotosOnOpenRef","_useTranslationContex","useTranslationContext","t","getMorePhotos","useCallback","_asyncToGenerator2","_regenerator","mark","_callee","endCursor","results","wrap","_callee$","_context","prev","next","current","getPhotos","after","first","sent","prevPhotos","concat","_toConsumableArray2","assets","hasNextPage","t0","stop","getMorePhotosRef","useEffect","_oniOS14GalleryLibrar","oniOS14GalleryLibrarySelectionChange","undefined","unsubscribe","backAction","backHandler","BackHandler","addEventListener","remove","keyboardShowEvent","Platform","OS","keyboardSubscription","Keyboard","addListener","removeListener","selectedPhotos","map","asset","numberOfUploads","length","selected","some","image","id","uri","file","handleHeight","getAndroidBottomBarHeightAdjustment","_StatusBar$currentHei","statusBarHeight","StatusBar","currentHeight","bottomBarHeight","getInitialSnapPoint","initialSnapPoint","finalSnapPoint","snapPoints","useMemo","createElement","Fragment","containerHeight","enablePanDownToClose","handleComponent","index","onChange","__self","__source","fileName","lineNumber","columnNumber","Button","onPress","iOS14RefreshGallerySelection","title","BottomSheetFlatList","contentContainerStyle","backgroundColor","opacity","data","keyExtractor","item","numColumns","onEndReached","renderItem","renderAttachmentPickerItem","exports","displayName"],"sources":["AttachmentPicker.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n BackHandler,\n Button,\n Dimensions,\n Keyboard,\n Platform,\n StatusBar,\n StyleSheet,\n} from 'react-native';\n\nimport BottomSheet, { BottomSheetFlatList, BottomSheetHandleProps } from '@gorhom/bottom-sheet';\nimport dayjs from 'dayjs';\nimport duration from 'dayjs/plugin/duration';\n\nimport type { AttachmentPickerErrorProps } from './components/AttachmentPickerError';\n\nimport { renderAttachmentPickerItem } from './components/AttachmentPickerItem';\n\nimport { useAttachmentPickerContext } from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\nimport { useViewport } from '../../hooks/useViewport';\nimport {\n getPhotos,\n iOS14RefreshGallerySelection,\n oniOS14GalleryLibrarySelectionChange,\n} from '../../native';\nimport type { Asset } from '../../types/types';\n\ndayjs.extend(duration);\n\nconst styles = StyleSheet.create({\n container: {\n flexGrow: 1,\n },\n});\n\nconst fullScreenHeight = Dimensions.get('window').height;\n\nexport type AttachmentPickerProps = {\n /**\n * Custom UI component to render [draggable handle](https://github.com/GetStream/stream-chat-react-native/blob/main/screenshots/docs/1.png) of attachment picker.\n *\n * **Default** [AttachmentPickerBottomSheetHandle](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.tsx)\n */\n AttachmentPickerBottomSheetHandle: React.FC<BottomSheetHandleProps>;\n /**\n * Custom UI component to render error component while opening attachment picker.\n *\n * **Default** [AttachmentPickerError](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/AttachmentPicker/components/AttachmentPickerError.tsx)\n */\n AttachmentPickerError: React.ComponentType<AttachmentPickerErrorProps>;\n /**\n * Custom UI component to render error image for attachment picker\n *\n * **Default** [AttachmentPickerErrorImage](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/AttachmentPicker/components/AttachmentPickerErrorImage.tsx)\n */\n AttachmentPickerErrorImage: React.ComponentType;\n /**\n * Custom UI component to render overlay component, that shows up on top of [selected image](https://github.com/GetStream/stream-chat-react-native/blob/main/screenshots/docs/1.png) (with tick mark)\n *\n * **Default** [ImageOverlaySelectedComponent](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/AttachmentPicker/components/ImageOverlaySelectedComponent.tsx)\n */\n ImageOverlaySelectedComponent: React.ComponentType;\n attachmentPickerBottomSheetHandleHeight?: number;\n attachmentPickerBottomSheetHeight?: number;\n attachmentPickerErrorButtonText?: string;\n attachmentPickerErrorText?: string;\n numberOfAttachmentImagesToLoadPerCall?: number;\n numberOfAttachmentPickerImageColumns?: number;\n translucentStatusBar?: boolean;\n};\n\nexport const AttachmentPicker = React.forwardRef(\n (props: AttachmentPickerProps, ref: React.ForwardedRef<BottomSheet>) => {\n const {\n AttachmentPickerBottomSheetHandle,\n attachmentPickerBottomSheetHandleHeight,\n attachmentPickerBottomSheetHeight,\n AttachmentPickerError,\n attachmentPickerErrorButtonText,\n AttachmentPickerErrorImage,\n attachmentPickerErrorText,\n ImageOverlaySelectedComponent,\n numberOfAttachmentImagesToLoadPerCall,\n numberOfAttachmentPickerImageColumns,\n translucentStatusBar,\n } = props;\n\n const {\n theme: {\n attachmentPicker: { bottomSheetContentContainer },\n colors: { white },\n },\n } = useTheme();\n const {\n closePicker,\n maxNumberOfFiles,\n selectedFiles,\n selectedImages,\n selectedPicker,\n setSelectedFiles,\n setSelectedImages,\n setSelectedPicker,\n topInset,\n } = useAttachmentPickerContext();\n const { vh } = useViewport();\n\n const screenHeight = vh(100);\n\n const [currentIndex, setCurrentIndex] = useState(-1);\n const endCursorRef = useRef<string>();\n const [photoError, setPhotoError] = useState(false);\n const [iOSLimited, setIosLimited] = useState(false);\n const hasNextPageRef = useRef(true);\n const [loadingPhotos, setLoadingPhotos] = useState(false);\n const [photos, setPhotos] = useState<Asset[]>([]);\n const attemptedToLoadPhotosOnOpenRef = useRef(false);\n const { t } = useTranslationContext();\n\n const getMorePhotos = useCallback(async () => {\n if (\n hasNextPageRef.current &&\n !loadingPhotos &&\n currentIndex > -1 &&\n selectedPicker === 'images'\n ) {\n setPhotoError(false);\n setLoadingPhotos(true);\n const endCursor = endCursorRef.current;\n try {\n const results = await getPhotos({\n after: endCursor,\n first: numberOfAttachmentImagesToLoadPerCall ?? 60,\n });\n endCursorRef.current = results.endCursor;\n setPhotos((prevPhotos) =>\n endCursor ? [...prevPhotos, ...results.assets] : results.assets,\n );\n setIosLimited(results.iOSLimited);\n hasNextPageRef.current = !!results.hasNextPage;\n } catch (error) {\n setPhotoError(true);\n }\n setLoadingPhotos(false);\n }\n }, [currentIndex, selectedPicker, loadingPhotos]);\n\n // we need to use ref here to avoid running effect when getMorePhotos changes\n const getMorePhotosRef = useRef(getMorePhotos);\n getMorePhotosRef.current = getMorePhotos;\n\n useEffect(() => {\n if (selectedPicker !== 'images') return;\n // ios 14 library selection change event is fired when user reselects the images that are permitted to be readable by the app\n const { unsubscribe } = oniOS14GalleryLibrarySelectionChange(() => {\n // we reset the cursor and has next page to true to facilitate fetching of the first page of photos again\n hasNextPageRef.current = true;\n endCursorRef.current = undefined;\n // fetch the first page of photos again\n getMorePhotosRef.current();\n });\n return unsubscribe;\n }, [selectedPicker]);\n\n useEffect(() => {\n const backAction = () => {\n if (selectedPicker) {\n setSelectedPicker(undefined);\n closePicker();\n return true;\n }\n\n return false;\n };\n\n const backHandler = BackHandler.addEventListener('hardwareBackPress', backAction);\n\n return () => backHandler.remove();\n }, [selectedPicker, closePicker]);\n\n useEffect(() => {\n const keyboardShowEvent = Platform.OS === 'ios' ? 'keyboardWillShow' : 'keyboardDidShow';\n const keyboardSubscription = Keyboard.addListener(keyboardShowEvent, closePicker);\n\n return () => {\n if (keyboardSubscription?.remove) {\n keyboardSubscription.remove();\n return;\n }\n\n // To keep compatibility with older versions of React Native, where `remove()` is not available\n Keyboard.removeListener(keyboardShowEvent, closePicker);\n };\n }, [closePicker]);\n\n useEffect(() => {\n if (currentIndex < 0) {\n setSelectedPicker(undefined);\n if (!loadingPhotos) {\n endCursorRef.current = undefined;\n hasNextPageRef.current = true;\n attemptedToLoadPhotosOnOpenRef.current = false;\n setPhotoError(false);\n }\n }\n }, [currentIndex, loadingPhotos]);\n\n useEffect(() => {\n if (\n !attemptedToLoadPhotosOnOpenRef.current &&\n selectedPicker === 'images' &&\n endCursorRef.current === undefined &&\n currentIndex > -1 &&\n !loadingPhotos\n ) {\n getMorePhotos();\n // we do this only once on open for avoiding to request permissions in rationale dialog again and again on Android\n attemptedToLoadPhotosOnOpenRef.current = true;\n }\n }, [currentIndex, selectedPicker, getMorePhotos, loadingPhotos]);\n\n const selectedPhotos = photos.map((asset) => ({\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n numberOfUploads: selectedFiles.length + selectedImages.length,\n // `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`\n selected:\n selectedImages.some((image) =>\n image.id ? image.id === asset.id : image.uri === asset.uri,\n ) ||\n selectedFiles.some((file) => (file.id ? file.id === asset.id : file.uri === asset.uri)),\n selectedFiles,\n selectedImages,\n setSelectedFiles,\n setSelectedImages,\n }));\n\n const handleHeight = attachmentPickerBottomSheetHandleHeight || 20;\n\n /**\n * This is to handle issues with Android measurements coming back incorrect.\n * If the StatusBar height is perfectly 1/2 of the difference between the two\n * dimensions for screen and window, it is incorrect and we need to account for\n * this. If you use a translucent header bar more adjustments are needed.\n */\n const getAndroidBottomBarHeightAdjustment = (): number => {\n if (Platform.OS === 'android') {\n const statusBarHeight = StatusBar.currentHeight ?? 0;\n const bottomBarHeight = fullScreenHeight - screenHeight - statusBarHeight;\n if (bottomBarHeight === statusBarHeight) {\n return translucentStatusBar ? 0 : statusBarHeight;\n } else {\n if (translucentStatusBar) {\n if (bottomBarHeight > statusBarHeight) {\n return -bottomBarHeight + statusBarHeight;\n } else {\n return bottomBarHeight > 0 ? -statusBarHeight : 0;\n }\n } else {\n return bottomBarHeight > 0 ? 0 : statusBarHeight;\n }\n }\n }\n return 0;\n };\n\n const getInitialSnapPoint = (): number => {\n if (attachmentPickerBottomSheetHeight !== undefined) {\n return attachmentPickerBottomSheetHeight;\n }\n if (Platform.OS === 'android') {\n return (\n 308 +\n (fullScreenHeight - screenHeight + getAndroidBottomBarHeightAdjustment()) -\n handleHeight\n );\n } else {\n return 308 + (fullScreenHeight - screenHeight);\n }\n };\n\n const initialSnapPoint = getInitialSnapPoint();\n\n const finalSnapPoint =\n Platform.OS === 'android'\n ? fullScreenHeight - topInset - handleHeight\n : fullScreenHeight - topInset;\n\n /**\n * Snap points changing cause a rerender of the position,\n * this is an issue if you are calling close on the bottom sheet.\n */\n const snapPoints = useMemo(\n () => [initialSnapPoint, finalSnapPoint],\n [initialSnapPoint, finalSnapPoint],\n );\n\n return (\n <>\n <BottomSheet\n containerHeight={fullScreenHeight}\n enablePanDownToClose={true}\n handleComponent={\n /**\n * using `null` here instead of `style={{ opacity: photoError ? 0 : 1 }}`\n * as opacity is not an allowed style\n */\n photoError ? null : AttachmentPickerBottomSheetHandle\n }\n handleHeight={handleHeight}\n index={-1}\n onChange={setCurrentIndex}\n ref={ref}\n snapPoints={snapPoints}\n >\n {iOSLimited && (\n <Button onPress={iOS14RefreshGallerySelection} title={t('Select More Photos')} />\n )}\n <BottomSheetFlatList\n contentContainerStyle={[\n styles.container,\n { backgroundColor: white },\n bottomSheetContentContainer,\n { opacity: photoError ? 0 : 1 },\n ]}\n data={selectedPhotos}\n keyExtractor={(item) => item.asset.uri}\n numColumns={numberOfAttachmentPickerImageColumns ?? 3}\n onEndReached={photoError ? undefined : getMorePhotos}\n renderItem={renderAttachmentPickerItem}\n />\n </BottomSheet>\n {selectedPicker === 'images' && photoError && (\n <AttachmentPickerError\n attachmentPickerBottomSheetHeight={initialSnapPoint}\n attachmentPickerErrorButtonText={attachmentPickerErrorButtonText}\n AttachmentPickerErrorImage={AttachmentPickerErrorImage}\n attachmentPickerErrorText={attachmentPickerErrorText}\n />\n )}\n </>\n );\n },\n);\n\nAttachmentPicker.displayName = 'AttachmentPicker';\n"],"mappings":"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"}
|