stream-chat-react 14.2.0 → 14.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -9
- package/dist/cjs/ReactPlayerWrapper.16cd6fed.js +24 -0
- package/dist/cjs/ReactPlayerWrapper.16cd6fed.js.map +1 -0
- package/dist/cjs/audioProcessing.22303d69.js +148 -0
- package/dist/cjs/audioProcessing.22303d69.js.map +1 -0
- package/dist/cjs/emojis.js +211 -226
- package/dist/cjs/emojis.js.map +1 -1
- package/dist/cjs/index.js +26216 -30901
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/mp3-encoder.js +30 -58
- package/dist/cjs/mp3-encoder.js.map +1 -1
- package/dist/cjs/useNotificationApi.9ffe5761.js +5516 -0
- package/dist/cjs/useNotificationApi.9ffe5761.js.map +1 -0
- package/dist/css/index.css +13 -0
- package/dist/css/index.css.map +1 -1
- package/dist/es/ReactPlayerWrapper.d2ae5941.mjs +22 -0
- package/dist/es/ReactPlayerWrapper.d2ae5941.mjs.map +1 -0
- package/dist/es/audioProcessing.766ca76c.mjs +107 -0
- package/dist/es/audioProcessing.766ca76c.mjs.map +1 -0
- package/dist/es/emojis.mjs +207 -205
- package/dist/es/emojis.mjs.map +1 -1
- package/dist/es/index.mjs +25961 -31232
- package/dist/es/index.mjs.map +1 -1
- package/dist/es/mp3-encoder.mjs +31 -38
- package/dist/es/mp3-encoder.mjs.map +1 -1
- package/dist/es/useNotificationApi.6fdc3ce7.mjs +4195 -0
- package/dist/es/useNotificationApi.6fdc3ce7.mjs.map +1 -0
- package/dist/types/a11y/a11yUtils.d.ts.map +1 -1
- package/dist/types/a11y/hooks/useAriaIdentifiers.d.ts.map +1 -1
- package/dist/types/a11y/hooks/useResolvedModalAriaProps.d.ts.map +1 -1
- package/dist/types/components/AIStateIndicator/AIStateIndicator.d.ts.map +1 -1
- package/dist/types/components/AIStateIndicator/hooks/useAIState.d.ts.map +1 -1
- package/dist/types/components/Accessibility/AriaLiveRegion.d.ts.map +1 -1
- package/dist/types/components/Accessibility/NotificationAnnouncer.d.ts.map +1 -1
- package/dist/types/components/Accessibility/hooks/useIncomingMessageAnnouncements.d.ts.map +1 -1
- package/dist/types/components/Accessibility/useAriaLiveAnnouncer.d.ts +0 -1
- package/dist/types/components/Accessibility/useAriaLiveAnnouncer.d.ts.map +1 -1
- package/dist/types/components/Attachment/Attachment.d.ts.map +1 -1
- package/dist/types/components/Attachment/AttachmentActions.d.ts +3 -1
- package/dist/types/components/Attachment/AttachmentActions.d.ts.map +1 -1
- package/dist/types/components/Attachment/AttachmentContainer.d.ts +1 -1
- package/dist/types/components/Attachment/AttachmentContainer.d.ts.map +1 -1
- package/dist/types/components/Attachment/Audio.d.ts.map +1 -1
- package/dist/types/components/Attachment/FileAttachment.d.ts.map +1 -1
- package/dist/types/components/Attachment/Geolocation.d.ts.map +1 -1
- package/dist/types/components/Attachment/Giphy.d.ts.map +1 -1
- package/dist/types/components/Attachment/Image.d.ts.map +1 -1
- package/dist/types/components/Attachment/LinkPreview/Card.d.ts +3 -1
- package/dist/types/components/Attachment/LinkPreview/Card.d.ts.map +1 -1
- package/dist/types/components/Attachment/LinkPreview/CardAudio.d.ts.map +1 -1
- package/dist/types/components/Attachment/LinkPreview/UnableToRenderCard.d.ts +1 -1
- package/dist/types/components/Attachment/LinkPreview/UnableToRenderCard.d.ts.map +1 -1
- package/dist/types/components/Attachment/ModalGallery.d.ts.map +1 -1
- package/dist/types/components/Attachment/VideoAttachment.d.ts.map +1 -1
- package/dist/types/components/Attachment/VoiceRecording.d.ts.map +1 -1
- package/dist/types/components/Attachment/attachment-sizing.d.ts.map +1 -1
- package/dist/types/components/Attachment/audioSampling.d.ts.map +1 -1
- package/dist/types/components/Attachment/components/DownloadButton.d.ts.map +1 -1
- package/dist/types/components/Attachment/components/FileSizeIndicator.d.ts.map +1 -1
- package/dist/types/components/Attachment/icons.d.ts.map +1 -1
- package/dist/types/components/Attachment/utils.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/AudioPlayer.d.ts +1 -2
- package/dist/types/components/AudioPlayback/AudioPlayer.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/AudioPlayerPool.d.ts +1 -1
- package/dist/types/components/AudioPlayback/AudioPlayerPool.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/WithAudioPlayback.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/components/PlaybackRateButton.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/components/ProgressBar.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/components/WaveProgressBar.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/components/formatTime.d.ts +1 -1
- package/dist/types/components/AudioPlayback/components/formatTime.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/components/keyboardSeek.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/components/progressBarA11y.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/components/useInteractiveProgressBar.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/plugins/AudioPlayerNotificationsPlugin.d.ts.map +1 -1
- package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/types/components/Avatar/ChannelAvatar.d.ts.map +1 -1
- package/dist/types/components/Avatar/GroupAvatar.d.ts.map +1 -1
- package/dist/types/components/Badge/Badge.d.ts +1 -1
- package/dist/types/components/Badge/Badge.d.ts.map +1 -1
- package/dist/types/components/Badge/MediaBadge.d.ts.map +1 -1
- package/dist/types/components/BaseImage/ImagePlaceholder.d.ts.map +1 -1
- package/dist/types/components/BaseImage/toBaseImageDescriptors.d.ts.map +1 -1
- package/dist/types/components/Button/PlayButton.d.ts.map +1 -1
- package/dist/types/components/Channel/Channel.d.ts +3 -1
- package/dist/types/components/Channel/Channel.d.ts.map +1 -1
- package/dist/types/components/Channel/channelState.d.ts.map +1 -1
- package/dist/types/components/Channel/hooks/useChannelContainerClasses.d.ts +1 -1
- package/dist/types/components/Channel/hooks/useChannelContainerClasses.d.ts.map +1 -1
- package/dist/types/components/Channel/hooks/useCreateChannelStateContext.d.ts +1 -1
- package/dist/types/components/Channel/hooks/useCreateChannelStateContext.d.ts.map +1 -1
- package/dist/types/components/Channel/hooks/useCreateTypingContext.d.ts.map +1 -1
- package/dist/types/components/Channel/hooks/useEditMessageHandler.d.ts.map +1 -1
- package/dist/types/components/Channel/hooks/useIsMounted.d.ts +0 -1
- package/dist/types/components/Channel/hooks/useIsMounted.d.ts.map +1 -1
- package/dist/types/components/Channel/hooks/useMentionsHandlers.d.ts.map +1 -1
- package/dist/types/components/Channel/utils.d.ts +2 -2
- package/dist/types/components/Channel/utils.d.ts.map +1 -1
- package/dist/types/components/ChannelHeader/ChannelHeader.d.ts.map +1 -1
- package/dist/types/components/ChannelList/ChannelList.d.ts +3 -1
- package/dist/types/components/ChannelList/ChannelList.d.ts.map +1 -1
- package/dist/types/components/ChannelList/ChannelListUI.d.ts.map +1 -1
- package/dist/types/components/ChannelList/hooks/useChannelListShape.d.ts.map +1 -1
- package/dist/types/components/ChannelList/hooks/useConnectionRecoveredListener.d.ts.map +1 -1
- package/dist/types/components/ChannelList/hooks/usePaginatedChannels.d.ts +12 -2
- package/dist/types/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
- package/dist/types/components/ChannelList/utils.d.ts +3 -3
- package/dist/types/components/ChannelList/utils.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/ChannelListItem.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/ChannelListItemActionButtons.defaults.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/ChannelListItemUI.d.ts +3 -1
- package/dist/types/components/ChannelListItem/ChannelListItemUI.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/hooks/useChannelDisplayName.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/hooks/useChannelPreviewInfo.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/hooks/useIsChannelMuted.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/hooks/useMessageDeliveryStatus.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/utils.d.ts +2 -2
- package/dist/types/components/ChannelListItem/utils.d.ts.map +1 -1
- package/dist/types/components/Chat/Chat.d.ts +3 -0
- package/dist/types/components/Chat/Chat.d.ts.map +1 -1
- package/dist/types/components/Chat/hooks/useChat.d.ts.map +1 -1
- package/dist/types/components/Chat/hooks/useCreateChatClient.d.ts.map +1 -1
- package/dist/types/components/Chat/hooks/useCreateChatContext.d.ts.map +1 -1
- package/dist/types/components/Chat/hooks/useSplitActionSet.d.ts +6 -6
- package/dist/types/components/Chat/hooks/useSplitActionSet.d.ts.map +1 -1
- package/dist/types/components/ChatView/ChatView.a11y.utility.d.ts.map +1 -1
- package/dist/types/components/ChatView/ChatView.d.ts.map +1 -1
- package/dist/types/components/DateSeparator/DateSeparator.d.ts +3 -1
- package/dist/types/components/DateSeparator/DateSeparator.d.ts.map +1 -1
- package/dist/types/components/Dialog/components/Callout.d.ts.map +1 -1
- package/dist/types/components/Dialog/components/ContextMenu.d.ts +3 -3
- package/dist/types/components/Dialog/components/ContextMenu.d.ts.map +1 -1
- package/dist/types/components/Dialog/components/Prompt.d.ts +1 -1
- package/dist/types/components/Dialog/components/Prompt.d.ts.map +1 -1
- package/dist/types/components/Dialog/components/Viewer.d.ts +1 -1
- package/dist/types/components/Dialog/components/Viewer.d.ts.map +1 -1
- package/dist/types/components/Dialog/hooks/useDialog.d.ts +8 -6
- package/dist/types/components/Dialog/hooks/useDialog.d.ts.map +1 -1
- package/dist/types/components/Dialog/hooks/usePopoverPosition.d.ts +5 -6
- package/dist/types/components/Dialog/hooks/usePopoverPosition.d.ts.map +1 -1
- package/dist/types/components/Dialog/service/DialogAnchor.d.ts.map +1 -1
- package/dist/types/components/Dialog/service/DialogManager.d.ts +1 -1
- package/dist/types/components/Dialog/service/DialogManager.d.ts.map +1 -1
- package/dist/types/components/Dialog/service/DialogPortal.d.ts.map +1 -1
- package/dist/types/components/DragAndDrop/DragAndDropContainer.d.ts.map +1 -1
- package/dist/types/components/EmptyStateIndicator/EmptyStateIndicator.d.ts +3 -1
- package/dist/types/components/EmptyStateIndicator/EmptyStateIndicator.d.ts.map +1 -1
- package/dist/types/components/EventComponent/EventComponent.d.ts +6 -1
- package/dist/types/components/EventComponent/EventComponent.d.ts.map +1 -1
- package/dist/types/components/FileIcon/FileIcon.d.ts.map +1 -1
- package/dist/types/components/FileIcon/FileIconSet.d.ts.map +1 -1
- package/dist/types/components/Form/Dropdown.d.ts.map +1 -1
- package/dist/types/components/Form/FieldError.d.ts.map +1 -1
- package/dist/types/components/Form/SwitchField.d.ts.map +1 -1
- package/dist/types/components/Form/TextInputFieldSet.d.ts.map +1 -1
- package/dist/types/components/Gallery/Gallery.d.ts.map +1 -1
- package/dist/types/components/Gallery/GalleryContext.d.ts +2 -4
- package/dist/types/components/Gallery/GalleryContext.d.ts.map +1 -1
- package/dist/types/components/Gallery/GalleryHeader.d.ts.map +1 -1
- package/dist/types/components/Icons/BaseIcon.d.ts.map +1 -1
- package/dist/types/components/InfiniteScrollPaginator/InfiniteScroll.d.ts.map +1 -1
- package/dist/types/components/InfiniteScrollPaginator/InfiniteScrollPaginator.d.ts.map +1 -1
- package/dist/types/components/InfiniteScrollPaginator/hooks/useCursorPaginator.d.ts.map +1 -1
- package/dist/types/components/LoadMore/LoadMoreButton.d.ts +3 -1
- package/dist/types/components/LoadMore/LoadMoreButton.d.ts.map +1 -1
- package/dist/types/components/LoadMore/LoadMorePaginator.d.ts +1 -1
- package/dist/types/components/LoadMore/LoadMorePaginator.d.ts.map +1 -1
- package/dist/types/components/Loading/LoadingErrorIndicator.d.ts +6 -1
- package/dist/types/components/Loading/LoadingErrorIndicator.d.ts.map +1 -1
- package/dist/types/components/Loading/LoadingIndicator.d.ts.map +1 -1
- package/dist/types/components/Loading/UploadProgressIndicator.d.ts.map +1 -1
- package/dist/types/components/Loading/UploadedSizeIndicator.d.ts.map +1 -1
- package/dist/types/components/Loading/progress-indicators.d.ts.map +1 -1
- package/dist/types/components/Location/ShareLocationDialog.d.ts.map +1 -1
- package/dist/types/components/Location/hooks/useLiveLocationSharingManager.d.ts +1 -1
- package/dist/types/components/Location/hooks/useLiveLocationSharingManager.d.ts.map +1 -1
- package/dist/types/components/MediaRecorder/AudioRecorder/AudioRecordingPlayback.d.ts +1 -1
- package/dist/types/components/MediaRecorder/AudioRecorder/AudioRecordingPlayback.d.ts.map +1 -1
- package/dist/types/components/MediaRecorder/AudioRecorder/RecordingTimer.d.ts.map +1 -1
- package/dist/types/components/MediaRecorder/AudioRecorder/hooks/useTimeElapsed.d.ts.map +1 -1
- package/dist/types/components/MediaRecorder/AudioRecorder/recordingStateIdentity.d.ts +3 -3
- package/dist/types/components/MediaRecorder/AudioRecorder/recordingStateIdentity.d.ts.map +1 -1
- package/dist/types/components/MediaRecorder/RecordingPermissionDeniedNotification.d.ts.map +1 -1
- package/dist/types/components/MediaRecorder/classes/MediaRecorderController.d.ts +1 -1
- package/dist/types/components/MediaRecorder/classes/MediaRecorderController.d.ts.map +1 -1
- package/dist/types/components/MediaRecorder/hooks/useMediaRecorder.d.ts.map +1 -1
- package/dist/types/components/MediaRecorder/transcode/audioProcessing.d.ts.map +1 -1
- package/dist/types/components/MediaRecorder/transcode/index.d.ts.map +1 -1
- package/dist/types/components/MediaRecorder/transcode/wav.d.ts.map +1 -1
- package/dist/types/components/Message/Message.d.ts.map +1 -1
- package/dist/types/components/Message/MessageBubble.d.ts +1 -1
- package/dist/types/components/Message/MessageBubble.d.ts.map +1 -1
- package/dist/types/components/Message/MessageEditedIndicator.d.ts +3 -1
- package/dist/types/components/Message/MessageEditedIndicator.d.ts.map +1 -1
- package/dist/types/components/Message/MessageRepliesCountButton.d.ts.map +1 -1
- package/dist/types/components/Message/MessageStatus.d.ts +3 -1
- package/dist/types/components/Message/MessageStatus.d.ts.map +1 -1
- package/dist/types/components/Message/MessageText.d.ts +3 -1
- package/dist/types/components/Message/MessageText.d.ts.map +1 -1
- package/dist/types/components/Message/MessageTimestamp.d.ts +3 -1
- package/dist/types/components/Message/MessageTimestamp.d.ts.map +1 -1
- package/dist/types/components/Message/MessageTranslationIndicator.d.ts.map +1 -1
- package/dist/types/components/Message/MessageUI.d.ts.map +1 -1
- package/dist/types/components/Message/PinIndicator.d.ts.map +1 -1
- package/dist/types/components/Message/QuotedMessage.d.ts.map +1 -1
- package/dist/types/components/Message/ReminderNotification.d.ts.map +1 -1
- package/dist/types/components/Message/StreamedMessageText.d.ts.map +1 -1
- package/dist/types/components/Message/emojiRegex.d.ts +15 -0
- package/dist/types/components/Message/emojiRegex.d.ts.map +1 -0
- package/dist/types/components/Message/hooks/useDeleteHandler.d.ts +1 -1
- package/dist/types/components/Message/hooks/useDeleteHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useFlagHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useMarkUnreadHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useMentionsHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useMessageReminder.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useMessageTextStreaming.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useMuteHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useOpenThreadHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/usePinHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useReactionHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useRetryHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useUserHandler.d.ts +0 -1
- package/dist/types/components/Message/hooks/useUserHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useUserRole.d.ts.map +1 -1
- package/dist/types/components/Message/renderText/componentRenderers/Anchor.d.ts +1 -1
- package/dist/types/components/Message/renderText/componentRenderers/Anchor.d.ts.map +1 -1
- package/dist/types/components/Message/renderText/componentRenderers/Emoji.d.ts.map +1 -1
- package/dist/types/components/Message/renderText/componentRenderers/Mention.d.ts.map +1 -1
- package/dist/types/components/Message/renderText/regex.d.ts.map +1 -1
- package/dist/types/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.d.ts +1 -1
- package/dist/types/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.d.ts.map +1 -1
- package/dist/types/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.d.ts +1 -1
- package/dist/types/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.d.ts.map +1 -1
- package/dist/types/components/Message/renderText/remarkPlugins/htmlToTextPlugin.d.ts +3 -1
- package/dist/types/components/Message/renderText/remarkPlugins/htmlToTextPlugin.d.ts.map +1 -1
- package/dist/types/components/Message/renderText/remarkPlugins/imageToLink.d.ts.map +1 -1
- package/dist/types/components/Message/renderText/renderText.d.ts +1 -1
- package/dist/types/components/Message/renderText/renderText.d.ts.map +1 -1
- package/dist/types/components/Message/utils.d.ts +5 -5
- package/dist/types/components/Message/utils.d.ts.map +1 -1
- package/dist/types/components/MessageActions/DeleteMessageAlert.d.ts.map +1 -1
- package/dist/types/components/MessageActions/DownloadSubmenu.d.ts +3 -0
- package/dist/types/components/MessageActions/DownloadSubmenu.d.ts.map +1 -0
- package/dist/types/components/MessageActions/MessageActions.defaults.d.ts.map +1 -1
- package/dist/types/components/MessageActions/QuickMessageActionButton.d.ts +2 -1
- package/dist/types/components/MessageActions/QuickMessageActionButton.d.ts.map +1 -1
- package/dist/types/components/MessageActions/downloadUtils.d.ts.map +1 -1
- package/dist/types/components/MessageActions/hooks/useBaseMessageActionSetFilter.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/AttachmentPreviewList.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/AttachmentUploadedSizeIndicator.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/AudioAttachmentPreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/FileAttachmentPreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/GeolocationPreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/MediaAttachmentPreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/UnsupportedAttachmentPreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/VoiceRecordingPreviewSlot.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/utils/AttachmentPreviewRoot.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentSelector/AttachmentSelector.d.ts +6 -6
- package/dist/types/components/MessageComposer/AttachmentSelector/AttachmentSelector.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentSelector/CommandsMenu.d.ts +1 -1
- package/dist/types/components/MessageComposer/AttachmentSelector/CommandsMenu.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/CommandChip.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/EditedMessagePreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/LinkPreviewList.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/MessageComposer.d.ts +3 -1
- package/dist/types/components/MessageComposer/MessageComposer.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/QuotedMessageIndicator.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/QuotedMessagePreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/RemoveAttachmentPreviewButton.d.ts +1 -1
- package/dist/types/components/MessageComposer/RemoveAttachmentPreviewButton.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/SendButton.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/StopAIGenerationButton.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/WithDragAndDropUpload.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/useAttachmentsForPreview.d.ts +7 -7
- package/dist/types/components/MessageComposer/hooks/useCreateMessageComposerContext.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/useMessageComposerBindings.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/usePasteHandler.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/useSubmitHandler.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/useTextareaRef.d.ts +0 -1
- package/dist/types/components/MessageComposer/hooks/useTextareaRef.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/preEditSnapshot.d.ts.map +1 -1
- package/dist/types/components/MessageList/CustomNotification.d.ts +3 -1
- package/dist/types/components/MessageList/CustomNotification.d.ts.map +1 -1
- package/dist/types/components/MessageList/FloatingDateSeparator.d.ts.map +1 -1
- package/dist/types/components/MessageList/GiphyPreviewMessage.d.ts.map +1 -1
- package/dist/types/components/MessageList/MessageList.d.ts.map +1 -1
- package/dist/types/components/MessageList/MessageListMainPanel.d.ts.map +1 -1
- package/dist/types/components/MessageList/NewMessageNotification.d.ts +3 -1
- package/dist/types/components/MessageList/NewMessageNotification.d.ts.map +1 -1
- package/dist/types/components/MessageList/ScrollToLatestMessageButton.d.ts +3 -1
- package/dist/types/components/MessageList/ScrollToLatestMessageButton.d.ts.map +1 -1
- package/dist/types/components/MessageList/UnreadMessagesNotification.d.ts.map +1 -1
- package/dist/types/components/MessageList/UnreadMessagesSeparator.d.ts.map +1 -1
- package/dist/types/components/MessageList/VirtualizedMessageListComponents.d.ts +1 -2
- package/dist/types/components/MessageList/VirtualizedMessageListComponents.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/MessageList/scrollInstrumentation.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts +1 -1
- package/dist/types/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/MessageList/useFloatingDateSeparatorMessageList.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/MessageList/useMessageListElements.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/MessageList/useMessageListScrollManager.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/MessageList/useScrollLocationLogic.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/VirtualizedMessageList/useFloatingDateSeparator.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.d.ts +0 -1
- package/dist/types/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.d.ts +0 -1
- package/dist/types/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/useLastDeliveredData.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/useLastOwnMessage.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/useLastReadData.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/useMarkRead.d.ts.map +1 -1
- package/dist/types/components/MessageList/utils.d.ts +0 -1
- package/dist/types/components/MessageList/utils.d.ts.map +1 -1
- package/dist/types/components/Modal/CloseButtonOnModalOverlay.d.ts +1 -1
- package/dist/types/components/Modal/CloseButtonOnModalOverlay.d.ts.map +1 -1
- package/dist/types/components/Modal/GlobalModal.d.ts +3 -1
- package/dist/types/components/Modal/GlobalModal.d.ts.map +1 -1
- package/dist/types/components/Notifications/NotificationConfigurationContext.d.ts +24 -0
- package/dist/types/components/Notifications/NotificationConfigurationContext.d.ts.map +1 -0
- package/dist/types/components/Notifications/NotificationList.d.ts +58 -1
- package/dist/types/components/Notifications/NotificationList.d.ts.map +1 -1
- package/dist/types/components/Notifications/hooks/useNotificationApi.d.ts.map +1 -1
- package/dist/types/components/Notifications/hooks/useNotifications.d.ts +5 -0
- package/dist/types/components/Notifications/hooks/useNotifications.d.ts.map +1 -1
- package/dist/types/components/Notifications/hooks/useSystemNotifications.d.ts.map +1 -1
- package/dist/types/components/Notifications/index.d.ts +1 -0
- package/dist/types/components/Notifications/index.d.ts.map +1 -1
- package/dist/types/components/Notifications/notificationTarget.d.ts +3 -3
- package/dist/types/components/Notifications/notificationTarget.d.ts.map +1 -1
- package/dist/types/components/Poll/Poll.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/AddCommentPrompt.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/PollAction.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/PollActions.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/PollAnswerList.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/PollQuestion.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/PollResults/PollOptionWithVotes.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/PollResults/PollOptionWithVotesList.d.ts.map +1 -1
- package/dist/types/components/Poll/PollCreationDialog/PollCreationDialog.d.ts.map +1 -1
- package/dist/types/components/Poll/PollCreationDialog/PollCreationDialogControls.d.ts.map +1 -1
- package/dist/types/components/Poll/PollHeader.d.ts +1 -1
- package/dist/types/components/Poll/PollHeader.d.ts.map +1 -1
- package/dist/types/components/Poll/PollOptionList.d.ts.map +1 -1
- package/dist/types/components/Poll/PollOptionSelector.d.ts.map +1 -1
- package/dist/types/components/Poll/PollVote.d.ts.map +1 -1
- package/dist/types/components/Poll/constants.d.ts.map +1 -1
- package/dist/types/components/Poll/hooks/usePollAnswerPagination.d.ts.map +1 -1
- package/dist/types/components/Poll/hooks/usePollOptionVotesPagination.d.ts.map +1 -1
- package/dist/types/components/Portal/Portal.d.ts.map +1 -1
- package/dist/types/components/ReactFileUtilities/LoadingIndicator.d.ts.map +1 -1
- package/dist/types/components/ReactFileUtilities/utils.d.ts.map +1 -1
- package/dist/types/components/Reactions/MessageReactions.d.ts +3 -1
- package/dist/types/components/Reactions/MessageReactions.d.ts.map +1 -1
- package/dist/types/components/Reactions/MessageReactionsDetail.d.ts.map +1 -1
- package/dist/types/components/Reactions/ReactionSelector.d.ts.map +1 -1
- package/dist/types/components/Reactions/ReactionSelectorWithButton.d.ts.map +1 -1
- package/dist/types/components/Reactions/SpriteImage.d.ts.map +1 -1
- package/dist/types/components/Reactions/hooks/useProcessReactions.d.ts.map +1 -1
- package/dist/types/components/Reactions/reactionOptions.d.ts +11 -1
- package/dist/types/components/Reactions/reactionOptions.d.ts.map +1 -1
- package/dist/types/components/Reactions/utils/utils.d.ts.map +1 -1
- package/dist/types/components/SafeAnchor/SafeAnchor.d.ts +3 -1
- package/dist/types/components/SafeAnchor/SafeAnchor.d.ts.map +1 -1
- package/dist/types/components/Search/Search.d.ts.map +1 -1
- package/dist/types/components/Search/SearchBar/SearchBar.d.ts.map +1 -1
- package/dist/types/components/Search/SearchContext.d.ts.map +1 -1
- package/dist/types/components/Search/SearchResults/SearchResultItem.d.ts +1 -1
- package/dist/types/components/Search/SearchResults/SearchResultItem.d.ts.map +1 -1
- package/dist/types/components/Search/SearchResults/SearchSourceResultList.d.ts.map +1 -1
- package/dist/types/components/Search/SearchResults/SearchSourceResults.d.ts.map +1 -1
- package/dist/types/components/Search/SearchSourceResultsContext.d.ts.map +1 -1
- package/dist/types/components/Search/hooks/useSearchQueriesInProgress.d.ts.map +1 -1
- package/dist/types/components/SkipNavigation/SkipNavigation.d.ts.map +1 -1
- package/dist/types/components/SummarizedMessagePreview/SummarizedMessagePreview.d.ts.map +1 -1
- package/dist/types/components/SummarizedMessagePreview/hooks/useLatestMessagePreview.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/SuggestionList/CommandItem.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/SuggestionList/EmoticonItem.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/SuggestionList/SuggestionList.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/SuggestionList/SuggestionListItem.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/SuggestionList/UserItem.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/TextareaComposer.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/hooks/useTextareaPlaceholder.d.ts.map +1 -1
- package/dist/types/components/Thread/Thread.d.ts.map +1 -1
- package/dist/types/components/Thread/ThreadHead.d.ts.map +1 -1
- package/dist/types/components/Thread/ThreadHeader.d.ts.map +1 -1
- package/dist/types/components/Threads/ThreadContext.d.ts.map +1 -1
- package/dist/types/components/Threads/ThreadList/ThreadList.d.ts.map +1 -1
- package/dist/types/components/Threads/ThreadList/ThreadListItem.d.ts.map +1 -1
- package/dist/types/components/Threads/ThreadList/ThreadListItemUI.d.ts.map +1 -1
- package/dist/types/components/Threads/UnreadCountBadge.d.ts +1 -1
- package/dist/types/components/Threads/UnreadCountBadge.d.ts.map +1 -1
- package/dist/types/components/Threads/hooks/useThreadManagerState.d.ts.map +1 -1
- package/dist/types/components/Threads/hooks/useThreadState.d.ts.map +1 -1
- package/dist/types/components/Tooltip/Tooltip.d.ts +1 -1
- package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/types/components/Tooltip/hooks/useEnterLeaveHandlers.d.ts +1 -1
- package/dist/types/components/Tooltip/hooks/useEnterLeaveHandlers.d.ts.map +1 -1
- package/dist/types/components/TypingIndicator/TypingIndicator.d.ts +8 -1
- package/dist/types/components/TypingIndicator/TypingIndicator.d.ts.map +1 -1
- package/dist/types/components/TypingIndicator/TypingIndicatorHeader.d.ts.map +1 -1
- package/dist/types/components/TypingIndicator/utils/getTypingStatusMessage.d.ts.map +1 -1
- package/dist/types/components/UtilityComponents/useStableId.d.ts +7 -3
- package/dist/types/components/UtilityComponents/useStableId.d.ts.map +1 -1
- package/dist/types/components/VideoPlayer/ReactPlayerWrapper.d.ts +9 -0
- package/dist/types/components/VideoPlayer/ReactPlayerWrapper.d.ts.map +1 -0
- package/dist/types/components/VideoPlayer/VideoPlayer.d.ts.map +1 -1
- package/dist/types/components/VideoPlayer/VideoThumbnail.d.ts.map +1 -1
- package/dist/types/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
- package/dist/types/components/Window/Window.d.ts +3 -1
- package/dist/types/components/Window/Window.d.ts.map +1 -1
- package/dist/types/context/AttachmentSelectorContext.d.ts.map +1 -1
- package/dist/types/context/ChannelActionContext.d.ts.map +1 -1
- package/dist/types/context/ChannelListContext.d.ts.map +1 -1
- package/dist/types/context/ChannelStateContext.d.ts.map +1 -1
- package/dist/types/context/ChatContext.d.ts.map +1 -1
- package/dist/types/context/ComponentContext.d.ts +5 -1
- package/dist/types/context/ComponentContext.d.ts.map +1 -1
- package/dist/types/context/DialogManagerContext.d.ts.map +1 -1
- package/dist/types/context/MessageComposerContext.d.ts.map +1 -1
- package/dist/types/context/MessageContext.d.ts.map +1 -1
- package/dist/types/context/MessageListContext.d.ts.map +1 -1
- package/dist/types/context/MessageTranslationViewContext.d.ts.map +1 -1
- package/dist/types/context/ModalContext.d.ts.map +1 -1
- package/dist/types/context/PollContext.d.ts.map +1 -1
- package/dist/types/context/TranslationContext.d.ts.map +1 -1
- package/dist/types/context/TypingContext.d.ts.map +1 -1
- package/dist/types/context/VirtualizedMessageListContext.d.ts.map +1 -1
- package/dist/types/i18n/Streami18n.d.ts +3 -3
- package/dist/types/i18n/Streami18n.d.ts.map +1 -1
- package/dist/types/i18n/TranslationBuilder/TranslationBuilder.d.ts.map +1 -1
- package/dist/types/i18n/TranslationBuilder/notifications/NotificationTranslationTopic.d.ts.map +1 -1
- package/dist/types/i18n/utils.d.ts +2 -2
- package/dist/types/i18n/utils.d.ts.map +1 -1
- package/dist/types/plugins/Emojis/EmojiPicker.d.ts.map +1 -1
- package/dist/types/plugins/Emojis/middleware/textComposerEmojiMiddleware.d.ts.map +1 -1
- package/dist/types/utils/findReverse.d.ts.map +1 -1
- package/dist/types/utils/getChannel.d.ts.map +1 -1
- package/dist/types/utils/getTextareaCaretRect.d.ts.map +1 -1
- package/dist/types/utils/getWholeChar.d.ts.map +1 -1
- package/dist/types/utils/mergeDeep.d.ts.map +1 -1
- package/dist/types/utils/useStableCallback.d.ts.map +1 -1
- package/package.json +85 -67
- package/dist/cjs/audioProcessing.56e5db9d.js +0 -123
- package/dist/cjs/audioProcessing.56e5db9d.js.map +0 -1
- package/dist/cjs/useNotificationApi.f2c7704d.js +0 -4855
- package/dist/cjs/useNotificationApi.f2c7704d.js.map +0 -1
- package/dist/es/audioProcessing.21cb49e1.mjs +0 -124
- package/dist/es/audioProcessing.21cb49e1.mjs.map +0 -1
- package/dist/es/useNotificationApi.f91ae46b.mjs +0 -4839
- package/dist/es/useNotificationApi.f91ae46b.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -54,26 +54,26 @@ For complete pricing and details visit our [Chat Pricing Page](https://getstream
|
|
|
54
54
|
|
|
55
55
|
## Example Applications
|
|
56
56
|
|
|
57
|
-
We have built
|
|
57
|
+
We have built demo applications showcasing a variety of chat use cases, including social messaging, team collaboration, customer support, livestream gaming, and virtual events. You can preview these [demos](https://getstream.io/chat/demos/) on our website.
|
|
58
58
|
|
|
59
59
|
## Documentation
|
|
60
60
|
|
|
61
61
|
We use a doc generator to build our [component documentation](https://getstream.io/chat/docs/sdk/react/). We provide a brief description of each chat component and define all of the props it accepts.
|
|
62
62
|
|
|
63
|
-
The React components are created using the [stream-chat](https://github.com/getstream/stream-chat-js) library. If you're customizing the components,
|
|
63
|
+
The React components are created using the [stream-chat](https://github.com/getstream/stream-chat-js) library. If you're customizing the components, you'll likely need to make additional calls to our Chat API using our JavaScript client, which has [documentation](https://getstream.io/chat/docs/javascript/) on our website.
|
|
64
64
|
|
|
65
65
|
## Component Reusability
|
|
66
66
|
|
|
67
|
-
For components that implement significant logic, it's helpful to split the component into two parts: a top-level component
|
|
67
|
+
For components that implement significant logic, it's helpful to split the component into two parts: a top-level component that handles functionality and a lower-level component that renders the UI. This way, you can swap UI without altering the logic that gives the component its functionality. We use this provider/consumer pattern frequently in the library, and the below example shows how to swap out the `Message` UI component with `CustomMessageUI` (using `WithComponents`), without affecting any logic in the application.
|
|
68
68
|
|
|
69
69
|
```jsx
|
|
70
70
|
<Channel>
|
|
71
71
|
<Window>
|
|
72
72
|
<ChannelHeader />
|
|
73
|
-
<WithComponents overrides={{
|
|
73
|
+
<WithComponents overrides={{ MessageUI: CustomMessageUI }}>
|
|
74
74
|
<MessageList />
|
|
75
75
|
</WithComponents>
|
|
76
|
-
<
|
|
76
|
+
<MessageComposer />
|
|
77
77
|
</Window>
|
|
78
78
|
<Thread />
|
|
79
79
|
</Channel>
|
|
@@ -81,14 +81,12 @@ For components that implement significant logic, it's helpful to split the compo
|
|
|
81
81
|
|
|
82
82
|
### Customizing Styles
|
|
83
83
|
|
|
84
|
-
The preferred method for overriding the pre-defined styles in the library is
|
|
84
|
+
The preferred method for overriding the pre-defined styles in the library is a two-step process. First, import our bundled CSS into your main CSS file (or CSS file loaded with your chat application). Second, locate any Stream styles you want to override using either the browser inspector or by viewing the library code. You can then add selectors to your local CSS file to override our defaults (ideally within the stream-overrides layer). Layers (when ordered correctly, see example) ensure that your overrides take precedence even if your overriding selectors are less specific. For example:
|
|
85
85
|
|
|
86
86
|
```css title="index.css"
|
|
87
87
|
@layer stream, stream-overrides;
|
|
88
88
|
|
|
89
|
-
@import 'stream-chat-react/css/
|
|
90
|
-
/* or */
|
|
91
|
-
@import 'stream-chat-react/dist/css/v2/index.css' layer(stream);
|
|
89
|
+
@import 'stream-chat-react/css/index.css' layer(stream);
|
|
92
90
|
|
|
93
91
|
@layer stream-overrides {
|
|
94
92
|
/* your overrides */
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const require_useNotificationApi = require("./useNotificationApi.9ffe5761.js");
|
|
2
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
3
|
+
let react_player = require("react-player");
|
|
4
|
+
react_player = require_useNotificationApi.__toESM(react_player);
|
|
5
|
+
//#region src/components/VideoPlayer/ReactPlayerWrapper.tsx
|
|
6
|
+
var ReactPlayer = react_player.default.default ?? react_player.default;
|
|
7
|
+
/**
|
|
8
|
+
* Default-exported so `VideoPlayer` can code-split it via `React.lazy`, keeping
|
|
9
|
+
* `react-player` (~2 MB) out of the SDK's eager import graph — it is fetched
|
|
10
|
+
* only when a default video player actually renders.
|
|
11
|
+
*/
|
|
12
|
+
var ReactPlayerWrapper = ({ isPlaying, thumbnailUrl, videoUrl }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ReactPlayer, {
|
|
13
|
+
className: "react-player",
|
|
14
|
+
config: { file: { attributes: { poster: thumbnailUrl } } },
|
|
15
|
+
controls: true,
|
|
16
|
+
height: "100%",
|
|
17
|
+
playing: isPlaying,
|
|
18
|
+
url: videoUrl,
|
|
19
|
+
width: "100%"
|
|
20
|
+
});
|
|
21
|
+
//#endregion
|
|
22
|
+
exports.default = ReactPlayerWrapper;
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=ReactPlayerWrapper.16cd6fed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReactPlayerWrapper.16cd6fed.js","names":[],"sources":["../../src/components/VideoPlayer/ReactPlayerWrapper.tsx"],"sourcesContent":["import ReactPlayerImport from 'react-player';\n\nimport type { VideoPlayerProps } from './VideoPlayer';\n\n// react-player ships as CJS with the component on `exports.default`. Some\n// bundler/interop setups (e.g. Vite serving our built ESM as a linked workspace\n// dependency) hand back the module namespace `{ default }` instead of the\n// component itself, which makes React throw \"Element type is invalid ... got:\n// object\". Unwrap the default defensively so it works regardless of interop.\nconst ReactPlayer =\n (ReactPlayerImport as unknown as { default?: typeof ReactPlayerImport }).default ??\n ReactPlayerImport;\n\n/**\n * Default-exported so `VideoPlayer` can code-split it via `React.lazy`, keeping\n * `react-player` (~2 MB) out of the SDK's eager import graph — it is fetched\n * only when a default video player actually renders.\n */\nconst ReactPlayerWrapper = ({ isPlaying, thumbnailUrl, videoUrl }: VideoPlayerProps) => (\n <ReactPlayer\n className='react-player'\n config={{ file: { attributes: { poster: thumbnailUrl } } }}\n controls\n height='100%'\n playing={isPlaying}\n url={videoUrl}\n width='100%'\n />\n);\n\nexport default ReactPlayerWrapper;\n"],"mappings":";;;;;AASA,IAAM,cACH,aAAA,QAAwE,WACzE,aAAA;;;;;;AAOF,IAAM,sBAAsB,EAAE,WAAW,cAAc,eACrD,iBAAA,GAAA,kBAAA,KAAC,aAAD;CACE,WAAU;CACV,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,aAAa,EAAE,EAAE;CACzD,UAAA;CACA,QAAO;CACP,SAAS;CACT,KAAK;CACL,OAAM;AACP,CAAA"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
let react = require("react");
|
|
2
|
+
//#region src/components/ReactFileUtilities/utils.ts
|
|
3
|
+
var useHandleFileChangeWrapper = (resetOnChange = false, handler) => (0, react.useCallback)(({ currentTarget }) => {
|
|
4
|
+
const { files } = currentTarget;
|
|
5
|
+
if (!files) return;
|
|
6
|
+
try {
|
|
7
|
+
handler?.(Array.from(files));
|
|
8
|
+
} catch (error) {
|
|
9
|
+
console.error(error);
|
|
10
|
+
}
|
|
11
|
+
if (resetOnChange) currentTarget.value = "";
|
|
12
|
+
}, [handler, resetOnChange]);
|
|
13
|
+
async function dataTransferItemsToFiles(items) {
|
|
14
|
+
if (!items || !items.length) return [];
|
|
15
|
+
const fileLikes = getFileLikes(items);
|
|
16
|
+
if (fileLikes.length) return fileLikes;
|
|
17
|
+
const blobPromises = [];
|
|
18
|
+
for (const item of items) if (item.type === "text/html") blobPromises.push(new Promise((accept) => {
|
|
19
|
+
item.getAsString(async (s) => {
|
|
20
|
+
const imagePromises = extractImageSources(s).map((src) => getImageSource(fileLikes, src));
|
|
21
|
+
await Promise.all(imagePromises);
|
|
22
|
+
accept();
|
|
23
|
+
});
|
|
24
|
+
}));
|
|
25
|
+
await Promise.all(blobPromises);
|
|
26
|
+
return fileLikes;
|
|
27
|
+
}
|
|
28
|
+
function getFileLikes(items) {
|
|
29
|
+
const fileLikes = [];
|
|
30
|
+
for (const item of items) if (item.kind === "file") {
|
|
31
|
+
const file = item.getAsFile();
|
|
32
|
+
if (file) fileLikes.push(file);
|
|
33
|
+
}
|
|
34
|
+
return fileLikes;
|
|
35
|
+
}
|
|
36
|
+
async function getImageSource(fileLikes, src) {
|
|
37
|
+
let res;
|
|
38
|
+
try {
|
|
39
|
+
res = await fetch(src);
|
|
40
|
+
} catch (e) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const contentType = res.headers.get("Content-type") || "application/octet-stream";
|
|
44
|
+
const buf = await res.arrayBuffer();
|
|
45
|
+
const blob = new Blob([buf], { type: contentType });
|
|
46
|
+
fileLikes.push(blob);
|
|
47
|
+
}
|
|
48
|
+
var extractImageSources = (s) => {
|
|
49
|
+
const imageTags = new DOMParser().parseFromString(s, "text/html").getElementsByTagName("img");
|
|
50
|
+
return Array.from(imageTags, (tag) => tag.src).filter((tag) => tag);
|
|
51
|
+
};
|
|
52
|
+
var createFileFromBlobs = ({ blobsArray, fileName, mimeType }) => {
|
|
53
|
+
const concatenatedBlob = new Blob(blobsArray, { type: mimeType });
|
|
54
|
+
return new File([concatenatedBlob], fileName, { type: concatenatedBlob.type });
|
|
55
|
+
};
|
|
56
|
+
var getExtensionFromMimeType = (mimeType) => {
|
|
57
|
+
const match = mimeType.match(/\/([^/;]+)/);
|
|
58
|
+
return match && match[1];
|
|
59
|
+
};
|
|
60
|
+
var getRecordedMediaTypeFromMimeType = (mimeType) => {
|
|
61
|
+
const match = mimeType.match(/^(audio|video)\/.*$/);
|
|
62
|
+
return match && match[1];
|
|
63
|
+
};
|
|
64
|
+
var readFileAsArrayBuffer = (file) => new Promise((resolve, reject) => {
|
|
65
|
+
const fileReader = new FileReader();
|
|
66
|
+
fileReader.onload = () => {
|
|
67
|
+
resolve(fileReader.result);
|
|
68
|
+
};
|
|
69
|
+
fileReader.onerror = () => {
|
|
70
|
+
reject(fileReader.error);
|
|
71
|
+
};
|
|
72
|
+
fileReader.readAsArrayBuffer(file);
|
|
73
|
+
});
|
|
74
|
+
//#endregion
|
|
75
|
+
//#region src/components/MediaRecorder/transcode/audioProcessing.ts
|
|
76
|
+
/**
|
|
77
|
+
* In the context of resampling audio data, AudioContext is used to decode the input audio file into an AudioBuffer,
|
|
78
|
+
* which is a fundamental data structure representing audio data.
|
|
79
|
+
* @param file
|
|
80
|
+
*/
|
|
81
|
+
var toAudioBuffer = async (file) => {
|
|
82
|
+
const audioCtx = new AudioContext();
|
|
83
|
+
const arrayBuffer = await readFileAsArrayBuffer(file);
|
|
84
|
+
const decodedData = await audioCtx.decodeAudioData(arrayBuffer);
|
|
85
|
+
if (audioCtx.state !== "closed") await audioCtx.close();
|
|
86
|
+
return decodedData;
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* OfflineAudioContext is a specialized type of AudioContext that does not render audio in real-time and is used for offline audio processing tasks.
|
|
90
|
+
* It allows performing audio processing and rendering without actually playing the audio through speakers or outputting it to a destination.
|
|
91
|
+
* In the context of resampling audio data, OfflineAudioContext is used to resample the decoded AudioBuffer from a file to the desired sample rate.
|
|
92
|
+
* It provides more flexibility and control over audio processing, as it can operate at different sample rates and durations compared to real-time audio contexts.
|
|
93
|
+
* @param audioBuffer
|
|
94
|
+
* @param sampleRate
|
|
95
|
+
*/
|
|
96
|
+
var renderAudio = async (audioBuffer, sampleRate) => {
|
|
97
|
+
const offlineAudioCtx = new OfflineAudioContext(audioBuffer.numberOfChannels, audioBuffer.duration * sampleRate, sampleRate);
|
|
98
|
+
const source = offlineAudioCtx.createBufferSource();
|
|
99
|
+
source.buffer = audioBuffer;
|
|
100
|
+
source.connect(offlineAudioCtx.destination);
|
|
101
|
+
source.start();
|
|
102
|
+
return await offlineAudioCtx.startRendering();
|
|
103
|
+
};
|
|
104
|
+
//#endregion
|
|
105
|
+
Object.defineProperty(exports, "createFileFromBlobs", {
|
|
106
|
+
enumerable: true,
|
|
107
|
+
get: function() {
|
|
108
|
+
return createFileFromBlobs;
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
Object.defineProperty(exports, "dataTransferItemsToFiles", {
|
|
112
|
+
enumerable: true,
|
|
113
|
+
get: function() {
|
|
114
|
+
return dataTransferItemsToFiles;
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
Object.defineProperty(exports, "getExtensionFromMimeType", {
|
|
118
|
+
enumerable: true,
|
|
119
|
+
get: function() {
|
|
120
|
+
return getExtensionFromMimeType;
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
Object.defineProperty(exports, "getRecordedMediaTypeFromMimeType", {
|
|
124
|
+
enumerable: true,
|
|
125
|
+
get: function() {
|
|
126
|
+
return getRecordedMediaTypeFromMimeType;
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
Object.defineProperty(exports, "renderAudio", {
|
|
130
|
+
enumerable: true,
|
|
131
|
+
get: function() {
|
|
132
|
+
return renderAudio;
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
Object.defineProperty(exports, "toAudioBuffer", {
|
|
136
|
+
enumerable: true,
|
|
137
|
+
get: function() {
|
|
138
|
+
return toAudioBuffer;
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
Object.defineProperty(exports, "useHandleFileChangeWrapper", {
|
|
142
|
+
enumerable: true,
|
|
143
|
+
get: function() {
|
|
144
|
+
return useHandleFileChangeWrapper;
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
//# sourceMappingURL=audioProcessing.22303d69.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audioProcessing.22303d69.js","names":[],"sources":["../../src/components/ReactFileUtilities/utils.ts","../../src/components/MediaRecorder/transcode/audioProcessing.ts"],"sourcesContent":["import type { FileLike, RecordedMediaType } from './types';\nimport type { ChangeEvent } from 'react';\nimport { useCallback } from 'react';\n\nexport const useHandleFileChangeWrapper = (\n resetOnChange = false,\n handler?: (files: Array<File>) => void,\n) =>\n useCallback(\n ({ currentTarget }: ChangeEvent<HTMLInputElement>) => {\n const { files } = currentTarget;\n\n if (!files) return;\n\n try {\n handler?.(Array.from(files));\n } catch (error) {\n console.error(error);\n }\n\n if (resetOnChange) currentTarget.value = '';\n },\n [handler, resetOnChange],\n );\n\nexport function dataTransferItemsHaveFiles(items?: DataTransferItem[]): boolean {\n if (!items || !items.length) {\n return false;\n }\n for (const item of items) {\n if (item.kind === 'file' || item.type === 'text/html') {\n return true;\n }\n }\n return false;\n}\n\nexport async function dataTransferItemsToFiles(\n items?: DataTransferItem[],\n): Promise<FileLike[]> {\n if (!items || !items.length) {\n return [];\n }\n\n // If there are files inside the DataTransferItem prefer those\n const fileLikes = getFileLikes(items);\n if (fileLikes.length) {\n return fileLikes;\n }\n\n // Otherwise extract images from html\n const blobPromises = [];\n for (const item of items) {\n if (item.type === 'text/html') {\n blobPromises.push(\n new Promise<void>((accept) => {\n item.getAsString(async (s) => {\n const imagePromises = extractImageSources(s).map((src) =>\n getImageSource(fileLikes, src),\n );\n\n await Promise.all(imagePromises);\n accept();\n });\n }),\n );\n }\n }\n await Promise.all(blobPromises);\n return fileLikes;\n}\n\nfunction getFileLikes(items: DataTransferItem[]) {\n const fileLikes = [];\n for (const item of items) {\n if (item.kind === 'file') {\n const file = item.getAsFile();\n if (file) {\n fileLikes.push(file);\n }\n }\n }\n return fileLikes;\n}\n\nasync function getImageSource(fileLikes: FileLike[], src: string) {\n let res;\n try {\n res = await fetch(src);\n } catch (e) {\n return;\n }\n const contentType = res.headers.get('Content-type') || 'application/octet-stream';\n const buf = await res.arrayBuffer();\n const blob = new Blob([buf], { type: contentType });\n fileLikes.push(blob);\n}\n\nconst extractImageSources = (s: string) => {\n const imageTags = new DOMParser()\n .parseFromString(s, 'text/html')\n .getElementsByTagName('img');\n return Array.from(imageTags, (tag) => tag.src).filter((tag) => tag);\n};\n\nexport const isBlobButNotFile = (obj: unknown): obj is Blob =>\n obj instanceof Blob && !(obj instanceof File);\n\nexport const createFileFromBlobs = ({\n blobsArray,\n fileName,\n mimeType,\n}: {\n blobsArray: Blob[];\n fileName: string;\n mimeType: string;\n}) => {\n const concatenatedBlob = new Blob(blobsArray, { type: mimeType });\n return new File([concatenatedBlob], fileName, { type: concatenatedBlob.type });\n};\n\nexport const getExtensionFromMimeType = (mimeType: string) => {\n const match = mimeType.match(/\\/([^/;]+)/);\n return match && match[1];\n};\n\nexport const getRecordedMediaTypeFromMimeType = (\n mimeType: string,\n): RecordedMediaType | null => {\n const match = mimeType.match(/^(audio|video)\\/.*$/);\n return match && (match[1] as RecordedMediaType);\n};\n\nexport const readFileAsArrayBuffer = (file: File): Promise<ArrayBuffer> =>\n new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = () => {\n resolve(fileReader.result as ArrayBuffer);\n };\n\n fileReader.onerror = () => {\n reject(fileReader.error);\n };\n\n fileReader.readAsArrayBuffer(file);\n });\n\nexport const generateFileName = (mimeType: string) =>\n `file_${new Date().toISOString()}.${getExtensionFromMimeType(mimeType)}`;\n","import { readFileAsArrayBuffer } from '../../ReactFileUtilities';\n\n/**\n * In the context of resampling audio data, AudioContext is used to decode the input audio file into an AudioBuffer,\n * which is a fundamental data structure representing audio data.\n * @param file\n */\nexport const toAudioBuffer = async (file: File) => {\n const audioCtx = new AudioContext();\n\n const arrayBuffer = await readFileAsArrayBuffer(file);\n const decodedData = await audioCtx.decodeAudioData(arrayBuffer);\n if (audioCtx.state !== 'closed') await audioCtx.close();\n return decodedData;\n};\n\n/**\n * OfflineAudioContext is a specialized type of AudioContext that does not render audio in real-time and is used for offline audio processing tasks.\n * It allows performing audio processing and rendering without actually playing the audio through speakers or outputting it to a destination.\n * In the context of resampling audio data, OfflineAudioContext is used to resample the decoded AudioBuffer from a file to the desired sample rate.\n * It provides more flexibility and control over audio processing, as it can operate at different sample rates and durations compared to real-time audio contexts.\n * @param audioBuffer\n * @param sampleRate\n */\nexport const renderAudio = async (audioBuffer: AudioBuffer, sampleRate: number) => {\n const offlineAudioCtx = new OfflineAudioContext(\n audioBuffer.numberOfChannels,\n audioBuffer.duration * sampleRate,\n sampleRate,\n );\n const source = offlineAudioCtx.createBufferSource();\n source.buffer = audioBuffer;\n source.connect(offlineAudioCtx.destination);\n source.start();\n\n return await offlineAudioCtx.startRendering();\n};\n"],"mappings":";;AAIA,IAAa,8BACX,gBAAgB,OAChB,aAAA,GAAA,MAAA,cAGG,EAAE,oBAAmD;CACpD,MAAM,EAAE,UAAU;CAElB,IAAI,CAAC,OAAO;CAEZ,IAAI;EACF,UAAU,MAAM,KAAK,KAAK,CAAC;CAC7B,SAAS,OAAO;EACd,QAAQ,MAAM,KAAK;CACrB;CAEA,IAAI,eAAe,cAAc,QAAQ;AAC3C,GACA,CAAC,SAAS,aAAa,CACzB;AAcF,eAAsB,yBACpB,OACqB;CACrB,IAAI,CAAC,SAAS,CAAC,MAAM,QACnB,OAAO,CAAC;CAIV,MAAM,YAAY,aAAa,KAAK;CACpC,IAAI,UAAU,QACZ,OAAO;CAIT,MAAM,eAAe,CAAC;CACtB,KAAK,MAAM,QAAQ,OACjB,IAAI,KAAK,SAAS,aAChB,aAAa,KACX,IAAI,SAAe,WAAW;EAC5B,KAAK,YAAY,OAAO,MAAM;GAC5B,MAAM,gBAAgB,oBAAoB,CAAC,EAAE,KAAK,QAChD,eAAe,WAAW,GAAG,CAC/B;GAEA,MAAM,QAAQ,IAAI,aAAa;GAC/B,OAAO;EACT,CAAC;CACH,CAAC,CACH;CAGJ,MAAM,QAAQ,IAAI,YAAY;CAC9B,OAAO;AACT;AAEA,SAAS,aAAa,OAA2B;CAC/C,MAAM,YAAY,CAAC;CACnB,KAAK,MAAM,QAAQ,OACjB,IAAI,KAAK,SAAS,QAAQ;EACxB,MAAM,OAAO,KAAK,UAAU;EAC5B,IAAI,MACF,UAAU,KAAK,IAAI;CAEvB;CAEF,OAAO;AACT;AAEA,eAAe,eAAe,WAAuB,KAAa;CAChE,IAAI;CACJ,IAAI;EACF,MAAM,MAAM,MAAM,GAAG;CACvB,SAAS,GAAG;EACV;CACF;CACA,MAAM,cAAc,IAAI,QAAQ,IAAI,cAAc,KAAK;CACvD,MAAM,MAAM,MAAM,IAAI,YAAY;CAClC,MAAM,OAAO,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,MAAM,YAAY,CAAC;CAClD,UAAU,KAAK,IAAI;AACrB;AAEA,IAAM,uBAAuB,MAAc;CACzC,MAAM,YAAY,IAAI,UAAU,EAC7B,gBAAgB,GAAG,WAAW,EAC9B,qBAAqB,KAAK;CAC7B,OAAO,MAAM,KAAK,YAAY,QAAQ,IAAI,GAAG,EAAE,QAAQ,QAAQ,GAAG;AACpE;AAKA,IAAa,uBAAuB,EAClC,YACA,UACA,eAKI;CACJ,MAAM,mBAAmB,IAAI,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;CAChE,OAAO,IAAI,KAAK,CAAC,gBAAgB,GAAG,UAAU,EAAE,MAAM,iBAAiB,KAAK,CAAC;AAC/E;AAEA,IAAa,4BAA4B,aAAqB;CAC5D,MAAM,QAAQ,SAAS,MAAM,YAAY;CACzC,OAAO,SAAS,MAAM;AACxB;AAEA,IAAa,oCACX,aAC6B;CAC7B,MAAM,QAAQ,SAAS,MAAM,qBAAqB;CAClD,OAAO,SAAU,MAAM;AACzB;AAEA,IAAa,yBAAyB,SACpC,IAAI,SAAS,SAAS,WAAW;CAC/B,MAAM,aAAa,IAAI,WAAW;CAClC,WAAW,eAAe;EACxB,QAAQ,WAAW,MAAqB;CAC1C;CAEA,WAAW,gBAAgB;EACzB,OAAO,WAAW,KAAK;CACzB;CAEA,WAAW,kBAAkB,IAAI;AACnC,CAAC;;;;;;;;AC1IH,IAAa,gBAAgB,OAAO,SAAe;CACjD,MAAM,WAAW,IAAI,aAAa;CAElC,MAAM,cAAc,MAAM,sBAAsB,IAAI;CACpD,MAAM,cAAc,MAAM,SAAS,gBAAgB,WAAW;CAC9D,IAAI,SAAS,UAAU,UAAU,MAAM,SAAS,MAAM;CACtD,OAAO;AACT;;;;;;;;;AAUA,IAAa,cAAc,OAAO,aAA0B,eAAuB;CACjF,MAAM,kBAAkB,IAAI,oBAC1B,YAAY,kBACZ,YAAY,WAAW,YACvB,UACF;CACA,MAAM,SAAS,gBAAgB,mBAAmB;CAClD,OAAO,SAAS;CAChB,OAAO,QAAQ,gBAAgB,WAAW;CAC1C,OAAO,MAAM;CAEb,OAAO,MAAM,gBAAgB,eAAe;AAC9C"}
|