stream-chat-react-native-core 4.12.0-beta.1 → 4.12.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/{MessageInput/AudioAttachmentUploadPreview.js → Attachment/AudioAttachment.js} +26 -23
- package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -0
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +113 -10
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/commonjs/components/Attachment/Gallery.js +22 -18
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/VideoThumbnail.js +12 -6
- package/lib/commonjs/components/Attachment/VideoThumbnail.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +5 -5
- package/lib/commonjs/components/Channel/Channel.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/ImageGallery/components/ImageGalleryVideoControl.js +11 -10
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.test.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.test.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +10 -31
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/index.js +13 -13
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +2 -2
- 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/themeContext/utils/theme.js +2 -2
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/{MessageInput/AudioAttachmentUploadPreview.js → Attachment/AudioAttachment.js} +26 -23
- package/lib/module/components/Attachment/AudioAttachment.js.map +1 -0
- package/lib/module/components/Attachment/FileAttachmentGroup.js +113 -10
- package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/module/components/Attachment/Gallery.js +22 -18
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/VideoThumbnail.js +12 -6
- package/lib/module/components/Attachment/VideoThumbnail.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +5 -5
- package/lib/module/components/Channel/Channel.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/ImageGallery/components/ImageGalleryVideoControl.js +11 -10
- package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/parseLinks.js +1 -1
- package/lib/module/components/Message/MessageSimple/utils/parseLinks.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/parseLinks.test.js +1 -1
- package/lib/module/components/Message/MessageSimple/utils/parseLinks.test.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +10 -31
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/index.js +13 -13
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +2 -2
- 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/themeContext/utils/theme.js +2 -2
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/AudioAttachment.d.ts +26 -0
- package/lib/typescript/components/Attachment/FileAttachmentGroup.d.ts +2 -1
- package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +1 -1
- package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +1 -1
- package/lib/typescript/components/index.d.ts +1 -1
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +4 -4
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +2 -2
- package/package.json +1 -1
- package/src/components/{MessageInput/AudioAttachmentUploadPreview.tsx → Attachment/AudioAttachment.tsx} +21 -26
- package/src/components/Attachment/FileAttachmentGroup.tsx +96 -7
- package/src/components/Attachment/Gallery.tsx +7 -1
- package/src/components/Attachment/VideoThumbnail.tsx +3 -2
- package/src/components/Channel/Channel.tsx +3 -3
- package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +2 -2
- package/src/components/ImageGallery/components/ImageGalleryVideoControl.tsx +12 -7
- package/src/components/Message/MessageSimple/__tests__/MessageContent.test.js +4 -2
- package/src/components/Message/MessageSimple/utils/parseLinks.test.ts +4 -0
- package/src/components/Message/MessageSimple/utils/parseLinks.ts +1 -1
- package/src/components/MessageInput/FileUploadPreview.tsx +8 -17
- package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewExpo.test.tsx +4 -7
- package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewNative.test.tsx +4 -7
- package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +5 -5
- package/src/components/index.ts +1 -1
- package/src/contexts/messageInputContext/MessageInputContext.tsx +3 -5
- package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +2 -2
- package/src/contexts/themeContext/utils/theme.ts +4 -4
- package/src/version.json +1 -1
- package/lib/commonjs/components/MessageInput/AudioAttachmentUploadPreview.js.map +0 -1
- package/lib/module/components/MessageInput/AudioAttachmentUploadPreview.js.map +0 -1
- package/lib/typescript/components/MessageInput/AudioAttachmentUploadPreview.d.ts +0 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './Attachment/Attachment';\nexport * from './Attachment/AttachmentActions';\nexport * from './Attachment/Card';\nexport * from './Attachment/FileAttachment';\nexport * from './Attachment/FileAttachmentGroup';\nexport * from './Attachment/FileIcon';\nexport * from './Attachment/Gallery';\nexport * from './Attachment/Giphy';\nexport * from './Attachment/VideoThumbnail';\nexport * from './Attachment/utils/buildGallery/buildGallery';\n\nexport * from './AttachmentPicker/AttachmentPicker';\nexport * from './AttachmentPicker/components/AttachmentPickerBottomSheetHandle';\nexport * from './AttachmentPicker/components/AttachmentPickerError';\nexport * from './AttachmentPicker/components/AttachmentPickerErrorImage';\nexport * from './AttachmentPicker/components/AttachmentSelectionBar';\nexport * from './AttachmentPicker/components/CameraSelectorIcon';\nexport * from './AttachmentPicker/components/FileSelectorIcon';\nexport * from './AttachmentPicker/components/ImageOverlaySelectedComponent';\nexport * from './AttachmentPicker/components/ImageSelectorIcon';\n\nexport * from './AutoCompleteInput/AutoCompleteInput';\nexport * from './AutoCompleteInput/AutoCompleteSuggestionHeader';\nexport * from './AutoCompleteInput/AutoCompleteSuggestionItem';\nexport * from './AutoCompleteInput/AutoCompleteSuggestionList';\n\nexport * from './Avatar/Avatar';\nexport * from './Avatar/GroupAvatar';\n\nexport * from './Channel/Channel';\nexport * from './Channel/hooks/useCreateChannelContext';\nexport * from './Channel/hooks/useCreateInputMessageInputContext';\nexport * from './Channel/hooks/useCreateMessagesContext';\nexport * from './Channel/hooks/useCreatePaginatedMessageListContext';\nexport * from './Channel/hooks/useCreateThreadContext';\nexport * from './Channel/hooks/useCreateTypingContext';\nexport * from './Channel/hooks/useTargetedMessage';\n\nexport * from './ChannelList/ChannelList';\nexport * from './ChannelList/ChannelListFooterLoadingIndicator';\nexport * from './ChannelList/ChannelListHeaderErrorIndicator';\nexport * from './ChannelList/ChannelListHeaderNetworkDownIndicator';\nexport * from './ChannelList/ChannelListLoadingIndicator';\nexport * from './ChannelList/ChannelListMessenger';\nexport * from './ChannelList/hooks/listeners/useAddedToChannelNotification';\nexport * from './ChannelList/hooks/listeners/useChannelDeleted';\nexport * from './ChannelList/hooks/listeners/useChannelHidden';\nexport * from './ChannelList/hooks/listeners/useChannelTruncated';\nexport * from './ChannelList/hooks/listeners/useChannelUpdated';\nexport * from './ChannelList/hooks/listeners/useConnectionRecovered';\nexport * from './ChannelList/hooks/listeners/useNewMessage';\nexport * from './ChannelList/hooks/listeners/useNewMessageNotification';\nexport * from './ChannelList/hooks/listeners/useRemovedFromChannelNotification';\nexport * from './ChannelList/hooks/listeners/useUserPresence';\nexport * from './ChannelList/hooks/useCreateChannelsContext';\nexport * from './ChannelList/hooks/usePaginatedChannels';\nexport * from './ChannelList/Skeleton';\n\nexport * from './ChannelPreview/ChannelAvatar';\nexport * from './ChannelPreview/ChannelPreview';\nexport * from './ChannelPreview/ChannelPreviewMessenger';\nexport * from './ChannelPreview/ChannelPreviewMessage';\nexport * from './ChannelPreview/ChannelPreviewStatus';\nexport * from './ChannelPreview/ChannelPreviewTitle';\nexport * from './ChannelPreview/ChannelPreviewUnreadCount';\nexport * from './ChannelPreview/hooks/useChannelPreviewDisplayAvatar';\nexport * from './ChannelPreview/hooks/useChannelPreviewDisplayName';\nexport * from './ChannelPreview/hooks/useChannelPreviewDisplayPresence';\nexport * from './ChannelPreview/hooks/useLatestMessagePreview';\n\nexport * from './Chat/Chat';\nexport * from './Chat/hooks/useCreateChatContext';\nexport * from './Chat/hooks/useIsOnline';\nexport * from './Chat/hooks/useMutedUsers';\n\nexport * from './ImageGallery/ImageGallery';\nexport * from './ImageGallery/components/AnimatedGalleryImage';\nexport * from './ImageGallery/components/AnimatedGalleryVideo';\nexport * from './ImageGallery/components/ImageGalleryFooter';\nexport * from './ImageGallery/components/ImageGalleryHeader';\nexport * from './ImageGallery/components/ImageGalleryOverlay';\nexport * from './ImageGallery/components/ImageGrid';\nexport * from './ImageGallery/components/ImageGridHandle';\n\nexport * from './Indicators/EmptyStateIndicator';\nexport * from './Indicators/LoadingDot';\nexport * from './Indicators/LoadingDots';\nexport * from './Indicators/LoadingErrorIndicator';\nexport * from './Indicators/LoadingIndicator';\n\nexport * from './KeyboardCompatibleView/KeyboardCompatibleView';\n\nexport * from './Message/hooks/useCreateMessageContext';\nexport * from './Message/hooks/useMessageActions';\nexport * from './Message/hooks/useMessageActionHandlers';\nexport * from './Message/Message';\nexport * from './Message/MessageSimple/MessageAvatar';\nexport * from './Message/MessageSimple/MessageContent';\nexport * from './Message/MessageSimple/MessageDeleted';\nexport * from './Message/MessageSimple/MessageFooter';\nexport * from './Message/MessageSimple/MessagePinnedHeader';\nexport * from './Message/MessageSimple/MessageReplies';\nexport * from './Message/MessageSimple/MessageRepliesAvatars';\nexport * from './Message/MessageSimple/MessageSimple';\nexport * from './Message/MessageSimple/MessageStatus';\nexport * from './Message/MessageSimple/MessageTextContainer';\nexport * from './Message/MessageSimple/ReactionList';\nexport * from './Message/MessageSimple/utils/renderText';\nexport * from './Message/utils/messageActions';\nexport * from './Message/utils/removeReservedFields';\n\nexport * from './MessageInput/AttachButton';\nexport * from './MessageInput/CommandsButton';\nexport * from './MessageInput/CooldownTimer';\nexport * from './MessageInput/FileUploadPreview';\nexport * from './MessageInput/AudioAttachmentUploadPreview';\nexport * from './MessageInput/ImageUploadPreview';\nexport * from './MessageInput/InputButtons';\nexport * from './MessageInput/MessageInput';\nexport * from './MessageInput/MoreOptionsButton';\nexport * from './MessageInput/SendButton';\nexport * from './MessageInput/ShowThreadMessageInChannelButton';\nexport * from './MessageInput/UploadProgressIndicator';\n\nexport * from './MessageList/DateHeader';\nexport * from './MessageList/hooks/useMessageList';\nexport * from './MessageList/hooks/useTypingString';\nexport * from './MessageList/InlineDateSeparator';\nexport * from './MessageList/InlineLoadingMoreIndicator';\nexport * from './MessageList/InlineLoadingMoreRecentIndicator';\nexport * from './MessageList/InlineLoadingMoreThreadIndicator';\nexport * from './MessageList/InlineUnreadIndicator';\nexport * from './MessageList/MessageList';\nexport * from './MessageList/MessageSystem';\nexport * from './MessageList/NetworkDownIndicator';\nexport * from './MessageList/ScrollToBottomButton';\nexport * from './MessageList/TypingIndicator';\nexport * from './MessageList/TypingIndicatorContainer';\nexport * from './MessageList/utils/getDateSeparators';\nexport * from './MessageList/utils/getGroupStyles';\nexport * from './MessageList/utils/getLastReceivedMessage';\nexport * from './MessageList/utils/getReadStates';\n\nexport * from './MessageOverlay/hooks/useMessageActionAnimation';\nexport * from './MessageOverlay/MessageActionList';\nexport * from './MessageOverlay/MessageActionListItem';\nexport * from './MessageOverlay/MessageOverlay';\nexport * from './MessageOverlay/OverlayBackdrop';\nexport * from './MessageOverlay/OverlayReactions';\nexport * from './MessageOverlay/OverlayReactionsAvatar';\nexport * from './MessageOverlay/OverlayReactionList';\n\nexport * from './ProgressControl/ProgressControl';\n\nexport * from './Reply/Reply';\n\nexport * from './Spinner/Spinner';\n\nexport * from './Thread/Thread';\nexport * from './Thread/components/ThreadFooterComponent';\n"]}
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './Attachment/Attachment';\nexport * from './Attachment/AttachmentActions';\nexport * from './Attachment/AudioAttachment';\nexport * from './Attachment/Card';\nexport * from './Attachment/FileAttachment';\nexport * from './Attachment/FileAttachmentGroup';\nexport * from './Attachment/FileIcon';\nexport * from './Attachment/Gallery';\nexport * from './Attachment/Giphy';\nexport * from './Attachment/VideoThumbnail';\nexport * from './Attachment/utils/buildGallery/buildGallery';\n\nexport * from './AttachmentPicker/AttachmentPicker';\nexport * from './AttachmentPicker/components/AttachmentPickerBottomSheetHandle';\nexport * from './AttachmentPicker/components/AttachmentPickerError';\nexport * from './AttachmentPicker/components/AttachmentPickerErrorImage';\nexport * from './AttachmentPicker/components/AttachmentSelectionBar';\nexport * from './AttachmentPicker/components/CameraSelectorIcon';\nexport * from './AttachmentPicker/components/FileSelectorIcon';\nexport * from './AttachmentPicker/components/ImageOverlaySelectedComponent';\nexport * from './AttachmentPicker/components/ImageSelectorIcon';\n\nexport * from './AutoCompleteInput/AutoCompleteInput';\nexport * from './AutoCompleteInput/AutoCompleteSuggestionHeader';\nexport * from './AutoCompleteInput/AutoCompleteSuggestionItem';\nexport * from './AutoCompleteInput/AutoCompleteSuggestionList';\n\nexport * from './Avatar/Avatar';\nexport * from './Avatar/GroupAvatar';\n\nexport * from './Channel/Channel';\nexport * from './Channel/hooks/useCreateChannelContext';\nexport * from './Channel/hooks/useCreateInputMessageInputContext';\nexport * from './Channel/hooks/useCreateMessagesContext';\nexport * from './Channel/hooks/useCreatePaginatedMessageListContext';\nexport * from './Channel/hooks/useCreateThreadContext';\nexport * from './Channel/hooks/useCreateTypingContext';\nexport * from './Channel/hooks/useTargetedMessage';\n\nexport * from './ChannelList/ChannelList';\nexport * from './ChannelList/ChannelListFooterLoadingIndicator';\nexport * from './ChannelList/ChannelListHeaderErrorIndicator';\nexport * from './ChannelList/ChannelListHeaderNetworkDownIndicator';\nexport * from './ChannelList/ChannelListLoadingIndicator';\nexport * from './ChannelList/ChannelListMessenger';\nexport * from './ChannelList/hooks/listeners/useAddedToChannelNotification';\nexport * from './ChannelList/hooks/listeners/useChannelDeleted';\nexport * from './ChannelList/hooks/listeners/useChannelHidden';\nexport * from './ChannelList/hooks/listeners/useChannelTruncated';\nexport * from './ChannelList/hooks/listeners/useChannelUpdated';\nexport * from './ChannelList/hooks/listeners/useConnectionRecovered';\nexport * from './ChannelList/hooks/listeners/useNewMessage';\nexport * from './ChannelList/hooks/listeners/useNewMessageNotification';\nexport * from './ChannelList/hooks/listeners/useRemovedFromChannelNotification';\nexport * from './ChannelList/hooks/listeners/useUserPresence';\nexport * from './ChannelList/hooks/useCreateChannelsContext';\nexport * from './ChannelList/hooks/usePaginatedChannels';\nexport * from './ChannelList/Skeleton';\n\nexport * from './ChannelPreview/ChannelAvatar';\nexport * from './ChannelPreview/ChannelPreview';\nexport * from './ChannelPreview/ChannelPreviewMessenger';\nexport * from './ChannelPreview/ChannelPreviewMessage';\nexport * from './ChannelPreview/ChannelPreviewStatus';\nexport * from './ChannelPreview/ChannelPreviewTitle';\nexport * from './ChannelPreview/ChannelPreviewUnreadCount';\nexport * from './ChannelPreview/hooks/useChannelPreviewDisplayAvatar';\nexport * from './ChannelPreview/hooks/useChannelPreviewDisplayName';\nexport * from './ChannelPreview/hooks/useChannelPreviewDisplayPresence';\nexport * from './ChannelPreview/hooks/useLatestMessagePreview';\n\nexport * from './Chat/Chat';\nexport * from './Chat/hooks/useCreateChatContext';\nexport * from './Chat/hooks/useIsOnline';\nexport * from './Chat/hooks/useMutedUsers';\n\nexport * from './ImageGallery/ImageGallery';\nexport * from './ImageGallery/components/AnimatedGalleryImage';\nexport * from './ImageGallery/components/AnimatedGalleryVideo';\nexport * from './ImageGallery/components/ImageGalleryFooter';\nexport * from './ImageGallery/components/ImageGalleryHeader';\nexport * from './ImageGallery/components/ImageGalleryOverlay';\nexport * from './ImageGallery/components/ImageGrid';\nexport * from './ImageGallery/components/ImageGridHandle';\n\nexport * from './Indicators/EmptyStateIndicator';\nexport * from './Indicators/LoadingDot';\nexport * from './Indicators/LoadingDots';\nexport * from './Indicators/LoadingErrorIndicator';\nexport * from './Indicators/LoadingIndicator';\n\nexport * from './KeyboardCompatibleView/KeyboardCompatibleView';\n\nexport * from './Message/hooks/useCreateMessageContext';\nexport * from './Message/hooks/useMessageActions';\nexport * from './Message/hooks/useMessageActionHandlers';\nexport * from './Message/Message';\nexport * from './Message/MessageSimple/MessageAvatar';\nexport * from './Message/MessageSimple/MessageContent';\nexport * from './Message/MessageSimple/MessageDeleted';\nexport * from './Message/MessageSimple/MessageFooter';\nexport * from './Message/MessageSimple/MessagePinnedHeader';\nexport * from './Message/MessageSimple/MessageReplies';\nexport * from './Message/MessageSimple/MessageRepliesAvatars';\nexport * from './Message/MessageSimple/MessageSimple';\nexport * from './Message/MessageSimple/MessageStatus';\nexport * from './Message/MessageSimple/MessageTextContainer';\nexport * from './Message/MessageSimple/ReactionList';\nexport * from './Message/MessageSimple/utils/renderText';\nexport * from './Message/utils/messageActions';\nexport * from './Message/utils/removeReservedFields';\n\nexport * from './MessageInput/AttachButton';\nexport * from './MessageInput/CommandsButton';\nexport * from './MessageInput/CooldownTimer';\nexport * from './MessageInput/FileUploadPreview';\nexport * from './MessageInput/ImageUploadPreview';\nexport * from './MessageInput/InputButtons';\nexport * from './MessageInput/MessageInput';\nexport * from './MessageInput/MoreOptionsButton';\nexport * from './MessageInput/SendButton';\nexport * from './MessageInput/ShowThreadMessageInChannelButton';\nexport * from './MessageInput/UploadProgressIndicator';\n\nexport * from './MessageList/DateHeader';\nexport * from './MessageList/hooks/useMessageList';\nexport * from './MessageList/hooks/useTypingString';\nexport * from './MessageList/InlineDateSeparator';\nexport * from './MessageList/InlineLoadingMoreIndicator';\nexport * from './MessageList/InlineLoadingMoreRecentIndicator';\nexport * from './MessageList/InlineLoadingMoreThreadIndicator';\nexport * from './MessageList/InlineUnreadIndicator';\nexport * from './MessageList/MessageList';\nexport * from './MessageList/MessageSystem';\nexport * from './MessageList/NetworkDownIndicator';\nexport * from './MessageList/ScrollToBottomButton';\nexport * from './MessageList/TypingIndicator';\nexport * from './MessageList/TypingIndicatorContainer';\nexport * from './MessageList/utils/getDateSeparators';\nexport * from './MessageList/utils/getGroupStyles';\nexport * from './MessageList/utils/getLastReceivedMessage';\nexport * from './MessageList/utils/getReadStates';\n\nexport * from './MessageOverlay/hooks/useMessageActionAnimation';\nexport * from './MessageOverlay/MessageActionList';\nexport * from './MessageOverlay/MessageActionListItem';\nexport * from './MessageOverlay/MessageOverlay';\nexport * from './MessageOverlay/OverlayBackdrop';\nexport * from './MessageOverlay/OverlayReactions';\nexport * from './MessageOverlay/OverlayReactionsAvatar';\nexport * from './MessageOverlay/OverlayReactionList';\n\nexport * from './ProgressControl/ProgressControl';\n\nexport * from './Reply/Reply';\n\nexport * from './Spinner/Spinner';\n\nexport * from './Thread/Thread';\nexport * from './Thread/components/ThreadFooterComponent';\n"]}
|
|
@@ -1134,7 +1134,7 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
|
|
|
1134
1134
|
__self: _this,
|
|
1135
1135
|
__source: {
|
|
1136
1136
|
fileName: _jsxFileName,
|
|
1137
|
-
lineNumber:
|
|
1137
|
+
lineNumber: 1145,
|
|
1138
1138
|
columnNumber: 5
|
|
1139
1139
|
}
|
|
1140
1140
|
}, children);
|
|
@@ -1161,7 +1161,7 @@ var withMessageInputContext = function withMessageInputContext(Component) {
|
|
|
1161
1161
|
__self: _this,
|
|
1162
1162
|
__source: {
|
|
1163
1163
|
fileName: _jsxFileName,
|
|
1164
|
-
lineNumber:
|
|
1164
|
+
lineNumber: 1185,
|
|
1165
1165
|
columnNumber: 12
|
|
1166
1166
|
}
|
|
1167
1167
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MessageInputContext.tsx"],"names":["MessageInputContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","MessageInputProvider","children","value","closePicker","openPicker","selectedPicker","setSelectedPicker","appSettings","client","getFileUploadConfig","fileConfig","app","file_upload_config","undefined","blockedFileExtensionTypes","blocked_file_extensions","blockedFileMimeTypes","blocked_mime_types","getImageUploadConfig","imageConfig","image_upload_config","blockedImageExtensionTypes","blockedImageMimeTypes","channelCapabities","channel","giphyEnabled","thread","t","inputBoxRef","sending","asyncIds","setAsyncIds","asyncUploads","setAsyncUploads","giphyActive","setGiphyActive","sendThreadMessageInChannel","setSendThreadMessageInChannel","editing","hasFilePicker","hasImagePicker","initialValue","fileUploads","imageUploads","mentionedUsers","numberOfUploads","setFileUploads","setImageUploads","setMentionedUsers","setNumberOfUploads","setShowMoreOptions","setText","showMoreOptions","text","cooldownEndsAt","endsAt","startCooldown","start","threadId","id","appendText","newText","prevText","isValidMessage","trim","image","state","FileState","UPLOAD_FAILED","UPLOADING","file","onChange","current","sendTypingEvents","keystroke","onChangeText","openCommandsPicker","focus","openMentionsPicker","openAttachmentPicker","Keyboard","dismiss","setTimeout","pickFile","closeAttachmentPicker","toggleAttachmentPicker","onSelectItem","item","prevMentionedUsers","maxNumberOfFiles","Alert","alert","result","cancelled","docs","forEach","doc","uploadNewFile","removeFile","some","prevFileUploads","filter","prevNumberOfUploads","removeImage","prevImageUploads","resetInput","pendingAttachments","length","sendMessage","sendLinks","match","urlRegex","clear","attachments","sendImageAsync","prevAsyncIds","mime_type","filename","UPLOADED","FINISHED","push","fallback","name","image_url","url","original_height","height","original_width","width","type","startsWith","asset_url","duration","file_size","size","title","thumb_url","updatedMessage","mentioned_users","quoted_message","clearEditingState","updateMessagePromise","editMessage","then","parent_id","quoted_message_id","quotedMessage","show_in_channel","clearQuotedMessageState","_error","setQuotedMessageState","slice","console","log","sendMessageAsync","splice","indexOf","prevAsyncUploads","setInputBoxRef","ref","setInputRef","triggerSettings","autoCompleteTriggerSettings","onMentionSelectItem","updateMessage","regExcondition","getUploadSetStateAction","fileState","extraData","uploads","prevUploads","map","prevUpload","handleFileOrImageUploadError","error","isImageError","Error","test","message","NOT_SUPPORTED","uploadFile","newFile","response","doDocUploadRequest","uri","sendFile","uploadImage","newImage","localUri","source","compressImageQuality","compressedUri","replace","contentType","doImageUploadRequest","sendImage","res","includes","newImageUploads","Object","keys","mimeType","isBlockedFileExtension","fileExtensionType","isBlockedFileMimeType","paused","progress","Promise","all","concat","uploadNewImage","isBlockedImageMimeType","isBlockedImageExtension","imageExtensionType","imageState","messageInputContext","openFilePicker","useMessageInputContext","contextValue","withMessageInputContext","Component","WithMessageInputContextComponent","props","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AAIA;;AACA;;AACA;;AAYA;;AACA;;AAUA;;AAQA;;AAEA;;AASA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;;;;;;;;;;;;AA+VO,IAAMA,mBAAmB,GAAGC,kBAAMC,aAAN,CACjCC,mDADiC,CAA5B;;;;AAIA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,OAO7B;AAAA;;AAAA,MAJLC,QAIK,QAJLA,QAIK;AAAA,MAHLC,KAGK,QAHLA,KAGK;;AACL,8BACE,0DADF;AAAA,MAAQC,WAAR,yBAAQA,WAAR;AAAA,MAAqBC,UAArB,yBAAqBA,UAArB;AAAA,MAAiCC,cAAjC,yBAAiCA,cAAjC;AAAA,MAAiDC,iBAAjD,yBAAiDA,iBAAjD;;AAEA,wBAAgC,kCAAhC;AAAA,MAAQC,WAAR,mBAAQA,WAAR;AAAA,MAAqBC,MAArB,mBAAqBA,MAArB;;AAEA,MAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AAAA;;AAChC,QAAMC,UAAU,GAAGH,WAAH,wCAAGA,WAAW,CAAEI,GAAhB,qBAAG,iBAAkBC,kBAArC;;AACA,QAAIF,UAAU,KAAK,IAAf,IAAuBA,UAAU,KAAKG,SAA1C,EAAqD;AACnD,aAAOH,UAAP;AACD,KAFD,MAEO;AACL,aAAO,EAAP;AACD;AACF,GAPD;;AASA,MAAMI,yBAAyB,2BAAGL,mBAAmB,EAAtB,qBAAG,qBAAuBM,uBAAzD;AACA,MAAMC,oBAAoB,4BAAGP,mBAAmB,EAAtB,qBAAG,sBAAuBQ,kBAApD;;AAEA,MAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,GAAM;AAAA;;AACjC,QAAMC,WAAW,GAAGZ,WAAH,yCAAGA,WAAW,CAAEI,GAAhB,qBAAG,kBAAkBS,mBAAtC;;AACA,QAAID,WAAW,KAAK,IAAhB,IAAwBA,WAAW,KAAKN,SAA5C,EAAuD;AACrD,aAAOM,WAAP;AACD;;AACD,WAAO,EAAP;AACD,GAND;;AAQA,MAAME,0BAA0B,4BAAGH,oBAAoB,EAAvB,qBAAG,sBAAwBH,uBAA3D;AACA,MAAMO,qBAAqB,6BAAGJ,oBAAoB,EAAvB,qBAAG,uBAAwBD,kBAAtD;AAEA,MAAMM,iBAAiB,GAAG,wDAA1B;;AAEA,2BAAkC,wCAAlC;AAAA,MAAQC,OAAR,sBAAQA,OAAR;AAAA,MAAiBC,YAAjB,sBAAiBA,YAAjB;;AACA,0BAAmB,sCAAnB;AAAA,MAAQC,MAAR,qBAAQA,MAAR;;AACA,8BAAc,gDAAd;AAAA,MAAQC,CAAR,yBAAQA,CAAR;;AACA,MAAMC,WAAW,GAAG,mBAAyB,IAAzB,CAApB;AACA,MAAMC,OAAO,GAAG,mBAAO,KAAP,CAAhB;;AAEA,kBAAgC,qBAAmB,EAAnB,CAAhC;AAAA;AAAA,MAAOC,QAAP;AAAA,MAAiBC,WAAjB;;AACA,mBAAwC,qBAKrC,EALqC,CAAxC;AAAA;AAAA,MAAOC,YAAP;AAAA,MAAqBC,eAArB;;AAMA,mBAAsC,qBAAS,KAAT,CAAtC;AAAA;AAAA,MAAOC,WAAP;AAAA,MAAoBC,cAApB;;AACA,mBAAoE,qBAAS,KAAT,CAApE;AAAA;AAAA,MAAOC,0BAAP;AAAA,MAAmCC,6BAAnC;;AACA,MAAQC,OAAR,GAAiEpC,KAAjE,CAAQoC,OAAR;AAAA,MAAiBC,aAAjB,GAAiErC,KAAjE,CAAiBqC,aAAjB;AAAA,MAAgCC,cAAhC,GAAiEtC,KAAjE,CAAgCsC,cAAhC;AAAA,MAAgDC,YAAhD,GAAiEvC,KAAjE,CAAgDuC,YAAhD;;AACA,8BAaI,0DAA8CH,OAA9C,EAAuDG,YAAvD,CAbJ;AAAA,MACEC,WADF,yBACEA,WADF;AAAA,MAEEC,YAFF,yBAEEA,YAFF;AAAA,MAGEC,cAHF,yBAGEA,cAHF;AAAA,MAIEC,eAJF,yBAIEA,eAJF;AAAA,MAKEC,cALF,yBAKEA,cALF;AAAA,MAMEC,eANF,yBAMEA,eANF;AAAA,MAOEC,iBAPF,yBAOEA,iBAPF;AAAA,MAQEC,kBARF,yBAQEA,kBARF;AAAA,MASEC,kBATF,yBASEA,kBATF;AAAA,MAUEC,OAVF,yBAUEA,OAVF;AAAA,MAWEC,eAXF,yBAWEA,eAXF;AAAA,MAYEC,IAZF,yBAYEA,IAZF;;AAcA,qBAAyD,gCAAzD;AAAA,MAAgBC,cAAhB,gBAAQC,MAAR;AAAA,MAAuCC,aAAvC,gBAAgCC,KAAhC;;AAEA,MAAMC,QAAQ,GAAGhC,MAAH,oBAAGA,MAAM,CAAEiC,EAAzB;AACA,wBAAU,YAAM;AACdtB,IAAAA,6BAA6B,CAAC,KAAD,CAA7B;AACD,GAFD,EAEG,CAACqB,QAAD,CAFH;;AAIA,MAAME,UAAU,GAAG,SAAbA,UAAa,CAACC,OAAD,EAAqB;AACtCV,IAAAA,OAAO,CAAC,UAACW,QAAD;AAAA,kBAAiBA,QAAjB,GAA4BD,OAA5B;AAAA,KAAD,CAAP;AACD,GAFD;;AAKA,MAAME,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAC3B,QAAIV,IAAI,IAAIA,IAAI,CAACW,IAAL,EAAZ,EAAyB;AACvB,aAAO,IAAP;AACD;;AAED,yDAAoBrB,YAApB,wCAAkC;AAAA,UAAvBsB,MAAuB;;AAChC,UAAI,CAACA,MAAD,IAAUA,MAAK,CAACC,KAAN,KAAgBC,iBAAUC,aAAxC,EAAuD;AACrD;AACD;;AACD,UAAIH,MAAK,CAACC,KAAN,KAAgBC,iBAAUE,SAA9B,EAAyC;AAEvC,eAAO,KAAP;AACD;;AAED,aAAO,IAAP;AACD;;AAED,0DAAmB3B,WAAnB,2CAAgC;AAAA,UAArB4B,KAAqB;;AAC9B,UAAI,CAACA,KAAD,IAASA,KAAI,CAACJ,KAAL,KAAeC,iBAAUC,aAAtC,EAAqD;AACnD;AACD;;AACD,UAAIE,KAAI,CAACJ,KAAL,KAAeC,iBAAUE,SAA7B,EAAwC;AAEtC,eAAO,KAAP;AACD;;AAED,aAAO,IAAP;AACD;;AAED,WAAO,KAAP;AACD,GA9BD;;AAgCA,MAAME,QAAQ,GAAG,SAAXA,QAAW,CAACV,OAAD,EAAqB;AACpC,QAAIhC,OAAO,CAAC2C,OAAZ,EAAqB;AACnB;AACD;;AACDrB,IAAAA,OAAO,CAACU,OAAD,CAAP;;AAEA,QAAIA,OAAO,IAAIrC,OAAX,IAAsBD,iBAAiB,CAACkD,gBAA5C,EAA8D;AAC5D,+CAAwBjD,OAAO,CAACkD,SAAR,CAAkBhD,MAAlB,oBAAkBA,MAAM,CAAEiC,EAA1B,CAAxB,EAAuD,oBAAvD;AACD;;AAED,QAAIzD,KAAK,CAACyE,YAAV,EAAwB;AACtBzE,MAAAA,KAAK,CAACyE,YAAN,CAAmBd,OAAnB;AACD;AACF,GAbD;;AAeA,MAAMe,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/BhB,IAAAA,UAAU,CAAC,GAAD,CAAV;;AACA,QAAIhC,WAAW,CAAC4C,OAAhB,EAAyB;AACvB5C,MAAAA,WAAW,CAAC4C,OAAZ,CAAoBK,KAApB;AACD;AACF,GALD;;AAOA,MAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/BlB,IAAAA,UAAU,CAAC,GAAD,CAAV;;AACA,QAAIhC,WAAW,CAAC4C,OAAhB,EAAyB;AACvB5C,MAAAA,WAAW,CAAC4C,OAAZ,CAAoBK,KAApB;AACD;AACF,GALD;;AAOA,MAAME,oBAAoB,GAAG,SAAvBA,oBAAuB,GAAM;AACjC,QAAIvC,cAAJ,EAAoB;AAClBwC,4BAASC,OAAT;;AACA7E,MAAAA,UAAU;AACVE,MAAAA,iBAAiB,CAAC,QAAD,CAAjB;AAQA4E,MAAAA,UAAU,CAAC9E,UAAD,EAAa,GAAb,CAAV;AACD,KAZD,MAYO,IAAImC,aAAJ,EAAmB;AACxB4C,MAAAA,QAAQ;AACT;AACF,GAhBD;;AAkBA,MAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,GAAM;AAClC9E,IAAAA,iBAAiB,CAACO,SAAD,CAAjB;AACAV,IAAAA,WAAW;AACZ,GAHD;;AAKA,MAAMkF,sBAAsB,GAAG,SAAzBA,sBAAyB,GAAM;AACnC,QAAIhF,cAAJ,EAAoB;AAClB+E,MAAAA,qBAAqB;AACtB,KAFD,MAEO;AACLL,MAAAA,oBAAoB;AACrB;AACF,GAND;;AAQA,MAAMO,YAAY,GAAG,SAAfA,YAAe,CAACC,IAAD,EAA4C;AAC/DvC,IAAAA,iBAAiB,CAAC,UAACwC,kBAAD;AAAA,2DAA4BA,kBAA5B,IAAgDD,IAAI,CAAC5B,EAArD;AAAA,KAAD,CAAjB;AACD,GAFD;;AAIA,MAAMwB,QAAQ;AAAA,gFAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBACXtC,eAAe,IAAI3C,KAAK,CAACuF,gBADd;AAAA;AAAA;AAAA;;AAEbC,iCAAMC,KAAN,CAAY,iCAAZ;;AAFa;;AAAA;AAAA;AAAA,qBAMM,0BAAa;AAChCF,gBAAAA,gBAAgB,EAAEvF,KAAK,CAACuF,gBAAN,GAAyB5C;AADX,eAAb,CANN;;AAAA;AAMT+C,cAAAA,MANS;;AASf,kBAAI,CAACA,MAAM,CAACC,SAAR,IAAqBD,MAAM,CAACE,IAAhC,EAAsC;AACpCF,gBAAAA,MAAM,CAACE,IAAP,CAAYC,OAAZ,CAAoB,UAACC,GAAD,EAAS;AAQ3BC,kBAAAA,aAAa,CAACD,GAAD,CAAb;AACD,iBATD;AAUD;;AApBc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AAAA,oBAARb,QAAQ;AAAA;AAAA;AAAA,KAAd;;AAuBA,MAAMe,UAAU,GAAG,SAAbA,UAAa,CAACvC,EAAD,EAAgB;AACjC,QAAIjB,WAAW,CAACyD,IAAZ,CAAiB,UAAC7B,IAAD;AAAA,aAAUA,IAAI,CAACX,EAAL,KAAYA,EAAtB;AAAA,KAAjB,CAAJ,EAAgD;AAC9Cb,MAAAA,cAAc,CAAC,UAACsD,eAAD;AAAA,eAAqBA,eAAe,CAACC,MAAhB,CAAuB,UAAC/B,IAAD;AAAA,iBAAUA,IAAI,CAACX,EAAL,KAAYA,EAAtB;AAAA,SAAvB,CAArB;AAAA,OAAD,CAAd;AACAV,MAAAA,kBAAkB,CAAC,UAACqD,mBAAD;AAAA,eAAyBA,mBAAmB,GAAG,CAA/C;AAAA,OAAD,CAAlB;AACD;AACF,GALD;;AAOA,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAAC5C,EAAD,EAAgB;AAClC,QAAIhB,YAAY,CAACwD,IAAb,CAAkB,UAAClC,KAAD;AAAA,aAAWA,KAAK,CAACN,EAAN,KAAaA,EAAxB;AAAA,KAAlB,CAAJ,EAAmD;AACjDZ,MAAAA,eAAe,CAAC,UAACyD,gBAAD;AAAA,eAAsBA,gBAAgB,CAACH,MAAjB,CAAwB,UAACpC,KAAD;AAAA,iBAAWA,KAAK,CAACN,EAAN,KAAaA,EAAxB;AAAA,SAAxB,CAAtB;AAAA,OAAD,CAAf;AACAV,MAAAA,kBAAkB,CAAC,UAACqD,mBAAD;AAAA,eAAyBA,mBAAmB,GAAG,CAA/C;AAAA,OAAD,CAAlB;AACD;AACF,GALD;;AAOA,MAAMG,UAAU,GAAG,SAAbA,UAAa,GAA+D;AAAA,QAA9DC,kBAA8D,uEAAP,EAAO;AAChF5D,IAAAA,cAAc,CAAC,EAAD,CAAd;AACAX,IAAAA,cAAc,CAAC,KAAD,CAAd;AACAe,IAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACAH,IAAAA,eAAe,CAAC,EAAD,CAAf;AACAC,IAAAA,iBAAiB,CAAC,EAAD,CAAjB;AACAC,IAAAA,kBAAkB,CAChB,UAACqD,mBAAD;AAAA,aAAyBA,mBAAmB,IAAI,CAAAI,kBAAkB,QAAlB,YAAAA,kBAAkB,CAAEC,MAApB,KAA8B,CAAlC,CAA5C;AAAA,KADgB,CAAlB;AAGAxD,IAAAA,OAAO,CAAC,EAAD,CAAP;AACD,GAVD;;AAcA,MAAMyD,WAAW;AAAA,gFAAG;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,mBACd/E,OAAO,CAAC2C,OADM;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA,oBAKd,CAACjD,iBAAiB,CAACsF,SAAnB,IAAgC,CAAC,CAACxD,IAAI,CAACyD,KAAL,CAAWC,eAAX,CALpB;AAAA;AAAA;AAAA;;AAMhBrB,iCAAMC,KAAN,CAAYhE,CAAC,CAAC,oBAAD,CAAb,EAAqCA,CAAC,CAAC,mDAAD,CAAtC;;AANgB;;AAAA;AAWlBE,cAAAA,OAAO,CAAC2C,OAAR,GAAkB,IAAlB;AAEAhB,cAAAA,aAAa;AAEPM,cAAAA,QAfY,GAeDrC,YAAY,IAAIS,WAAhB,eAAwCmB,IAAxC,GAAiDA,IAfhD;AAgBlBF,cAAAA,OAAO,CAAC,EAAD,CAAP;;AACA,kBAAIvB,WAAW,CAAC4C,OAAhB,EAAyB;AACvB5C,gBAAAA,WAAW,CAAC4C,OAAZ,CAAoBwC,KAApB;AACD;;AAEKC,cAAAA,WArBY,GAqBE,EArBF;;AAAA,qCAsBPhD,OAtBO;AAuBhB,oBAAI,CAACA,OAAD,IAAUA,OAAK,CAACC,KAAN,KAAgBC,iBAAUC,aAAxC,EAAuD;AACrD;AACD;;AAED,oBAAIH,OAAK,CAACC,KAAN,KAAgBC,iBAAUE,SAA9B,EAAyC;AAEvC,sBAAInE,KAAK,CAACgH,cAAV,EAA0B;AAKxBnF,oBAAAA,WAAW,CAAC,UAACoF,YAAD;AAAA,2EAAsBA,YAAtB,IAAoClD,OAAK,CAACN,EAA1C;AAAA,qBAAD,CAAX;AACD,mBAND,MAMO;AACL9B,oBAAAA,OAAO,CAAC2C,OAAR,GAAkB,KAAlB;AACA;AAAA,yBAAOrB,OAAO,CAACW,QAAD;AAAd;AACD;AACF;;AAGD,oBAAMsD,SAA2B,GAAG,uBAAOnD,OAAK,CAACK,IAAN,CAAW+C,QAAlB,CAApC;;AAEA,oBAAIpD,OAAK,CAACC,KAAN,KAAgBC,iBAAUmD,QAA1B,IAAsCrD,OAAK,CAACC,KAAN,KAAgBC,iBAAUoD,QAApE,EAA8E;AAC5EN,kBAAAA,WAAW,CAACO,IAAZ,CAAiB;AACfC,oBAAAA,QAAQ,EAAExD,OAAK,CAACK,IAAN,CAAWoD,IADN;AAEfC,oBAAAA,SAAS,EAAE1D,OAAK,CAAC2D,GAFF;AAGfR,oBAAAA,SAAS,EAAEA,SAAS,GAAGA,SAAH,GAAevG,SAHpB;AAIfgH,oBAAAA,eAAe,EAAE5D,OAAK,CAAC6D,MAJR;AAKfC,oBAAAA,cAAc,EAAE9D,OAAK,CAAC+D,KALP;AAMfC,oBAAAA,IAAI,EAAE;AANS,mBAAjB;AAQD;AArDe;;AAAA,2DAsBEtF,YAtBF;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAsBPsB,cAAAA,OAtBO;AAAA,2BAsBPA,OAtBO;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA,2DAwDCvB,WAxDD;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAwDP4B,cAAAA,MAxDO;;AAAA,oBAyDZ,CAACA,MAAD,IAASA,MAAI,CAACJ,KAAL,KAAeC,iBAAUC,aAzDtB;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA,oBA4DZE,MAAI,CAACJ,KAAL,KAAeC,iBAAUE,SA5Db;AAAA;AAAA;AAAA;;AA8DdxC,cAAAA,OAAO,CAAC2C,OAAR,GAAkB,KAAlB;AA9Dc;;AAAA;AAiEV4C,cAAAA,SAjEU,GAiEoB,uBAAO9C,MAAI,CAACA,IAAL,CAAUoD,IAAjB,CAjEpB;;AAmEhB,kBAAIpD,MAAI,CAACJ,KAAL,KAAeC,iBAAUmD,QAAzB,IAAqChD,MAAI,CAACJ,KAAL,KAAeC,iBAAUoD,QAAlE,EAA4E;AAC1E,wCAAIjD,MAAI,CAACA,IAAL,CAAU2D,IAAd,aAAI,iBAAgBC,UAAhB,CAA2B,QAA3B,CAAJ,EAA0C;AACxCjB,kBAAAA,WAAW,CAACO,IAAZ,CAAiB;AACfC,oBAAAA,QAAQ,EAAEnD,MAAI,CAACA,IAAL,CAAUoD,IADL;AAEfC,oBAAAA,SAAS,EAAErD,MAAI,CAACsD,GAFD;AAGfR,oBAAAA,SAAS,EAAEA,SAAS,GAAGA,SAAH,GAAevG,SAHpB;AAIfoH,oBAAAA,IAAI,EAAE;AAJS,mBAAjB;AAMD,iBAPD,MAOO,yBAAI3D,MAAI,CAACA,IAAL,CAAU2D,IAAd,aAAI,kBAAgBC,UAAhB,CAA2B,QAA3B,CAAJ,EAA0C;AAC/CjB,kBAAAA,WAAW,CAACO,IAAZ,CAAiB;AACfW,oBAAAA,SAAS,EAAE7D,MAAI,CAACsD,GADD;AAEfQ,oBAAAA,QAAQ,EAAE9D,MAAI,CAACA,IAAL,CAAU8D,QAFL;AAGfC,oBAAAA,SAAS,EAAE/D,MAAI,CAACA,IAAL,CAAUgE,IAHN;AAIflB,oBAAAA,SAAS,EAAE9C,MAAI,CAACA,IAAL,CAAU2D,IAJN;AAKfM,oBAAAA,KAAK,EAAEjE,MAAI,CAACA,IAAL,CAAUoD,IALF;AAMfO,oBAAAA,IAAI,EAAE;AANS,mBAAjB;AAQD,iBATM,MASA,yBAAI3D,MAAI,CAACA,IAAL,CAAU2D,IAAd,aAAI,kBAAgBC,UAAhB,CAA2B,QAA3B,CAAJ,EAA0C;AAC/CjB,kBAAAA,WAAW,CAACO,IAAZ,CAAiB;AACfW,oBAAAA,SAAS,EAAE7D,MAAI,CAACsD,GADD;AAEfQ,oBAAAA,QAAQ,EAAE9D,MAAI,CAACA,IAAL,CAAU8D,QAFL;AAGfC,oBAAAA,SAAS,EAAE/D,MAAI,CAACA,IAAL,CAAUgE,IAHN;AAIflB,oBAAAA,SAAS,EAAE9C,MAAI,CAACA,IAAL,CAAU2D,IAJN;AAKfO,oBAAAA,SAAS,EAAElE,MAAI,CAACkE,SALD;AAMfD,oBAAAA,KAAK,EAAEjE,MAAI,CAACA,IAAL,CAAUoD,IANF;AAOfO,oBAAAA,IAAI,EAAE;AAPS,mBAAjB;AASD,iBAVM,MAUA;AACLhB,kBAAAA,WAAW,CAACO,IAAZ,CAAiB;AACfW,oBAAAA,SAAS,EAAE7D,MAAI,CAACsD,GADD;AAEfS,oBAAAA,SAAS,EAAE/D,MAAI,CAACA,IAAL,CAAUgE,IAFN;AAGflB,oBAAAA,SAAS,EAAE9C,MAAI,CAACA,IAAL,CAAU2D,IAHN;AAIfM,oBAAAA,KAAK,EAAEjE,MAAI,CAACA,IAAL,CAAUoD,IAJF;AAKfO,oBAAAA,IAAI,EAAE;AALS,mBAAjB;AAOD;AACF;;AAvGe;AAAA;AAAA;;AAAA;AAAA,oBA2Gd,CAACnE,QAAD,IAAamD,WAAW,CAACN,MAAZ,KAAuB,CA3GtB;AAAA;AAAA;AAAA;;AA4GhB9E,cAAAA,OAAO,CAAC2C,OAAR,GAAkB,KAAlB;AA5GgB;;AAAA;AAgHlB,kBAAItE,KAAK,CAACoC,OAAN,IAAiB,CAAC,iDAAiBpC,KAAK,CAACoC,OAAvB,CAAtB,EAAuD;AAC/CmG,gBAAAA,cAD+C,iCAEhDvI,KAAK,CAACoC,OAF0C;AAGnD2E,kBAAAA,WAAW,EAAXA,WAHmD;AAInDyB,kBAAAA,eAAe,EAAE9F,cAJkC;AAKnD+F,kBAAAA,cAAc,EAAE9H,SALmC;AAMnDwC,kBAAAA,IAAI,EAAES;AAN6C;AAUrD5D,gBAAAA,KAAK,CAAC0I,iBAAN;AAEMC,gBAAAA,oBAZ+C,GAYxB3I,KAAK,CAAC4I,WAAN,CAAkBL,cAAlB,EAAkCM,IAAlC,CAAuC7I,KAAK,CAAC0I,iBAA7C,CAZwB;AAarDnC,gBAAAA,UAAU,CAACQ,WAAD,CAAV;AACA,yDAAwB4B,oBAAxB,EAA8C,gBAA9C;AAEAhH,gBAAAA,OAAO,CAAC2C,OAAR,GAAkB,KAAlB;AACD,eAjBD,MAiBO;AACL,oBAAI;AACFtE,kBAAAA,KAAK,CAAC0G,WAAN,CAAkB;AAChBK,oBAAAA,WAAW,EAAXA,WADgB;AAEhByB,oBAAAA,eAAe,EAAE,sBAAK9F,cAAL,CAFD;AAIhBoG,oBAAAA,SAAS,EAAEtH,MAAF,oBAAEA,MAAM,CAAEiC,EAJH;AAKhBsF,oBAAAA,iBAAiB,EACf,OAAO/I,KAAK,CAACgJ,aAAb,KAA+B,SAA/B,GAA2CrI,SAA3C,GAAuDX,KAAK,CAACgJ,aAAN,CAAoBvF,EAN7D;AAOhBwF,oBAAAA,eAAe,EAAE/G,0BAA0B,IAAIvB,SAP/B;AAQhBwC,oBAAAA,IAAI,EAAES;AARU,mBAAlB;AAWA5D,kBAAAA,KAAK,CAACkJ,uBAAN;AACAvH,kBAAAA,OAAO,CAAC2C,OAAR,GAAkB,KAAlB;AACAiC,kBAAAA,UAAU,CAACQ,WAAD,CAAV;AACD,iBAfD,CAeE,OAAOoC,MAAP,EAAe;AACfxH,kBAAAA,OAAO,CAAC2C,OAAR,GAAkB,KAAlB;;AACA,sBAAItE,KAAK,CAACgJ,aAAN,IAAuB,OAAOhJ,KAAK,CAACgJ,aAAb,KAA+B,SAA1D,EAAqE;AACnEhJ,oBAAAA,KAAK,CAACoJ,qBAAN,CAA4BpJ,KAAK,CAACgJ,aAAlC;AACD;;AACD/F,kBAAAA,OAAO,CAACW,QAAQ,CAACyF,KAAT,CAAe9H,YAAY,IAAIS,WAAhB,GAA8B,CAA9B,GAAkC,CAAjD,CAAD,CAAP;AACAsH,kBAAAA,OAAO,CAACC,GAAR,CAAY,wBAAZ;AACD;AACF;;AAzJiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AAAA,oBAAX7C,WAAW;AAAA;AAAA;AAAA,KAAjB;;AA4JA,MAAM8C,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAC/F,EAAD,EAAgB;AACvC,QAAMM,KAAK,GAAGjC,YAAY,CAAC2B,EAAD,CAA1B;;AACA,QAAI,CAACM,KAAD,IAAUA,KAAK,CAACC,KAAN,KAAgBC,iBAAUC,aAAxC,EAAuD;AACrD;AACD;;AAED,QAAIH,KAAK,CAACC,KAAN,KAAgBC,iBAAUmD,QAA1B,IAAsCrD,KAAK,CAACC,KAAN,KAAgBC,iBAAUoD,QAApE,EAA8E;AAC5E,UAAMN,YAAW,GAAG,CAClB;AACEU,QAAAA,SAAS,EAAE1D,KAAK,CAAC2D,GADnB;AAEEK,QAAAA,IAAI,EAAE;AAFR,OADkB,CAApB;AAOAzE,MAAAA,aAAa;;AACb,UAAI;AACFtD,QAAAA,KAAK,CAAC0G,WAAN,CAAkB;AAChBK,UAAAA,WAAW,EAAXA,YADgB;AAEhByB,UAAAA,eAAe,EAAE,EAFD;AAGhBM,UAAAA,SAAS,EAAEtH,MAAF,oBAAEA,MAAM,CAAEiC,EAHH;AAIhBsF,UAAAA,iBAAiB,EACf,OAAO/I,KAAK,CAACgJ,aAAb,KAA+B,SAA/B,GAA2CrI,SAA3C,GAAuDX,KAAK,CAACgJ,aAAN,CAAoBvF,EAL7D;AAMhBwF,UAAAA,eAAe,EAAE/G,0BAA0B,IAAIvB,SAN/B;AAOhBwC,UAAAA,IAAI,EAAE;AAPU,SAAlB;AAUAtB,QAAAA,WAAW,CAAC,UAACoF,YAAD;AAAA,iBAAkBA,YAAY,CAACwC,MAAb,CAAoBxC,YAAY,CAACyC,OAAb,CAAqBjG,EAArB,CAApB,EAA8C,CAA9C,CAAlB;AAAA,SAAD,CAAX;AACA1B,QAAAA,eAAe,CAAC,UAAC4H,gBAAD,EAAsB;AACpC,iBAAOA,gBAAgB,CAAClG,EAAD,CAAvB;AACA,iBAAOkG,gBAAP;AACD,SAHc,CAAf;AAKA5G,QAAAA,kBAAkB,CAAC,UAACqD,mBAAD;AAAA,iBAAyBA,mBAAmB,GAAG,CAA/C;AAAA,SAAD,CAAlB;AACD,OAlBD,CAkBE,OAAO+C,MAAP,EAAe;AACfG,QAAAA,OAAO,CAACC,GAAR,CAAY,QAAZ;AACD;AACF;AACF,GArCD;;AAuCA,MAAMK,cAAc,GAAG,SAAjBA,cAAiB,CAACC,GAAD,EAA2B;AAChDnI,IAAAA,WAAW,CAAC4C,OAAZ,GAAsBuF,GAAtB;;AACA,QAAI7J,KAAK,CAAC8J,WAAV,EAAuB;AACrB9J,MAAAA,KAAK,CAAC8J,WAAN,CAAkBD,GAAlB;AACD;AACF,GALD;;AAOA,MAAME,eAAe,GAAGzI,OAAO,GAC3BtB,KAAK,CAACgK,2BAAN,GACEhK,KAAK,CAACgK,2BAAN,CAAkC;AAChC1I,IAAAA,OAAO,EAAPA,OADgC;AAEhChB,IAAAA,MAAM,EAANA,MAFgC;AAGhC2J,IAAAA,mBAAmB,EAAE7E;AAHW,GAAlC,CADF,GAME,+BAAuC;AACrC9D,IAAAA,OAAO,EAAPA,OADqC;AAErChB,IAAAA,MAAM,EAANA,MAFqC;AAGrC2J,IAAAA,mBAAmB,EAAE7E;AAHgB,GAAvC,CAPyB,GAY1B,EAZL;;AAcA,MAAM8E,aAAa;AAAA,gFAAG;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA,kBAEb,iDAAiBlK,KAAK,CAACoC,OAAvB,CAFa;AAAA;AAAA;AAAA;;AAAA;AAAA,qBAGV9B,MAAM,CAAC4J,aAAP,+BACDlK,KAAK,CAACoC,OADL;AAEJqG,gBAAAA,cAAc,EAAE9H,SAFZ;AAGJwC,gBAAAA,IAAI,EAAE5B,YAAY,IAAIS,WAAhB,eAAwCmB,IAAxC,GAAiDA;AAHnD,iBAHU;;AAAA;AAUlBoD,cAAAA,UAAU;AACVvG,cAAAA,KAAK,CAAC0I,iBAAN;AAXkB;AAAA;;AAAA;AAAA;AAAA;AAalBY,cAAAA,OAAO,CAACC,GAAR;;AAbkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AAAA,oBAAbW,aAAa;AAAA;AAAA;AAAA,KAAnB;;AAiBA,MAAMC,cAAc,GAAG,sDAAvB;;AAEA,MAAMC,uBAAuB,GAAG,SAA1BA,uBAA0B,CAC9B3G,EAD8B,EAE9B4G,SAF8B,EAIS;AAAA,QADvCC,SACuC,uEADN,EACM;;AACvC,QAAMC,OAAoD,GAAG,SAAvDA,OAAuD,CAACC,WAAD;AAAA,aAC3DA,WAAW,CAACC,GAAZ,CAAgB,UAACC,UAAD,EAAgB;AAC9B,YAAIA,UAAU,CAACjH,EAAX,KAAkBA,EAAtB,EAA0B;AACxB,+CACKiH,UADL,EAEKJ,SAFL;AAGEtG,YAAAA,KAAK,EAAEqG;AAHT;AAKD;;AACD,eAAOK,UAAP;AACD,OATD,CAD2D;AAAA,KAA7D;;AAYA,WAAOH,OAAP;AACD,GAlBD;;AAoBA,MAAMI,4BAA4B,GAAG,SAA/BA,4BAA+B,CAACC,KAAD,EAAiBC,YAAjB,EAAwCpH,EAAxC,EAAuD;AAC1F,QAAIoH,YAAJ,EAAkB;AAChB9H,MAAAA,kBAAkB,CAAC,UAACqD,mBAAD;AAAA,eAAyBA,mBAAmB,GAAG,CAA/C;AAAA,OAAD,CAAlB;;AACA,UAAIwE,KAAK,YAAYE,KAArB,EAA4B;AAC1B,YAAIX,cAAc,CAACY,IAAf,CAAoBH,KAAK,CAACI,OAA1B,CAAJ,EAAwC;AACtC,iBAAOnI,eAAe,CAACuH,uBAAuB,CAAC3G,EAAD,EAAKQ,iBAAUgH,aAAf,CAAxB,CAAtB;AACD;;AAED,eAAOpI,eAAe,CAACuH,uBAAuB,CAAC3G,EAAD,EAAKQ,iBAAUC,aAAf,CAAxB,CAAtB;AACD;AACF,KATD,MASO;AACLnB,MAAAA,kBAAkB,CAAC,UAACqD,mBAAD;AAAA,eAAyBA,mBAAmB,GAAG,CAA/C;AAAA,OAAD,CAAlB;;AAEA,UAAIwE,KAAK,YAAYE,KAArB,EAA4B;AAC1B,YAAIX,cAAc,CAACY,IAAf,CAAoBH,KAAK,CAACI,OAA1B,CAAJ,EAAwC;AACtC,iBAAOpI,cAAc,CAACwH,uBAAuB,CAAC3G,EAAD,EAAKQ,iBAAUgH,aAAf,CAAxB,CAArB;AACD;;AACD,eAAOrI,cAAc,CAACwH,uBAAuB,CAAC3G,EAAD,EAAKQ,iBAAUC,aAAf,CAAxB,CAArB;AACD;AACF;AACF,GApBD;;AAsBA,MAAMgH,UAAU;AAAA,gFAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAASC,cAAAA,OAAT,SAASA,OAAT;AACT/G,cAAAA,IADS,GACI+G,OADJ,CACT/G,IADS,EACHX,EADG,GACI0H,OADJ,CACH1H,EADG;AAGjBb,cAAAA,cAAc,CAACwH,uBAAuB,CAAC3G,EAAD,EAAKQ,iBAAUE,SAAf,CAAxB,CAAd;AAEIiH,cAAAA,QALa,GAK4B,EAL5B;AAAA;;AAAA,mBAOXpL,KAAK,CAACqL,kBAPK;AAAA;AAAA;AAAA;;AAAA;AAAA,qBAQIrL,KAAK,CAACqL,kBAAN,CAAyBjH,IAAzB,EAA+B9C,OAA/B,CARJ;;AAAA;AAQb8J,cAAAA,QARa;AAAA;AAAA;;AAAA;AAAA,oBASJ9J,OAAO,IAAI8C,IAAI,CAACkH,GATZ;AAAA;AAAA;AAAA;;AAAA;AAAA,qBAUIhK,OAAO,CAACiK,QAAR,CAAiBnH,IAAI,CAACkH,GAAtB,EAA2BlH,IAAI,CAACoD,IAAhC,EAAsCpD,IAAI,CAAC2D,IAA3C,CAVJ;;AAAA;AAUbqD,cAAAA,QAVa;;AAAA;AAYTd,cAAAA,SAZS,GAYwB;AAAEhC,gBAAAA,SAAS,EAAE8C,QAAQ,CAAC9C,SAAtB;AAAiCZ,gBAAAA,GAAG,EAAE0D,QAAQ,CAAChH;AAA/C,eAZxB;AAafxB,cAAAA,cAAc,CAACwH,uBAAuB,CAAC3G,EAAD,EAAKQ,iBAAUmD,QAAf,EAAyBkD,SAAzB,CAAxB,CAAd;AAbe;AAAA;;AAAA;AAAA;AAAA;AAefK,cAAAA,4BAA4B,eAAQ,KAAR,EAAelH,EAAf,CAA5B;;AAfe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AAAA,oBAAVyH,UAAU;AAAA;AAAA;AAAA,KAAhB;;AAmBA,MAAMM,WAAW;AAAA,gFAAG;AAAA;;AAAA;AAAA;AAAA;AAAA;AAASC,cAAAA,QAAT,SAASA,QAAT;AAAA,sBACGA,QAAQ,IAAI,EADf,EACVrH,IADU,SACVA,IADU,EACJX,EADI,SACJA,EADI;;AAAA,kBAGbW,IAHa;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAOdgH,cAAAA,QAPc,GAOH,EAPG;AAAA;;AAAA,mBAkBChH,IAAI,CAACX,EAlBN;AAAA;AAAA;AAAA;;AAAA;AAAA,qBAmBN,8BAAiBW,IAAI,CAACX,EAAtB,CAnBM;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,iCAoBZW,IAAI,CAACkH,GApBO,aAoBZ,UAAU1E,KAAV,CAAgB,gBAAhB,CApBY;AAAA;AAAA;AAAA;;AAAA;AAAA,qBAqBN,8BAAiBxC,IAAI,CAACkH,GAAtB,CArBM;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,6BAsBZlH,IAAI,CAACkH,GAtBO;;AAAA;AAAA;;AAAA;AAkBVI,cAAAA,QAlBU;AAwBVJ,cAAAA,GAxBU,GAwBJlH,IAAI,CAACoD,IAAL,IAAakE,QAAb,IAAyB,EAxBrB;AAAA;AAAA,qBA+BatH,IAAI,CAACuH,MAAL,KAAgB,QAAhB,IAC7B,CAACvH,IAAI,CAACwD,MADuB,IAE7B,CAACxD,IAAI,CAAC0D,KAFuB,IAG7B,OAAO9H,KAAK,CAAC4L,oBAAb,KAAsC,QAHT,IAI7B5L,KAAK,CAAC4L,oBAAN,KAA+B,CAJF,GAKzBN,GALyB,GAMzB,2BAAc;AACZM,gBAAAA,oBAAoB,EAAE5L,KAAK,CAAC4L,oBADhB;AAEZhE,gBAAAA,MAAM,EAAExD,IAAI,CAACwD,MAFD;AAGZ0D,gBAAAA,GAAG,EAAHA,GAHY;AAIZxD,gBAAAA,KAAK,EAAE1D,IAAI,CAAC0D;AAJA,eAAd,CArCY;;AAAA;AA+BV+D,cAAAA,aA/BU;AA2CV1E,cAAAA,QA3CU,GA2CCmE,GAAG,CAACQ,OAAJ,CAAY,+CAAZ,EAA6D,EAA7D,CA3CD;AA4CVC,cAAAA,WA5CU,GA4CI,uBAAO5E,QAAP,KAAoB,qBA5CxB;;AAAA,mBA6CZnH,KAAK,CAACgM,oBA7CM;AAAA;AAAA;AAAA;;AAAA;AAAA,qBA8CGhM,KAAK,CAACgM,oBAAN,CAA2B5H,IAA3B,EAAiC9C,OAAjC,CA9CH;;AAAA;AA8Cd8J,cAAAA,QA9Cc;AAAA;AAAA;;AAAA;AAAA,oBA+CLS,aAAa,IAAIvK,OA/CZ;AAAA;AAAA;AAAA;;AAAA,mBAgDVtB,KAAK,CAACgH,cAhDI;AAAA;AAAA;AAAA;;AAiDZ1F,cAAAA,OAAO,CAAC2K,SAAR,CAAkBJ,aAAlB,EAAiCzH,IAAI,CAAC+C,QAAtC,EAAgD4E,WAAhD,EAA6DlD,IAA7D,CAAkE,UAACqD,GAAD,EAAS;AACzE,oBAAItK,QAAQ,CAACuK,QAAT,CAAkB1I,EAAlB,CAAJ,EAA2B;AAEzB1B,kBAAAA,eAAe,CAAC,UAAC4H,gBAAD,EAAsB;AACpCA,oBAAAA,gBAAgB,CAAClG,EAAD,CAAhB,iCACKkG,gBAAgB,CAAClG,EAAD,CADrB;AAEEO,sBAAAA,KAAK,EAAEC,iBAAUmD,QAFnB;AAGEM,sBAAAA,GAAG,EAAEwE,GAAG,CAAC9H;AAHX;AAKA,2BAAOuF,gBAAP;AACD,mBAPc,CAAf;AAQD,iBAVD,MAUO;AACL,sBAAMyC,eAAe,GAAGhC,uBAAuB,CAAc3G,EAAd,EAAkBQ,iBAAUmD,QAA5B,EAAsC;AACnFM,oBAAAA,GAAG,EAAEwE,GAAG,CAAC9H;AAD0E,mBAAtC,CAA/C;AAGAvB,kBAAAA,eAAe,CAACuJ,eAAD,CAAf;AACD;AACF,eAjBD;AAjDY;AAAA;;AAAA;AAAA;AAAA,qBAoEK9K,OAAO,CAAC2K,SAAR,CAAkBJ,aAAlB,EAAiCzH,IAAI,CAAC+C,QAAtC,EAAgD4E,WAAhD,CApEL;;AAAA;AAoEZX,cAAAA,QApEY;;AAAA;AAwEhB,kBAAIiB,MAAM,CAACC,IAAP,CAAYlB,QAAZ,EAAsB3E,MAA1B,EAAkC;AAC1B2F,gBAAAA,eAD0B,GACRhC,uBAAuB,CAAc3G,EAAd,EAAkBQ,iBAAUmD,QAA5B,EAAsC;AACnFQ,kBAAAA,MAAM,EAAExD,IAAI,CAACwD,MADsE;AAEnFF,kBAAAA,GAAG,EAAE0D,QAAQ,CAAChH,IAFqE;AAGnF0D,kBAAAA,KAAK,EAAE1D,IAAI,CAAC0D;AAHuE,iBAAtC,CADf;AAMhCjF,gBAAAA,eAAe,CAACuJ,eAAD,CAAf;AACD;;AA/Ee;AAAA;;AAAA;AAAA;AAAA;AAiFhBzB,cAAAA,4BAA4B,eAAQ,IAAR,EAAclH,EAAd,CAA5B;;AAjFgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AAAA,oBAAX+H,WAAW;AAAA;AAAA;AAAA,KAAjB;;AAqFA,MAAMzF,aAAa;AAAA,iFAAG,kBAAO3B,IAAP;AAAA;AAAA;AAAA;AAAA;AAAA;AAMdX,cAAAA,EANc,GAMD,8BANC;AAOd8I,cAAAA,QAPc,GAOe,uBAAOnI,IAAI,CAACoD,IAAZ,CAPf;AASdgF,cAAAA,sBATc,GASgC5L,yBAThC,oBASgCA,yBAAyB,CAAEqF,IAA3B,CAClD,UAACwG,iBAAD;AAAA;;AAAA,qCAA+BrI,IAAI,CAACoD,IAApC,qBAA+B,WAAW2E,QAAX,CAAoBM,iBAApB,CAA/B;AAAA,eADkD,CAThC;AAYdC,cAAAA,qBAZc,GAY+B5L,oBAZ/B,oBAY+BA,oBAAoB,CAAEmF,IAAtB,CACjD,UAACsG,QAAD;AAAA;;AAAA,sCAAsBnI,IAAI,CAACoD,IAA3B,qBAAsB,YAAW2E,QAAX,CAAoBI,QAApB,CAAtB;AAAA,eADiD,CAZ/B;AAgBdlC,cAAAA,SAhBc,GAiBlBmC,sBAAsB,IAAIE,qBAA1B,GACIzI,iBAAUgH,aADd,GAEIhH,iBAAUE,SAnBI;AAqBdgH,cAAAA,OArBc,GAqBQ;AAC1BjD,gBAAAA,QAAQ,EAAE,CADgB;AAE1B9D,gBAAAA,IAAI,gCAAOA,IAAP;AAAa2D,kBAAAA,IAAI,EAAEwE,QAAQ,KAAInI,IAAJ,oBAAIA,IAAI,CAAE2D,IAAV;AAA3B,kBAFsB;AAG1BtE,gBAAAA,EAAE,EAAFA,EAH0B;AAI1BkJ,gBAAAA,MAAM,EAAE,IAJkB;AAK1BC,gBAAAA,QAAQ,EAAE,CALgB;AAM1B5I,gBAAAA,KAAK,EAAEqG;AANmB,eArBR;AAAA;AAAA,qBA8BdwC,OAAO,CAACC,GAAR,CAAY,CAChBlK,cAAc,CAAC,UAACsD,eAAD;AAAA,uBAAqBA,eAAe,CAAC6G,MAAhB,CAAuB,CAAC5B,OAAD,CAAvB,CAArB;AAAA,eAAD,CADE,EAEhBpI,kBAAkB,CAAC,UAACqD,mBAAD;AAAA,uBAAyBA,mBAAmB,GAAG,CAA/C;AAAA,eAAD,CAFF,CAAZ,CA9Bc;;AAAA;AAmCpB,kBAAI,CAACoG,sBAAL,EAA6B;AAC3BtB,gBAAAA,UAAU,CAAC;AAAEC,kBAAAA,OAAO,EAAPA;AAAF,iBAAD,CAAV;AACD;;AArCmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AAAA,oBAAbpF,aAAa;AAAA;AAAA;AAAA,KAAnB;;AAwCA,MAAMiH,cAAc;AAAA,iFAAG,kBAAOjJ,KAAP;AAAA;AAAA;AAAA;AAAA;AAAA;AACfN,cAAAA,EADe,GACV,8BADU;AAGfwJ,cAAAA,sBAHe,GAGU7L,qBAHV,oBAGUA,qBAAqB,CAAE6E,IAAvB,CAA4B,UAACsG,QAAD;AAAA;;AAAA,qCACzDxI,KAAK,CAACuH,GADmD,qBACzD,WAAWa,QAAX,CAAoBI,QAApB,CADyD;AAAA,eAA5B,CAHV;AAOfW,cAAAA,uBAPe,GAOW/L,0BAPX,oBAOWA,0BAA0B,CAAE8E,IAA5B,CAAiC,UAACkH,kBAAD;AAAA;;AAAA,sCAC/DpJ,KAAK,CAACuH,GADyD,qBAC/D,YAAWa,QAAX,CAAoBgB,kBAApB,CAD+D;AAAA,eAAjC,CAPX;AAWfC,cAAAA,UAXe,GAYnBF,uBAAuB,IAAID,sBAA3B,GACIhJ,iBAAUgH,aADd,GAEIhH,iBAAUE,SAdK;AAgBfsH,cAAAA,QAhBe,GAgBS;AAC5BrH,gBAAAA,IAAI,EAAEL,KADsB;AAE5BN,gBAAAA,EAAE,EAAFA,EAF4B;AAG5BO,gBAAAA,KAAK,EAAEoJ;AAHqB,eAhBT;AAAA;AAAA,qBAsBfP,OAAO,CAACC,GAAR,CAAY,CAChBjK,eAAe,CAAC,UAACyD,gBAAD;AAAA,uBAAsBA,gBAAgB,CAACyG,MAAjB,CAAwB,CAACtB,QAAD,CAAxB,CAAtB;AAAA,eAAD,CADC,EAEhB1I,kBAAkB,CAAC,UAACqD,mBAAD;AAAA,uBAAyBA,mBAAmB,GAAG,CAA/C;AAAA,eAAD,CAFF,CAAZ,CAtBe;;AAAA;AA2BrB,kBAAI,CAAC8G,uBAAL,EAA8B;AAC5B1B,gBAAAA,WAAW,CAAC;AAAEC,kBAAAA,QAAQ,EAARA;AAAF,iBAAD,CAAX;AACD;;AA7BoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AAAA,oBAAduB,cAAc;AAAA;AAAA;AAAA,KAApB;;AAgCA,MAAMK,mBAAmB,GAAG;AAC1B3J,IAAAA,UAAU,EAAVA,UAD0B;AAE1B9B,IAAAA,QAAQ,EAARA,QAF0B;AAG1BE,IAAAA,YAAY,EAAZA,YAH0B;AAI1BoD,IAAAA,qBAAqB,EAArBA,qBAJ0B;AAK1B9B,IAAAA,cAAc,EAAdA,cAL0B;AAM1BZ,IAAAA,WAAW,EAAXA,WAN0B;AAO1BR,IAAAA,WAAW,EAAXA,WAP0B;AAQ1BS,IAAAA,YAAY,EAAZA,YAR0B;AAS1Bf,IAAAA,WAAW,EAAXA,WAT0B;AAU1BmC,IAAAA,cAAc,EAAdA,cAV0B;AAW1BnB,IAAAA,cAAc,EAAdA,cAX0B;AAY1BC,IAAAA,eAAe,EAAfA,eAZ0B;AAa1B0B,IAAAA,QAAQ,EAARA,QAb0B;AAc1Be,IAAAA,YAAY,EAAZA,YAd0B;AAe1BP,IAAAA,oBAAoB,EAApBA,oBAf0B;AAgB1BH,IAAAA,kBAAkB,EAAlBA,kBAhB0B;AAiB1B4I,IAAAA,cAAc,EAAErI,QAjBU;AAkB1BL,IAAAA,kBAAkB,EAAlBA,kBAlB0B;AAmB1BK,IAAAA,QAAQ,EAARA,QAnB0B;AAoB1Be,IAAAA,UAAU,EAAVA,UApB0B;AAqB1BK,IAAAA,WAAW,EAAXA,WArB0B;AAsB1BE,IAAAA,UAAU,EAAVA,UAtB0B;AAuB1BpG,IAAAA,cAAc,EAAdA,cAvB0B;AAwB1BwB,IAAAA,OAAO,EAAPA,OAxB0B;AAyB1B6H,IAAAA,gBAAgB,EAAhBA,gBAzB0B;AA0B1BtH,IAAAA,0BAA0B,EAA1BA,0BA1B0B;AA2B1BL,IAAAA,WAAW,EAAXA,WA3B0B;AA4B1BE,IAAAA,eAAe,EAAfA,eA5B0B;AA6B1Ba,IAAAA,cAAc,EAAdA,cA7B0B;AA8B1BX,IAAAA,cAAc,EAAdA,cA9B0B;AA+B1BY,IAAAA,eAAe,EAAfA,eA/B0B;AAgC1B+G,IAAAA,cAAc,EAAdA,cAhC0B;AAiC1B9G,IAAAA,iBAAiB,EAAjBA,iBAjC0B;AAkC1BC,IAAAA,kBAAkB,EAAlBA,kBAlC0B;AAmC1BZ,IAAAA,6BAA6B,EAA7BA,6BAnC0B;AAoC1Ba,IAAAA,kBAAkB,EAAlBA,kBApC0B;AAqC1BC,IAAAA,OAAO,EAAPA,OArC0B;AAsC1BC,IAAAA,eAAe,EAAfA,eAtC0B;AAuC1BC,IAAAA,IAAI,EAAJA,IAvC0B;AAwC1B3B,IAAAA,MAAM,EAANA,MAxC0B;AAyC1B2D,IAAAA,sBAAsB,EAAtBA,sBAzC0B;AA0C1B4E,IAAAA,eAAe,EAAfA,eA1C0B;AA2C1BG,IAAAA,aAAa,EAAbA,aA3C0B;AA4C1BgB,IAAAA,UAAU,EAAVA,UA5C0B;AA6C1BM,IAAAA,WAAW,EAAXA,WA7C0B;AA8C1BzF,IAAAA,aAAa,EAAbA,aA9C0B;AA+C1BiH,IAAAA,cAAc,EAAdA;AA/C0B,KAgDvBhN,KAhDuB;AAiD1B0G,IAAAA,WAAW,EAAXA;AAjD0B,KAA5B;AAoDA,SACE,gCAAC,mBAAD,CAAqB,QAArB;AACE,IAAA,KAAK,EAAE2G,mBADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAGGtN,QAHH,CADF;AAOD,CAluBM;;;;AAouBA,IAAMwN,sBAAsB,GAAG,SAAzBA,sBAAyB,GAE/B;AACL,MAAMC,YAAY,GAAG,uBACnB9N,mBADmB,CAArB;;AAIA,MAAI8N,YAAY,KAAK3N,mDAAjB,IAA+C,CAAC,2CAApD,EAAyE;AACvE,UAAM,IAAIiL,KAAJ,wOAAN;AAGD;;AAED,SAAO0C,YAAP;AACD,CAdM;;;;AAqBA,IAAMC,uBAAuB,GAAG,SAA1BA,uBAA0B,CAIrCC,SAJqC,EAKqC;AAC1E,MAAMC,gCAAgC,GAAG,SAAnCA,gCAAmC,CACvCC,KADuC,EAEpC;AACH,QAAMP,mBAAmB,GAAGE,sBAAsB,EAAlD;AAEA,WAAO,gCAAC,SAAD,gCAAgBK,KAAhB,EAAiCP,mBAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAP;AACD,GAND;;AAOAM,EAAAA,gCAAgC,CAACE,WAAjC,+BAAyE,oCACvEH,SADuE,CAAzE;AAGA,SAAOC,gCAAP;AACD,CAjBM","sourcesContent":["import React, { PropsWithChildren, useContext, useEffect, useRef, useState } from 'react';\n\nimport { Alert, Keyboard } from 'react-native';\n\nimport type { TextInput, TextInputProps } from 'react-native';\n\nimport uniq from 'lodash/uniq';\nimport { lookup } from 'mime-types';\nimport {\n Attachment,\n logChatPromiseExecution,\n SendFileAPIResponse,\n StreamChat,\n Message as StreamMessage,\n UserFilters,\n UserOptions,\n UserResponse,\n UserSort,\n} from 'stream-chat';\n\nimport { useCreateMessageInputContext } from './hooks/useCreateMessageInputContext';\nimport { isEditingBoolean, useMessageDetailsForState } from './hooks/useMessageDetailsForState';\n\nimport type { AttachButtonProps } from '../../components/MessageInput/AttachButton';\nimport type { AudioAttachmentUploadPreviewProps } from '../../components/MessageInput/AudioAttachmentUploadPreview';\nimport type { CommandsButtonProps } from '../../components/MessageInput/CommandsButton';\nimport type { InputEditingStateHeaderProps } from '../../components/MessageInput/components/InputEditingStateHeader';\nimport type { InputGiphySearchProps } from '../../components/MessageInput/components/InputGiphySearch';\nimport type { InputReplyStateHeaderProps } from '../../components/MessageInput/components/InputReplyStateHeader';\nimport type { CooldownTimerProps } from '../../components/MessageInput/CooldownTimer';\nimport type { FileUploadPreviewProps } from '../../components/MessageInput/FileUploadPreview';\nimport { useCooldown } from '../../components/MessageInput/hooks/useCooldown';\nimport type { ImageUploadPreviewProps } from '../../components/MessageInput/ImageUploadPreview';\nimport type { InputButtonsProps } from '../../components/MessageInput/InputButtons';\nimport type { MessageInputProps } from '../../components/MessageInput/MessageInput';\nimport type { MoreOptionsButtonProps } from '../../components/MessageInput/MoreOptionsButton';\nimport type { SendButtonProps } from '../../components/MessageInput/SendButton';\nimport type { UploadProgressIndicatorProps } from '../../components/MessageInput/UploadProgressIndicator';\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport { compressImage, getLocalAssetUri, pickDocument } from '../../native';\nimport type { Asset, DefaultStreamChatGenerics, File, UnknownType } from '../../types/types';\nimport {\n ACITriggerSettings,\n ACITriggerSettingsParams,\n FileState,\n FileStateValue,\n generateRandomId,\n TriggerSettings,\n urlRegex,\n} from '../../utils/utils';\nimport { useAttachmentPickerContext } from '../attachmentPickerContext/AttachmentPickerContext';\nimport { ChannelContextValue, useChannelContext } from '../channelContext/ChannelContext';\nimport { useChatContext } from '../chatContext/ChatContext';\nimport { useOwnCapabilitiesContext } from '../ownCapabilitiesContext/OwnCapabilitiesContext';\nimport { useThreadContext } from '../threadContext/ThreadContext';\nimport { useTranslationContext } from '../translationContext/TranslationContext';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type FileUpload = {\n file: File;\n id: string;\n state: FileStateValue;\n duration?: number;\n paused?: boolean;\n progress?: number;\n thumb_url?: string;\n url?: string;\n};\n\nexport type ImageUpload = {\n file: Partial<Asset> & {\n name?: string;\n };\n id: string;\n state: FileStateValue;\n height?: number;\n url?: string;\n width?: number;\n};\n\nexport type MentionAllAppUsersQuery<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n filters?: UserFilters<StreamChatGenerics>;\n options?: UserOptions;\n sort?: UserSort<StreamChatGenerics>;\n};\n\nexport type LocalMessageInputContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n appendText: (newText: string) => void;\n asyncIds: string[];\n asyncUploads: {\n [key: string]: {\n state: string;\n url: string;\n };\n };\n closeAttachmentPicker: () => void;\n /** The time at which the active cooldown will end */\n cooldownEndsAt: Date;\n /**\n * An array of file objects which are set for upload. It has the following structure:\n *\n * ```json\n * [\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_1\",\n * \"state\": \"uploading\" // or \"finished\",\n * \"url\": \"https://url1.com\",\n * },\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_2\",\n * \"state\": \"uploading\" // or \"finished\",\n * \"url\": \"https://url1.com\",\n * },\n * ]\n * ```\n *\n */\n fileUploads: FileUpload[];\n giphyActive: boolean;\n /**\n * An array of image objects which are set for upload. It has the following structure:\n *\n * ```json\n * [\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_1\",\n * \"state\": \"uploading\" // or \"finished\",\n * },\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_2\",\n * \"state\": \"uploading\" // or \"finished\",\n * },\n * ]\n * ```\n *\n */\n imageUploads: ImageUpload[];\n inputBoxRef: React.MutableRefObject<TextInput | null>;\n isValidMessage: () => boolean;\n mentionedUsers: string[];\n numberOfUploads: number;\n onChange: (newText: string) => void;\n onSelectItem: (item: UserResponse<StreamChatGenerics>) => void;\n openAttachmentPicker: () => void;\n openCommandsPicker: () => void;\n openFilePicker: () => void;\n openMentionsPicker: () => void;\n pickFile: () => Promise<void>;\n /**\n * Function for removing a file from the upload preview\n *\n * @param id string ID of file in `fileUploads` object in state of MessageInput\n */\n removeFile: (id: string) => void;\n /**\n * Function for removing an image from the upload preview\n *\n * @param id string ID of image in `imageUploads` object in state of MessageInput\n */\n removeImage: (id: string) => void;\n resetInput: (pendingAttachments?: Attachment<StreamChatGenerics>[]) => void;\n selectedPicker: string | undefined;\n sending: React.MutableRefObject<boolean>;\n sendMessage: () => Promise<void>;\n sendMessageAsync: (id: string) => void;\n sendThreadMessageInChannel: boolean;\n setAsyncIds: React.Dispatch<React.SetStateAction<string[]>>;\n setAsyncUploads: React.Dispatch<\n React.SetStateAction<{\n [key: string]: {\n state: string;\n url: string;\n };\n }>\n >;\n setFileUploads: React.Dispatch<React.SetStateAction<FileUpload[]>>;\n setGiphyActive: React.Dispatch<React.SetStateAction<boolean>>;\n setImageUploads: React.Dispatch<React.SetStateAction<ImageUpload[]>>;\n /**\n * Ref callback to set reference on input box\n */\n setInputBoxRef: (ref: TextInput | null) => void;\n setMentionedUsers: React.Dispatch<React.SetStateAction<string[]>>;\n setNumberOfUploads: React.Dispatch<React.SetStateAction<number>>;\n setSendThreadMessageInChannel: React.Dispatch<React.SetStateAction<boolean>>;\n setShowMoreOptions: React.Dispatch<React.SetStateAction<boolean>>;\n setText: React.Dispatch<React.SetStateAction<string>>;\n showMoreOptions: boolean;\n /**\n * Text value of the TextInput\n */\n text: string;\n toggleAttachmentPicker: () => void;\n /**\n * Mapping of input triggers to the outputs to be displayed by the AutoCompleteInput\n */\n triggerSettings: TriggerSettings<StreamChatGenerics>;\n updateMessage: () => Promise<void>;\n /** Function for attempting to upload a file */\n uploadFile: ({ newFile }: { newFile: FileUpload }) => Promise<void>;\n /** Function for attempting to upload an image */\n uploadImage: ({ newImage }: { newImage: ImageUpload }) => Promise<void>;\n uploadNewFile: (file: File) => Promise<void>;\n uploadNewImage: (image: Asset) => Promise<void>;\n};\n\nexport type InputMessageInputContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Custom UI component for attach button.\n *\n * Defaults to and accepts same props as: [AttachButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/attach-button/)\n */\n AttachButton: React.ComponentType<AttachButtonProps<StreamChatGenerics>>;\n\n /** Custom UI component for AudioAttachmentUploadPreview. */\n AudioAttachmentUploadPreview: React.ComponentType<\n AudioAttachmentUploadPreviewProps<StreamChatGenerics>\n >;\n\n clearEditingState: () => void;\n clearQuotedMessageState: () => void;\n /**\n * Custom UI component for commands button.\n *\n * Defaults to and accepts same props as: [CommandsButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/commands-button/)\n */\n CommandsButton: React.ComponentType<CommandsButtonProps<StreamChatGenerics>>;\n /**\n * Custom UI component to display the remaining cooldown a user will have to wait before\n * being allowed to send another message. This component is displayed in place of the\n * send button for the MessageInput component.\n *\n * **default** [CooldownTimer](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/CooldownTimer.tsx)\n */\n CooldownTimer: React.ComponentType<CooldownTimerProps>;\n editing: boolean | MessageType<StreamChatGenerics>;\n editMessage: StreamChat<StreamChatGenerics>['updateMessage'];\n\n /**\n * Custom UI component for FileUploadPreview.\n * Defaults to and accepts same props as: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/FileUploadPreview.tsx\n */\n FileUploadPreview: React.ComponentType<FileUploadPreviewProps<StreamChatGenerics>>;\n\n /** When false, CommandsButton will be hidden */\n hasCommands: boolean;\n /** When false, FileSelectorIcon will be hidden */\n hasFilePicker: boolean;\n /** When false, ImageSelectorIcon will be hidden */\n hasImagePicker: boolean;\n /**\n * Custom UI component for ImageUploadPreview.\n * Defaults to and accepts same props as: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/ImageUploadPreview.tsx\n */\n ImageUploadPreview: React.ComponentType<ImageUploadPreviewProps<StreamChatGenerics>>;\n InputEditingStateHeader: React.ComponentType<InputEditingStateHeaderProps<StreamChatGenerics>>;\n InputGiphySearch: React.ComponentType<InputGiphySearchProps<StreamChatGenerics>>;\n InputReplyStateHeader: React.ComponentType<InputReplyStateHeaderProps<StreamChatGenerics>>;\n /** Limit on allowed number of files to attach at a time. */\n maxNumberOfFiles: number;\n /**\n * Custom UI component for more options button.\n *\n * Defaults to and accepts same props as: [MoreOptionsButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/more-options-button/)\n */\n MoreOptionsButton: React.ComponentType<MoreOptionsButtonProps<StreamChatGenerics>>;\n /** Limit on the number of lines in the text input before scrolling */\n numberOfLines: number;\n quotedMessage: boolean | MessageType<StreamChatGenerics>;\n /**\n * Custom UI component for send button.\n *\n * Defaults to and accepts same props as: [SendButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/send-button/)\n */\n SendButton: React.ComponentType<SendButtonProps<StreamChatGenerics>>;\n sendImageAsync: boolean;\n sendMessage: (message: Partial<StreamMessage<StreamChatGenerics>>) => Promise<void>;\n setQuotedMessageState: (message: MessageType<StreamChatGenerics>) => void;\n /**\n * Custom UI component to render checkbox with text (\"Also send to channel\") in Thread's input box.\n * When ticked, message will also be sent in parent channel.\n */\n ShowThreadMessageInChannelButton: React.ComponentType<{\n threadList?: boolean;\n }>;\n /**\n * Custom UI component to render upload progress indicator on attachment preview.\n *\n * **Default** [UploadProgressIndicator](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/UploadProgressIndicator.tsx)\n */\n UploadProgressIndicator: React.ComponentType<UploadProgressIndicatorProps>;\n /**\n * Additional props for underlying TextInput component. These props will be forwarded as it is to TextInput component.\n *\n * @see See https://reactnative.dev/docs/textinput#reference\n */\n additionalTextInputProps?: TextInputProps;\n /** Max number of suggestions to display in autocomplete list. Defaults to 10. */\n autoCompleteSuggestionsLimit?: number;\n /**\n * Mapping of input triggers to the outputs to be displayed by the AutoCompleteInput\n */\n autoCompleteTriggerSettings?: (\n settings: ACITriggerSettingsParams<StreamChatGenerics>,\n ) => TriggerSettings<StreamChatGenerics>;\n /**\n * Compress image with quality (from 0 to 1, where 1 is best quality).\n * On iOS, values larger than 0.8 don't produce a noticeable quality increase in most images,\n * while a value of 0.8 will reduce the file size by about half or less compared to a value of 1.\n * Image picker defaults to 0.8 for iOS and 1 for Android\n */\n compressImageQuality?: number;\n /**\n * Override file upload request\n *\n * @param file File object - { uri: '', name: '' }\n * @param channel Current channel object\n *\n * @overrideType Function\n */\n doDocUploadRequest?: (\n file: {\n name: string;\n size?: string | number;\n type?: string;\n uri?: string;\n },\n channel: ChannelContextValue<StreamChatGenerics>['channel'],\n ) => Promise<SendFileAPIResponse>;\n /**\n * Override image upload request\n *\n * @param file File object - { uri: '' }\n * @param channel Current channel object\n *\n * @overrideType Function\n */\n doImageUploadRequest?: (\n file: {\n name?: string;\n uri?: string;\n },\n channel: ChannelContextValue<StreamChatGenerics>['channel'],\n ) => Promise<SendFileAPIResponse>;\n\n /** Initial value to set on input */\n initialValue?: string;\n /**\n * Custom UI component for AutoCompleteInput.\n * Has access to all of [MessageInputContext](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/contexts/messageInputContext/MessageInputContext.tsx)\n */\n Input?: React.ComponentType<\n Omit<MessageInputProps<StreamChatGenerics>, 'Input'> &\n InputButtonsProps<StreamChatGenerics> & {\n getUsers: () => UserResponse<StreamChatGenerics>[];\n }\n >;\n /**\n * Custom UI component to override buttons on left side of input box\n * Defaults to [InputButtons](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/InputButtons.tsx),\n * which contain following components/buttons:\n *\n * - AttachButton\n * - CommandsButtom\n *\n * You have access to following prop functions:\n *\n * - closeAttachmentPicker\n * - openAttachmentPicker\n * - openCommandsPicker\n * - toggleAttachmentPicker\n */\n InputButtons?: React.ComponentType<InputButtonsProps<StreamChatGenerics>>;\n maxMessageLength?: number;\n mentionAllAppUsersEnabled?: boolean;\n /** Object containing filters/sort/options overrides for an @mention user query */\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n /**\n * Callback that is called when the text input's text changes. Changed text is passed as a single string argument to the callback handler.\n */\n onChangeText?: (newText: string) => void;\n SendMessageDisallowedIndicator?: React.ComponentType;\n /**\n * ref for input setter function\n *\n * @param ref [Ref object](https://reactjs.org/docs/refs-and-the-dom.html) for underling `TextInput` component.\n *\n * @overrideType Function\n */\n setInputRef?: (ref: TextInput | null) => void;\n};\n\nexport type MessageInputContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = LocalMessageInputContext<StreamChatGenerics> &\n Omit<InputMessageInputContextValue<StreamChatGenerics>, 'sendMessage'>;\n\nexport const MessageInputContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as MessageInputContextValue,\n);\n\nexport const MessageInputProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value: InputMessageInputContextValue<StreamChatGenerics>;\n}>) => {\n const { closePicker, openPicker, selectedPicker, setSelectedPicker } =\n useAttachmentPickerContext();\n const { appSettings, client } = useChatContext<StreamChatGenerics>();\n\n const getFileUploadConfig = () => {\n const fileConfig = appSettings?.app?.file_upload_config;\n if (fileConfig !== null || fileConfig !== undefined) {\n return fileConfig;\n } else {\n return {};\n }\n };\n\n const blockedFileExtensionTypes = getFileUploadConfig()?.blocked_file_extensions;\n const blockedFileMimeTypes = getFileUploadConfig()?.blocked_mime_types;\n\n const getImageUploadConfig = () => {\n const imageConfig = appSettings?.app?.image_upload_config;\n if (imageConfig !== null || imageConfig !== undefined) {\n return imageConfig;\n }\n return {};\n };\n\n const blockedImageExtensionTypes = getImageUploadConfig()?.blocked_file_extensions;\n const blockedImageMimeTypes = getImageUploadConfig()?.blocked_mime_types;\n\n const channelCapabities = useOwnCapabilitiesContext();\n\n const { channel, giphyEnabled } = useChannelContext<StreamChatGenerics>();\n const { thread } = useThreadContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n const inputBoxRef = useRef<TextInput | null>(null);\n const sending = useRef(false);\n\n const [asyncIds, setAsyncIds] = useState<string[]>([]);\n const [asyncUploads, setAsyncUploads] = useState<{\n [key: string]: {\n state: string;\n url: string;\n };\n }>({});\n const [giphyActive, setGiphyActive] = useState(false);\n const [sendThreadMessageInChannel, setSendThreadMessageInChannel] = useState(false);\n const { editing, hasFilePicker, hasImagePicker, initialValue } = value;\n const {\n fileUploads,\n imageUploads,\n mentionedUsers,\n numberOfUploads,\n setFileUploads,\n setImageUploads,\n setMentionedUsers,\n setNumberOfUploads,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n text,\n } = useMessageDetailsForState<StreamChatGenerics>(editing, initialValue);\n const { endsAt: cooldownEndsAt, start: startCooldown } = useCooldown<StreamChatGenerics>();\n\n const threadId = thread?.id;\n useEffect(() => {\n setSendThreadMessageInChannel(false);\n }, [threadId]);\n\n const appendText = (newText: string) => {\n setText((prevText) => `${prevText}${newText}`);\n };\n\n /** Checks if the message is valid or not. Accordingly we can enable/disable send button */\n const isValidMessage = () => {\n if (text && text.trim()) {\n return true;\n }\n\n for (const image of imageUploads) {\n if (!image || image.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n if (image.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n return false;\n }\n\n return true;\n }\n\n for (const file of fileUploads) {\n if (!file || file.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n if (file.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n return false;\n }\n\n return true;\n }\n\n return false;\n };\n\n const onChange = (newText: string) => {\n if (sending.current) {\n return;\n }\n setText(newText);\n\n if (newText && channel && channelCapabities.sendTypingEvents) {\n logChatPromiseExecution(channel.keystroke(thread?.id), 'start typing event');\n }\n\n if (value.onChangeText) {\n value.onChangeText(newText);\n }\n };\n\n const openCommandsPicker = () => {\n appendText('/');\n if (inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n };\n\n const openMentionsPicker = () => {\n appendText('@');\n if (inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n };\n\n const openAttachmentPicker = () => {\n if (hasImagePicker) {\n Keyboard.dismiss();\n openPicker();\n setSelectedPicker('images');\n /**\n * TODO: Remove this, this is the result of\n * the bottom sheet now having some keyboard\n * handling baked in, creating an issue when\n * we call dismiss and open in short order.\n * https://github.com/gorhom/react-native-bottom-sheet/issues/446\n */\n setTimeout(openPicker, 600);\n } else if (hasFilePicker) {\n pickFile();\n }\n };\n\n const closeAttachmentPicker = () => {\n setSelectedPicker(undefined);\n closePicker();\n };\n\n const toggleAttachmentPicker = () => {\n if (selectedPicker) {\n closeAttachmentPicker();\n } else {\n openAttachmentPicker();\n }\n };\n\n const onSelectItem = (item: UserResponse<StreamChatGenerics>) => {\n setMentionedUsers((prevMentionedUsers) => [...prevMentionedUsers, item.id]);\n };\n\n const pickFile = async () => {\n if (numberOfUploads >= value.maxNumberOfFiles) {\n Alert.alert('Maximum number of files reached');\n return;\n }\n\n const result = await pickDocument({\n maxNumberOfFiles: value.maxNumberOfFiles - numberOfUploads,\n });\n if (!result.cancelled && result.docs) {\n result.docs.forEach((doc) => {\n /**\n * TODO: The current tight coupling of images to the image\n * picker does not allow images picked from the file picker\n * to be rendered in a preview via the uploadNewImage call.\n * This should be updated alongside allowing image a file\n * uploads together.\n */\n uploadNewFile(doc);\n });\n }\n };\n\n const removeFile = (id: string) => {\n if (fileUploads.some((file) => file.id === id)) {\n setFileUploads((prevFileUploads) => prevFileUploads.filter((file) => file.id !== id));\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n }\n };\n\n const removeImage = (id: string) => {\n if (imageUploads.some((image) => image.id === id)) {\n setImageUploads((prevImageUploads) => prevImageUploads.filter((image) => image.id !== id));\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n }\n };\n\n const resetInput = (pendingAttachments: Attachment<StreamChatGenerics>[] = []) => {\n setFileUploads([]);\n setGiphyActive(false);\n setShowMoreOptions(true);\n setImageUploads([]);\n setMentionedUsers([]);\n setNumberOfUploads(\n (prevNumberOfUploads) => prevNumberOfUploads - (pendingAttachments?.length || 0),\n );\n setText('');\n };\n\n // TODO: Figure out why this is async, as it doesn't await any promise.\n // eslint-disable-next-line require-await\n const sendMessage = async () => {\n if (sending.current) {\n return;\n }\n\n if (!channelCapabities.sendLinks && !!text.match(urlRegex)) {\n Alert.alert(t('Links are disabled'), t('Sending links is not allowed in this conversation'));\n\n return;\n }\n\n sending.current = true;\n\n startCooldown();\n\n const prevText = giphyEnabled && giphyActive ? `/giphy ${text}` : text;\n setText('');\n if (inputBoxRef.current) {\n inputBoxRef.current.clear();\n }\n\n const attachments = [] as Attachment<StreamChatGenerics>[];\n for (const image of imageUploads) {\n if (!image || image.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n\n if (image.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n if (value.sendImageAsync) {\n /**\n * If user hit send before image uploaded, push ID into a queue to later\n * be matched with the successful CDN response\n */\n setAsyncIds((prevAsyncIds) => [...prevAsyncIds, image.id]);\n } else {\n sending.current = false;\n return setText(prevText);\n }\n }\n\n // To get the mime type of the image from the file name and send it as an response for an image\n const mime_type: string | boolean = lookup(image.file.filename as string);\n\n if (image.state === FileState.UPLOADED || image.state === FileState.FINISHED) {\n attachments.push({\n fallback: image.file.name,\n image_url: image.url,\n mime_type: mime_type ? mime_type : undefined,\n original_height: image.height,\n original_width: image.width,\n type: 'image',\n });\n }\n }\n\n for (const file of fileUploads) {\n if (!file || file.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n if (file.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n sending.current = false;\n return;\n }\n const mime_type: string | boolean = lookup(file.file.name as string);\n\n if (file.state === FileState.UPLOADED || file.state === FileState.FINISHED) {\n if (file.file.type?.startsWith('image/')) {\n attachments.push({\n fallback: file.file.name,\n image_url: file.url,\n mime_type: mime_type ? mime_type : undefined,\n type: 'image',\n });\n } else if (file.file.type?.startsWith('audio/')) {\n attachments.push({\n asset_url: file.url,\n duration: file.file.duration,\n file_size: file.file.size,\n mime_type: file.file.type,\n title: file.file.name,\n type: 'audio',\n });\n } else if (file.file.type?.startsWith('video/')) {\n attachments.push({\n asset_url: file.url,\n duration: file.file.duration,\n file_size: file.file.size,\n mime_type: file.file.type,\n thumb_url: file.thumb_url,\n title: file.file.name,\n type: 'video',\n });\n } else {\n attachments.push({\n asset_url: file.url,\n file_size: file.file.size,\n mime_type: file.file.type,\n title: file.file.name,\n type: 'file',\n });\n }\n }\n }\n\n // Disallow sending message if its empty.\n if (!prevText && attachments.length === 0) {\n sending.current = false;\n return;\n }\n\n if (value.editing && !isEditingBoolean(value.editing)) {\n const updatedMessage = {\n ...value.editing,\n attachments,\n mentioned_users: mentionedUsers,\n quoted_message: undefined,\n text: prevText,\n } as Parameters<StreamChat<StreamChatGenerics>['updateMessage']>[0];\n\n // TODO: Remove this line and show an error when submit fails\n value.clearEditingState();\n\n const updateMessagePromise = value.editMessage(updatedMessage).then(value.clearEditingState);\n resetInput(attachments);\n logChatPromiseExecution(updateMessagePromise, 'update message');\n\n sending.current = false;\n } else {\n try {\n value.sendMessage({\n attachments,\n mentioned_users: uniq(mentionedUsers),\n /** Parent message id - in case of thread */\n parent_id: thread?.id,\n quoted_message_id:\n typeof value.quotedMessage === 'boolean' ? undefined : value.quotedMessage.id,\n show_in_channel: sendThreadMessageInChannel || undefined,\n text: prevText,\n } as unknown as StreamMessage<StreamChatGenerics>);\n\n value.clearQuotedMessageState();\n sending.current = false;\n resetInput(attachments);\n } catch (_error) {\n sending.current = false;\n if (value.quotedMessage && typeof value.quotedMessage !== 'boolean') {\n value.setQuotedMessageState(value.quotedMessage);\n }\n setText(prevText.slice(giphyEnabled && giphyActive ? 7 : 0)); // 7 because of '/giphy ' length\n console.log('Failed to send message');\n }\n }\n };\n\n const sendMessageAsync = (id: string) => {\n const image = asyncUploads[id];\n if (!image || image.state === FileState.UPLOAD_FAILED) {\n return;\n }\n\n if (image.state === FileState.UPLOADED || image.state === FileState.FINISHED) {\n const attachments = [\n {\n image_url: image.url,\n type: 'image',\n },\n ] as StreamMessage<StreamChatGenerics>['attachments'];\n\n startCooldown();\n try {\n value.sendMessage({\n attachments,\n mentioned_users: [],\n parent_id: thread?.id,\n quoted_message_id:\n typeof value.quotedMessage === 'boolean' ? undefined : value.quotedMessage.id,\n show_in_channel: sendThreadMessageInChannel || undefined,\n text: '',\n } as unknown as Partial<StreamMessage<StreamChatGenerics>>);\n\n setAsyncIds((prevAsyncIds) => prevAsyncIds.splice(prevAsyncIds.indexOf(id), 1));\n setAsyncUploads((prevAsyncUploads) => {\n delete prevAsyncUploads[id];\n return prevAsyncUploads;\n });\n\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n } catch (_error) {\n console.log('Failed');\n }\n }\n };\n\n const setInputBoxRef = (ref: TextInput | null) => {\n inputBoxRef.current = ref;\n if (value.setInputRef) {\n value.setInputRef(ref);\n }\n };\n\n const triggerSettings = channel\n ? value.autoCompleteTriggerSettings\n ? value.autoCompleteTriggerSettings({\n channel,\n client,\n onMentionSelectItem: onSelectItem,\n })\n : ACITriggerSettings<StreamChatGenerics>({\n channel,\n client,\n onMentionSelectItem: onSelectItem,\n })\n : ({} as TriggerSettings<StreamChatGenerics>);\n\n const updateMessage = async () => {\n try {\n if (!isEditingBoolean(value.editing)) {\n await client.updateMessage({\n ...value.editing,\n quoted_message: undefined,\n text: giphyEnabled && giphyActive ? `/giphy ${text}` : text,\n } as Parameters<StreamChat<StreamChatGenerics>['updateMessage']>[0]);\n }\n\n resetInput();\n value.clearEditingState();\n } catch (error) {\n console.log(error);\n }\n };\n\n const regExcondition = /File (extension \\.\\w{2,4}|type \\S+) is not supported/;\n\n const getUploadSetStateAction = <UploadType extends ImageUpload | FileUpload>(\n id: string,\n fileState: FileStateValue,\n extraData: Partial<UploadType> = {},\n ): React.SetStateAction<UploadType[]> => {\n const uploads: (prevUploads: UploadType[]) => UploadType[] = (prevUploads: UploadType[]) =>\n prevUploads.map((prevUpload) => {\n if (prevUpload.id === id) {\n return {\n ...prevUpload,\n ...extraData,\n state: fileState,\n };\n }\n return prevUpload;\n });\n\n return uploads;\n };\n\n const handleFileOrImageUploadError = (error: unknown, isImageError: boolean, id: string) => {\n if (isImageError) {\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n if (error instanceof Error) {\n if (regExcondition.test(error.message)) {\n return setImageUploads(getUploadSetStateAction(id, FileState.NOT_SUPPORTED));\n }\n\n return setImageUploads(getUploadSetStateAction(id, FileState.UPLOAD_FAILED));\n }\n } else {\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n\n if (error instanceof Error) {\n if (regExcondition.test(error.message)) {\n return setFileUploads(getUploadSetStateAction(id, FileState.NOT_SUPPORTED));\n }\n return setFileUploads(getUploadSetStateAction(id, FileState.UPLOAD_FAILED));\n }\n }\n };\n\n const uploadFile = async ({ newFile }: { newFile: FileUpload }) => {\n const { file, id } = newFile;\n\n setFileUploads(getUploadSetStateAction(id, FileState.UPLOADING));\n\n let response: Partial<SendFileAPIResponse> = {};\n try {\n if (value.doDocUploadRequest) {\n response = await value.doDocUploadRequest(file, channel);\n } else if (channel && file.uri) {\n response = await channel.sendFile(file.uri, file.name, file.type);\n }\n const extraData: Partial<FileUpload> = { thumb_url: response.thumb_url, url: response.file };\n setFileUploads(getUploadSetStateAction(id, FileState.UPLOADED, extraData));\n } catch (error: unknown) {\n handleFileOrImageUploadError(error, false, id);\n }\n };\n\n const uploadImage = async ({ newImage }: { newImage: ImageUpload }) => {\n const { file, id } = newImage || {};\n\n if (!file) {\n return;\n }\n\n let response = {} as SendFileAPIResponse;\n\n try {\n /**\n * Expo now uses the assets-library which is also how remote\n * native files are presented. We now return a file id from Expo\n * only, if that file id exits we call getLocalAssetUri to download\n * the asset for expo before uploading it. We do the same for native\n * if the uri includes assets-library, this uses the CameraRoll.save\n * function to also create a local uri.\n */\n const localUri = file.id\n ? await getLocalAssetUri(file.id)\n : file.uri?.match(/assets-library/)\n ? await getLocalAssetUri(file.uri)\n : file.uri;\n\n const uri = file.name || localUri || '';\n /**\n * We skip compression if:\n * - the file is from the camera as that should already be compressed\n * - the file has not height/width value to maintain for compression\n * - the compressImageQuality number is not present or is 1 (meaning no compression)\n */\n const compressedUri = await (file.source === 'camera' ||\n !file.height ||\n !file.width ||\n typeof value.compressImageQuality !== 'number' ||\n value.compressImageQuality === 1\n ? uri\n : compressImage({\n compressImageQuality: value.compressImageQuality,\n height: file.height,\n uri,\n width: file.width,\n }));\n const filename = uri.replace(/^(file:\\/\\/|content:\\/\\/|assets-library:\\/\\/)/, '');\n const contentType = lookup(filename) || 'multipart/form-data';\n if (value.doImageUploadRequest) {\n response = await value.doImageUploadRequest(file, channel);\n } else if (compressedUri && channel) {\n if (value.sendImageAsync) {\n channel.sendImage(compressedUri, file.filename, contentType).then((res) => {\n if (asyncIds.includes(id)) {\n // Evaluates to true if user hit send before image successfully uploaded\n setAsyncUploads((prevAsyncUploads) => {\n prevAsyncUploads[id] = {\n ...prevAsyncUploads[id],\n state: FileState.UPLOADED,\n url: res.file,\n };\n return prevAsyncUploads;\n });\n } else {\n const newImageUploads = getUploadSetStateAction<ImageUpload>(id, FileState.UPLOADED, {\n url: res.file,\n });\n setImageUploads(newImageUploads);\n }\n });\n } else {\n response = await channel.sendImage(compressedUri, file.filename, contentType);\n }\n }\n\n if (Object.keys(response).length) {\n const newImageUploads = getUploadSetStateAction<ImageUpload>(id, FileState.UPLOADED, {\n height: file.height,\n url: response.file,\n width: file.width,\n });\n setImageUploads(newImageUploads);\n }\n } catch (error) {\n handleFileOrImageUploadError(error, true, id);\n }\n };\n\n const uploadNewFile = async (file: {\n name: string;\n size?: number | string;\n type?: string;\n uri?: string;\n }) => {\n const id: string = generateRandomId();\n const mimeType: string | boolean = lookup(file.name);\n\n const isBlockedFileExtension: boolean | undefined = blockedFileExtensionTypes?.some(\n (fileExtensionType: string) => file.name?.includes(fileExtensionType),\n );\n const isBlockedFileMimeType: boolean | undefined = blockedFileMimeTypes?.some(\n (mimeType: string) => file.name?.includes(mimeType),\n );\n\n const fileState =\n isBlockedFileExtension || isBlockedFileMimeType\n ? FileState.NOT_SUPPORTED\n : FileState.UPLOADING;\n\n const newFile: FileUpload = {\n duration: 0,\n file: { ...file, type: mimeType || file?.type },\n id,\n paused: true,\n progress: 0,\n state: fileState,\n };\n\n await Promise.all([\n setFileUploads((prevFileUploads) => prevFileUploads.concat([newFile])),\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads + 1),\n ]);\n\n if (!isBlockedFileExtension) {\n uploadFile({ newFile });\n }\n };\n\n const uploadNewImage = async (image: Asset) => {\n const id = generateRandomId();\n\n const isBlockedImageMimeType = blockedImageMimeTypes?.some((mimeType: string) =>\n image.uri?.includes(mimeType),\n );\n\n const isBlockedImageExtension = blockedImageExtensionTypes?.some((imageExtensionType: string) =>\n image.uri?.includes(imageExtensionType),\n );\n\n const imageState =\n isBlockedImageExtension || isBlockedImageMimeType\n ? FileState.NOT_SUPPORTED\n : FileState.UPLOADING;\n\n const newImage: ImageUpload = {\n file: image,\n id,\n state: imageState,\n };\n\n await Promise.all([\n setImageUploads((prevImageUploads) => prevImageUploads.concat([newImage])),\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads + 1),\n ]);\n\n if (!isBlockedImageExtension) {\n uploadImage({ newImage });\n }\n };\n\n const messageInputContext = useCreateMessageInputContext({\n appendText,\n asyncIds,\n asyncUploads,\n closeAttachmentPicker,\n cooldownEndsAt,\n fileUploads,\n giphyActive,\n imageUploads,\n inputBoxRef,\n isValidMessage,\n mentionedUsers,\n numberOfUploads,\n onChange,\n onSelectItem,\n openAttachmentPicker,\n openCommandsPicker,\n openFilePicker: pickFile,\n openMentionsPicker,\n pickFile,\n removeFile,\n removeImage,\n resetInput,\n selectedPicker,\n sending,\n sendMessageAsync,\n sendThreadMessageInChannel,\n setAsyncIds,\n setAsyncUploads,\n setFileUploads,\n setGiphyActive,\n setImageUploads,\n setInputBoxRef,\n setMentionedUsers,\n setNumberOfUploads,\n setSendThreadMessageInChannel,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n text,\n thread,\n toggleAttachmentPicker,\n triggerSettings,\n updateMessage,\n uploadFile,\n uploadImage,\n uploadNewFile,\n uploadNewImage,\n ...value,\n sendMessage, // overriding the originally passed in sendMessage\n });\n\n return (\n <MessageInputContext.Provider\n value={messageInputContext as unknown as MessageInputContextValue}\n >\n {children}\n </MessageInputContext.Provider>\n );\n};\n\nexport const useMessageInputContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n MessageInputContext,\n ) as unknown as MessageInputContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useMessageInputContext hook was called outside of the MessageInputContext provider. Make sure you have configured Channel component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#channel`,\n );\n }\n\n return contextValue;\n};\n\n/**\n * Typescript currently does not support partial inference so if MessageInputContext\n * typing is desired while using the HOC withMessageInputContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withMessageInputContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof MessageInputContextValue<StreamChatGenerics>>> => {\n const WithMessageInputContextComponent = (\n props: Omit<P, keyof MessageInputContextValue<StreamChatGenerics>>,\n ) => {\n const messageInputContext = useMessageInputContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...messageInputContext} />;\n };\n WithMessageInputContextComponent.displayName = `WithMessageInputContext${getDisplayName(\n Component,\n )}`;\n return WithMessageInputContextComponent;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["MessageInputContext.tsx"],"names":["MessageInputContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","MessageInputProvider","children","value","closePicker","openPicker","selectedPicker","setSelectedPicker","appSettings","client","getFileUploadConfig","fileConfig","app","file_upload_config","undefined","blockedFileExtensionTypes","blocked_file_extensions","blockedFileMimeTypes","blocked_mime_types","getImageUploadConfig","imageConfig","image_upload_config","blockedImageExtensionTypes","blockedImageMimeTypes","channelCapabities","channel","giphyEnabled","thread","t","inputBoxRef","sending","asyncIds","setAsyncIds","asyncUploads","setAsyncUploads","giphyActive","setGiphyActive","sendThreadMessageInChannel","setSendThreadMessageInChannel","editing","hasFilePicker","hasImagePicker","initialValue","fileUploads","imageUploads","mentionedUsers","numberOfUploads","setFileUploads","setImageUploads","setMentionedUsers","setNumberOfUploads","setShowMoreOptions","setText","showMoreOptions","text","cooldownEndsAt","endsAt","startCooldown","start","threadId","id","appendText","newText","prevText","isValidMessage","trim","image","state","FileState","UPLOAD_FAILED","UPLOADING","file","onChange","current","sendTypingEvents","keystroke","onChangeText","openCommandsPicker","focus","openMentionsPicker","openAttachmentPicker","Keyboard","dismiss","setTimeout","pickFile","closeAttachmentPicker","toggleAttachmentPicker","onSelectItem","item","prevMentionedUsers","maxNumberOfFiles","Alert","alert","result","cancelled","docs","forEach","doc","uploadNewFile","removeFile","some","prevFileUploads","filter","prevNumberOfUploads","removeImage","prevImageUploads","resetInput","pendingAttachments","length","sendMessage","sendLinks","match","urlRegex","clear","attachments","sendImageAsync","prevAsyncIds","mime_type","filename","UPLOADED","FINISHED","push","fallback","name","image_url","url","original_height","height","original_width","width","type","startsWith","asset_url","duration","file_size","size","title","thumb_url","updatedMessage","mentioned_users","quoted_message","clearEditingState","updateMessagePromise","editMessage","then","parent_id","quoted_message_id","quotedMessage","show_in_channel","clearQuotedMessageState","_error","setQuotedMessageState","slice","console","log","sendMessageAsync","splice","indexOf","prevAsyncUploads","setInputBoxRef","ref","setInputRef","triggerSettings","autoCompleteTriggerSettings","onMentionSelectItem","updateMessage","regExcondition","getUploadSetStateAction","fileState","extraData","uploads","prevUploads","map","prevUpload","handleFileOrImageUploadError","error","isImageError","Error","test","message","NOT_SUPPORTED","uploadFile","newFile","response","doDocUploadRequest","uri","sendFile","uploadImage","newImage","localUri","source","compressImageQuality","compressedUri","replace","contentType","doImageUploadRequest","sendImage","res","includes","newImageUploads","Object","keys","mimeType","isBlockedFileExtension","fileExtensionType","isBlockedFileMimeType","paused","progress","Promise","all","concat","uploadNewImage","isBlockedImageMimeType","isBlockedImageExtension","imageExtensionType","imageState","messageInputContext","openFilePicker","useMessageInputContext","contextValue","withMessageInputContext","Component","WithMessageInputContextComponent","props","displayName"],"mappings":"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","sourcesContent":["import React, { PropsWithChildren, useContext, useEffect, useRef, useState } from 'react';\n\nimport { Alert, Keyboard } from 'react-native';\n\nimport type { TextInput, TextInputProps } from 'react-native';\n\nimport uniq from 'lodash/uniq';\nimport { lookup } from 'mime-types';\nimport {\n Attachment,\n logChatPromiseExecution,\n SendFileAPIResponse,\n StreamChat,\n Message as StreamMessage,\n UserFilters,\n UserOptions,\n UserResponse,\n UserSort,\n} from 'stream-chat';\n\nimport { useCreateMessageInputContext } from './hooks/useCreateMessageInputContext';\nimport { isEditingBoolean, useMessageDetailsForState } from './hooks/useMessageDetailsForState';\n\nimport type { AudioAttachmentProps } from '../../components/Attachment/AudioAttachment';\nimport type { AttachButtonProps } from '../../components/MessageInput/AttachButton';\nimport type { CommandsButtonProps } from '../../components/MessageInput/CommandsButton';\nimport type { InputEditingStateHeaderProps } from '../../components/MessageInput/components/InputEditingStateHeader';\nimport type { InputGiphySearchProps } from '../../components/MessageInput/components/InputGiphySearch';\nimport type { InputReplyStateHeaderProps } from '../../components/MessageInput/components/InputReplyStateHeader';\nimport type { CooldownTimerProps } from '../../components/MessageInput/CooldownTimer';\nimport type { FileUploadPreviewProps } from '../../components/MessageInput/FileUploadPreview';\nimport { useCooldown } from '../../components/MessageInput/hooks/useCooldown';\nimport type { ImageUploadPreviewProps } from '../../components/MessageInput/ImageUploadPreview';\nimport type { InputButtonsProps } from '../../components/MessageInput/InputButtons';\nimport type { MessageInputProps } from '../../components/MessageInput/MessageInput';\nimport type { MoreOptionsButtonProps } from '../../components/MessageInput/MoreOptionsButton';\nimport type { SendButtonProps } from '../../components/MessageInput/SendButton';\nimport type { UploadProgressIndicatorProps } from '../../components/MessageInput/UploadProgressIndicator';\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport { compressImage, getLocalAssetUri, pickDocument } from '../../native';\nimport type { Asset, DefaultStreamChatGenerics, File, UnknownType } from '../../types/types';\nimport {\n ACITriggerSettings,\n ACITriggerSettingsParams,\n FileState,\n FileStateValue,\n generateRandomId,\n TriggerSettings,\n urlRegex,\n} from '../../utils/utils';\nimport { useAttachmentPickerContext } from '../attachmentPickerContext/AttachmentPickerContext';\nimport { ChannelContextValue, useChannelContext } from '../channelContext/ChannelContext';\nimport { useChatContext } from '../chatContext/ChatContext';\nimport { useOwnCapabilitiesContext } from '../ownCapabilitiesContext/OwnCapabilitiesContext';\nimport { useThreadContext } from '../threadContext/ThreadContext';\nimport { useTranslationContext } from '../translationContext/TranslationContext';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type FileUpload = {\n file: File;\n id: string;\n state: FileStateValue;\n duration?: number;\n paused?: boolean;\n progress?: number;\n thumb_url?: string;\n url?: string;\n};\n\nexport type ImageUpload = {\n file: Partial<Asset> & {\n name?: string;\n };\n id: string;\n state: FileStateValue;\n height?: number;\n url?: string;\n width?: number;\n};\n\nexport type MentionAllAppUsersQuery<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n filters?: UserFilters<StreamChatGenerics>;\n options?: UserOptions;\n sort?: UserSort<StreamChatGenerics>;\n};\n\nexport type LocalMessageInputContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n appendText: (newText: string) => void;\n asyncIds: string[];\n asyncUploads: {\n [key: string]: {\n state: string;\n url: string;\n };\n };\n closeAttachmentPicker: () => void;\n /** The time at which the active cooldown will end */\n cooldownEndsAt: Date;\n /**\n * An array of file objects which are set for upload. It has the following structure:\n *\n * ```json\n * [\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_1\",\n * \"state\": \"uploading\" // or \"finished\",\n * \"url\": \"https://url1.com\",\n * },\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_2\",\n * \"state\": \"uploading\" // or \"finished\",\n * \"url\": \"https://url1.com\",\n * },\n * ]\n * ```\n *\n */\n fileUploads: FileUpload[];\n giphyActive: boolean;\n /**\n * An array of image objects which are set for upload. It has the following structure:\n *\n * ```json\n * [\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_1\",\n * \"state\": \"uploading\" // or \"finished\",\n * },\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_2\",\n * \"state\": \"uploading\" // or \"finished\",\n * },\n * ]\n * ```\n *\n */\n imageUploads: ImageUpload[];\n inputBoxRef: React.MutableRefObject<TextInput | null>;\n isValidMessage: () => boolean;\n mentionedUsers: string[];\n numberOfUploads: number;\n onChange: (newText: string) => void;\n onSelectItem: (item: UserResponse<StreamChatGenerics>) => void;\n openAttachmentPicker: () => void;\n openCommandsPicker: () => void;\n openFilePicker: () => void;\n openMentionsPicker: () => void;\n pickFile: () => Promise<void>;\n /**\n * Function for removing a file from the upload preview\n *\n * @param id string ID of file in `fileUploads` object in state of MessageInput\n */\n removeFile: (id: string) => void;\n /**\n * Function for removing an image from the upload preview\n *\n * @param id string ID of image in `imageUploads` object in state of MessageInput\n */\n removeImage: (id: string) => void;\n resetInput: (pendingAttachments?: Attachment<StreamChatGenerics>[]) => void;\n selectedPicker: string | undefined;\n sending: React.MutableRefObject<boolean>;\n sendMessage: () => Promise<void>;\n sendMessageAsync: (id: string) => void;\n sendThreadMessageInChannel: boolean;\n setAsyncIds: React.Dispatch<React.SetStateAction<string[]>>;\n setAsyncUploads: React.Dispatch<\n React.SetStateAction<{\n [key: string]: {\n state: string;\n url: string;\n };\n }>\n >;\n setFileUploads: React.Dispatch<React.SetStateAction<FileUpload[]>>;\n setGiphyActive: React.Dispatch<React.SetStateAction<boolean>>;\n setImageUploads: React.Dispatch<React.SetStateAction<ImageUpload[]>>;\n /**\n * Ref callback to set reference on input box\n */\n setInputBoxRef: (ref: TextInput | null) => void;\n setMentionedUsers: React.Dispatch<React.SetStateAction<string[]>>;\n setNumberOfUploads: React.Dispatch<React.SetStateAction<number>>;\n setSendThreadMessageInChannel: React.Dispatch<React.SetStateAction<boolean>>;\n setShowMoreOptions: React.Dispatch<React.SetStateAction<boolean>>;\n setText: React.Dispatch<React.SetStateAction<string>>;\n showMoreOptions: boolean;\n /**\n * Text value of the TextInput\n */\n text: string;\n toggleAttachmentPicker: () => void;\n /**\n * Mapping of input triggers to the outputs to be displayed by the AutoCompleteInput\n */\n triggerSettings: TriggerSettings<StreamChatGenerics>;\n updateMessage: () => Promise<void>;\n /** Function for attempting to upload a file */\n uploadFile: ({ newFile }: { newFile: FileUpload }) => Promise<void>;\n /** Function for attempting to upload an image */\n uploadImage: ({ newImage }: { newImage: ImageUpload }) => Promise<void>;\n uploadNewFile: (file: File) => Promise<void>;\n uploadNewImage: (image: Asset) => Promise<void>;\n};\n\nexport type InputMessageInputContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Custom UI component for attach button.\n *\n * Defaults to and accepts same props as: [AttachButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/attach-button/)\n */\n AttachButton: React.ComponentType<AttachButtonProps<StreamChatGenerics>>;\n\n /** Custom UI component for AudioAttachment. */\n AudioAttachment: React.ComponentType<AudioAttachmentProps<StreamChatGenerics>>;\n\n clearEditingState: () => void;\n clearQuotedMessageState: () => void;\n /**\n * Custom UI component for commands button.\n *\n * Defaults to and accepts same props as: [CommandsButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/commands-button/)\n */\n CommandsButton: React.ComponentType<CommandsButtonProps<StreamChatGenerics>>;\n /**\n * Custom UI component to display the remaining cooldown a user will have to wait before\n * being allowed to send another message. This component is displayed in place of the\n * send button for the MessageInput component.\n *\n * **default** [CooldownTimer](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/CooldownTimer.tsx)\n */\n CooldownTimer: React.ComponentType<CooldownTimerProps>;\n editing: boolean | MessageType<StreamChatGenerics>;\n editMessage: StreamChat<StreamChatGenerics>['updateMessage'];\n\n /**\n * Custom UI component for FileUploadPreview.\n * Defaults to and accepts same props as: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/FileUploadPreview.tsx\n */\n FileUploadPreview: React.ComponentType<FileUploadPreviewProps<StreamChatGenerics>>;\n\n /** When false, CommandsButton will be hidden */\n hasCommands: boolean;\n /** When false, FileSelectorIcon will be hidden */\n hasFilePicker: boolean;\n /** When false, ImageSelectorIcon will be hidden */\n hasImagePicker: boolean;\n /**\n * Custom UI component for ImageUploadPreview.\n * Defaults to and accepts same props as: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/ImageUploadPreview.tsx\n */\n ImageUploadPreview: React.ComponentType<ImageUploadPreviewProps<StreamChatGenerics>>;\n InputEditingStateHeader: React.ComponentType<InputEditingStateHeaderProps<StreamChatGenerics>>;\n InputGiphySearch: React.ComponentType<InputGiphySearchProps<StreamChatGenerics>>;\n InputReplyStateHeader: React.ComponentType<InputReplyStateHeaderProps<StreamChatGenerics>>;\n /** Limit on allowed number of files to attach at a time. */\n maxNumberOfFiles: number;\n /**\n * Custom UI component for more options button.\n *\n * Defaults to and accepts same props as: [MoreOptionsButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/more-options-button/)\n */\n MoreOptionsButton: React.ComponentType<MoreOptionsButtonProps<StreamChatGenerics>>;\n /** Limit on the number of lines in the text input before scrolling */\n numberOfLines: number;\n quotedMessage: boolean | MessageType<StreamChatGenerics>;\n /**\n * Custom UI component for send button.\n *\n * Defaults to and accepts same props as: [SendButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/send-button/)\n */\n SendButton: React.ComponentType<SendButtonProps<StreamChatGenerics>>;\n sendImageAsync: boolean;\n sendMessage: (message: Partial<StreamMessage<StreamChatGenerics>>) => Promise<void>;\n setQuotedMessageState: (message: MessageType<StreamChatGenerics>) => void;\n /**\n * Custom UI component to render checkbox with text (\"Also send to channel\") in Thread's input box.\n * When ticked, message will also be sent in parent channel.\n */\n ShowThreadMessageInChannelButton: React.ComponentType<{\n threadList?: boolean;\n }>;\n /**\n * Custom UI component to render upload progress indicator on attachment preview.\n *\n * **Default** [UploadProgressIndicator](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/UploadProgressIndicator.tsx)\n */\n UploadProgressIndicator: React.ComponentType<UploadProgressIndicatorProps>;\n /**\n * Additional props for underlying TextInput component. These props will be forwarded as it is to TextInput component.\n *\n * @see See https://reactnative.dev/docs/textinput#reference\n */\n additionalTextInputProps?: TextInputProps;\n /** Max number of suggestions to display in autocomplete list. Defaults to 10. */\n autoCompleteSuggestionsLimit?: number;\n /**\n * Mapping of input triggers to the outputs to be displayed by the AutoCompleteInput\n */\n autoCompleteTriggerSettings?: (\n settings: ACITriggerSettingsParams<StreamChatGenerics>,\n ) => TriggerSettings<StreamChatGenerics>;\n /**\n * Compress image with quality (from 0 to 1, where 1 is best quality).\n * On iOS, values larger than 0.8 don't produce a noticeable quality increase in most images,\n * while a value of 0.8 will reduce the file size by about half or less compared to a value of 1.\n * Image picker defaults to 0.8 for iOS and 1 for Android\n */\n compressImageQuality?: number;\n /**\n * Override file upload request\n *\n * @param file File object - { uri: '', name: '' }\n * @param channel Current channel object\n *\n * @overrideType Function\n */\n doDocUploadRequest?: (\n file: {\n name: string;\n size?: string | number;\n type?: string;\n uri?: string;\n },\n channel: ChannelContextValue<StreamChatGenerics>['channel'],\n ) => Promise<SendFileAPIResponse>;\n /**\n * Override image upload request\n *\n * @param file File object - { uri: '' }\n * @param channel Current channel object\n *\n * @overrideType Function\n */\n doImageUploadRequest?: (\n file: {\n name?: string;\n uri?: string;\n },\n channel: ChannelContextValue<StreamChatGenerics>['channel'],\n ) => Promise<SendFileAPIResponse>;\n\n /** Initial value to set on input */\n initialValue?: string;\n /**\n * Custom UI component for AutoCompleteInput.\n * Has access to all of [MessageInputContext](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/contexts/messageInputContext/MessageInputContext.tsx)\n */\n Input?: React.ComponentType<\n Omit<MessageInputProps<StreamChatGenerics>, 'Input'> &\n InputButtonsProps<StreamChatGenerics> & {\n getUsers: () => UserResponse<StreamChatGenerics>[];\n }\n >;\n /**\n * Custom UI component to override buttons on left side of input box\n * Defaults to [InputButtons](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/InputButtons.tsx),\n * which contain following components/buttons:\n *\n * - AttachButton\n * - CommandsButtom\n *\n * You have access to following prop functions:\n *\n * - closeAttachmentPicker\n * - openAttachmentPicker\n * - openCommandsPicker\n * - toggleAttachmentPicker\n */\n InputButtons?: React.ComponentType<InputButtonsProps<StreamChatGenerics>>;\n maxMessageLength?: number;\n mentionAllAppUsersEnabled?: boolean;\n /** Object containing filters/sort/options overrides for an @mention user query */\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n /**\n * Callback that is called when the text input's text changes. Changed text is passed as a single string argument to the callback handler.\n */\n onChangeText?: (newText: string) => void;\n SendMessageDisallowedIndicator?: React.ComponentType;\n /**\n * ref for input setter function\n *\n * @param ref [Ref object](https://reactjs.org/docs/refs-and-the-dom.html) for underling `TextInput` component.\n *\n * @overrideType Function\n */\n setInputRef?: (ref: TextInput | null) => void;\n};\n\nexport type MessageInputContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = LocalMessageInputContext<StreamChatGenerics> &\n Omit<InputMessageInputContextValue<StreamChatGenerics>, 'sendMessage'>;\n\nexport const MessageInputContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as MessageInputContextValue,\n);\n\nexport const MessageInputProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value: InputMessageInputContextValue<StreamChatGenerics>;\n}>) => {\n const { closePicker, openPicker, selectedPicker, setSelectedPicker } =\n useAttachmentPickerContext();\n const { appSettings, client } = useChatContext<StreamChatGenerics>();\n\n const getFileUploadConfig = () => {\n const fileConfig = appSettings?.app?.file_upload_config;\n if (fileConfig !== null || fileConfig !== undefined) {\n return fileConfig;\n } else {\n return {};\n }\n };\n\n const blockedFileExtensionTypes = getFileUploadConfig()?.blocked_file_extensions;\n const blockedFileMimeTypes = getFileUploadConfig()?.blocked_mime_types;\n\n const getImageUploadConfig = () => {\n const imageConfig = appSettings?.app?.image_upload_config;\n if (imageConfig !== null || imageConfig !== undefined) {\n return imageConfig;\n }\n return {};\n };\n\n const blockedImageExtensionTypes = getImageUploadConfig()?.blocked_file_extensions;\n const blockedImageMimeTypes = getImageUploadConfig()?.blocked_mime_types;\n\n const channelCapabities = useOwnCapabilitiesContext();\n\n const { channel, giphyEnabled } = useChannelContext<StreamChatGenerics>();\n const { thread } = useThreadContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n const inputBoxRef = useRef<TextInput | null>(null);\n const sending = useRef(false);\n\n const [asyncIds, setAsyncIds] = useState<string[]>([]);\n const [asyncUploads, setAsyncUploads] = useState<{\n [key: string]: {\n state: string;\n url: string;\n };\n }>({});\n const [giphyActive, setGiphyActive] = useState(false);\n const [sendThreadMessageInChannel, setSendThreadMessageInChannel] = useState(false);\n const { editing, hasFilePicker, hasImagePicker, initialValue } = value;\n const {\n fileUploads,\n imageUploads,\n mentionedUsers,\n numberOfUploads,\n setFileUploads,\n setImageUploads,\n setMentionedUsers,\n setNumberOfUploads,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n text,\n } = useMessageDetailsForState<StreamChatGenerics>(editing, initialValue);\n const { endsAt: cooldownEndsAt, start: startCooldown } = useCooldown<StreamChatGenerics>();\n\n const threadId = thread?.id;\n useEffect(() => {\n setSendThreadMessageInChannel(false);\n }, [threadId]);\n\n const appendText = (newText: string) => {\n setText((prevText) => `${prevText}${newText}`);\n };\n\n /** Checks if the message is valid or not. Accordingly we can enable/disable send button */\n const isValidMessage = () => {\n if (text && text.trim()) {\n return true;\n }\n\n for (const image of imageUploads) {\n if (!image || image.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n if (image.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n return false;\n }\n\n return true;\n }\n\n for (const file of fileUploads) {\n if (!file || file.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n if (file.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n return false;\n }\n\n return true;\n }\n\n return false;\n };\n\n const onChange = (newText: string) => {\n if (sending.current) {\n return;\n }\n setText(newText);\n\n if (newText && channel && channelCapabities.sendTypingEvents) {\n logChatPromiseExecution(channel.keystroke(thread?.id), 'start typing event');\n }\n\n if (value.onChangeText) {\n value.onChangeText(newText);\n }\n };\n\n const openCommandsPicker = () => {\n appendText('/');\n if (inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n };\n\n const openMentionsPicker = () => {\n appendText('@');\n if (inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n };\n\n const openAttachmentPicker = () => {\n if (hasImagePicker) {\n Keyboard.dismiss();\n openPicker();\n setSelectedPicker('images');\n /**\n * TODO: Remove this, this is the result of\n * the bottom sheet now having some keyboard\n * handling baked in, creating an issue when\n * we call dismiss and open in short order.\n * https://github.com/gorhom/react-native-bottom-sheet/issues/446\n */\n setTimeout(openPicker, 600);\n } else if (hasFilePicker) {\n pickFile();\n }\n };\n\n const closeAttachmentPicker = () => {\n setSelectedPicker(undefined);\n closePicker();\n };\n\n const toggleAttachmentPicker = () => {\n if (selectedPicker) {\n closeAttachmentPicker();\n } else {\n openAttachmentPicker();\n }\n };\n\n const onSelectItem = (item: UserResponse<StreamChatGenerics>) => {\n setMentionedUsers((prevMentionedUsers) => [...prevMentionedUsers, item.id]);\n };\n\n const pickFile = async () => {\n if (numberOfUploads >= value.maxNumberOfFiles) {\n Alert.alert('Maximum number of files reached');\n return;\n }\n\n const result = await pickDocument({\n maxNumberOfFiles: value.maxNumberOfFiles - numberOfUploads,\n });\n if (!result.cancelled && result.docs) {\n result.docs.forEach((doc) => {\n /**\n * TODO: The current tight coupling of images to the image\n * picker does not allow images picked from the file picker\n * to be rendered in a preview via the uploadNewImage call.\n * This should be updated alongside allowing image a file\n * uploads together.\n */\n uploadNewFile(doc);\n });\n }\n };\n\n const removeFile = (id: string) => {\n if (fileUploads.some((file) => file.id === id)) {\n setFileUploads((prevFileUploads) => prevFileUploads.filter((file) => file.id !== id));\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n }\n };\n\n const removeImage = (id: string) => {\n if (imageUploads.some((image) => image.id === id)) {\n setImageUploads((prevImageUploads) => prevImageUploads.filter((image) => image.id !== id));\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n }\n };\n\n const resetInput = (pendingAttachments: Attachment<StreamChatGenerics>[] = []) => {\n setFileUploads([]);\n setGiphyActive(false);\n setShowMoreOptions(true);\n setImageUploads([]);\n setMentionedUsers([]);\n setNumberOfUploads(\n (prevNumberOfUploads) => prevNumberOfUploads - (pendingAttachments?.length || 0),\n );\n setText('');\n };\n\n // TODO: Figure out why this is async, as it doesn't await any promise.\n // eslint-disable-next-line require-await\n const sendMessage = async () => {\n if (sending.current) {\n return;\n }\n\n if (!channelCapabities.sendLinks && !!text.match(urlRegex)) {\n Alert.alert(t('Links are disabled'), t('Sending links is not allowed in this conversation'));\n\n return;\n }\n\n sending.current = true;\n\n startCooldown();\n\n const prevText = giphyEnabled && giphyActive ? `/giphy ${text}` : text;\n setText('');\n if (inputBoxRef.current) {\n inputBoxRef.current.clear();\n }\n\n const attachments = [] as Attachment<StreamChatGenerics>[];\n for (const image of imageUploads) {\n if (!image || image.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n\n if (image.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n if (value.sendImageAsync) {\n /**\n * If user hit send before image uploaded, push ID into a queue to later\n * be matched with the successful CDN response\n */\n setAsyncIds((prevAsyncIds) => [...prevAsyncIds, image.id]);\n } else {\n sending.current = false;\n return setText(prevText);\n }\n }\n\n // To get the mime type of the image from the file name and send it as an response for an image\n const mime_type: string | boolean = lookup(image.file.filename as string);\n\n if (image.state === FileState.UPLOADED || image.state === FileState.FINISHED) {\n attachments.push({\n fallback: image.file.name,\n image_url: image.url,\n mime_type: mime_type ? mime_type : undefined,\n original_height: image.height,\n original_width: image.width,\n type: 'image',\n });\n }\n }\n\n for (const file of fileUploads) {\n if (!file || file.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n if (file.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n sending.current = false;\n return;\n }\n const mime_type: string | boolean = lookup(file.file.name as string);\n\n if (file.state === FileState.UPLOADED || file.state === FileState.FINISHED) {\n if (file.file.type?.startsWith('image/')) {\n attachments.push({\n fallback: file.file.name,\n image_url: file.url,\n mime_type: mime_type ? mime_type : undefined,\n type: 'image',\n });\n } else if (file.file.type?.startsWith('audio/')) {\n attachments.push({\n asset_url: file.url,\n duration: file.file.duration,\n file_size: file.file.size,\n mime_type: file.file.type,\n title: file.file.name,\n type: 'audio',\n });\n } else if (file.file.type?.startsWith('video/')) {\n attachments.push({\n asset_url: file.url,\n duration: file.file.duration,\n file_size: file.file.size,\n mime_type: file.file.type,\n thumb_url: file.thumb_url,\n title: file.file.name,\n type: 'video',\n });\n } else {\n attachments.push({\n asset_url: file.url,\n file_size: file.file.size,\n mime_type: file.file.type,\n title: file.file.name,\n type: 'file',\n });\n }\n }\n }\n\n // Disallow sending message if its empty.\n if (!prevText && attachments.length === 0) {\n sending.current = false;\n return;\n }\n\n if (value.editing && !isEditingBoolean(value.editing)) {\n const updatedMessage = {\n ...value.editing,\n attachments,\n mentioned_users: mentionedUsers,\n quoted_message: undefined,\n text: prevText,\n } as Parameters<StreamChat<StreamChatGenerics>['updateMessage']>[0];\n\n // TODO: Remove this line and show an error when submit fails\n value.clearEditingState();\n\n const updateMessagePromise = value.editMessage(updatedMessage).then(value.clearEditingState);\n resetInput(attachments);\n logChatPromiseExecution(updateMessagePromise, 'update message');\n\n sending.current = false;\n } else {\n try {\n value.sendMessage({\n attachments,\n mentioned_users: uniq(mentionedUsers),\n /** Parent message id - in case of thread */\n parent_id: thread?.id,\n quoted_message_id:\n typeof value.quotedMessage === 'boolean' ? undefined : value.quotedMessage.id,\n show_in_channel: sendThreadMessageInChannel || undefined,\n text: prevText,\n } as unknown as StreamMessage<StreamChatGenerics>);\n\n value.clearQuotedMessageState();\n sending.current = false;\n resetInput(attachments);\n } catch (_error) {\n sending.current = false;\n if (value.quotedMessage && typeof value.quotedMessage !== 'boolean') {\n value.setQuotedMessageState(value.quotedMessage);\n }\n setText(prevText.slice(giphyEnabled && giphyActive ? 7 : 0)); // 7 because of '/giphy ' length\n console.log('Failed to send message');\n }\n }\n };\n\n const sendMessageAsync = (id: string) => {\n const image = asyncUploads[id];\n if (!image || image.state === FileState.UPLOAD_FAILED) {\n return;\n }\n\n if (image.state === FileState.UPLOADED || image.state === FileState.FINISHED) {\n const attachments = [\n {\n image_url: image.url,\n type: 'image',\n },\n ] as StreamMessage<StreamChatGenerics>['attachments'];\n\n startCooldown();\n try {\n value.sendMessage({\n attachments,\n mentioned_users: [],\n parent_id: thread?.id,\n quoted_message_id:\n typeof value.quotedMessage === 'boolean' ? undefined : value.quotedMessage.id,\n show_in_channel: sendThreadMessageInChannel || undefined,\n text: '',\n } as unknown as Partial<StreamMessage<StreamChatGenerics>>);\n\n setAsyncIds((prevAsyncIds) => prevAsyncIds.splice(prevAsyncIds.indexOf(id), 1));\n setAsyncUploads((prevAsyncUploads) => {\n delete prevAsyncUploads[id];\n return prevAsyncUploads;\n });\n\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n } catch (_error) {\n console.log('Failed');\n }\n }\n };\n\n const setInputBoxRef = (ref: TextInput | null) => {\n inputBoxRef.current = ref;\n if (value.setInputRef) {\n value.setInputRef(ref);\n }\n };\n\n const triggerSettings = channel\n ? value.autoCompleteTriggerSettings\n ? value.autoCompleteTriggerSettings({\n channel,\n client,\n onMentionSelectItem: onSelectItem,\n })\n : ACITriggerSettings<StreamChatGenerics>({\n channel,\n client,\n onMentionSelectItem: onSelectItem,\n })\n : ({} as TriggerSettings<StreamChatGenerics>);\n\n const updateMessage = async () => {\n try {\n if (!isEditingBoolean(value.editing)) {\n await client.updateMessage({\n ...value.editing,\n quoted_message: undefined,\n text: giphyEnabled && giphyActive ? `/giphy ${text}` : text,\n } as Parameters<StreamChat<StreamChatGenerics>['updateMessage']>[0]);\n }\n\n resetInput();\n value.clearEditingState();\n } catch (error) {\n console.log(error);\n }\n };\n\n const regExcondition = /File (extension \\.\\w{2,4}|type \\S+) is not supported/;\n\n const getUploadSetStateAction = <UploadType extends ImageUpload | FileUpload>(\n id: string,\n fileState: FileStateValue,\n extraData: Partial<UploadType> = {},\n ): React.SetStateAction<UploadType[]> => {\n const uploads: (prevUploads: UploadType[]) => UploadType[] = (prevUploads: UploadType[]) =>\n prevUploads.map((prevUpload) => {\n if (prevUpload.id === id) {\n return {\n ...prevUpload,\n ...extraData,\n state: fileState,\n };\n }\n return prevUpload;\n });\n\n return uploads;\n };\n\n const handleFileOrImageUploadError = (error: unknown, isImageError: boolean, id: string) => {\n if (isImageError) {\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n if (error instanceof Error) {\n if (regExcondition.test(error.message)) {\n return setImageUploads(getUploadSetStateAction(id, FileState.NOT_SUPPORTED));\n }\n\n return setImageUploads(getUploadSetStateAction(id, FileState.UPLOAD_FAILED));\n }\n } else {\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n\n if (error instanceof Error) {\n if (regExcondition.test(error.message)) {\n return setFileUploads(getUploadSetStateAction(id, FileState.NOT_SUPPORTED));\n }\n return setFileUploads(getUploadSetStateAction(id, FileState.UPLOAD_FAILED));\n }\n }\n };\n\n const uploadFile = async ({ newFile }: { newFile: FileUpload }) => {\n const { file, id } = newFile;\n\n setFileUploads(getUploadSetStateAction(id, FileState.UPLOADING));\n\n let response: Partial<SendFileAPIResponse> = {};\n try {\n if (value.doDocUploadRequest) {\n response = await value.doDocUploadRequest(file, channel);\n } else if (channel && file.uri) {\n response = await channel.sendFile(file.uri, file.name, file.type);\n }\n const extraData: Partial<FileUpload> = { thumb_url: response.thumb_url, url: response.file };\n setFileUploads(getUploadSetStateAction(id, FileState.UPLOADED, extraData));\n } catch (error: unknown) {\n handleFileOrImageUploadError(error, false, id);\n }\n };\n\n const uploadImage = async ({ newImage }: { newImage: ImageUpload }) => {\n const { file, id } = newImage || {};\n\n if (!file) {\n return;\n }\n\n let response = {} as SendFileAPIResponse;\n\n try {\n /**\n * Expo now uses the assets-library which is also how remote\n * native files are presented. We now return a file id from Expo\n * only, if that file id exits we call getLocalAssetUri to download\n * the asset for expo before uploading it. We do the same for native\n * if the uri includes assets-library, this uses the CameraRoll.save\n * function to also create a local uri.\n */\n const localUri = file.id\n ? await getLocalAssetUri(file.id)\n : file.uri?.match(/assets-library/)\n ? await getLocalAssetUri(file.uri)\n : file.uri;\n\n const uri = file.name || localUri || '';\n /**\n * We skip compression if:\n * - the file is from the camera as that should already be compressed\n * - the file has not height/width value to maintain for compression\n * - the compressImageQuality number is not present or is 1 (meaning no compression)\n */\n const compressedUri = await (file.source === 'camera' ||\n !file.height ||\n !file.width ||\n typeof value.compressImageQuality !== 'number' ||\n value.compressImageQuality === 1\n ? uri\n : compressImage({\n compressImageQuality: value.compressImageQuality,\n height: file.height,\n uri,\n width: file.width,\n }));\n const filename = uri.replace(/^(file:\\/\\/|content:\\/\\/|assets-library:\\/\\/)/, '');\n const contentType = lookup(filename) || 'multipart/form-data';\n if (value.doImageUploadRequest) {\n response = await value.doImageUploadRequest(file, channel);\n } else if (compressedUri && channel) {\n if (value.sendImageAsync) {\n channel.sendImage(compressedUri, file.filename, contentType).then((res) => {\n if (asyncIds.includes(id)) {\n // Evaluates to true if user hit send before image successfully uploaded\n setAsyncUploads((prevAsyncUploads) => {\n prevAsyncUploads[id] = {\n ...prevAsyncUploads[id],\n state: FileState.UPLOADED,\n url: res.file,\n };\n return prevAsyncUploads;\n });\n } else {\n const newImageUploads = getUploadSetStateAction<ImageUpload>(id, FileState.UPLOADED, {\n url: res.file,\n });\n setImageUploads(newImageUploads);\n }\n });\n } else {\n response = await channel.sendImage(compressedUri, file.filename, contentType);\n }\n }\n\n if (Object.keys(response).length) {\n const newImageUploads = getUploadSetStateAction<ImageUpload>(id, FileState.UPLOADED, {\n height: file.height,\n url: response.file,\n width: file.width,\n });\n setImageUploads(newImageUploads);\n }\n } catch (error) {\n handleFileOrImageUploadError(error, true, id);\n }\n };\n\n const uploadNewFile = async (file: {\n name: string;\n size?: number | string;\n type?: string;\n uri?: string;\n }) => {\n const id: string = generateRandomId();\n const mimeType: string | boolean = lookup(file.name);\n\n const isBlockedFileExtension: boolean | undefined = blockedFileExtensionTypes?.some(\n (fileExtensionType: string) => file.name?.includes(fileExtensionType),\n );\n const isBlockedFileMimeType: boolean | undefined = blockedFileMimeTypes?.some(\n (mimeType: string) => file.name?.includes(mimeType),\n );\n\n const fileState =\n isBlockedFileExtension || isBlockedFileMimeType\n ? FileState.NOT_SUPPORTED\n : FileState.UPLOADING;\n\n const newFile: FileUpload = {\n duration: 0,\n file: { ...file, type: mimeType || file?.type },\n id,\n paused: true,\n progress: 0,\n state: fileState,\n };\n\n await Promise.all([\n setFileUploads((prevFileUploads) => prevFileUploads.concat([newFile])),\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads + 1),\n ]);\n\n if (!isBlockedFileExtension) {\n uploadFile({ newFile });\n }\n };\n\n const uploadNewImage = async (image: Asset) => {\n const id = generateRandomId();\n\n const isBlockedImageMimeType = blockedImageMimeTypes?.some((mimeType: string) =>\n image.uri?.includes(mimeType),\n );\n\n const isBlockedImageExtension = blockedImageExtensionTypes?.some((imageExtensionType: string) =>\n image.uri?.includes(imageExtensionType),\n );\n\n const imageState =\n isBlockedImageExtension || isBlockedImageMimeType\n ? FileState.NOT_SUPPORTED\n : FileState.UPLOADING;\n\n const newImage: ImageUpload = {\n file: image,\n id,\n state: imageState,\n };\n\n await Promise.all([\n setImageUploads((prevImageUploads) => prevImageUploads.concat([newImage])),\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads + 1),\n ]);\n\n if (!isBlockedImageExtension) {\n uploadImage({ newImage });\n }\n };\n\n const messageInputContext = useCreateMessageInputContext({\n appendText,\n asyncIds,\n asyncUploads,\n closeAttachmentPicker,\n cooldownEndsAt,\n fileUploads,\n giphyActive,\n imageUploads,\n inputBoxRef,\n isValidMessage,\n mentionedUsers,\n numberOfUploads,\n onChange,\n onSelectItem,\n openAttachmentPicker,\n openCommandsPicker,\n openFilePicker: pickFile,\n openMentionsPicker,\n pickFile,\n removeFile,\n removeImage,\n resetInput,\n selectedPicker,\n sending,\n sendMessageAsync,\n sendThreadMessageInChannel,\n setAsyncIds,\n setAsyncUploads,\n setFileUploads,\n setGiphyActive,\n setImageUploads,\n setInputBoxRef,\n setMentionedUsers,\n setNumberOfUploads,\n setSendThreadMessageInChannel,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n text,\n thread,\n toggleAttachmentPicker,\n triggerSettings,\n updateMessage,\n uploadFile,\n uploadImage,\n uploadNewFile,\n uploadNewImage,\n ...value,\n sendMessage, // overriding the originally passed in sendMessage\n });\n\n return (\n <MessageInputContext.Provider\n value={messageInputContext as unknown as MessageInputContextValue}\n >\n {children}\n </MessageInputContext.Provider>\n );\n};\n\nexport const useMessageInputContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n MessageInputContext,\n ) as unknown as MessageInputContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useMessageInputContext hook was called outside of the MessageInputContext provider. Make sure you have configured Channel component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#channel`,\n );\n }\n\n return contextValue;\n};\n\n/**\n * Typescript currently does not support partial inference so if MessageInputContext\n * typing is desired while using the HOC withMessageInputContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withMessageInputContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof MessageInputContextValue<StreamChatGenerics>>> => {\n const WithMessageInputContextComponent = (\n props: Omit<P, keyof MessageInputContextValue<StreamChatGenerics>>,\n ) => {\n const messageInputContext = useMessageInputContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...messageInputContext} />;\n };\n WithMessageInputContextComponent.displayName = `WithMessageInputContext${getDisplayName(\n Component,\n )}`;\n return WithMessageInputContextComponent;\n};\n"]}
|
|
@@ -11,7 +11,7 @@ var useCreateMessageInputContext = function useCreateMessageInputContext(_ref) {
|
|
|
11
11
|
asyncIds = _ref.asyncIds,
|
|
12
12
|
asyncUploads = _ref.asyncUploads,
|
|
13
13
|
AttachButton = _ref.AttachButton,
|
|
14
|
-
|
|
14
|
+
AudioAttachment = _ref.AudioAttachment,
|
|
15
15
|
autoCompleteSuggestionsLimit = _ref.autoCompleteSuggestionsLimit,
|
|
16
16
|
clearEditingState = _ref.clearEditingState,
|
|
17
17
|
clearQuotedMessageState = _ref.clearQuotedMessageState,
|
|
@@ -115,7 +115,7 @@ var useCreateMessageInputContext = function useCreateMessageInputContext(_ref) {
|
|
|
115
115
|
asyncIds: asyncIds,
|
|
116
116
|
asyncUploads: asyncUploads,
|
|
117
117
|
AttachButton: AttachButton,
|
|
118
|
-
|
|
118
|
+
AudioAttachment: AudioAttachment,
|
|
119
119
|
autoCompleteSuggestionsLimit: autoCompleteSuggestionsLimit,
|
|
120
120
|
clearEditingState: clearEditingState,
|
|
121
121
|
clearQuotedMessageState: clearQuotedMessageState,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useCreateMessageInputContext.ts"],"names":["useCreateMessageInputContext","additionalTextInputProps","appendText","asyncIds","asyncUploads","AttachButton","AudioAttachmentUploadPreview","autoCompleteSuggestionsLimit","clearEditingState","clearQuotedMessageState","closeAttachmentPicker","CommandsButton","compressImageQuality","cooldownEndsAt","CooldownTimer","doDocUploadRequest","doImageUploadRequest","editing","editMessage","FileUploadPreview","fileUploads","giphyActive","hasCommands","hasFilePicker","hasImagePicker","ImageUploadPreview","imageUploads","initialValue","Input","inputBoxRef","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","isValidMessage","maxMessageLength","maxNumberOfFiles","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","mentionedUsers","MoreOptionsButton","numberOfLines","numberOfUploads","onChange","onChangeText","onSelectItem","openAttachmentPicker","openCommandsPicker","openFilePicker","openMentionsPicker","pickFile","quotedMessage","removeFile","removeImage","resetInput","selectedPicker","SendButton","sendImageAsync","sending","sendMessage","sendMessageAsync","SendMessageDisallowedIndicator","sendThreadMessageInChannel","setAsyncIds","setAsyncUploads","setFileUploads","setGiphyActive","setImageUploads","setInputBoxRef","setInputRef","setMentionedUsers","setNumberOfUploads","setQuotedMessageState","setSendThreadMessageInChannel","setShowMoreOptions","setText","showMoreOptions","ShowThreadMessageInChannelButton","text","thread","toggleAttachmentPicker","triggerSettings","updateMessage","uploadFile","uploadImage","uploadNewFile","uploadNewImage","UploadProgressIndicator","editingExists","fileUploadsValue","map","duration","paused","progress","state","join","imageUploadsValue","mentionedUsersLength","length","quotedMessageId","id","threadId","messageInputContext"],"mappings":"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","sourcesContent":["import { useMemo } from 'react';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport type { ThreadContextValue } from '../../threadContext/ThreadContext';\nimport type { MessageInputContextValue } from '../MessageInputContext';\n\nexport const useCreateMessageInputContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTextInputProps,\n appendText,\n asyncIds,\n asyncUploads,\n AttachButton,\n AudioAttachmentUploadPreview,\n autoCompleteSuggestionsLimit,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n CommandsButton,\n compressImageQuality,\n cooldownEndsAt,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n imageUploads,\n initialValue,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n mentionedUsers,\n MoreOptionsButton,\n numberOfLines,\n numberOfUploads,\n onChange,\n onChangeText,\n onSelectItem,\n openAttachmentPicker,\n openCommandsPicker,\n openFilePicker,\n openMentionsPicker,\n pickFile,\n quotedMessage,\n removeFile,\n removeImage,\n resetInput,\n selectedPicker,\n SendButton,\n sendImageAsync,\n sending,\n sendMessage,\n sendMessageAsync,\n SendMessageDisallowedIndicator,\n sendThreadMessageInChannel,\n setAsyncIds,\n setAsyncUploads,\n setFileUploads,\n setGiphyActive,\n setImageUploads,\n setInputBoxRef,\n setInputRef,\n setMentionedUsers,\n setNumberOfUploads,\n setQuotedMessageState,\n setSendThreadMessageInChannel,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n text,\n thread,\n toggleAttachmentPicker,\n triggerSettings,\n updateMessage,\n uploadFile,\n uploadImage,\n uploadNewFile,\n uploadNewImage,\n UploadProgressIndicator,\n}: MessageInputContextValue<StreamChatGenerics> &\n Pick<ThreadContextValue<StreamChatGenerics>, 'thread'>) => {\n const editingExists = !!editing;\n const fileUploadsValue = fileUploads\n .map(({ duration, paused, progress, state }) => `${state},${paused},${progress},${duration}`)\n .join();\n const imageUploadsValue = imageUploads.map(({ state }) => state).join();\n const mentionedUsersLength = mentionedUsers.length;\n const quotedMessageId = quotedMessage\n ? typeof quotedMessage === 'boolean'\n ? ''\n : quotedMessage.id\n : '';\n const threadId = thread?.id;\n\n const messageInputContext: MessageInputContextValue<StreamChatGenerics> = useMemo(\n () => ({\n additionalTextInputProps,\n appendText,\n asyncIds,\n asyncUploads,\n AttachButton,\n AudioAttachmentUploadPreview,\n autoCompleteSuggestionsLimit,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n CommandsButton,\n compressImageQuality,\n cooldownEndsAt,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n imageUploads,\n initialValue,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n mentionedUsers,\n MoreOptionsButton,\n numberOfLines,\n numberOfUploads,\n onChange,\n onChangeText,\n onSelectItem,\n openAttachmentPicker,\n openCommandsPicker,\n openFilePicker,\n openMentionsPicker,\n pickFile,\n quotedMessage,\n removeFile,\n removeImage,\n resetInput,\n selectedPicker,\n SendButton,\n sendImageAsync,\n sending,\n sendMessage,\n sendMessageAsync,\n SendMessageDisallowedIndicator,\n sendThreadMessageInChannel,\n setAsyncIds,\n setAsyncUploads,\n setFileUploads,\n setGiphyActive,\n setImageUploads,\n setInputBoxRef,\n setInputRef,\n setMentionedUsers,\n setNumberOfUploads,\n setQuotedMessageState,\n setSendThreadMessageInChannel,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n text,\n toggleAttachmentPicker,\n triggerSettings,\n updateMessage,\n uploadFile,\n uploadImage,\n uploadNewFile,\n uploadNewImage,\n UploadProgressIndicator,\n }),\n [\n cooldownEndsAt,\n editingExists,\n fileUploadsValue,\n giphyActive,\n imageUploadsValue,\n maxMessageLength,\n mentionedUsersLength,\n quotedMessageId,\n selectedPicker,\n sendThreadMessageInChannel,\n showMoreOptions,\n text,\n threadId,\n ],\n );\n\n return messageInputContext;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["useCreateMessageInputContext.ts"],"names":["useCreateMessageInputContext","additionalTextInputProps","appendText","asyncIds","asyncUploads","AttachButton","AudioAttachment","autoCompleteSuggestionsLimit","clearEditingState","clearQuotedMessageState","closeAttachmentPicker","CommandsButton","compressImageQuality","cooldownEndsAt","CooldownTimer","doDocUploadRequest","doImageUploadRequest","editing","editMessage","FileUploadPreview","fileUploads","giphyActive","hasCommands","hasFilePicker","hasImagePicker","ImageUploadPreview","imageUploads","initialValue","Input","inputBoxRef","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","isValidMessage","maxMessageLength","maxNumberOfFiles","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","mentionedUsers","MoreOptionsButton","numberOfLines","numberOfUploads","onChange","onChangeText","onSelectItem","openAttachmentPicker","openCommandsPicker","openFilePicker","openMentionsPicker","pickFile","quotedMessage","removeFile","removeImage","resetInput","selectedPicker","SendButton","sendImageAsync","sending","sendMessage","sendMessageAsync","SendMessageDisallowedIndicator","sendThreadMessageInChannel","setAsyncIds","setAsyncUploads","setFileUploads","setGiphyActive","setImageUploads","setInputBoxRef","setInputRef","setMentionedUsers","setNumberOfUploads","setQuotedMessageState","setSendThreadMessageInChannel","setShowMoreOptions","setText","showMoreOptions","ShowThreadMessageInChannelButton","text","thread","toggleAttachmentPicker","triggerSettings","updateMessage","uploadFile","uploadImage","uploadNewFile","uploadNewImage","UploadProgressIndicator","editingExists","fileUploadsValue","map","duration","paused","progress","state","join","imageUploadsValue","mentionedUsersLength","length","quotedMessageId","id","threadId","messageInputContext"],"mappings":"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","sourcesContent":["import { useMemo } from 'react';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport type { ThreadContextValue } from '../../threadContext/ThreadContext';\nimport type { MessageInputContextValue } from '../MessageInputContext';\n\nexport const useCreateMessageInputContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTextInputProps,\n appendText,\n asyncIds,\n asyncUploads,\n AttachButton,\n AudioAttachment,\n autoCompleteSuggestionsLimit,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n CommandsButton,\n compressImageQuality,\n cooldownEndsAt,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n imageUploads,\n initialValue,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n mentionedUsers,\n MoreOptionsButton,\n numberOfLines,\n numberOfUploads,\n onChange,\n onChangeText,\n onSelectItem,\n openAttachmentPicker,\n openCommandsPicker,\n openFilePicker,\n openMentionsPicker,\n pickFile,\n quotedMessage,\n removeFile,\n removeImage,\n resetInput,\n selectedPicker,\n SendButton,\n sendImageAsync,\n sending,\n sendMessage,\n sendMessageAsync,\n SendMessageDisallowedIndicator,\n sendThreadMessageInChannel,\n setAsyncIds,\n setAsyncUploads,\n setFileUploads,\n setGiphyActive,\n setImageUploads,\n setInputBoxRef,\n setInputRef,\n setMentionedUsers,\n setNumberOfUploads,\n setQuotedMessageState,\n setSendThreadMessageInChannel,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n text,\n thread,\n toggleAttachmentPicker,\n triggerSettings,\n updateMessage,\n uploadFile,\n uploadImage,\n uploadNewFile,\n uploadNewImage,\n UploadProgressIndicator,\n}: MessageInputContextValue<StreamChatGenerics> &\n Pick<ThreadContextValue<StreamChatGenerics>, 'thread'>) => {\n const editingExists = !!editing;\n const fileUploadsValue = fileUploads\n .map(({ duration, paused, progress, state }) => `${state},${paused},${progress},${duration}`)\n .join();\n const imageUploadsValue = imageUploads.map(({ state }) => state).join();\n const mentionedUsersLength = mentionedUsers.length;\n const quotedMessageId = quotedMessage\n ? typeof quotedMessage === 'boolean'\n ? ''\n : quotedMessage.id\n : '';\n const threadId = thread?.id;\n\n const messageInputContext: MessageInputContextValue<StreamChatGenerics> = useMemo(\n () => ({\n additionalTextInputProps,\n appendText,\n asyncIds,\n asyncUploads,\n AttachButton,\n AudioAttachment,\n autoCompleteSuggestionsLimit,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n CommandsButton,\n compressImageQuality,\n cooldownEndsAt,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n imageUploads,\n initialValue,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n mentionedUsers,\n MoreOptionsButton,\n numberOfLines,\n numberOfUploads,\n onChange,\n onChangeText,\n onSelectItem,\n openAttachmentPicker,\n openCommandsPicker,\n openFilePicker,\n openMentionsPicker,\n pickFile,\n quotedMessage,\n removeFile,\n removeImage,\n resetInput,\n selectedPicker,\n SendButton,\n sendImageAsync,\n sending,\n sendMessage,\n sendMessageAsync,\n SendMessageDisallowedIndicator,\n sendThreadMessageInChannel,\n setAsyncIds,\n setAsyncUploads,\n setFileUploads,\n setGiphyActive,\n setImageUploads,\n setInputBoxRef,\n setInputRef,\n setMentionedUsers,\n setNumberOfUploads,\n setQuotedMessageState,\n setSendThreadMessageInChannel,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n text,\n toggleAttachmentPicker,\n triggerSettings,\n updateMessage,\n uploadFile,\n uploadImage,\n uploadNewFile,\n uploadNewImage,\n UploadProgressIndicator,\n }),\n [\n cooldownEndsAt,\n editingExists,\n fileUploadsValue,\n giphyActive,\n imageUploadsValue,\n maxMessageLength,\n mentionedUsersLength,\n quotedMessageId,\n selectedPicker,\n sendThreadMessageInChannel,\n showMoreOptions,\n text,\n threadId,\n ],\n );\n\n return messageInputContext;\n};\n"]}
|
|
@@ -223,12 +223,12 @@ var defaultTheme = {
|
|
|
223
223
|
editingBoxHeaderTitle: {}
|
|
224
224
|
},
|
|
225
225
|
fileUploadPreview: {
|
|
226
|
-
|
|
227
|
-
audioAttachmentUploadPreview: {
|
|
226
|
+
audioAttachment: {
|
|
228
227
|
progressControlView: {},
|
|
229
228
|
progressDurationText: {},
|
|
230
229
|
roundedView: {}
|
|
231
230
|
},
|
|
231
|
+
audioAttachmentFileContainer: {},
|
|
232
232
|
dismiss: {},
|
|
233
233
|
fileContainer: {},
|
|
234
234
|
fileContentContainer: {},
|