stream-chat-react-native-core 5.28.1 → 5.29.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Attachment/Attachment.js +2 -2
- package/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/AudioAttachment.js +247 -115
- package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +30 -50
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/commonjs/components/Attachment/VideoThumbnail.js +3 -3
- package/lib/commonjs/components/Attachment/VideoThumbnail.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +43 -1
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +24 -0
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +6 -6
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js +1 -1
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useMessageActions.js +4 -2
- package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +55 -74
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/InputButtons.js +1 -1
- package/lib/commonjs/components/MessageInput/InputButtons.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +250 -43
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/components/MessageInput/SendButton.js +9 -7
- package/lib/commonjs/components/MessageInput/SendButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecorder.js +221 -0
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecorder.js.map +1 -0
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js +121 -0
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -0
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.js +68 -0
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.js.map +1 -0
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingLockIndicator.js +75 -0
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingLockIndicator.js.map +1 -0
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingPreview.js +87 -0
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingPreview.js.map +1 -0
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingWaveform.js +47 -0
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingWaveform.js.map +1 -0
- package/lib/commonjs/components/MessageInput/hooks/useAudioController.js +452 -0
- package/lib/commonjs/components/MessageInput/hooks/useAudioController.js.map +1 -0
- package/lib/commonjs/components/MessageInput/utils/audioSampling.js +91 -0
- package/lib/commonjs/components/MessageInput/utils/audioSampling.js.map +1 -0
- package/lib/commonjs/components/MessageInput/utils/normalizeAudioLevel.js +18 -0
- package/lib/commonjs/components/MessageInput/utils/normalizeAudioLevel.js.map +1 -0
- package/lib/commonjs/components/ProgressControl/ProgressControl.js +57 -40
- package/lib/commonjs/components/ProgressControl/ProgressControl.js.map +1 -1
- package/lib/commonjs/components/ProgressControl/WaveProgressBar.js +162 -0
- package/lib/commonjs/components/ProgressControl/WaveProgressBar.js.map +1 -0
- package/lib/commonjs/components/Reply/Reply.js +45 -20
- package/lib/commonjs/components/Reply/Reply.js.map +1 -1
- package/lib/commonjs/components/index.js +66 -0
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +23 -12
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +24 -0
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +76 -28
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +62 -7
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/i18n/en.json +3 -1
- package/lib/commonjs/i18n/es.json +64 -62
- package/lib/commonjs/i18n/fr.json +64 -62
- package/lib/commonjs/i18n/he.json +64 -62
- package/lib/commonjs/i18n/hi.json +64 -62
- package/lib/commonjs/i18n/it.json +64 -62
- package/lib/commonjs/i18n/ja.json +64 -62
- package/lib/commonjs/i18n/ko.json +64 -62
- package/lib/commonjs/i18n/nl.json +64 -62
- package/lib/commonjs/i18n/pt-BR.json +64 -62
- package/lib/commonjs/i18n/ru.json +64 -62
- package/lib/commonjs/i18n/tr.json +64 -62
- package/lib/commonjs/icons/ArrowLeft.js +27 -0
- package/lib/commonjs/icons/ArrowLeft.js.map +1 -0
- package/lib/commonjs/icons/ArrowUp.js +26 -0
- package/lib/commonjs/icons/ArrowUp.js.map +1 -0
- package/lib/commonjs/icons/Audio.js +24 -24
- package/lib/commonjs/icons/Audio.js.map +1 -1
- package/lib/commonjs/icons/CircleStop.js +27 -0
- package/lib/commonjs/icons/CircleStop.js.map +1 -0
- package/lib/commonjs/icons/Delete.js +17 -6
- package/lib/commonjs/icons/Delete.js.map +1 -1
- package/lib/commonjs/icons/Lock.js +30 -0
- package/lib/commonjs/icons/Lock.js.map +1 -0
- package/lib/commonjs/icons/Mic.js +30 -0
- package/lib/commonjs/icons/Mic.js.map +1 -0
- package/lib/commonjs/icons/Pause.js +15 -20
- package/lib/commonjs/icons/Pause.js.map +1 -1
- package/lib/commonjs/icons/Play.js +18 -10
- package/lib/commonjs/icons/Play.js.map +1 -1
- package/lib/commonjs/icons/SendCheck.js +30 -0
- package/lib/commonjs/icons/SendCheck.js.map +1 -0
- package/lib/commonjs/icons/SendRight.js +24 -6
- package/lib/commonjs/icons/SendRight.js.map +1 -1
- package/lib/commonjs/icons/SendUp.js +24 -6
- package/lib/commonjs/icons/SendUp.js.map +1 -1
- package/lib/commonjs/icons/Stop.js +19 -0
- package/lib/commonjs/icons/Stop.js.map +1 -0
- package/lib/commonjs/icons/index.js +77 -0
- package/lib/commonjs/icons/index.js.map +1 -1
- package/lib/commonjs/native.js +10 -1
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/utils/getTrimmedAttachmentTitle.js +11 -0
- package/lib/commonjs/utils/getTrimmedAttachmentTitle.js.map +1 -0
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Attachment.js +2 -2
- package/lib/module/components/Attachment/Attachment.js.map +1 -1
- package/lib/module/components/Attachment/AudioAttachment.js +247 -115
- package/lib/module/components/Attachment/AudioAttachment.js.map +1 -1
- package/lib/module/components/Attachment/FileAttachmentGroup.js +30 -50
- package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/module/components/Attachment/VideoThumbnail.js +3 -3
- package/lib/module/components/Attachment/VideoThumbnail.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +43 -1
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +24 -0
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +6 -6
- package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
- package/lib/module/components/Message/Message.js +1 -1
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageContent.js +1 -1
- package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageSimple.js +1 -1
- package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/module/components/Message/hooks/useMessageActions.js +4 -2
- package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +55 -74
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/InputButtons.js +1 -1
- package/lib/module/components/MessageInput/InputButtons.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js +250 -43
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/components/MessageInput/SendButton.js +9 -7
- package/lib/module/components/MessageInput/SendButton.js.map +1 -1
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecorder.js +221 -0
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecorder.js.map +1 -0
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js +121 -0
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -0
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.js +68 -0
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.js.map +1 -0
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingLockIndicator.js +75 -0
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingLockIndicator.js.map +1 -0
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingPreview.js +87 -0
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingPreview.js.map +1 -0
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingWaveform.js +47 -0
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingWaveform.js.map +1 -0
- package/lib/module/components/MessageInput/hooks/useAudioController.js +452 -0
- package/lib/module/components/MessageInput/hooks/useAudioController.js.map +1 -0
- package/lib/module/components/MessageInput/utils/audioSampling.js +91 -0
- package/lib/module/components/MessageInput/utils/audioSampling.js.map +1 -0
- package/lib/module/components/MessageInput/utils/normalizeAudioLevel.js +18 -0
- package/lib/module/components/MessageInput/utils/normalizeAudioLevel.js.map +1 -0
- package/lib/module/components/ProgressControl/ProgressControl.js +57 -40
- package/lib/module/components/ProgressControl/ProgressControl.js.map +1 -1
- package/lib/module/components/ProgressControl/WaveProgressBar.js +162 -0
- package/lib/module/components/ProgressControl/WaveProgressBar.js.map +1 -0
- package/lib/module/components/Reply/Reply.js +45 -20
- package/lib/module/components/Reply/Reply.js.map +1 -1
- package/lib/module/components/index.js +66 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +23 -12
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +24 -0
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +76 -28
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +62 -7
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/i18n/en.json +3 -1
- package/lib/module/i18n/es.json +64 -62
- package/lib/module/i18n/fr.json +64 -62
- package/lib/module/i18n/he.json +64 -62
- package/lib/module/i18n/hi.json +64 -62
- package/lib/module/i18n/it.json +64 -62
- package/lib/module/i18n/ja.json +64 -62
- package/lib/module/i18n/ko.json +64 -62
- package/lib/module/i18n/nl.json +64 -62
- package/lib/module/i18n/pt-BR.json +64 -62
- package/lib/module/i18n/ru.json +64 -62
- package/lib/module/i18n/tr.json +64 -62
- package/lib/module/icons/ArrowLeft.js +27 -0
- package/lib/module/icons/ArrowLeft.js.map +1 -0
- package/lib/module/icons/ArrowUp.js +26 -0
- package/lib/module/icons/ArrowUp.js.map +1 -0
- package/lib/module/icons/Audio.js +24 -24
- package/lib/module/icons/Audio.js.map +1 -1
- package/lib/module/icons/CircleStop.js +27 -0
- package/lib/module/icons/CircleStop.js.map +1 -0
- package/lib/module/icons/Delete.js +17 -6
- package/lib/module/icons/Delete.js.map +1 -1
- package/lib/module/icons/Lock.js +30 -0
- package/lib/module/icons/Lock.js.map +1 -0
- package/lib/module/icons/Mic.js +30 -0
- package/lib/module/icons/Mic.js.map +1 -0
- package/lib/module/icons/Pause.js +15 -20
- package/lib/module/icons/Pause.js.map +1 -1
- package/lib/module/icons/Play.js +18 -10
- package/lib/module/icons/Play.js.map +1 -1
- package/lib/module/icons/SendCheck.js +30 -0
- package/lib/module/icons/SendCheck.js.map +1 -0
- package/lib/module/icons/SendRight.js +24 -6
- package/lib/module/icons/SendRight.js.map +1 -1
- package/lib/module/icons/SendUp.js +24 -6
- package/lib/module/icons/SendUp.js.map +1 -1
- package/lib/module/icons/Stop.js +19 -0
- package/lib/module/icons/Stop.js.map +1 -0
- package/lib/module/icons/index.js +77 -0
- package/lib/module/icons/index.js.map +1 -1
- package/lib/module/native.js +10 -1
- package/lib/module/native.js.map +1 -1
- package/lib/module/utils/getTrimmedAttachmentTitle.js +11 -0
- package/lib/module/utils/getTrimmedAttachmentTitle.js.map +1 -0
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/Attachment.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/AudioAttachment.d.ts +3 -8
- package/lib/typescript/components/Attachment/AudioAttachment.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/FileAttachmentGroup.d.ts.map +1 -1
- package/lib/typescript/components/Channel/Channel.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +15 -3
- package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts.map +1 -1
- package/lib/typescript/components/ImageGallery/components/ImageGalleryVideoControl.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageContent.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +1 -1
- package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/InputButtons.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/MessageInput.d.ts +1 -1
- package/lib/typescript/components/MessageInput/MessageInput.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/SendButton.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecorder.d.ts +51 -0
- package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecorder.d.ts.map +1 -0
- package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingButton.d.ts +43 -0
- package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingButton.d.ts.map +1 -0
- package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.d.ts +29 -0
- package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.d.ts.map +1 -0
- package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingLockIndicator.d.ts +22 -0
- package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingLockIndicator.d.ts.map +1 -0
- package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingPreview.d.ts +31 -0
- package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingPreview.d.ts.map +1 -0
- package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingWaveform.d.ts +19 -0
- package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingWaveform.d.ts.map +1 -0
- package/lib/typescript/components/MessageInput/hooks/useAudioController.d.ts +28 -0
- package/lib/typescript/components/MessageInput/hooks/useAudioController.d.ts.map +1 -0
- package/lib/typescript/components/MessageInput/utils/audioSampling.d.ts +11 -0
- package/lib/typescript/components/MessageInput/utils/audioSampling.d.ts.map +1 -0
- package/lib/typescript/components/MessageInput/utils/normalizeAudioLevel.d.ts +5 -0
- package/lib/typescript/components/MessageInput/utils/normalizeAudioLevel.d.ts.map +1 -0
- package/lib/typescript/components/ProgressControl/ProgressControl.d.ts +2 -2
- package/lib/typescript/components/ProgressControl/ProgressControl.d.ts.map +1 -1
- package/lib/typescript/components/ProgressControl/WaveProgressBar.d.ts +11 -0
- package/lib/typescript/components/ProgressControl/WaveProgressBar.d.ts.map +1 -0
- package/lib/typescript/components/Reply/Reply.d.ts.map +1 -1
- package/lib/typescript/components/index.d.ts +6 -0
- package/lib/typescript/components/index.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +70 -4
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts.map +1 -1
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +62 -7
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts.map +1 -1
- package/lib/typescript/i18n/en.json +3 -1
- package/lib/typescript/i18n/es.json +64 -62
- package/lib/typescript/i18n/fr.json +64 -62
- package/lib/typescript/i18n/he.json +64 -62
- package/lib/typescript/i18n/hi.json +64 -62
- package/lib/typescript/i18n/it.json +64 -62
- package/lib/typescript/i18n/ja.json +64 -62
- package/lib/typescript/i18n/ko.json +64 -62
- package/lib/typescript/i18n/nl.json +64 -62
- package/lib/typescript/i18n/pt-BR.json +64 -62
- package/lib/typescript/i18n/ru.json +64 -62
- package/lib/typescript/i18n/tr.json +64 -62
- package/lib/typescript/icons/ArrowLeft.d.ts +8 -0
- package/lib/typescript/icons/ArrowLeft.d.ts.map +1 -0
- package/lib/typescript/icons/ArrowUp.d.ts +9 -0
- package/lib/typescript/icons/ArrowUp.d.ts.map +1 -0
- package/lib/typescript/icons/Audio.d.ts.map +1 -1
- package/lib/typescript/icons/CircleStop.d.ts +8 -0
- package/lib/typescript/icons/CircleStop.d.ts.map +1 -0
- package/lib/typescript/icons/Delete.d.ts +5 -1
- package/lib/typescript/icons/Delete.d.ts.map +1 -1
- package/lib/typescript/icons/Lock.d.ts +9 -0
- package/lib/typescript/icons/Lock.d.ts.map +1 -0
- package/lib/typescript/icons/Mic.d.ts +8 -0
- package/lib/typescript/icons/Mic.d.ts.map +1 -0
- package/lib/typescript/icons/Pause.d.ts +3 -1
- package/lib/typescript/icons/Pause.d.ts.map +1 -1
- package/lib/typescript/icons/Play.d.ts +3 -1
- package/lib/typescript/icons/Play.d.ts.map +1 -1
- package/lib/typescript/icons/SendCheck.d.ts +8 -0
- package/lib/typescript/icons/SendCheck.d.ts.map +1 -0
- package/lib/typescript/icons/SendRight.d.ts +5 -1
- package/lib/typescript/icons/SendRight.d.ts.map +1 -1
- package/lib/typescript/icons/SendUp.d.ts +5 -1
- package/lib/typescript/icons/SendUp.d.ts.map +1 -1
- package/lib/typescript/icons/Stop.d.ts +4 -0
- package/lib/typescript/icons/Stop.d.ts.map +1 -0
- package/lib/typescript/icons/index.d.ts +7 -0
- package/lib/typescript/icons/index.d.ts.map +1 -1
- package/lib/typescript/native.d.ts +49 -0
- package/lib/typescript/native.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +6 -0
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/lib/typescript/utils/Streami18n.d.ts +2 -0
- package/lib/typescript/utils/Streami18n.d.ts.map +1 -1
- package/lib/typescript/utils/getTrimmedAttachmentTitle.d.ts +2 -0
- package/lib/typescript/utils/getTrimmedAttachmentTitle.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/components/Attachment/Attachment.tsx +7 -2
- package/src/components/Attachment/AudioAttachment.tsx +223 -119
- package/src/components/Attachment/FileAttachmentGroup.tsx +35 -55
- package/src/components/Attachment/VideoThumbnail.tsx +1 -1
- package/src/components/Channel/Channel.tsx +32 -0
- package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +24 -0
- package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +1 -1
- package/src/components/ImageGallery/__tests__/ImageGalleryVideoControl.test.tsx +2 -2
- package/src/components/ImageGallery/components/ImageGalleryVideoControl.tsx +2 -7
- package/src/components/Message/Message.tsx +1 -1
- package/src/components/Message/MessageSimple/MessageContent.tsx +2 -1
- package/src/components/Message/MessageSimple/MessageSimple.tsx +2 -1
- package/src/components/Message/hooks/useMessageActions.tsx +2 -2
- package/src/components/MessageInput/FileUploadPreview.tsx +67 -98
- package/src/components/MessageInput/InputButtons.tsx +2 -1
- package/src/components/MessageInput/MessageInput.tsx +320 -49
- package/src/components/MessageInput/SendButton.tsx +7 -3
- package/src/components/MessageInput/__tests__/MessageInput.test.js +0 -1
- package/src/components/MessageInput/__tests__/__snapshots__/SendButton.test.js.snap +132 -48
- package/src/components/MessageInput/components/AudioRecorder/AudioRecorder.tsx +313 -0
- package/src/components/MessageInput/components/AudioRecorder/AudioRecordingButton.tsx +192 -0
- package/src/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.tsx +114 -0
- package/src/components/MessageInput/components/AudioRecorder/AudioRecordingLockIndicator.tsx +85 -0
- package/src/components/MessageInput/components/AudioRecorder/AudioRecordingPreview.tsx +102 -0
- package/src/components/MessageInput/components/AudioRecorder/AudioRecordingWaveform.tsx +62 -0
- package/src/components/MessageInput/hooks/useAudioController.tsx +288 -0
- package/src/components/MessageInput/utils/audioSampling.ts +108 -0
- package/src/components/MessageInput/utils/normalizeAudioLevel.ts +20 -0
- package/src/components/ProgressControl/ProgressControl.tsx +69 -40
- package/src/components/ProgressControl/WaveProgressBar.tsx +180 -0
- package/src/components/Reply/Reply.tsx +89 -56
- package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +38 -20
- package/src/components/index.ts +6 -0
- package/src/contexts/messageInputContext/MessageInputContext.tsx +95 -10
- package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +25 -0
- package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +80 -27
- package/src/contexts/themeContext/utils/theme.ts +111 -14
- package/src/i18n/en.json +3 -1
- package/src/i18n/es.json +64 -62
- package/src/i18n/fr.json +64 -62
- package/src/i18n/he.json +64 -62
- package/src/i18n/hi.json +64 -62
- package/src/i18n/it.json +64 -62
- package/src/i18n/ja.json +64 -62
- package/src/i18n/ko.json +64 -62
- package/src/i18n/nl.json +64 -62
- package/src/i18n/pt-BR.json +64 -62
- package/src/i18n/ru.json +64 -62
- package/src/i18n/tr.json +64 -62
- package/src/icons/ArrowLeft.tsx +18 -0
- package/src/icons/ArrowUp.tsx +19 -0
- package/src/icons/Audio.tsx +24 -24
- package/src/icons/CircleStop.tsx +18 -0
- package/src/icons/Delete.tsx +14 -8
- package/src/icons/Lock.tsx +22 -0
- package/src/icons/Mic.tsx +20 -0
- package/src/icons/Pause.tsx +12 -11
- package/src/icons/Play.tsx +9 -13
- package/src/icons/SendCheck.tsx +18 -0
- package/src/icons/SendRight.tsx +16 -7
- package/src/icons/SendUp.tsx +16 -7
- package/src/icons/Stop.tsx +12 -0
- package/src/icons/index.ts +7 -0
- package/src/native.ts +69 -0
- package/src/types/types.ts +6 -0
- package/src/utils/getTrimmedAttachmentTitle.ts +5 -0
- package/src/version.json +1 -1
|
@@ -7,8 +7,24 @@ import {
|
|
|
7
7
|
View,
|
|
8
8
|
} from 'react-native';
|
|
9
9
|
|
|
10
|
+
import {
|
|
11
|
+
GestureEvent,
|
|
12
|
+
PanGestureHandler,
|
|
13
|
+
PanGestureHandlerEventPayload,
|
|
14
|
+
} from 'react-native-gesture-handler';
|
|
15
|
+
import Animated, {
|
|
16
|
+
Extrapolation,
|
|
17
|
+
interpolate,
|
|
18
|
+
runOnJS,
|
|
19
|
+
useAnimatedGestureHandler,
|
|
20
|
+
useAnimatedStyle,
|
|
21
|
+
useSharedValue,
|
|
22
|
+
withSpring,
|
|
23
|
+
} from 'react-native-reanimated';
|
|
24
|
+
|
|
10
25
|
import type { UserResponse } from 'stream-chat';
|
|
11
26
|
|
|
27
|
+
import { useAudioController } from './hooks/useAudioController';
|
|
12
28
|
import { useCountdown } from './hooks/useCountdown';
|
|
13
29
|
|
|
14
30
|
import { ChatContextValue, useChatContext } from '../../contexts';
|
|
@@ -40,6 +56,7 @@ import {
|
|
|
40
56
|
useTranslationContext,
|
|
41
57
|
} from '../../contexts/translationContext/TranslationContext';
|
|
42
58
|
|
|
59
|
+
import { triggerHaptic } from '../../native';
|
|
43
60
|
import type { Asset, DefaultStreamChatGenerics } from '../../types/types';
|
|
44
61
|
import { AutoCompleteInput } from '../AutoCompleteInput/AutoCompleteInput';
|
|
45
62
|
|
|
@@ -55,8 +72,9 @@ const styles = StyleSheet.create({
|
|
|
55
72
|
paddingRight: 16,
|
|
56
73
|
},
|
|
57
74
|
composerContainer: {
|
|
58
|
-
alignItems: '
|
|
75
|
+
alignItems: 'center',
|
|
59
76
|
flexDirection: 'row',
|
|
77
|
+
justifyContent: 'space-between',
|
|
60
78
|
},
|
|
61
79
|
container: {
|
|
62
80
|
borderTopWidth: 1,
|
|
@@ -66,14 +84,14 @@ const styles = StyleSheet.create({
|
|
|
66
84
|
borderRadius: 20,
|
|
67
85
|
borderWidth: 1,
|
|
68
86
|
flex: 1,
|
|
87
|
+
marginHorizontal: 10,
|
|
69
88
|
},
|
|
89
|
+
micButtonContainer: {},
|
|
70
90
|
optionsContainer: {
|
|
71
91
|
flexDirection: 'row',
|
|
72
|
-
paddingBottom: 10,
|
|
73
|
-
paddingRight: 10,
|
|
74
92
|
},
|
|
75
93
|
replyContainer: { paddingBottom: 12, paddingHorizontal: 8 },
|
|
76
|
-
sendButtonContainer: {
|
|
94
|
+
sendButtonContainer: {},
|
|
77
95
|
suggestionsListContainer: {
|
|
78
96
|
position: 'absolute',
|
|
79
97
|
width: '100%',
|
|
@@ -92,7 +110,15 @@ type MessageInputPropsWithContext<
|
|
|
92
110
|
MessageInputContextValue<StreamChatGenerics>,
|
|
93
111
|
| 'additionalTextInputProps'
|
|
94
112
|
| 'asyncIds'
|
|
113
|
+
| 'audioRecordingEnabled'
|
|
114
|
+
| 'asyncMessagesLockDistance'
|
|
115
|
+
| 'asyncMessagesMinimumPressDuration'
|
|
116
|
+
| 'asyncMessagesSlideToCancelDistance'
|
|
95
117
|
| 'asyncUploads'
|
|
118
|
+
| 'AudioRecorder'
|
|
119
|
+
| 'AudioRecordingInProgress'
|
|
120
|
+
| 'AudioRecordingLockIndicator'
|
|
121
|
+
| 'AudioRecordingPreview'
|
|
96
122
|
| 'cooldownEndsAt'
|
|
97
123
|
| 'CooldownTimer'
|
|
98
124
|
| 'clearEditingState'
|
|
@@ -123,8 +149,10 @@ type MessageInputPropsWithContext<
|
|
|
123
149
|
| 'setGiphyActive'
|
|
124
150
|
| 'showMoreOptions'
|
|
125
151
|
| 'ShowThreadMessageInChannelButton'
|
|
152
|
+
| 'StartAudioRecordingButton'
|
|
126
153
|
| 'removeFile'
|
|
127
154
|
| 'removeImage'
|
|
155
|
+
| 'text'
|
|
128
156
|
| 'uploadNewFile'
|
|
129
157
|
| 'uploadNewImage'
|
|
130
158
|
> &
|
|
@@ -148,8 +176,16 @@ const MessageInputWithContext = <
|
|
|
148
176
|
const {
|
|
149
177
|
additionalTextInputProps,
|
|
150
178
|
asyncIds,
|
|
179
|
+
asyncMessagesLockDistance,
|
|
180
|
+
asyncMessagesMinimumPressDuration,
|
|
181
|
+
asyncMessagesSlideToCancelDistance,
|
|
151
182
|
asyncUploads,
|
|
152
183
|
AttachmentPickerSelectionBar,
|
|
184
|
+
AudioRecorder,
|
|
185
|
+
audioRecordingEnabled,
|
|
186
|
+
AudioRecordingInProgress,
|
|
187
|
+
AudioRecordingLockIndicator,
|
|
188
|
+
AudioRecordingPreview,
|
|
153
189
|
AutoCompleteSuggestionList,
|
|
154
190
|
closeAttachmentPicker,
|
|
155
191
|
cooldownEndsAt,
|
|
@@ -183,7 +219,9 @@ const MessageInputWithContext = <
|
|
|
183
219
|
sendMessageAsync,
|
|
184
220
|
setShowMoreOptions,
|
|
185
221
|
ShowThreadMessageInChannelButton,
|
|
222
|
+
StartAudioRecordingButton,
|
|
186
223
|
suggestions,
|
|
224
|
+
text,
|
|
187
225
|
thread,
|
|
188
226
|
threadList,
|
|
189
227
|
triggerType,
|
|
@@ -200,11 +238,13 @@ const MessageInputWithContext = <
|
|
|
200
238
|
colors: { border, grey_whisper, white, white_smoke },
|
|
201
239
|
messageInput: {
|
|
202
240
|
attachmentSelectionBar,
|
|
241
|
+
attachmentSeparator,
|
|
203
242
|
autoCompleteInputContainer,
|
|
204
243
|
composerContainer,
|
|
205
244
|
container,
|
|
206
245
|
focusedInputBoxContainer,
|
|
207
246
|
inputBoxContainer,
|
|
247
|
+
micButtonContainer,
|
|
208
248
|
optionsContainer,
|
|
209
249
|
replyContainer,
|
|
210
250
|
sendButtonContainer,
|
|
@@ -542,6 +582,124 @@ const MessageInputWithContext = <
|
|
|
542
582
|
[additionalTextInputProps],
|
|
543
583
|
);
|
|
544
584
|
|
|
585
|
+
const {
|
|
586
|
+
deleteVoiceRecording,
|
|
587
|
+
micLocked,
|
|
588
|
+
onVoicePlayerPlayPause,
|
|
589
|
+
paused,
|
|
590
|
+
permissionsGranted,
|
|
591
|
+
position,
|
|
592
|
+
progress,
|
|
593
|
+
recording,
|
|
594
|
+
recordingDuration,
|
|
595
|
+
recordingStatus,
|
|
596
|
+
setMicLocked,
|
|
597
|
+
startVoiceRecording,
|
|
598
|
+
stopVoiceRecording,
|
|
599
|
+
uploadVoiceRecording,
|
|
600
|
+
waveformData,
|
|
601
|
+
} = useAudioController();
|
|
602
|
+
|
|
603
|
+
const isSendingButtonVisible = () => {
|
|
604
|
+
if (audioRecordingEnabled) {
|
|
605
|
+
if (recording) {
|
|
606
|
+
return false;
|
|
607
|
+
}
|
|
608
|
+
if (text && text.trim()) {
|
|
609
|
+
return true;
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
const imagesAndFiles = [...imageUploads, ...fileUploads];
|
|
613
|
+
if (imagesAndFiles.length === 0) return false;
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
return true;
|
|
617
|
+
};
|
|
618
|
+
|
|
619
|
+
const micPositionX = useSharedValue(0);
|
|
620
|
+
const micPositionY = useSharedValue(0);
|
|
621
|
+
const X_AXIS_POSITION = -asyncMessagesSlideToCancelDistance;
|
|
622
|
+
const Y_AXIS_POSITION = -asyncMessagesLockDistance;
|
|
623
|
+
|
|
624
|
+
const resetAudioRecording = async () => {
|
|
625
|
+
await deleteVoiceRecording();
|
|
626
|
+
micPositionX.value = 0;
|
|
627
|
+
};
|
|
628
|
+
|
|
629
|
+
const micLockHandler = () => {
|
|
630
|
+
setMicLocked(true);
|
|
631
|
+
micPositionY.value = 0;
|
|
632
|
+
triggerHaptic('impactMedium');
|
|
633
|
+
};
|
|
634
|
+
|
|
635
|
+
const handleMicGestureEvent = useAnimatedGestureHandler<
|
|
636
|
+
GestureEvent<PanGestureHandlerEventPayload>
|
|
637
|
+
>({
|
|
638
|
+
onActive: (event) => {
|
|
639
|
+
const newPositionX = event.translationX;
|
|
640
|
+
const newPositionY = event.translationY;
|
|
641
|
+
|
|
642
|
+
if (newPositionX <= 0 && newPositionX >= X_AXIS_POSITION) {
|
|
643
|
+
micPositionX.value = newPositionX;
|
|
644
|
+
}
|
|
645
|
+
if (newPositionY <= 0 && newPositionY >= Y_AXIS_POSITION) {
|
|
646
|
+
micPositionY.value = newPositionY;
|
|
647
|
+
}
|
|
648
|
+
},
|
|
649
|
+
onFinish: () => {
|
|
650
|
+
if (micPositionY.value > Y_AXIS_POSITION / 2) {
|
|
651
|
+
micPositionY.value = withSpring(0);
|
|
652
|
+
} else {
|
|
653
|
+
micPositionY.value = withSpring(Y_AXIS_POSITION);
|
|
654
|
+
runOnJS(micLockHandler)();
|
|
655
|
+
}
|
|
656
|
+
if (micPositionX.value > X_AXIS_POSITION / 2) {
|
|
657
|
+
micPositionX.value = withSpring(0);
|
|
658
|
+
} else {
|
|
659
|
+
micPositionX.value = withSpring(X_AXIS_POSITION);
|
|
660
|
+
runOnJS(resetAudioRecording)();
|
|
661
|
+
}
|
|
662
|
+
},
|
|
663
|
+
onStart: () => {
|
|
664
|
+
micPositionX.value = 0;
|
|
665
|
+
micPositionY.value = 0;
|
|
666
|
+
runOnJS(setMicLocked)(false);
|
|
667
|
+
},
|
|
668
|
+
});
|
|
669
|
+
|
|
670
|
+
const animatedStyles = {
|
|
671
|
+
lockIndicator: useAnimatedStyle(() => ({
|
|
672
|
+
transform: [
|
|
673
|
+
{
|
|
674
|
+
translateY: interpolate(
|
|
675
|
+
micPositionY.value,
|
|
676
|
+
[0, Y_AXIS_POSITION],
|
|
677
|
+
[0, Y_AXIS_POSITION],
|
|
678
|
+
Extrapolation.CLAMP,
|
|
679
|
+
),
|
|
680
|
+
},
|
|
681
|
+
],
|
|
682
|
+
})),
|
|
683
|
+
micButton: useAnimatedStyle(() => ({
|
|
684
|
+
opacity: interpolate(micPositionX.value, [0, X_AXIS_POSITION], [1, 0], Extrapolation.CLAMP),
|
|
685
|
+
transform: [{ translateX: micPositionX.value }, { translateY: micPositionY.value }],
|
|
686
|
+
zIndex: 2,
|
|
687
|
+
})),
|
|
688
|
+
slideToCancel: useAnimatedStyle(() => ({
|
|
689
|
+
opacity: interpolate(micPositionX.value, [0, X_AXIS_POSITION], [1, 0], Extrapolation.CLAMP),
|
|
690
|
+
transform: [
|
|
691
|
+
{
|
|
692
|
+
translateX: interpolate(
|
|
693
|
+
micPositionX.value,
|
|
694
|
+
[0, X_AXIS_POSITION],
|
|
695
|
+
[0, X_AXIS_POSITION / 2],
|
|
696
|
+
Extrapolation.CLAMP,
|
|
697
|
+
),
|
|
698
|
+
},
|
|
699
|
+
],
|
|
700
|
+
})),
|
|
701
|
+
};
|
|
702
|
+
|
|
545
703
|
return (
|
|
546
704
|
<>
|
|
547
705
|
<View
|
|
@@ -554,6 +712,31 @@ const MessageInputWithContext = <
|
|
|
554
712
|
>
|
|
555
713
|
{editing && <InputEditingStateHeader />}
|
|
556
714
|
{quotedMessage && <InputReplyStateHeader />}
|
|
715
|
+
{recording && (
|
|
716
|
+
<>
|
|
717
|
+
<AudioRecordingLockIndicator
|
|
718
|
+
messageInputHeight={height}
|
|
719
|
+
micLocked={micLocked}
|
|
720
|
+
style={animatedStyles.lockIndicator}
|
|
721
|
+
/>
|
|
722
|
+
{micLocked &&
|
|
723
|
+
(recordingStatus === 'stopped' ? (
|
|
724
|
+
<AudioRecordingPreview
|
|
725
|
+
onVoicePlayerPlayPause={onVoicePlayerPlayPause}
|
|
726
|
+
paused={paused}
|
|
727
|
+
position={position}
|
|
728
|
+
progress={progress}
|
|
729
|
+
waveformData={waveformData}
|
|
730
|
+
/>
|
|
731
|
+
) : (
|
|
732
|
+
<AudioRecordingInProgress
|
|
733
|
+
recordingDuration={recordingDuration}
|
|
734
|
+
waveformData={waveformData}
|
|
735
|
+
/>
|
|
736
|
+
))}
|
|
737
|
+
</>
|
|
738
|
+
)}
|
|
739
|
+
|
|
557
740
|
<View style={[styles.composerContainer, composerContainer]}>
|
|
558
741
|
{Input ? (
|
|
559
742
|
<Input
|
|
@@ -562,60 +745,102 @@ const MessageInputWithContext = <
|
|
|
562
745
|
/>
|
|
563
746
|
) : (
|
|
564
747
|
<>
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
{
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
}
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
<View style={[styles.replyContainer, replyContainer]}>
|
|
581
|
-
<Reply />
|
|
748
|
+
{recording ? (
|
|
749
|
+
<AudioRecorder
|
|
750
|
+
deleteVoiceRecording={deleteVoiceRecording}
|
|
751
|
+
micLocked={micLocked}
|
|
752
|
+
recording={recording}
|
|
753
|
+
recordingDuration={recordingDuration}
|
|
754
|
+
recordingStopped={recordingStatus === 'stopped'}
|
|
755
|
+
slideToCancelStyle={animatedStyles.slideToCancel}
|
|
756
|
+
stopVoiceRecording={stopVoiceRecording}
|
|
757
|
+
uploadVoiceRecording={uploadVoiceRecording}
|
|
758
|
+
/>
|
|
759
|
+
) : (
|
|
760
|
+
<>
|
|
761
|
+
<View style={[styles.optionsContainer, optionsContainer]}>
|
|
762
|
+
{InputButtons && <InputButtons />}
|
|
582
763
|
</View>
|
|
583
|
-
)}
|
|
584
|
-
{imageUploads.length ? <ImageUploadPreview /> : null}
|
|
585
|
-
{imageUploads.length && fileUploads.length ? (
|
|
586
764
|
<View
|
|
587
765
|
style={[
|
|
588
|
-
styles.
|
|
766
|
+
styles.inputBoxContainer,
|
|
589
767
|
{
|
|
590
|
-
|
|
591
|
-
|
|
768
|
+
borderColor: grey_whisper,
|
|
769
|
+
paddingVertical: giphyActive ? 8 : 12,
|
|
592
770
|
},
|
|
771
|
+
inputBoxContainer,
|
|
772
|
+
focused ? focusedInputBoxContainer : null,
|
|
593
773
|
]}
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
<
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
774
|
+
>
|
|
775
|
+
{((typeof editing !== 'boolean' && editing?.quoted_message) ||
|
|
776
|
+
quotedMessage) && (
|
|
777
|
+
<View style={[styles.replyContainer, replyContainer]}>
|
|
778
|
+
<Reply />
|
|
779
|
+
</View>
|
|
780
|
+
)}
|
|
781
|
+
{imageUploads.length ? <ImageUploadPreview /> : null}
|
|
782
|
+
{imageUploads.length && fileUploads.length ? (
|
|
783
|
+
<View
|
|
784
|
+
style={[
|
|
785
|
+
styles.attachmentSeparator,
|
|
786
|
+
{
|
|
787
|
+
borderBottomColor: grey_whisper,
|
|
788
|
+
marginHorizontal: giphyActive ? 8 : 12,
|
|
789
|
+
},
|
|
790
|
+
attachmentSeparator,
|
|
791
|
+
]}
|
|
792
|
+
/>
|
|
793
|
+
) : null}
|
|
794
|
+
{fileUploads.length ? <FileUploadPreview /> : null}
|
|
795
|
+
{giphyActive ? (
|
|
796
|
+
<InputGiphySearch disabled={!isOnline} />
|
|
797
|
+
) : (
|
|
798
|
+
<View style={[styles.autoCompleteInputContainer, autoCompleteInputContainer]}>
|
|
799
|
+
<AutoCompleteInput<StreamChatGenerics>
|
|
800
|
+
additionalTextInputProps={memoizedAdditionalTextInputProps}
|
|
801
|
+
cooldownActive={!!cooldownRemainingSeconds}
|
|
802
|
+
/>
|
|
803
|
+
</View>
|
|
804
|
+
)}
|
|
605
805
|
</View>
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
806
|
+
</>
|
|
807
|
+
)}
|
|
808
|
+
|
|
809
|
+
{isSendingButtonVisible() &&
|
|
810
|
+
(cooldownRemainingSeconds ? (
|
|
610
811
|
<CooldownTimer seconds={cooldownRemainingSeconds} />
|
|
611
812
|
) : (
|
|
612
|
-
<
|
|
613
|
-
|
|
614
|
-
disabled
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
813
|
+
<View style={[styles.sendButtonContainer, sendButtonContainer]}>
|
|
814
|
+
<SendButton
|
|
815
|
+
disabled={
|
|
816
|
+
disabled ||
|
|
817
|
+
sending.current ||
|
|
818
|
+
!isValidMessage() ||
|
|
819
|
+
(giphyActive && !isOnline)
|
|
820
|
+
}
|
|
821
|
+
/>
|
|
822
|
+
</View>
|
|
823
|
+
))}
|
|
824
|
+
{audioRecordingEnabled && !micLocked && (
|
|
825
|
+
<PanGestureHandler
|
|
826
|
+
activateAfterLongPress={asyncMessagesMinimumPressDuration + 100}
|
|
827
|
+
onGestureEvent={handleMicGestureEvent}
|
|
828
|
+
>
|
|
829
|
+
<Animated.View
|
|
830
|
+
style={[
|
|
831
|
+
styles.micButtonContainer,
|
|
832
|
+
animatedStyles.micButton,
|
|
833
|
+
micButtonContainer,
|
|
834
|
+
]}
|
|
835
|
+
>
|
|
836
|
+
<StartAudioRecordingButton
|
|
837
|
+
permissionsGranted={permissionsGranted}
|
|
838
|
+
recording={recording}
|
|
839
|
+
startVoiceRecording={startVoiceRecording}
|
|
840
|
+
/>
|
|
841
|
+
</Animated.View>
|
|
842
|
+
</PanGestureHandler>
|
|
843
|
+
)}
|
|
619
844
|
</>
|
|
620
845
|
)}
|
|
621
846
|
</View>
|
|
@@ -635,6 +860,7 @@ const MessageInputWithContext = <
|
|
|
635
860
|
/>
|
|
636
861
|
</View>
|
|
637
862
|
) : null}
|
|
863
|
+
|
|
638
864
|
{selectedPicker && (
|
|
639
865
|
<View
|
|
640
866
|
style={[
|
|
@@ -659,7 +885,11 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
|
|
|
659
885
|
) => {
|
|
660
886
|
const {
|
|
661
887
|
additionalTextInputProps: prevAdditionalTextInputProps,
|
|
888
|
+
asyncMessagesLockDistance: prevAsyncMessagesLockDistance,
|
|
889
|
+
asyncMessagesMinimumPressDuration: prevAsyncMessagesMinimumPressDuration,
|
|
890
|
+
asyncMessagesSlideToCancelDistance: prevAsyncMessagesSlideToCancelDistance,
|
|
662
891
|
asyncUploads: prevAsyncUploads,
|
|
892
|
+
audioRecordingEnabled: prevAsyncMessagesEnabled,
|
|
663
893
|
disabled: prevDisabled,
|
|
664
894
|
editing: prevEditing,
|
|
665
895
|
fileUploads: prevFileUploads,
|
|
@@ -678,7 +908,11 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
|
|
|
678
908
|
} = prevProps;
|
|
679
909
|
const {
|
|
680
910
|
additionalTextInputProps: nextAdditionalTextInputProps,
|
|
911
|
+
asyncMessagesLockDistance: nextAsyncMessagesLockDistance,
|
|
912
|
+
asyncMessagesMinimumPressDuration: nextAsyncMessagesMinimumPressDuration,
|
|
913
|
+
asyncMessagesSlideToCancelDistance: nextAsyncMessagesSlideToCancelDistance,
|
|
681
914
|
asyncUploads: nextAsyncUploads,
|
|
915
|
+
audioRecordingEnabled: nextAsyncMessagesEnabled,
|
|
682
916
|
disabled: nextDisabled,
|
|
683
917
|
editing: nextEditing,
|
|
684
918
|
fileUploads: nextFileUploads,
|
|
@@ -703,6 +937,21 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
|
|
|
703
937
|
prevAdditionalTextInputProps === nextAdditionalTextInputProps;
|
|
704
938
|
if (!additionalTextInputPropsEven) return false;
|
|
705
939
|
|
|
940
|
+
const asyncMessagesEnabledEqual = prevAsyncMessagesEnabled === nextAsyncMessagesEnabled;
|
|
941
|
+
if (!asyncMessagesEnabledEqual) return false;
|
|
942
|
+
|
|
943
|
+
const asyncMessagesLockDistanceEqual =
|
|
944
|
+
prevAsyncMessagesLockDistance === nextAsyncMessagesLockDistance;
|
|
945
|
+
if (!asyncMessagesLockDistanceEqual) return false;
|
|
946
|
+
|
|
947
|
+
const asyncMessagesMinimumPressDurationEqual =
|
|
948
|
+
prevAsyncMessagesMinimumPressDuration === nextAsyncMessagesMinimumPressDuration;
|
|
949
|
+
if (!asyncMessagesMinimumPressDurationEqual) return false;
|
|
950
|
+
|
|
951
|
+
const asyncMessagesSlideToCancelDistanceEqual =
|
|
952
|
+
prevAsyncMessagesSlideToCancelDistance === nextAsyncMessagesSlideToCancelDistance;
|
|
953
|
+
if (!asyncMessagesSlideToCancelDistanceEqual) return false;
|
|
954
|
+
|
|
706
955
|
const disabledEqual = prevDisabled === nextDisabled;
|
|
707
956
|
if (!disabledEqual) return false;
|
|
708
957
|
|
|
@@ -800,7 +1049,16 @@ export const MessageInput = <
|
|
|
800
1049
|
const {
|
|
801
1050
|
additionalTextInputProps,
|
|
802
1051
|
asyncIds,
|
|
1052
|
+
asyncMessagesLockDistance,
|
|
1053
|
+
asyncMessagesMinimumPressDuration,
|
|
1054
|
+
asyncMessagesSlideToCancelDistance,
|
|
803
1055
|
asyncUploads,
|
|
1056
|
+
AudioRecorder,
|
|
1057
|
+
audioRecordingEnabled,
|
|
1058
|
+
AudioRecordingInProgress,
|
|
1059
|
+
AudioRecordingLockIndicator,
|
|
1060
|
+
AudioRecordingPreview,
|
|
1061
|
+
AudioRecordingWaveform,
|
|
804
1062
|
clearEditingState,
|
|
805
1063
|
clearQuotedMessageState,
|
|
806
1064
|
closeAttachmentPicker,
|
|
@@ -834,6 +1092,8 @@ export const MessageInput = <
|
|
|
834
1092
|
setShowMoreOptions,
|
|
835
1093
|
showMoreOptions,
|
|
836
1094
|
ShowThreadMessageInChannelButton,
|
|
1095
|
+
StartAudioRecordingButton,
|
|
1096
|
+
text,
|
|
837
1097
|
uploadNewFile,
|
|
838
1098
|
uploadNewImage,
|
|
839
1099
|
} = useMessageInputContext<StreamChatGenerics>();
|
|
@@ -861,8 +1121,17 @@ export const MessageInput = <
|
|
|
861
1121
|
{...{
|
|
862
1122
|
additionalTextInputProps,
|
|
863
1123
|
asyncIds,
|
|
1124
|
+
asyncMessagesLockDistance,
|
|
1125
|
+
asyncMessagesMinimumPressDuration,
|
|
1126
|
+
asyncMessagesSlideToCancelDistance,
|
|
864
1127
|
asyncUploads,
|
|
865
1128
|
AttachmentPickerSelectionBar,
|
|
1129
|
+
AudioRecorder,
|
|
1130
|
+
audioRecordingEnabled,
|
|
1131
|
+
AudioRecordingInProgress,
|
|
1132
|
+
AudioRecordingLockIndicator,
|
|
1133
|
+
AudioRecordingPreview,
|
|
1134
|
+
AudioRecordingWaveform,
|
|
866
1135
|
AutoCompleteSuggestionHeader,
|
|
867
1136
|
AutoCompleteSuggestionItem,
|
|
868
1137
|
AutoCompleteSuggestionList,
|
|
@@ -903,8 +1172,10 @@ export const MessageInput = <
|
|
|
903
1172
|
setShowMoreOptions,
|
|
904
1173
|
showMoreOptions,
|
|
905
1174
|
ShowThreadMessageInChannelButton,
|
|
1175
|
+
StartAudioRecordingButton,
|
|
906
1176
|
suggestions,
|
|
907
1177
|
t,
|
|
1178
|
+
text,
|
|
908
1179
|
thread,
|
|
909
1180
|
threadList,
|
|
910
1181
|
triggerType,
|
|
@@ -39,9 +39,13 @@ const SendButtonWithContext = <
|
|
|
39
39
|
style={[sendButton]}
|
|
40
40
|
testID='send-button'
|
|
41
41
|
>
|
|
42
|
-
{giphyActive
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
{giphyActive ? (
|
|
43
|
+
<Search pathFill={disabled ? grey_gainsboro : accent_blue} {...searchIcon} />
|
|
44
|
+
) : disabled ? (
|
|
45
|
+
<SendRight fill={grey_gainsboro} size={32} {...sendRightIcon} />
|
|
46
|
+
) : (
|
|
47
|
+
<SendUp fill={accent_blue} size={32} {...sendUpIcon} />
|
|
48
|
+
)}
|
|
45
49
|
</Pressable>
|
|
46
50
|
);
|
|
47
51
|
};
|
|
@@ -107,7 +107,6 @@ describe('MessageInput', () => {
|
|
|
107
107
|
expect(queryByTestId('upload-file-touchable')).toBeTruthy();
|
|
108
108
|
expect(queryByTestId('take-photo-touchable')).toBeTruthy();
|
|
109
109
|
expect(queryByTestId('auto-complete-text-input')).toBeTruthy();
|
|
110
|
-
expect(queryByTestId('send-button')).toBeTruthy();
|
|
111
110
|
expect(queryByText('Editing Message')).toBeFalsy();
|
|
112
111
|
});
|
|
113
112
|
});
|