@sendbird/uikit-react 3.5.0-rc.1 → 3.5.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/App.js +323 -238
- package/App.js.map +1 -1
- package/CHANGELOG.md +556 -0
- package/Channel/components/ChannelHeader.js +46 -41
- package/Channel/components/ChannelHeader.js.map +1 -1
- package/Channel/components/ChannelUI.js +104 -131
- package/Channel/components/ChannelUI.js.map +1 -1
- package/Channel/components/FileViewer.js +56 -52
- package/Channel/components/FileViewer.js.map +1 -1
- package/Channel/components/FrozenNotification.js +12 -7
- package/Channel/components/FrozenNotification.js.map +1 -1
- package/Channel/components/Message.js +240 -230
- package/Channel/components/Message.js.map +1 -1
- package/Channel/components/MessageInput.js +152 -129
- package/Channel/components/MessageInput.js.map +1 -1
- package/Channel/components/MessageList.js +270 -175
- package/Channel/components/MessageList.js.map +1 -1
- package/Channel/components/RemoveMessageModal.js +34 -30
- package/Channel/components/RemoveMessageModal.js.map +1 -1
- package/Channel/components/SuggestedMentionList.js +139 -193
- package/Channel/components/SuggestedMentionList.js.map +1 -1
- package/Channel/components/TypingIndicator.js +44 -61
- package/Channel/components/TypingIndicator.js.map +1 -1
- package/Channel/components/UnreadCount.js +18 -20
- package/Channel/components/UnreadCount.js.map +1 -1
- package/Channel/context.js +12 -19
- package/Channel/context.js.map +1 -1
- package/Channel.js +69 -44
- package/Channel.js.map +1 -1
- package/ChannelList/components/AddChannel.js +29 -30
- package/ChannelList/components/AddChannel.js.map +1 -1
- package/ChannelList/components/ChannelListHeader.js +32 -28
- package/ChannelList/components/ChannelListHeader.js.map +1 -1
- package/ChannelList/components/ChannelListUI.js +101 -142
- package/ChannelList/components/ChannelListUI.js.map +1 -1
- package/ChannelList/components/ChannelPreview.js +72 -82
- package/ChannelList/components/ChannelPreview.js.map +1 -1
- package/ChannelList/components/ChannelPreviewAction.js +36 -36
- package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/ChannelList/context.js +7 -8
- package/ChannelList/context.js.map +1 -1
- package/ChannelList.js +32 -31
- package/ChannelList.js.map +1 -1
- package/{ChannelListProvider-1d36e2e9.js → ChannelListProvider-643a2b47.js} +234 -286
- package/ChannelListProvider-643a2b47.js.map +1 -0
- package/{ChannelProvider-289cd35f.js → ChannelProvider-33559192.js} +661 -727
- package/ChannelProvider-33559192.js.map +1 -0
- package/ChannelSettings/components/ChannelProfile.js +33 -46
- package/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/ChannelSettings/components/ChannelSettingsUI.js +45 -48
- package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/ChannelSettings/components/EditDetailsModal.js +47 -58
- package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/ChannelSettings/components/LeaveChannel.js +40 -46
- package/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/ChannelSettings/components/ModerationPanel.js +522 -605
- package/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/ChannelSettings/components/UserListItem.js +71 -72
- package/ChannelSettings/components/UserListItem.js.map +1 -1
- package/ChannelSettings/components/UserPanel.js +29 -32
- package/ChannelSettings/components/UserPanel.js.map +1 -1
- package/ChannelSettings/context.js +55 -58
- package/ChannelSettings/context.js.map +1 -1
- package/ChannelSettings.js +20 -20
- package/ChannelSettings.js.map +1 -1
- package/CreateChannel/components/CreateChannelUI.js +24 -24
- package/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/CreateChannel/components/InviteUsers.js +102 -124
- package/CreateChannel/components/InviteUsers.js.map +1 -1
- package/CreateChannel/components/SelectChannelType.js +41 -42
- package/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +22 -21
- package/CreateChannel.js.map +1 -1
- package/CreateChannelProvider-5b006b58.js +44 -0
- package/CreateChannelProvider-5b006b58.js.map +1 -0
- package/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -43
- package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/CreateOpenChannel/context.js +33 -33
- package/CreateOpenChannel/context.js.map +1 -1
- package/CreateOpenChannel.js +18 -17
- package/CreateOpenChannel.js.map +1 -1
- package/EditUserProfile/components/EditUserProfileUI.js +12 -13
- package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/EditUserProfile/context.js +0 -2
- package/EditUserProfile/context.js.map +1 -1
- package/EditUserProfile.js +18 -17
- package/EditUserProfile.js.map +1 -1
- package/LocalizationContext-25d6694d.js +20 -0
- package/{LocalizationContext-289c1917.js.map → LocalizationContext-25d6694d.js.map} +1 -1
- package/MediaQueryContext-94c9086a.js +87 -0
- package/MediaQueryContext-94c9086a.js.map +1 -0
- package/MemberList-9f8950db.js +403 -0
- package/MemberList-9f8950db.js.map +1 -0
- package/Message/context.js +31 -0
- package/Message/context.js.map +1 -0
- package/MessageSearch/components/MessageSearchUI.js +62 -71
- package/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/MessageSearch/context.js +201 -224
- package/MessageSearch/context.js.map +1 -1
- package/MessageSearch.js +46 -58
- package/MessageSearch.js.map +1 -1
- package/OpenChannel/components/FrozenChannelNotification.js +8 -6
- package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
- package/OpenChannel/components/OpenChannelHeader.js +27 -25
- package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/OpenChannel/components/OpenChannelInput.js +50 -35
- package/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessage.js +174 -191
- package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessageList.js +72 -92
- package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/OpenChannel/components/OpenChannelUI.js +52 -49
- package/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/OpenChannel/context.js +8 -9
- package/OpenChannel/context.js.map +1 -1
- package/OpenChannel.js +36 -30
- package/OpenChannel.js.map +1 -1
- package/OpenChannelList/components/OpenChannelListUI.js +61 -76
- package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/OpenChannelList/components/OpenChannelPreview.js +21 -22
- package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
- package/OpenChannelList/context.js +3 -4
- package/OpenChannelList/context.js.map +1 -1
- package/OpenChannelList.js +26 -24
- package/OpenChannelList.js.map +1 -1
- package/OpenChannelListProvider-7c6b2f84.js +429 -0
- package/OpenChannelListProvider-7c6b2f84.js.map +1 -0
- package/OpenChannelProvider-18fa6128.js +1885 -0
- package/OpenChannelProvider-18fa6128.js.map +1 -0
- package/OpenChannelSettings/components/EditDetailsModal.js +47 -56
- package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
- package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/OpenChannelSettings/components/OperatorUI.js +516 -586
- package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/OpenChannelSettings/components/ParticipantUI.js +15 -16
- package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/OpenChannelSettings/context.js +57 -70
- package/OpenChannelSettings/context.js.map +1 -1
- package/OpenChannelSettings.js +19 -20
- package/OpenChannelSettings.js.map +1 -1
- package/README.md +62 -13
- package/RemoveMessageModal-9c0350c0.js +36 -0
- package/RemoveMessageModal-9c0350c0.js.map +1 -0
- package/SendbirdProvider.js +749 -408
- package/SendbirdProvider.js.map +1 -1
- package/Thread/components/ParentMessageInfo.js +238 -217
- package/Thread/components/ParentMessageInfo.js.map +1 -1
- package/Thread/components/ParentMessageInfoItem.js +112 -89
- package/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/Thread/components/ThreadHeader.js +22 -23
- package/Thread/components/ThreadHeader.js.map +1 -1
- package/Thread/components/ThreadList.js +108 -83
- package/Thread/components/ThreadList.js.map +1 -1
- package/Thread/components/ThreadListItem.js +306 -276
- package/Thread/components/ThreadListItem.js.map +1 -1
- package/Thread/components/ThreadMessageInput.js +146 -113
- package/Thread/components/ThreadMessageInput.js.map +1 -1
- package/Thread/components/ThreadUI.js +169 -138
- package/Thread/components/ThreadUI.js.map +1 -1
- package/Thread/context/types.js +9 -14
- package/Thread/context/types.js.map +1 -1
- package/Thread/context.js +8 -8
- package/Thread.js +87 -57
- package/Thread.js.map +1 -1
- package/ThreadProvider-6ae0b041.js +1695 -0
- package/ThreadProvider-6ae0b041.js.map +1 -0
- package/{UserProfileContext-e3530842.js → UserProfileContext-a56cc682.js} +1 -4
- package/{UserProfileContext-e3530842.js.map → UserProfileContext-a56cc682.js.map} +1 -1
- package/VoiceMessageInputWrapper-69ac1f5a.js +170 -0
- package/VoiceMessageInputWrapper-69ac1f5a.js.map +1 -0
- package/VoicePlayer/context.js +7 -0
- package/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
- package/VoicePlayer/useVoicePlayer.js +84 -0
- package/VoicePlayer/useVoicePlayer.js.map +1 -0
- package/VoiceRecorder/context.js +156 -0
- package/VoiceRecorder/context.js.map +1 -0
- package/VoiceRecorder/useVoiceRecorder.js +121 -0
- package/VoiceRecorder/useVoiceRecorder.js.map +1 -0
- package/WebAudioUtils-16540f03.js +123 -0
- package/WebAudioUtils-16540f03.js.map +1 -0
- package/{_rollupPluginBabelHelpers-519f674b.js → _rollupPluginBabelHelpers-1be219c2.js} +17 -11
- package/_rollupPluginBabelHelpers-1be219c2.js.map +1 -0
- package/actionTypes-a8140d53.js +8 -0
- package/actionTypes-a8140d53.js.map +1 -0
- package/cjs/App.js +324 -239
- package/cjs/App.js.map +1 -1
- package/cjs/Channel/components/ChannelHeader.js +46 -41
- package/cjs/Channel/components/ChannelHeader.js.map +1 -1
- package/cjs/Channel/components/ChannelUI.js +102 -129
- package/cjs/Channel/components/ChannelUI.js.map +1 -1
- package/cjs/Channel/components/FileViewer.js +56 -52
- package/cjs/Channel/components/FileViewer.js.map +1 -1
- package/cjs/Channel/components/FrozenNotification.js +12 -7
- package/cjs/Channel/components/FrozenNotification.js.map +1 -1
- package/cjs/Channel/components/Message.js +243 -233
- package/cjs/Channel/components/Message.js.map +1 -1
- package/cjs/Channel/components/MessageInput.js +151 -128
- package/cjs/Channel/components/MessageInput.js.map +1 -1
- package/cjs/Channel/components/MessageList.js +270 -175
- package/cjs/Channel/components/MessageList.js.map +1 -1
- package/cjs/Channel/components/RemoveMessageModal.js +34 -30
- package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
- package/cjs/Channel/components/SuggestedMentionList.js +139 -193
- package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
- package/cjs/Channel/components/TypingIndicator.js +44 -61
- package/cjs/Channel/components/TypingIndicator.js.map +1 -1
- package/cjs/Channel/components/UnreadCount.js +18 -20
- package/cjs/Channel/components/UnreadCount.js.map +1 -1
- package/cjs/Channel/context.js +12 -23
- package/cjs/Channel/context.js.map +1 -1
- package/cjs/Channel.js +69 -44
- package/cjs/Channel.js.map +1 -1
- package/cjs/ChannelList/components/AddChannel.js +29 -30
- package/cjs/ChannelList/components/AddChannel.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListHeader.js +32 -28
- package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListUI.js +100 -141
- package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreview.js +72 -82
- package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreviewAction.js +36 -36
- package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/cjs/ChannelList/context.js +7 -8
- package/cjs/ChannelList/context.js.map +1 -1
- package/cjs/ChannelList.js +32 -31
- package/cjs/ChannelList.js.map +1 -1
- package/cjs/{ChannelListProvider-0de52d2b.js → ChannelListProvider-1d4a8060.js} +233 -285
- package/cjs/ChannelListProvider-1d4a8060.js.map +1 -0
- package/cjs/{ChannelProvider-fc58e60e.js → ChannelProvider-2c7ec64b.js} +659 -725
- package/cjs/ChannelProvider-2c7ec64b.js.map +1 -0
- package/cjs/ChannelSettings/components/ChannelProfile.js +33 -46
- package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +45 -48
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/cjs/ChannelSettings/components/EditDetailsModal.js +47 -58
- package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/ChannelSettings/components/LeaveChannel.js +40 -46
- package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/cjs/ChannelSettings/components/ModerationPanel.js +522 -605
- package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/cjs/ChannelSettings/components/UserListItem.js +71 -72
- package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
- package/cjs/ChannelSettings/components/UserPanel.js +29 -32
- package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
- package/cjs/ChannelSettings/context.js +57 -60
- package/cjs/ChannelSettings/context.js.map +1 -1
- package/cjs/ChannelSettings.js +20 -20
- package/cjs/ChannelSettings.js.map +1 -1
- package/cjs/CreateChannel/components/CreateChannelUI.js +24 -24
- package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/cjs/CreateChannel/components/InviteUsers.js +102 -124
- package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
- package/cjs/CreateChannel/components/SelectChannelType.js +41 -42
- package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/cjs/CreateChannel/context.js +4 -4
- package/cjs/CreateChannel.js +22 -21
- package/cjs/CreateChannel.js.map +1 -1
- package/cjs/CreateChannelProvider-f7d36126.js +52 -0
- package/cjs/CreateChannelProvider-f7d36126.js.map +1 -0
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -43
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/cjs/CreateOpenChannel/context.js +33 -33
- package/cjs/CreateOpenChannel/context.js.map +1 -1
- package/cjs/CreateOpenChannel.js +18 -17
- package/cjs/CreateOpenChannel.js.map +1 -1
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -13
- package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/cjs/EditUserProfile/context.js +0 -2
- package/cjs/EditUserProfile/context.js.map +1 -1
- package/cjs/EditUserProfile.js +18 -17
- package/cjs/EditUserProfile.js.map +1 -1
- package/cjs/{LocalizationContext-bddc5c2b.js → LocalizationContext-bd54275c.js} +9 -11
- package/cjs/{LocalizationContext-bddc5c2b.js.map → LocalizationContext-bd54275c.js.map} +1 -1
- package/cjs/MediaQueryContext-ebcb159a.js +94 -0
- package/cjs/MediaQueryContext-ebcb159a.js.map +1 -0
- package/cjs/MemberList-2204c0b1.js +409 -0
- package/cjs/MemberList-2204c0b1.js.map +1 -0
- package/cjs/Message/context.js +40 -0
- package/cjs/Message/context.js.map +1 -0
- package/cjs/MessageSearch/components/MessageSearchUI.js +61 -70
- package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/cjs/MessageSearch/context.js +201 -224
- package/cjs/MessageSearch/context.js.map +1 -1
- package/cjs/MessageSearch.js +46 -58
- package/cjs/MessageSearch.js.map +1 -1
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +8 -6
- package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelHeader.js +27 -25
- package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelInput.js +50 -35
- package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessage.js +174 -191
- package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +72 -92
- package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelUI.js +52 -49
- package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/cjs/OpenChannel/context.js +8 -9
- package/cjs/OpenChannel/context.js.map +1 -1
- package/cjs/OpenChannel.js +36 -30
- package/cjs/OpenChannel.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelListUI.js +61 -76
- package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelPreview.js +21 -22
- package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
- package/cjs/OpenChannelList/context.js +3 -4
- package/cjs/OpenChannelList/context.js.map +1 -1
- package/cjs/OpenChannelList.js +26 -24
- package/cjs/OpenChannelList.js.map +1 -1
- package/cjs/OpenChannelListProvider-865700d5.js +439 -0
- package/cjs/OpenChannelListProvider-865700d5.js.map +1 -0
- package/cjs/OpenChannelProvider-083e5628.js +1894 -0
- package/cjs/OpenChannelProvider-083e5628.js.map +1 -0
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +47 -56
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OperatorUI.js +516 -586
- package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -16
- package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/cjs/OpenChannelSettings/context.js +58 -71
- package/cjs/OpenChannelSettings/context.js.map +1 -1
- package/cjs/OpenChannelSettings.js +19 -20
- package/cjs/OpenChannelSettings.js.map +1 -1
- package/cjs/{RemoveMessageModal-9169766a.js → RemoveMessageModal-822e0fac.js} +19 -14
- package/cjs/RemoveMessageModal-822e0fac.js.map +1 -0
- package/cjs/SendbirdProvider.js +748 -408
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfo.js +237 -216
- package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfoItem.js +111 -88
- package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/cjs/Thread/components/ThreadHeader.js +22 -23
- package/cjs/Thread/components/ThreadHeader.js.map +1 -1
- package/cjs/Thread/components/ThreadList.js +108 -83
- package/cjs/Thread/components/ThreadList.js.map +1 -1
- package/cjs/Thread/components/ThreadListItem.js +305 -275
- package/cjs/Thread/components/ThreadListItem.js.map +1 -1
- package/cjs/Thread/components/ThreadMessageInput.js +146 -113
- package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
- package/cjs/Thread/components/ThreadUI.js +170 -139
- package/cjs/Thread/components/ThreadUI.js.map +1 -1
- package/cjs/Thread/context/types.js +13 -14
- package/cjs/Thread/context/types.js.map +1 -1
- package/cjs/Thread/context.js +8 -8
- package/cjs/Thread.js +87 -57
- package/cjs/Thread.js.map +1 -1
- package/cjs/ThreadProvider-09392c06.js +1704 -0
- package/cjs/ThreadProvider-09392c06.js.map +1 -0
- package/cjs/{UserProfileContext-8d0dee57.js → UserProfileContext-10e1ac24.js} +1 -4
- package/cjs/{UserProfileContext-8d0dee57.js.map → UserProfileContext-10e1ac24.js.map} +1 -1
- package/cjs/VoiceMessageInputWrapper-fee2ede6.js +176 -0
- package/cjs/VoiceMessageInputWrapper-fee2ede6.js.map +1 -0
- package/cjs/VoicePlayer/context.js +17 -0
- package/cjs/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
- package/cjs/VoicePlayer/useVoicePlayer.js +88 -0
- package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -0
- package/cjs/VoiceRecorder/context.js +166 -0
- package/cjs/VoiceRecorder/context.js.map +1 -0
- package/cjs/VoiceRecorder/useVoiceRecorder.js +126 -0
- package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -0
- package/cjs/WebAudioUtils-9dfbd5a9.js +126 -0
- package/cjs/WebAudioUtils-9dfbd5a9.js.map +1 -0
- package/cjs/{_rollupPluginBabelHelpers-fed1e122.js → _rollupPluginBabelHelpers-53e83515.js} +17 -10
- package/cjs/_rollupPluginBabelHelpers-53e83515.js.map +1 -0
- package/cjs/actionTypes-b1275c7f.js +10 -0
- package/cjs/actionTypes-b1275c7f.js.map +1 -0
- package/cjs/{color-f47044b3.js → color-e7fbb496.js} +13 -21
- package/cjs/color-e7fbb496.js.map +1 -0
- package/cjs/{compareIds-4124b297.js → compareIds-03cd7437.js} +5 -6
- package/cjs/compareIds-03cd7437.js.map +1 -0
- package/cjs/{const-fd64914b.js → const-8728e4b6.js} +4 -4
- package/cjs/const-8728e4b6.js.map +1 -0
- package/cjs/const-b3585ae0.js +20 -0
- package/cjs/const-b3585ae0.js.map +1 -0
- package/cjs/consts-6bd1cfe3.js +6 -0
- package/cjs/consts-6bd1cfe3.js.map +1 -0
- package/cjs/consts-a006bc78.js +6 -0
- package/cjs/consts-a006bc78.js.map +1 -0
- package/cjs/consts-a0e35044.js +6 -0
- package/cjs/consts-a0e35044.js.map +1 -0
- package/cjs/consts-aa056322.js +41 -0
- package/cjs/consts-aa056322.js.map +1 -0
- package/cjs/{context-7a0e057b.js → context-ad45a982.js} +6 -5
- package/cjs/{context-7a0e057b.js.map → context-ad45a982.js.map} +1 -1
- package/cjs/dist/index.css +1847 -1394
- package/cjs/dist/index.css.map +1 -1
- package/cjs/handlers/OpenChannelHandler.js.map +1 -1
- package/cjs/handlers/SessionHandler.js.map +1 -1
- package/cjs/{index-343cd84a.js → index-165d52b7.js} +2 -2
- package/cjs/{index-343cd84a.js.map → index-165d52b7.js.map} +1 -1
- package/cjs/index-288afd10.js +367 -0
- package/cjs/index-288afd10.js.map +1 -0
- package/cjs/{index-9ca07037.js → index-2f206bb6.js} +29 -37
- package/cjs/index-2f206bb6.js.map +1 -0
- package/cjs/index-32244c73.js +585 -0
- package/cjs/index-32244c73.js.map +1 -0
- package/cjs/index-35d641f7.js +202 -0
- package/cjs/index-35d641f7.js.map +1 -0
- package/cjs/{index-c475c3c8.js → index-3e924a85.js} +55 -63
- package/cjs/index-3e924a85.js.map +1 -0
- package/cjs/index-4a2ec2ae.js +456 -0
- package/cjs/index-4a2ec2ae.js.map +1 -0
- package/cjs/{index-d14a43c4.js → index-745c9ce1.js} +1 -1
- package/cjs/{index-d14a43c4.js.map → index-745c9ce1.js.map} +1 -1
- package/cjs/index-7bd7f678.js +79 -0
- package/cjs/index-7bd7f678.js.map +1 -0
- package/cjs/index-7d2d89a2.js +330 -0
- package/cjs/index-7d2d89a2.js.map +1 -0
- package/cjs/{index-c5cd589d.js → index-8ada6055.js} +1 -1
- package/cjs/index-8ada6055.js.map +1 -0
- package/cjs/{index-3a4f8219.js → index-9a94e768.js} +42 -51
- package/cjs/index-9a94e768.js.map +1 -0
- package/cjs/index-9f2a1c52.js +161 -0
- package/cjs/index-9f2a1c52.js.map +1 -0
- package/cjs/{index-abbc8024.js → index-9feae73e.js} +57 -3
- package/cjs/index-9feae73e.js.map +1 -0
- package/cjs/{index-8de8f28a.js → index-a01673e9.js} +2 -2
- package/cjs/{index-8de8f28a.js.map → index-a01673e9.js.map} +1 -1
- package/cjs/index-d0b4f3c0.js +57 -0
- package/cjs/index-d0b4f3c0.js.map +1 -0
- package/cjs/{index-5d5497c2.js → index-f6621210.js} +11 -25
- package/cjs/index-f6621210.js.map +1 -0
- package/cjs/index.js +84 -63
- package/cjs/index.js.map +1 -1
- package/cjs/index.module-02ae6df9.js +6 -0
- package/cjs/index.module-02ae6df9.js.map +1 -0
- package/cjs/lame.all.js +2541 -0
- package/cjs/lame.all.js.map +1 -0
- package/cjs/resolvedReplyType-da86056c.js +32 -0
- package/cjs/resolvedReplyType-da86056c.js.map +1 -0
- package/cjs/sendbirdSelectors.js +307 -417
- package/cjs/sendbirdSelectors.js.map +1 -1
- package/cjs/{stringSet-3e6167ef.js → stringSet-d212a015.js} +112 -90
- package/cjs/stringSet-d212a015.js.map +1 -0
- package/cjs/tokenize-b019fb84.js +164 -0
- package/cjs/tokenize-b019fb84.js.map +1 -0
- package/cjs/topics-77576a9c.js +18 -0
- package/cjs/topics-77576a9c.js.map +1 -0
- package/cjs/types-36ee2d00.js +17 -0
- package/cjs/types-36ee2d00.js.map +1 -0
- package/cjs/ui/Accordion.js +21 -24
- package/cjs/ui/Accordion.js.map +1 -1
- package/cjs/ui/AccordionGroup.js +10 -13
- package/cjs/ui/AccordionGroup.js.map +1 -1
- package/cjs/ui/AdminMessage.js +10 -13
- package/cjs/ui/AdminMessage.js.map +1 -1
- package/cjs/ui/Avatar.js +57 -79
- package/cjs/ui/Avatar.js.map +1 -1
- package/cjs/ui/Badge.js +16 -15
- package/cjs/ui/Badge.js.map +1 -1
- package/cjs/ui/BottomSheet.js +14 -12
- package/cjs/ui/BottomSheet.js.map +1 -1
- package/cjs/ui/Button.js +20 -35
- package/cjs/ui/Button.js.map +1 -1
- package/cjs/ui/ChannelAvatar.js +38 -41
- package/cjs/ui/ChannelAvatar.js.map +1 -1
- package/cjs/ui/Checkbox.js +11 -13
- package/cjs/ui/Checkbox.js.map +1 -1
- package/cjs/ui/ConnectionStatus.js +7 -5
- package/cjs/ui/ConnectionStatus.js.map +1 -1
- package/cjs/ui/ContextMenu.js +175 -199
- package/cjs/ui/ContextMenu.js.map +1 -1
- package/cjs/ui/DateSeparator.js +12 -14
- package/cjs/ui/DateSeparator.js.map +1 -1
- package/cjs/ui/EmojiReactions.js +299 -107
- package/cjs/ui/EmojiReactions.js.map +1 -1
- package/cjs/ui/FileMessageItemBody.js +22 -23
- package/cjs/ui/FileMessageItemBody.js.map +1 -1
- package/cjs/ui/FileViewer.js +36 -36
- package/cjs/ui/FileViewer.js.map +1 -1
- package/cjs/ui/Icon.js +447 -623
- package/cjs/ui/Icon.js.map +1 -1
- package/cjs/ui/IconButton.js +20 -31
- package/cjs/ui/IconButton.js.map +1 -1
- package/cjs/ui/ImageRenderer.js +34 -43
- package/cjs/ui/ImageRenderer.js.map +1 -1
- package/cjs/ui/Input.js +16 -16
- package/cjs/ui/Input.js.map +1 -1
- package/cjs/ui/Label.js +2 -2
- package/cjs/ui/LinkLabel.js +4 -3
- package/cjs/ui/LinkLabel.js.map +1 -1
- package/cjs/ui/Loader.js +10 -12
- package/cjs/ui/Loader.js.map +1 -1
- package/cjs/ui/MentionLabel.js +58 -65
- package/cjs/ui/MentionLabel.js.map +1 -1
- package/cjs/ui/MentionUserLabel.js +12 -10
- package/cjs/ui/MentionUserLabel.js.map +1 -1
- package/cjs/ui/MessageContent.js +216 -550
- package/cjs/ui/MessageContent.js.map +1 -1
- package/cjs/ui/MessageInput.js +392 -119
- package/cjs/ui/MessageInput.js.map +1 -1
- package/cjs/ui/MessageItemMenu.js +83 -83
- package/cjs/ui/MessageItemMenu.js.map +1 -1
- package/cjs/ui/MessageItemReactionMenu.js +58 -62
- package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
- package/cjs/ui/MessageSearchFileItem.js +56 -51
- package/cjs/ui/MessageSearchFileItem.js.map +1 -1
- package/cjs/ui/MessageSearchItem.js +42 -41
- package/cjs/ui/MessageSearchItem.js.map +1 -1
- package/cjs/ui/MessageStatus.js +10 -11
- package/cjs/ui/MessageStatus.js.map +1 -1
- package/cjs/ui/Modal.js +52 -46
- package/cjs/ui/Modal.js.map +1 -1
- package/cjs/ui/MutedAvatarOverlay.js +10 -10
- package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
- package/cjs/ui/OGMessageItemBody.js +67 -63
- package/cjs/ui/OGMessageItemBody.js.map +1 -1
- package/cjs/ui/OpenChannelAdminMessage.js +8 -7
- package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
- package/cjs/ui/OpenChannelAvatar.js +18 -17
- package/cjs/ui/OpenChannelAvatar.js.map +1 -1
- package/cjs/ui/OpenchannelConversationHeader.js +17 -13
- package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
- package/cjs/ui/OpenchannelFileMessage.js +140 -151
- package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
- package/cjs/ui/OpenchannelOGMessage.js +204 -233
- package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
- package/cjs/ui/OpenchannelThumbnailMessage.js +215 -222
- package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/cjs/ui/OpenchannelUserMessage.js +168 -178
- package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
- package/cjs/ui/PlaceHolder.js +5 -6
- package/cjs/ui/PlaceHolder.js.map +1 -1
- package/cjs/ui/PlaybackTime.js +35 -0
- package/cjs/ui/PlaybackTime.js.map +1 -0
- package/cjs/ui/ProgressBar.js +40 -0
- package/cjs/ui/ProgressBar.js.map +1 -0
- package/cjs/ui/QuoteMessage.js +50 -44
- package/cjs/ui/QuoteMessage.js.map +1 -1
- package/cjs/ui/QuoteMessageInput.js +31 -29
- package/cjs/ui/QuoteMessageInput.js.map +1 -1
- package/cjs/ui/ReactionBadge.js +13 -21
- package/cjs/ui/ReactionBadge.js.map +1 -1
- package/cjs/ui/ReactionButton.js +30 -27
- package/cjs/ui/ReactionButton.js.map +1 -1
- package/cjs/ui/SortByRow.js +14 -18
- package/cjs/ui/SortByRow.js.map +1 -1
- package/cjs/ui/TextButton.js +13 -21
- package/cjs/ui/TextButton.js.map +1 -1
- package/cjs/ui/TextMessageItemBody.js +41 -48
- package/cjs/ui/TextMessageItemBody.js.map +1 -1
- package/cjs/ui/ThreadReplies.js +25 -22
- package/cjs/ui/ThreadReplies.js.map +1 -1
- package/cjs/ui/ThumbnailMessageItemBody.js +36 -45
- package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/cjs/ui/Toggle.js +202 -0
- package/cjs/ui/Toggle.js.map +1 -0
- package/cjs/ui/Tooltip.js +8 -9
- package/cjs/ui/Tooltip.js.map +1 -1
- package/cjs/ui/TooltipWrapper.js +17 -20
- package/cjs/ui/TooltipWrapper.js.map +1 -1
- package/cjs/ui/UnknownMessageItemBody.js +21 -22
- package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
- package/cjs/ui/UserListItem.js +76 -76
- package/cjs/ui/UserListItem.js.map +1 -1
- package/cjs/ui/UserProfile.js +31 -29
- package/cjs/ui/UserProfile.js.map +1 -1
- package/cjs/ui/VoiceMessageItemBody.js +119 -0
- package/cjs/ui/VoiceMessageItemBody.js.map +1 -0
- package/cjs/ui/VoiceMessgeInput.js +22 -0
- package/cjs/ui/VoiceMessgeInput.js.map +1 -0
- package/cjs/ui/Word.js +31 -39
- package/cjs/ui/Word.js.map +1 -1
- package/cjs/useDirtyGetMentions-792a65af.js +77 -0
- package/cjs/useDirtyGetMentions-792a65af.js.map +1 -0
- package/cjs/useLongPress-50d2028a.js +87 -0
- package/cjs/useLongPress-50d2028a.js.map +1 -0
- package/cjs/useSendbirdStateContext.js +2 -3
- package/cjs/useSendbirdStateContext.js.map +1 -1
- package/cjs/utils/message/getOutgoingMessageState.js +16 -21
- package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
- package/cjs/utils/message/isVoiceMessage.js +12 -0
- package/cjs/utils/message/isVoiceMessage.js.map +1 -0
- package/cjs/{utils-374d57b4.js → utils-85ff9137.js} +1 -1
- package/cjs/{utils-374d57b4.js.map → utils-85ff9137.js.map} +1 -1
- package/cjs/{utils-5f86a394.js → utils-8ce3a247.js} +3 -7
- package/cjs/{utils-5f86a394.js.map → utils-8ce3a247.js.map} +1 -1
- package/cjs/utils-c2543c4d.js +31 -0
- package/cjs/utils-c2543c4d.js.map +1 -0
- package/cjs/utils-d2648e7d.js +35 -0
- package/cjs/utils-d2648e7d.js.map +1 -0
- package/cjs/uuid-97ce2508.js +15 -0
- package/cjs/{uuid-2475ef6c.js.map → uuid-97ce2508.js.map} +1 -1
- package/cjs/withSendbird.js +5 -6
- package/cjs/withSendbird.js.map +1 -1
- package/{color-163ba24d.js → color-04427a41.js} +5 -14
- package/{color-163ba24d.js.map → color-04427a41.js.map} +1 -1
- package/{compareIds-ef41eb2c.js → compareIds-e75af4f9.js} +5 -6
- package/compareIds-e75af4f9.js.map +1 -0
- package/{const-76d87f47.js → const-8d418b81.js} +4 -4
- package/const-8d418b81.js.map +1 -0
- package/const-ec18f7f8.js +13 -0
- package/const-ec18f7f8.js.map +1 -0
- package/consts-01a1e3c0.js +4 -0
- package/consts-01a1e3c0.js.map +1 -0
- package/consts-4d93ce13.js +4 -0
- package/consts-4d93ce13.js.map +1 -0
- package/consts-a5106683.js +4 -0
- package/consts-a5106683.js.map +1 -0
- package/consts-e6fdc559.js +27 -0
- package/consts-e6fdc559.js.map +1 -0
- package/context-6272efa3.js +13 -0
- package/{context-10475c77.js.map → context-6272efa3.js.map} +1 -1
- package/dist/index.css +1847 -1394
- package/dist/index.css.map +1 -1
- package/handlers/OpenChannelHandler.js.map +1 -1
- package/handlers/SessionHandler.js.map +1 -1
- package/{index-12754b45.js → index-19daf00f.js} +55 -63
- package/index-19daf00f.js.map +1 -0
- package/index-24f4354d.js +450 -0
- package/index-24f4354d.js.map +1 -0
- package/index-2d858f6d.js +187 -0
- package/index-2d858f6d.js.map +1 -0
- package/{index-232388fa.js → index-32a56033.js} +29 -37
- package/index-32a56033.js.map +1 -0
- package/index-36d49e08.js +154 -0
- package/index-36d49e08.js.map +1 -0
- package/{index-2f346069.js → index-5819e39d.js} +1 -1
- package/index-5819e39d.js.map +1 -0
- package/index-7ff2c073.js +360 -0
- package/index-7ff2c073.js.map +1 -0
- package/index-9a62272f.js +51 -0
- package/index-9a62272f.js.map +1 -0
- package/{index-4ebfc7a7.js → index-a4552c13.js} +1 -1
- package/{index-4ebfc7a7.js.map → index-a4552c13.js.map} +1 -1
- package/index-b3c3e1aa.js +76 -0
- package/index-b3c3e1aa.js.map +1 -0
- package/index-c589f349.js +540 -0
- package/index-c589f349.js.map +1 -0
- package/{index-2784bdd8.js → index-d88e3ef9.js} +11 -25
- package/index-d88e3ef9.js.map +1 -0
- package/{index-751f97ce.js → index-dcaf3cb8.js} +57 -4
- package/index-dcaf3cb8.js.map +1 -0
- package/{index-a02da5bd.js → index-dd8e8ea1.js} +2 -2
- package/{index-a02da5bd.js.map → index-dd8e8ea1.js.map} +1 -1
- package/index-f4374646.js +320 -0
- package/index-f4374646.js.map +1 -0
- package/{index-aea7b7d6.js → index-fe7ed4c0.js} +39 -48
- package/index-fe7ed4c0.js.map +1 -0
- package/{index-3c013a28.js → index-fea4f7d3.js} +2 -2
- package/{index-3c013a28.js.map → index-fea4f7d3.js.map} +1 -1
- package/index.d.ts +176 -124
- package/index.js +84 -63
- package/index.js.map +1 -1
- package/index.module-1ba8586e.js +4 -0
- package/index.module-1ba8586e.js.map +1 -0
- package/lame.all.js +2537 -0
- package/lame.all.js.map +1 -0
- package/package.json +62 -41
- package/resolvedReplyType-94a089b3.js +29 -0
- package/resolvedReplyType-94a089b3.js.map +1 -0
- package/sendbirdSelectors.js +307 -417
- package/sendbirdSelectors.js.map +1 -1
- package/{stringSet-9ae71b7d.js → stringSet-3649b375.js} +112 -90
- package/stringSet-3649b375.js.map +1 -0
- package/tokenize-053e921e.js +159 -0
- package/tokenize-053e921e.js.map +1 -0
- package/topics-d0dcd2f2.js +16 -0
- package/topics-d0dcd2f2.js.map +1 -0
- package/types-54edb45d.js +15 -0
- package/types-54edb45d.js.map +1 -0
- package/ui/Accordion.js +21 -24
- package/ui/Accordion.js.map +1 -1
- package/ui/AccordionGroup.js +10 -13
- package/ui/AccordionGroup.js.map +1 -1
- package/ui/AdminMessage.js +10 -13
- package/ui/AdminMessage.js.map +1 -1
- package/ui/Avatar.js +57 -79
- package/ui/Avatar.js.map +1 -1
- package/ui/Badge.js +16 -15
- package/ui/Badge.js.map +1 -1
- package/ui/BottomSheet.js +14 -12
- package/ui/BottomSheet.js.map +1 -1
- package/ui/Button.js +20 -35
- package/ui/Button.js.map +1 -1
- package/ui/ChannelAvatar.js +38 -41
- package/ui/ChannelAvatar.js.map +1 -1
- package/ui/Checkbox.js +11 -13
- package/ui/Checkbox.js.map +1 -1
- package/ui/ConnectionStatus.js +7 -5
- package/ui/ConnectionStatus.js.map +1 -1
- package/ui/ContextMenu.js +176 -200
- package/ui/ContextMenu.js.map +1 -1
- package/ui/DateSeparator.js +12 -14
- package/ui/DateSeparator.js.map +1 -1
- package/ui/EmojiReactions.js +300 -108
- package/ui/EmojiReactions.js.map +1 -1
- package/ui/FileMessageItemBody.js +22 -23
- package/ui/FileMessageItemBody.js.map +1 -1
- package/ui/FileViewer.js +36 -36
- package/ui/FileViewer.js.map +1 -1
- package/ui/Icon.js +448 -622
- package/ui/Icon.js.map +1 -1
- package/ui/IconButton.js +20 -31
- package/ui/IconButton.js.map +1 -1
- package/ui/ImageRenderer.js +34 -43
- package/ui/ImageRenderer.js.map +1 -1
- package/ui/Input.js +16 -16
- package/ui/Input.js.map +1 -1
- package/ui/Label.js +2 -2
- package/ui/LinkLabel.js +4 -3
- package/ui/LinkLabel.js.map +1 -1
- package/ui/Loader.js +10 -12
- package/ui/Loader.js.map +1 -1
- package/ui/MentionLabel.js +58 -65
- package/ui/MentionLabel.js.map +1 -1
- package/ui/MentionUserLabel.js +12 -10
- package/ui/MentionUserLabel.js.map +1 -1
- package/ui/MessageContent.js +219 -553
- package/ui/MessageContent.js.map +1 -1
- package/ui/MessageInput.js +392 -120
- package/ui/MessageInput.js.map +1 -1
- package/ui/MessageItemMenu.js +83 -83
- package/ui/MessageItemMenu.js.map +1 -1
- package/ui/MessageItemReactionMenu.js +58 -62
- package/ui/MessageItemReactionMenu.js.map +1 -1
- package/ui/MessageSearchFileItem.js +55 -50
- package/ui/MessageSearchFileItem.js.map +1 -1
- package/ui/MessageSearchItem.js +41 -40
- package/ui/MessageSearchItem.js.map +1 -1
- package/ui/MessageStatus.js +10 -11
- package/ui/MessageStatus.js.map +1 -1
- package/ui/Modal.js +52 -46
- package/ui/Modal.js.map +1 -1
- package/ui/MutedAvatarOverlay.js +10 -10
- package/ui/MutedAvatarOverlay.js.map +1 -1
- package/ui/OGMessageItemBody.js +68 -64
- package/ui/OGMessageItemBody.js.map +1 -1
- package/ui/OpenChannelAdminMessage.js +8 -7
- package/ui/OpenChannelAdminMessage.js.map +1 -1
- package/ui/OpenChannelAvatar.js +18 -17
- package/ui/OpenChannelAvatar.js.map +1 -1
- package/ui/OpenchannelConversationHeader.js +17 -13
- package/ui/OpenchannelConversationHeader.js.map +1 -1
- package/ui/OpenchannelFileMessage.js +140 -151
- package/ui/OpenchannelFileMessage.js.map +1 -1
- package/ui/OpenchannelOGMessage.js +204 -233
- package/ui/OpenchannelOGMessage.js.map +1 -1
- package/ui/OpenchannelThumbnailMessage.js +215 -222
- package/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/ui/OpenchannelUserMessage.js +168 -178
- package/ui/OpenchannelUserMessage.js.map +1 -1
- package/ui/PlaceHolder.js +5 -6
- package/ui/PlaceHolder.js.map +1 -1
- package/ui/PlaybackTime.js +26 -0
- package/ui/PlaybackTime.js.map +1 -0
- package/ui/ProgressBar.js +30 -0
- package/ui/ProgressBar.js.map +1 -0
- package/ui/QuoteMessage.js +50 -44
- package/ui/QuoteMessage.js.map +1 -1
- package/ui/QuoteMessageInput.js +31 -29
- package/ui/QuoteMessageInput.js.map +1 -1
- package/ui/ReactionBadge.js +13 -21
- package/ui/ReactionBadge.js.map +1 -1
- package/ui/ReactionButton.js +30 -27
- package/ui/ReactionButton.js.map +1 -1
- package/ui/SortByRow.js +14 -18
- package/ui/SortByRow.js.map +1 -1
- package/ui/TextButton.js +13 -21
- package/ui/TextButton.js.map +1 -1
- package/ui/TextMessageItemBody.js +41 -48
- package/ui/TextMessageItemBody.js.map +1 -1
- package/ui/ThreadReplies.js +25 -22
- package/ui/ThreadReplies.js.map +1 -1
- package/ui/ThumbnailMessageItemBody.js +36 -45
- package/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/ui/Toggle.js +191 -0
- package/ui/Toggle.js.map +1 -0
- package/ui/Tooltip.js +8 -9
- package/ui/Tooltip.js.map +1 -1
- package/ui/TooltipWrapper.js +17 -20
- package/ui/TooltipWrapper.js.map +1 -1
- package/ui/UnknownMessageItemBody.js +21 -22
- package/ui/UnknownMessageItemBody.js.map +1 -1
- package/ui/UserListItem.js +76 -76
- package/ui/UserListItem.js.map +1 -1
- package/ui/UserProfile.js +31 -29
- package/ui/UserProfile.js.map +1 -1
- package/ui/VoiceMessageItemBody.js +110 -0
- package/ui/VoiceMessageItemBody.js.map +1 -0
- package/ui/VoiceMessgeInput.js +14 -0
- package/ui/VoiceMessgeInput.js.map +1 -0
- package/ui/Word.js +31 -39
- package/ui/Word.js.map +1 -1
- package/useDirtyGetMentions-b9a9c21b.js +75 -0
- package/useDirtyGetMentions-b9a9c21b.js.map +1 -0
- package/useLongPress-5e28b292.js +85 -0
- package/useLongPress-5e28b292.js.map +1 -0
- package/useSendbirdStateContext.js +2 -3
- package/useSendbirdStateContext.js.map +1 -1
- package/utils/message/getOutgoingMessageState.js +9 -15
- package/utils/message/getOutgoingMessageState.js.map +1 -1
- package/utils/message/isVoiceMessage.js +8 -0
- package/utils/message/isVoiceMessage.js.map +1 -0
- package/utils-1f5c8b6c.js +29 -0
- package/utils-1f5c8b6c.js.map +1 -0
- package/{utils-ddb0df4c.js → utils-712b81f7.js} +3 -7
- package/{utils-ddb0df4c.js.map → utils-712b81f7.js.map} +1 -1
- package/{utils-ea66f822.js → utils-a1f2aa01.js} +1 -1
- package/{utils-ea66f822.js.map → utils-a1f2aa01.js.map} +1 -1
- package/utils-cbae9afc.js +31 -0
- package/utils-cbae9afc.js.map +1 -0
- package/uuid-8c96bee0.js +13 -0
- package/{uuid-7e004f47.js.map → uuid-8c96bee0.js.map} +1 -1
- package/withSendbird.js +5 -6
- package/withSendbird.js.map +1 -1
- package/ChannelListProvider-1d36e2e9.js.map +0 -1
- package/ChannelProvider-289cd35f.js.map +0 -1
- package/CreateChannelProvider-72b655e9.js +0 -55
- package/CreateChannelProvider-72b655e9.js.map +0 -1
- package/LocalizationContext-289c1917.js +0 -22
- package/MediaQueryContext-273d29f6.js +0 -90
- package/MediaQueryContext-273d29f6.js.map +0 -1
- package/MemberList-7ad0fa0b.js +0 -435
- package/MemberList-7ad0fa0b.js.map +0 -1
- package/NotificationChannel/components/NotificationChannelUI.js +0 -119
- package/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
- package/NotificationChannel/components/NotificationList.js +0 -111
- package/NotificationChannel/components/NotificationList.js.map +0 -1
- package/NotificationChannel/components/NotificationMessageWrap.js +0 -136
- package/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
- package/NotificationChannel/context.js +0 -12
- package/NotificationChannel.js +0 -58
- package/NotificationChannel.js.map +0 -1
- package/NotificationChannelProvider-ad556c64.js +0 -535
- package/NotificationChannelProvider-ad556c64.js.map +0 -1
- package/OpenChannelListProvider-0febf8b2.js +0 -434
- package/OpenChannelListProvider-0febf8b2.js.map +0 -1
- package/OpenChannelProvider-c254c663.js +0 -2000
- package/OpenChannelProvider-c254c663.js.map +0 -1
- package/RemoveMessageModal-d6cbf9fa.js +0 -31
- package/RemoveMessageModal-d6cbf9fa.js.map +0 -1
- package/ThreadProvider-8696ef31.js +0 -1644
- package/ThreadProvider-8696ef31.js.map +0 -1
- package/_rollupPluginBabelHelpers-519f674b.js.map +0 -1
- package/actionTypes-9f87e87f.js +0 -6
- package/actionTypes-9f87e87f.js.map +0 -1
- package/cjs/ChannelListProvider-0de52d2b.js.map +0 -1
- package/cjs/ChannelProvider-fc58e60e.js.map +0 -1
- package/cjs/CreateChannelProvider-a82d20f4.js +0 -62
- package/cjs/CreateChannelProvider-a82d20f4.js.map +0 -1
- package/cjs/MediaQueryContext-4711a81f.js +0 -97
- package/cjs/MediaQueryContext-4711a81f.js.map +0 -1
- package/cjs/MemberList-b2623166.js +0 -441
- package/cjs/MemberList-b2623166.js.map +0 -1
- package/cjs/NotificationChannel/components/NotificationChannelUI.js +0 -125
- package/cjs/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
- package/cjs/NotificationChannel/components/NotificationList.js +0 -117
- package/cjs/NotificationChannel/components/NotificationList.js.map +0 -1
- package/cjs/NotificationChannel/components/NotificationMessageWrap.js +0 -142
- package/cjs/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
- package/cjs/NotificationChannel/context.js +0 -21
- package/cjs/NotificationChannel.js +0 -64
- package/cjs/NotificationChannel.js.map +0 -1
- package/cjs/NotificationChannelProvider-2cdc7ff4.js +0 -543
- package/cjs/NotificationChannelProvider-2cdc7ff4.js.map +0 -1
- package/cjs/OpenChannelListProvider-60bc3c69.js +0 -443
- package/cjs/OpenChannelListProvider-60bc3c69.js.map +0 -1
- package/cjs/OpenChannelProvider-3ed4eb6e.js +0 -2009
- package/cjs/OpenChannelProvider-3ed4eb6e.js.map +0 -1
- package/cjs/RemoveMessageModal-9169766a.js.map +0 -1
- package/cjs/ThreadProvider-389f5031.js +0 -1653
- package/cjs/ThreadProvider-389f5031.js.map +0 -1
- package/cjs/_rollupPluginBabelHelpers-fed1e122.js.map +0 -1
- package/cjs/actionTypes-2f90e726.js +0 -10
- package/cjs/actionTypes-2f90e726.js.map +0 -1
- package/cjs/color-f47044b3.js.map +0 -1
- package/cjs/compareIds-4124b297.js.map +0 -1
- package/cjs/const-015e5589.js +0 -20
- package/cjs/const-015e5589.js.map +0 -1
- package/cjs/const-fd64914b.js.map +0 -1
- package/cjs/index-30c97863.js +0 -194
- package/cjs/index-30c97863.js.map +0 -1
- package/cjs/index-3a4f8219.js.map +0 -1
- package/cjs/index-40e4653a.js +0 -59
- package/cjs/index-40e4653a.js.map +0 -1
- package/cjs/index-5d5497c2.js.map +0 -1
- package/cjs/index-62c1bdfc.js +0 -701
- package/cjs/index-62c1bdfc.js.map +0 -1
- package/cjs/index-9ca07037.js.map +0 -1
- package/cjs/index-9f3670d0.js +0 -360
- package/cjs/index-9f3670d0.js.map +0 -1
- package/cjs/index-abbc8024.js.map +0 -1
- package/cjs/index-c475c3c8.js.map +0 -1
- package/cjs/index-c5cd589d.js.map +0 -1
- package/cjs/stringSet-3e6167ef.js.map +0 -1
- package/cjs/topics-56842e14.js +0 -22
- package/cjs/topics-56842e14.js.map +0 -1
- package/cjs/tslib.es6-b8ba50ef.js +0 -110
- package/cjs/tslib.es6-b8ba50ef.js.map +0 -1
- package/cjs/useLongPress-99c66f7f.js +0 -118
- package/cjs/useLongPress-99c66f7f.js.map +0 -1
- package/cjs/utils-9adfd244.js +0 -38
- package/cjs/utils-9adfd244.js.map +0 -1
- package/cjs/utils-f6a96ebf.js +0 -32
- package/cjs/utils-f6a96ebf.js.map +0 -1
- package/cjs/uuid-2475ef6c.js +0 -19
- package/compareIds-ef41eb2c.js.map +0 -1
- package/const-76d87f47.js.map +0 -1
- package/const-da6f3d34.js +0 -14
- package/const-da6f3d34.js.map +0 -1
- package/context-10475c77.js +0 -12
- package/index-12754b45.js.map +0 -1
- package/index-1e46e582.js +0 -179
- package/index-1e46e582.js.map +0 -1
- package/index-232388fa.js.map +0 -1
- package/index-2784bdd8.js.map +0 -1
- package/index-2f346069.js.map +0 -1
- package/index-4637b0de.js +0 -57
- package/index-4637b0de.js.map +0 -1
- package/index-4900e890.js +0 -353
- package/index-4900e890.js.map +0 -1
- package/index-751f97ce.js.map +0 -1
- package/index-855ef33d.js +0 -662
- package/index-855ef33d.js.map +0 -1
- package/index-aea7b7d6.js.map +0 -1
- package/stringSet-9ae71b7d.js.map +0 -1
- package/topics-e2963bba.js +0 -13
- package/topics-e2963bba.js.map +0 -1
- package/tslib.es6-72df3331.js +0 -104
- package/tslib.es6-72df3331.js.map +0 -1
- package/useLongPress-1a777e9e.js +0 -116
- package/useLongPress-1a777e9e.js.map +0 -1
- package/utils-2976f2c1.js +0 -30
- package/utils-2976f2c1.js.map +0 -1
- package/utils-6b69fb18.js +0 -34
- package/utils-6b69fb18.js.map +0 -1
- package/uuid-7e004f47.js +0 -17
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
import { u as useVoicePlayerContext, b as AudioUnitDefaultValue } from '../index-f4374646.js';
|
|
3
|
+
import { g as VOICE_PLAYER_AUDIO_ID } from '../consts-e6fdc559.js';
|
|
4
|
+
import { useVoiceRecorderContext } from '../VoiceRecorder/context.js';
|
|
5
|
+
import '../_rollupPluginBabelHelpers-1be219c2.js';
|
|
6
|
+
import '../useSendbirdStateContext.js';
|
|
7
|
+
import '../withSendbird.js';
|
|
8
|
+
import '../LocalizationContext-25d6694d.js';
|
|
9
|
+
import '../stringSet-3649b375.js';
|
|
10
|
+
import '../index-a4552c13.js';
|
|
11
|
+
import '../ui/Modal.js';
|
|
12
|
+
import 'react-dom';
|
|
13
|
+
import '../index-5819e39d.js';
|
|
14
|
+
import '../ui/Button.js';
|
|
15
|
+
import '../index-d88e3ef9.js';
|
|
16
|
+
import 'prop-types';
|
|
17
|
+
import '../ui/Icon.js';
|
|
18
|
+
import '../ui/IconButton.js';
|
|
19
|
+
import '../MediaQueryContext-94c9086a.js';
|
|
20
|
+
|
|
21
|
+
const generateGroupKey = function () {
|
|
22
|
+
let channelUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
23
|
+
let key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
24
|
+
return `${channelUrl}-${key}`;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const useVoicePlayer = _ref => {
|
|
28
|
+
var _voicePlayerStore$aud;
|
|
29
|
+
let {
|
|
30
|
+
key = '',
|
|
31
|
+
channelUrl = '',
|
|
32
|
+
audioFile = null,
|
|
33
|
+
audioFileUrl = ''
|
|
34
|
+
} = _ref;
|
|
35
|
+
const [groupKey] = useState(generateGroupKey(channelUrl, key));
|
|
36
|
+
const {
|
|
37
|
+
play,
|
|
38
|
+
pause,
|
|
39
|
+
stop,
|
|
40
|
+
voicePlayerStore
|
|
41
|
+
} = useVoicePlayerContext();
|
|
42
|
+
const {
|
|
43
|
+
isRecordable
|
|
44
|
+
} = useVoiceRecorderContext();
|
|
45
|
+
const currentAudioUnit = (voicePlayerStore === null || voicePlayerStore === void 0 ? void 0 : (_voicePlayerStore$aud = voicePlayerStore.audioStorage) === null || _voicePlayerStore$aud === void 0 ? void 0 : _voicePlayerStore$aud[groupKey]) || AudioUnitDefaultValue();
|
|
46
|
+
const playVoicePlayer = () => {
|
|
47
|
+
if (!isRecordable) {
|
|
48
|
+
play === null || play === void 0 ? void 0 : play({
|
|
49
|
+
groupKey,
|
|
50
|
+
audioFile,
|
|
51
|
+
audioFileUrl
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const pauseVoicePlayer = () => {
|
|
56
|
+
pause === null || pause === void 0 ? void 0 : pause(groupKey);
|
|
57
|
+
};
|
|
58
|
+
const stopVoicePlayer = function () {
|
|
59
|
+
let text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
60
|
+
stop === null || stop === void 0 ? void 0 : stop(text);
|
|
61
|
+
};
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
return () => {
|
|
64
|
+
if (audioFile || audioFileUrl) {
|
|
65
|
+
var _pause, _ref2;
|
|
66
|
+
// Can't get the current AudioPlayer through the React hooks(useReducer or useState) in this scope
|
|
67
|
+
const voiceAudioPlayerElement = document.getElementById(VOICE_PLAYER_AUDIO_ID);
|
|
68
|
+
voiceAudioPlayerElement === null || voiceAudioPlayerElement === void 0 ? void 0 : (_pause = (_ref2 = voiceAudioPlayerElement).pause) === null || _pause === void 0 ? void 0 : _pause.call(_ref2);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
}, []);
|
|
72
|
+
return {
|
|
73
|
+
play: playVoicePlayer,
|
|
74
|
+
pause: pauseVoicePlayer,
|
|
75
|
+
stop: stopVoicePlayer,
|
|
76
|
+
playbackTime: currentAudioUnit.playbackTime * 1000,
|
|
77
|
+
duration: currentAudioUnit.duration * 1000,
|
|
78
|
+
// the unit of playbackTime and duration should be millisecond
|
|
79
|
+
playingStatus: currentAudioUnit.playingStatus
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
export { useVoicePlayer };
|
|
84
|
+
//# sourceMappingURL=useVoicePlayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useVoicePlayer.js","sources":["../../src/hooks/VoicePlayer/utils.ts","../../src/hooks/VoicePlayer/useVoicePlayer.tsx"],"sourcesContent":["export type GroupKey = string;\nexport const generateGroupKey = (channelUrl = '', key = ''): GroupKey => (`${channelUrl}-${key}`);\n","import { useEffect, useState } from 'react';\nimport { useVoicePlayerContext } from '.';\nimport { VOICE_PLAYER_AUDIO_ID } from '../../utils/consts';\nimport { useVoiceRecorderContext } from '../VoiceRecorder';\n\nimport { AudioUnitDefaultValue, VoicePlayerStatusType } from './dux/initialState';\nimport { generateGroupKey } from './utils';\n\nexport interface UseVoicePlayerProps {\n key: string;\n channelUrl: string;\n audioFile?: File;\n audioFileUrl?: string;\n}\n\nexport interface UseVoicePlayerContext {\n play: () => void;\n pause: () => void;\n stop: (text?: string) => void;\n playbackTime: number;\n duration: number;\n playingStatus: VoicePlayerStatusType;\n}\n\nexport const useVoicePlayer = ({\n key = '',\n channelUrl = '',\n audioFile = null,\n audioFileUrl = '',\n}: UseVoicePlayerProps): UseVoicePlayerContext => {\n const [groupKey] = useState<string>(generateGroupKey(channelUrl, key));\n const {\n play,\n pause,\n stop,\n voicePlayerStore,\n } = useVoicePlayerContext();\n const { isRecordable } = useVoiceRecorderContext();\n const currentAudioUnit = voicePlayerStore?.audioStorage?.[groupKey] || AudioUnitDefaultValue();\n\n const playVoicePlayer = () => {\n if (!isRecordable) {\n play?.({\n groupKey,\n audioFile,\n audioFileUrl,\n });\n }\n };\n\n const pauseVoicePlayer = () => {\n pause?.(groupKey);\n };\n\n const stopVoicePlayer = (text = '') => {\n stop?.(text);\n };\n\n useEffect(() => {\n return () => {\n if (audioFile || audioFileUrl) {\n // Can't get the current AudioPlayer through the React hooks(useReducer or useState) in this scope\n const voiceAudioPlayerElement = document.getElementById(VOICE_PLAYER_AUDIO_ID);\n (voiceAudioPlayerElement as HTMLAudioElement)?.pause?.();\n }\n };\n }, []);\n\n return ({\n play: playVoicePlayer,\n pause: pauseVoicePlayer,\n stop: stopVoicePlayer,\n playbackTime: currentAudioUnit.playbackTime * 1000,\n duration: currentAudioUnit.duration * 1000,\n // the unit of playbackTime and duration should be millisecond\n playingStatus: currentAudioUnit.playingStatus,\n });\n};\n"],"names":["generateGroupKey","channelUrl","arguments","length","undefined","key","useVoicePlayer","_ref","_voicePlayerStore$aud","audioFile","audioFileUrl","groupKey","useState","play","pause","stop","voicePlayerStore","useVoicePlayerContext","isRecordable","useVoiceRecorderContext","currentAudioUnit","audioStorage","AudioUnitDefaultValue","playVoicePlayer","pauseVoicePlayer","stopVoicePlayer","text","useEffect","_pause","_ref2","voiceAudioPlayerElement","document","getElementById","VOICE_PLAYER_AUDIO_ID","call","playbackTime","duration","playingStatus"],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import React__default, { useState, useEffect, useCallback, useContext, createContext } from 'react';
|
|
2
|
+
import { u as useLocalization } from '../LocalizationContext-25d6694d.js';
|
|
3
|
+
import Modal from '../ui/Modal.js';
|
|
4
|
+
import { B as BROWSER_SUPPORT_MIME_TYPE_LIST, h as VOICE_RECORDER_AUDIO_BITS, b as VOICE_MESSAGE_FILE_NAME, c as VOICE_MESSAGE_MIME_TYPE } from '../consts-e6fdc559.js';
|
|
5
|
+
import useSendbirdStateContext from '../useSendbirdStateContext.js';
|
|
6
|
+
import '../stringSet-3649b375.js';
|
|
7
|
+
import '../index-a4552c13.js';
|
|
8
|
+
import 'react-dom';
|
|
9
|
+
import '../index-5819e39d.js';
|
|
10
|
+
import '../ui/Button.js';
|
|
11
|
+
import '../index-d88e3ef9.js';
|
|
12
|
+
import 'prop-types';
|
|
13
|
+
import '../ui/Icon.js';
|
|
14
|
+
import '../ui/IconButton.js';
|
|
15
|
+
import '../_rollupPluginBabelHelpers-1be219c2.js';
|
|
16
|
+
import '../MediaQueryContext-94c9086a.js';
|
|
17
|
+
import '../withSendbird.js';
|
|
18
|
+
|
|
19
|
+
// Input props of VoiceRecorder
|
|
20
|
+
|
|
21
|
+
// Output of VoiceRecorder
|
|
22
|
+
|
|
23
|
+
const noop = () => {/* noop */};
|
|
24
|
+
const Context = /*#__PURE__*/createContext({
|
|
25
|
+
start: noop,
|
|
26
|
+
stop: noop,
|
|
27
|
+
isRecordable: false
|
|
28
|
+
});
|
|
29
|
+
const VoiceRecorderProvider = props => {
|
|
30
|
+
var _BROWSER_SUPPORT_MIME;
|
|
31
|
+
const {
|
|
32
|
+
children
|
|
33
|
+
} = props;
|
|
34
|
+
const {
|
|
35
|
+
config
|
|
36
|
+
} = useSendbirdStateContext();
|
|
37
|
+
const {
|
|
38
|
+
logger,
|
|
39
|
+
isVoiceMessageEnabled
|
|
40
|
+
} = config;
|
|
41
|
+
const [mediaRecorder, setMediaRecorder] = useState(null);
|
|
42
|
+
const [isRecordable, setIsRecordable] = useState(false);
|
|
43
|
+
const [permissionWarning, setPermissionWarning] = useState(false);
|
|
44
|
+
const {
|
|
45
|
+
stringSet
|
|
46
|
+
} = useLocalization();
|
|
47
|
+
const checkPermission = () => {
|
|
48
|
+
try {
|
|
49
|
+
// Type '"microphone"' is not assignable to type 'PermissionName'.ts(2322)
|
|
50
|
+
// this is typescript issue
|
|
51
|
+
// https://github.com/microsoft/TypeScript/issues/33923
|
|
52
|
+
// @ts-expect-error
|
|
53
|
+
navigator.permissions.query({
|
|
54
|
+
name: 'microphone'
|
|
55
|
+
}).then(result => {
|
|
56
|
+
if (result.state === 'denied') {
|
|
57
|
+
logger.warning('VoiceRecorder: Permission denied.');
|
|
58
|
+
setPermissionWarning(true);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
} catch (error) {
|
|
62
|
+
logger.warning('VoiceRecorder: Failed to check permission.', error);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
const browserSupportMimeType = (_BROWSER_SUPPORT_MIME = BROWSER_SUPPORT_MIME_TYPE_LIST.find(mimeType => MediaRecorder.isTypeSupported(mimeType))) !== null && _BROWSER_SUPPORT_MIME !== void 0 ? _BROWSER_SUPPORT_MIME : '';
|
|
66
|
+
if (!browserSupportMimeType) {
|
|
67
|
+
logger.error('VoiceRecorder: Browser does not support mimeType', {
|
|
68
|
+
mimmeTypes: BROWSER_SUPPORT_MIME_TYPE_LIST
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
const [webAudioUtils, setWebAudioUtils] = useState(null);
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
if (isVoiceMessageEnabled && !webAudioUtils) {
|
|
74
|
+
import('../WebAudioUtils-16540f03.js').then(data => {
|
|
75
|
+
setWebAudioUtils(data);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}, []);
|
|
79
|
+
const start = useCallback(eventHandler => {
|
|
80
|
+
var _navigator, _navigator$mediaDevic, _navigator$mediaDevic2;
|
|
81
|
+
if (isVoiceMessageEnabled && !webAudioUtils) {
|
|
82
|
+
logger.error('VoiceRecorder: Recording audio processor is being loaded.');
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
logger.info('VoiceRecorder: Start recording.');
|
|
86
|
+
if (mediaRecorder) {
|
|
87
|
+
stop();
|
|
88
|
+
logger.info('VoiceRecorder: Previous mediaRecorder is stopped.');
|
|
89
|
+
}
|
|
90
|
+
checkPermission();
|
|
91
|
+
(_navigator = navigator) === null || _navigator === void 0 ? void 0 : (_navigator$mediaDevic = _navigator.mediaDevices) === null || _navigator$mediaDevic === void 0 ? void 0 : (_navigator$mediaDevic2 = _navigator$mediaDevic.getUserMedia) === null || _navigator$mediaDevic2 === void 0 ? void 0 : _navigator$mediaDevic2.call(_navigator$mediaDevic, {
|
|
92
|
+
audio: true
|
|
93
|
+
}).then(stream => {
|
|
94
|
+
logger.info('VoiceRecorder: Succeeded getting media stream.', stream);
|
|
95
|
+
setIsRecordable(true);
|
|
96
|
+
const mediaRecorder = new MediaRecorder(stream, {
|
|
97
|
+
mimeType: browserSupportMimeType,
|
|
98
|
+
audioBitsPerSecond: VOICE_RECORDER_AUDIO_BITS
|
|
99
|
+
});
|
|
100
|
+
mediaRecorder.ondataavailable = e => {
|
|
101
|
+
var _stream$getAudioTrack, _stream$getAudioTrack2, _stream$getAudioTrack3;
|
|
102
|
+
// when recording stops
|
|
103
|
+
logger.info('VoiceRecorder: Succeeded getting an available data.', e.data);
|
|
104
|
+
const audioFile = new File([e.data], VOICE_MESSAGE_FILE_NAME, {
|
|
105
|
+
lastModified: new Date().getTime(),
|
|
106
|
+
type: VOICE_MESSAGE_MIME_TYPE
|
|
107
|
+
});
|
|
108
|
+
webAudioUtils === null || webAudioUtils === void 0 ? void 0 : webAudioUtils.downsampleToWav(audioFile, buffer => {
|
|
109
|
+
const mp3Buffer = webAudioUtils === null || webAudioUtils === void 0 ? void 0 : webAudioUtils.encodeMp3(buffer);
|
|
110
|
+
const mp3blob = new Blob(mp3Buffer, {
|
|
111
|
+
type: VOICE_MESSAGE_MIME_TYPE
|
|
112
|
+
});
|
|
113
|
+
const convertedAudioFile = new File([mp3blob], VOICE_MESSAGE_FILE_NAME, {
|
|
114
|
+
lastModified: new Date().getTime(),
|
|
115
|
+
type: VOICE_MESSAGE_MIME_TYPE
|
|
116
|
+
});
|
|
117
|
+
eventHandler === null || eventHandler === void 0 ? void 0 : eventHandler.onRecordingEnded(convertedAudioFile);
|
|
118
|
+
logger.info('VoiceRecorder: Succeeded converting audio file.', convertedAudioFile);
|
|
119
|
+
});
|
|
120
|
+
stream === null || stream === void 0 ? void 0 : (_stream$getAudioTrack = stream.getAudioTracks) === null || _stream$getAudioTrack === void 0 ? void 0 : (_stream$getAudioTrack2 = (_stream$getAudioTrack3 = _stream$getAudioTrack.call(stream)).forEach) === null || _stream$getAudioTrack2 === void 0 ? void 0 : _stream$getAudioTrack2.call(_stream$getAudioTrack3, track => track === null || track === void 0 ? void 0 : track.stop());
|
|
121
|
+
setIsRecordable(false);
|
|
122
|
+
};
|
|
123
|
+
mediaRecorder === null || mediaRecorder === void 0 ? void 0 : mediaRecorder.start();
|
|
124
|
+
setMediaRecorder(mediaRecorder);
|
|
125
|
+
eventHandler === null || eventHandler === void 0 ? void 0 : eventHandler.onRecordingStarted();
|
|
126
|
+
}).catch(err => {
|
|
127
|
+
logger.error('VoiceRecorder: Failed getting media stream.', err);
|
|
128
|
+
setMediaRecorder(null);
|
|
129
|
+
});
|
|
130
|
+
}, [mediaRecorder, webAudioUtils]);
|
|
131
|
+
const stop = useCallback(() => {
|
|
132
|
+
// Stop recording
|
|
133
|
+
mediaRecorder === null || mediaRecorder === void 0 ? void 0 : mediaRecorder.stop();
|
|
134
|
+
setMediaRecorder(null);
|
|
135
|
+
setIsRecordable(false);
|
|
136
|
+
logger.info('VoiceRecorder: Stop recording.');
|
|
137
|
+
}, [mediaRecorder]);
|
|
138
|
+
return /*#__PURE__*/React__default.createElement(Context.Provider, {
|
|
139
|
+
value: {
|
|
140
|
+
start,
|
|
141
|
+
stop,
|
|
142
|
+
isRecordable
|
|
143
|
+
}
|
|
144
|
+
}, children, permissionWarning && /*#__PURE__*/React__default.createElement(Modal, {
|
|
145
|
+
hideFooter: true,
|
|
146
|
+
onCancel: () => setPermissionWarning(false)
|
|
147
|
+
}, /*#__PURE__*/React__default.createElement(React__default.Fragment, null, stringSet.VOICE_RECORDING_PERMISSION_DENIED)));
|
|
148
|
+
};
|
|
149
|
+
const useVoiceRecorderContext = () => useContext(Context);
|
|
150
|
+
var index = {
|
|
151
|
+
VoiceRecorderProvider,
|
|
152
|
+
useVoiceRecorderContext
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
export { VoiceRecorderProvider, index as default, useVoiceRecorderContext };
|
|
156
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../src/hooks/VoiceRecorder/index.tsx"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useState } from 'react';\n\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport Modal from '../../ui/Modal';\nimport {\n BROWSER_SUPPORT_MIME_TYPE_LIST,\n VOICE_MESSAGE_FILE_NAME,\n VOICE_MESSAGE_MIME_TYPE,\n VOICE_RECORDER_AUDIO_BITS,\n} from '../../utils/consts';\nimport useSendbirdStateContext from '../useSendbirdStateContext';\n\n// Input props of VoiceRecorder\nexport interface VoiceRecorderProps {\n children: React.ReactElement;\n}\n\nexport interface VoiceRecorderEventHandler {\n onRecordingStarted?: () => void;\n onRecordingEnded?: (props: null | File) => void;\n}\n\n// Output of VoiceRecorder\nexport interface VoiceRecorderContext {\n start: (eventHandler?: VoiceRecorderEventHandler) => void,\n stop: () => void,\n isRecordable: boolean;\n}\nconst noop = () => { /* noop */ };\nconst Context = createContext<VoiceRecorderContext>({\n start: noop,\n stop: noop,\n isRecordable: false,\n});\n\nexport const VoiceRecorderProvider = (props: VoiceRecorderProps): React.ReactElement => {\n const { children } = props;\n const { config } = useSendbirdStateContext();\n const { logger, isVoiceMessageEnabled } = config;\n const [mediaRecorder, setMediaRecorder] = useState<MediaRecorder>(null);\n const [isRecordable, setIsRecordable] = useState<boolean>(false);\n const [permissionWarning, setPermissionWarning] = useState<boolean>(false);\n const { stringSet } = useLocalization();\n\n const checkPermission = () => {\n try {\n // Type '\"microphone\"' is not assignable to type 'PermissionName'.ts(2322)\n // this is typescript issue\n // https://github.com/microsoft/TypeScript/issues/33923\n // @ts-expect-error\n navigator.permissions.query({ name: 'microphone' }).then((result) => {\n if (result.state === 'denied') {\n logger.warning('VoiceRecorder: Permission denied.');\n setPermissionWarning(true);\n }\n });\n } catch (error) {\n logger.warning('VoiceRecorder: Failed to check permission.', error);\n }\n };\n\n const browserSupportMimeType = BROWSER_SUPPORT_MIME_TYPE_LIST.find((mimeType) => MediaRecorder.isTypeSupported(mimeType)) ?? '';\n if (!browserSupportMimeType) {\n logger.error('VoiceRecorder: Browser does not support mimeType', { mimmeTypes: BROWSER_SUPPORT_MIME_TYPE_LIST });\n }\n\n const [webAudioUtils, setWebAudioUtils] = useState(null);\n useEffect(() => {\n if (isVoiceMessageEnabled && !webAudioUtils) {\n import('./WebAudioUtils').then((data) => {\n setWebAudioUtils(data);\n });\n }\n }, []);\n\n const start = useCallback((eventHandler: VoiceRecorderEventHandler): void => {\n if (isVoiceMessageEnabled && !webAudioUtils) {\n logger.error('VoiceRecorder: Recording audio processor is being loaded.');\n return;\n }\n\n logger.info('VoiceRecorder: Start recording.');\n if (mediaRecorder) {\n stop();\n logger.info('VoiceRecorder: Previous mediaRecorder is stopped.');\n }\n checkPermission();\n navigator?.mediaDevices?.getUserMedia?.({ audio: true })\n .then((stream) => {\n logger.info('VoiceRecorder: Succeeded getting media stream.', stream);\n setIsRecordable(true);\n const mediaRecorder = new MediaRecorder(stream, {\n mimeType: browserSupportMimeType,\n audioBitsPerSecond: VOICE_RECORDER_AUDIO_BITS,\n });\n mediaRecorder.ondataavailable = (e) => { // when recording stops\n logger.info('VoiceRecorder: Succeeded getting an available data.', e.data);\n const audioFile = new File([e.data], VOICE_MESSAGE_FILE_NAME, {\n lastModified: new Date().getTime(),\n type: VOICE_MESSAGE_MIME_TYPE,\n });\n webAudioUtils?.downsampleToWav(audioFile, (buffer) => {\n const mp3Buffer = webAudioUtils?.encodeMp3(buffer);\n const mp3blob = new Blob(mp3Buffer, { type: VOICE_MESSAGE_MIME_TYPE });\n const convertedAudioFile = new File([mp3blob], VOICE_MESSAGE_FILE_NAME, {\n lastModified: new Date().getTime(),\n type: VOICE_MESSAGE_MIME_TYPE,\n });\n eventHandler?.onRecordingEnded(convertedAudioFile);\n logger.info('VoiceRecorder: Succeeded converting audio file.', convertedAudioFile);\n });\n stream?.getAudioTracks?.().forEach?.(track => track?.stop());\n setIsRecordable(false);\n };\n mediaRecorder?.start();\n setMediaRecorder(mediaRecorder);\n eventHandler?.onRecordingStarted();\n })\n .catch((err) => {\n logger.error('VoiceRecorder: Failed getting media stream.', err);\n setMediaRecorder(null);\n });\n }, [mediaRecorder, webAudioUtils]);\n\n const stop = useCallback((): void => {\n // Stop recording\n mediaRecorder?.stop();\n setMediaRecorder(null);\n setIsRecordable(false);\n logger.info('VoiceRecorder: Stop recording.');\n }, [mediaRecorder]);\n\n return (\n <Context.Provider value={{\n start,\n stop,\n isRecordable,\n }}>\n {children}\n {\n permissionWarning && (\n <Modal\n hideFooter\n onCancel={() => setPermissionWarning(false)}\n >\n <>{stringSet.VOICE_RECORDING_PERMISSION_DENIED}</>\n </Modal>\n )\n }\n </Context.Provider>\n );\n};\n\nexport const useVoiceRecorderContext = (): VoiceRecorderContext => useContext(Context);\n\nexport default {\n VoiceRecorderProvider,\n useVoiceRecorderContext,\n};\n"],"names":["noop","Context","createContext","start","stop","isRecordable","VoiceRecorderProvider","props","_BROWSER_SUPPORT_MIME","children","config","useSendbirdStateContext","logger","isVoiceMessageEnabled","mediaRecorder","setMediaRecorder","useState","setIsRecordable","permissionWarning","setPermissionWarning","stringSet","useLocalization","checkPermission","navigator","permissions","query","name","then","result","state","warning","error","browserSupportMimeType","BROWSER_SUPPORT_MIME_TYPE_LIST","find","mimeType","MediaRecorder","isTypeSupported","mimmeTypes","webAudioUtils","setWebAudioUtils","useEffect","data","useCallback","eventHandler","_navigator","_navigator$mediaDevic","_navigator$mediaDevic2","info","mediaDevices","getUserMedia","call","audio","stream","audioBitsPerSecond","VOICE_RECORDER_AUDIO_BITS","ondataavailable","e","_stream$getAudioTrack","_stream$getAudioTrack2","_stream$getAudioTrack3","audioFile","File","VOICE_MESSAGE_FILE_NAME","lastModified","Date","getTime","type","VOICE_MESSAGE_MIME_TYPE","downsampleToWav","buffer","mp3Buffer","encodeMp3","mp3blob","Blob","convertedAudioFile","onRecordingEnded","getAudioTracks","forEach","track","onRecordingStarted","catch","err","React","createElement","Provider","value","Modal","hideFooter","onCancel","Fragment","VOICE_RECORDING_PERMISSION_DENIED","useVoiceRecorderContext","useContext"],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { useState, useEffect, useCallback } from 'react';
|
|
2
|
+
import { useVoiceRecorderContext } from './context.js';
|
|
3
|
+
import useSendbirdStateContext from '../useSendbirdStateContext.js';
|
|
4
|
+
import '../LocalizationContext-25d6694d.js';
|
|
5
|
+
import '../stringSet-3649b375.js';
|
|
6
|
+
import '../index-a4552c13.js';
|
|
7
|
+
import '../ui/Modal.js';
|
|
8
|
+
import 'react-dom';
|
|
9
|
+
import '../index-5819e39d.js';
|
|
10
|
+
import '../ui/Button.js';
|
|
11
|
+
import '../index-d88e3ef9.js';
|
|
12
|
+
import 'prop-types';
|
|
13
|
+
import '../ui/Icon.js';
|
|
14
|
+
import '../ui/IconButton.js';
|
|
15
|
+
import '../_rollupPluginBabelHelpers-1be219c2.js';
|
|
16
|
+
import '../MediaQueryContext-94c9086a.js';
|
|
17
|
+
import '../consts-e6fdc559.js';
|
|
18
|
+
import '../withSendbird.js';
|
|
19
|
+
|
|
20
|
+
// export interface UseVoiceRecorderProps extends VoiceRecorderEventHandler {
|
|
21
|
+
// /**
|
|
22
|
+
// * onRecordingStarted
|
|
23
|
+
// * onRecordingEnded
|
|
24
|
+
// */
|
|
25
|
+
// }
|
|
26
|
+
/* eslint-disable no-redeclare */
|
|
27
|
+
const VoiceRecorderStatus = {
|
|
28
|
+
PREPARING: 'PREPARING',
|
|
29
|
+
READY_TO_RECORD: 'READY_TO_RECORD',
|
|
30
|
+
RECORDING: 'RECORDING',
|
|
31
|
+
COMPLETED: 'COMPLETED'
|
|
32
|
+
};
|
|
33
|
+
const noop = () => {/* noop */};
|
|
34
|
+
const useVoiceRecorder = _ref => {
|
|
35
|
+
let {
|
|
36
|
+
onRecordingStarted = noop,
|
|
37
|
+
onRecordingEnded = noop
|
|
38
|
+
} = _ref;
|
|
39
|
+
const {
|
|
40
|
+
config
|
|
41
|
+
} = useSendbirdStateContext();
|
|
42
|
+
const {
|
|
43
|
+
voiceRecord
|
|
44
|
+
} = config;
|
|
45
|
+
const {
|
|
46
|
+
maxRecordingTime
|
|
47
|
+
} = voiceRecord;
|
|
48
|
+
const voiceRecorder = useVoiceRecorderContext();
|
|
49
|
+
const {
|
|
50
|
+
isRecordable
|
|
51
|
+
} = voiceRecorder;
|
|
52
|
+
const [recordedFile, setRecordedFile] = useState(null);
|
|
53
|
+
const [recordingStatus, setRecordingStatus] = useState(VoiceRecorderStatus.PREPARING);
|
|
54
|
+
useEffect(() => {
|
|
55
|
+
if (isRecordable && recordingStatus === VoiceRecorderStatus.PREPARING) {
|
|
56
|
+
setRecordingStatus(VoiceRecorderStatus.READY_TO_RECORD);
|
|
57
|
+
}
|
|
58
|
+
}, [isRecordable]);
|
|
59
|
+
const start = useCallback(() => {
|
|
60
|
+
voiceRecorder === null || voiceRecorder === void 0 ? void 0 : voiceRecorder.start({
|
|
61
|
+
onRecordingStarted: () => {
|
|
62
|
+
setRecordingStatus(VoiceRecorderStatus.RECORDING);
|
|
63
|
+
onRecordingStarted();
|
|
64
|
+
startTimer();
|
|
65
|
+
},
|
|
66
|
+
onRecordingEnded: audioFile => {
|
|
67
|
+
setRecordingStatus(VoiceRecorderStatus.COMPLETED);
|
|
68
|
+
onRecordingEnded(audioFile);
|
|
69
|
+
setRecordedFile(audioFile);
|
|
70
|
+
stopTimer();
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}, [onRecordingStarted, onRecordingEnded]);
|
|
74
|
+
const stop = useCallback(() => {
|
|
75
|
+
voiceRecorder === null || voiceRecorder === void 0 ? void 0 : voiceRecorder.stop();
|
|
76
|
+
stopTimer();
|
|
77
|
+
}, [voiceRecorder]);
|
|
78
|
+
const cancel = useCallback(() => {
|
|
79
|
+
stop();
|
|
80
|
+
setRecordedFile(null);
|
|
81
|
+
}, [voiceRecorder]);
|
|
82
|
+
|
|
83
|
+
// Timer
|
|
84
|
+
const [recordingTime, setRecordingTime] = useState(0);
|
|
85
|
+
let timer = null;
|
|
86
|
+
function startTimer() {
|
|
87
|
+
stopTimer();
|
|
88
|
+
setRecordingTime(0);
|
|
89
|
+
const interval = setInterval(() => {
|
|
90
|
+
setRecordingTime(prevTime => {
|
|
91
|
+
const newTime = prevTime + 100;
|
|
92
|
+
if (newTime > maxRecordingTime) {
|
|
93
|
+
stopTimer();
|
|
94
|
+
}
|
|
95
|
+
return newTime;
|
|
96
|
+
});
|
|
97
|
+
}, 100);
|
|
98
|
+
timer = interval;
|
|
99
|
+
}
|
|
100
|
+
function stopTimer() {
|
|
101
|
+
clearInterval(timer);
|
|
102
|
+
timer = null;
|
|
103
|
+
}
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
if (recordingTime > maxRecordingTime) {
|
|
106
|
+
stop();
|
|
107
|
+
}
|
|
108
|
+
}, [recordingTime, maxRecordingTime, stop]);
|
|
109
|
+
return {
|
|
110
|
+
start,
|
|
111
|
+
stop,
|
|
112
|
+
cancel,
|
|
113
|
+
recordingStatus,
|
|
114
|
+
recordingTime,
|
|
115
|
+
recordedFile,
|
|
116
|
+
recordingLimit: maxRecordingTime
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
export { VoiceRecorderStatus, useVoiceRecorder };
|
|
121
|
+
//# sourceMappingURL=useVoiceRecorder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useVoiceRecorder.js","sources":["../../src/hooks/VoiceRecorder/useVoiceRecorder.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport { VoiceRecorderEventHandler, useVoiceRecorderContext } from '.';\nimport useSendbirdStateContext from '../useSendbirdStateContext';\n\n// export interface UseVoiceRecorderProps extends VoiceRecorderEventHandler {\n// /**\n// * onRecordingStarted\n// * onRecordingEnded\n// */\n// }\n/* eslint-disable no-redeclare */\nexport const VoiceRecorderStatus = {\n PREPARING: 'PREPARING',\n READY_TO_RECORD: 'READY_TO_RECORD',\n RECORDING: 'RECORDING',\n COMPLETED: 'COMPLETED',\n} as const;\nexport type VoiceRecorderStatus = typeof VoiceRecorderStatus[keyof typeof VoiceRecorderStatus];\nexport interface UseVoiceRecorderContext {\n start: () => void;\n stop: () => void;\n cancel: () => void;\n recordingLimit: number;\n recordingTime: number;\n recordedFile: File;\n recordingStatus: VoiceRecorderStatus;\n}\n\nconst noop = () => { /* noop */ };\n\nexport const useVoiceRecorder = ({\n onRecordingStarted = noop,\n onRecordingEnded = noop,\n}: VoiceRecorderEventHandler): UseVoiceRecorderContext => {\n const { config } = useSendbirdStateContext();\n const { voiceRecord } = config;\n const { maxRecordingTime } = voiceRecord;\n const voiceRecorder = useVoiceRecorderContext();\n const { isRecordable } = voiceRecorder;\n\n const [recordedFile, setRecordedFile] = useState<File>(null);\n const [recordingStatus, setRecordingStatus] = useState<VoiceRecorderStatus>(VoiceRecorderStatus.PREPARING);\n useEffect(() => {\n if (isRecordable && recordingStatus === VoiceRecorderStatus.PREPARING) {\n setRecordingStatus(VoiceRecorderStatus.READY_TO_RECORD);\n }\n }, [isRecordable]);\n\n const start = useCallback(() => {\n voiceRecorder?.start({\n onRecordingStarted: () => {\n setRecordingStatus(VoiceRecorderStatus.RECORDING);\n onRecordingStarted();\n startTimer();\n },\n onRecordingEnded: (audioFile) => {\n setRecordingStatus(VoiceRecorderStatus.COMPLETED);\n onRecordingEnded(audioFile);\n setRecordedFile(audioFile);\n stopTimer();\n },\n });\n }, [onRecordingStarted, onRecordingEnded]);\n const stop = useCallback(() => {\n voiceRecorder?.stop();\n stopTimer();\n }, [voiceRecorder]);\n const cancel = useCallback(() => {\n stop();\n setRecordedFile(null);\n }, [voiceRecorder]);\n\n // Timer\n const [recordingTime, setRecordingTime] = useState<number>(0);\n let timer: ReturnType<typeof setInterval> = null;\n function startTimer() {\n stopTimer();\n setRecordingTime(0);\n const interval = setInterval(() => {\n setRecordingTime(prevTime => {\n const newTime = prevTime + 100;\n if (newTime > maxRecordingTime) {\n stopTimer();\n }\n return newTime;\n });\n }, 100);\n timer = interval;\n }\n function stopTimer() {\n clearInterval(timer);\n timer = null;\n }\n useEffect(() => {\n if (recordingTime > maxRecordingTime) {\n stop();\n }\n }, [recordingTime, maxRecordingTime, stop]);\n\n return ({\n start,\n stop,\n cancel,\n recordingStatus,\n recordingTime,\n recordedFile,\n recordingLimit: maxRecordingTime,\n });\n};\n"],"names":["VoiceRecorderStatus","PREPARING","READY_TO_RECORD","RECORDING","COMPLETED","noop","useVoiceRecorder","_ref","onRecordingStarted","onRecordingEnded","config","useSendbirdStateContext","voiceRecord","maxRecordingTime","voiceRecorder","useVoiceRecorderContext","isRecordable","recordedFile","setRecordedFile","useState","recordingStatus","setRecordingStatus","useEffect","start","useCallback","startTimer","audioFile","stopTimer","stop","cancel","recordingTime","setRecordingTime","timer","interval","setInterval","prevTime","newTime","clearInterval","recordingLimit"],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { WavHeader as $dd7ee3788d91dcb8$export$cb948f2d6837f136, Mp3Encoder as $dd7ee3788d91dcb8$export$9ca5d136ebf61cf2 } from './lame.all.js';
|
|
2
|
+
|
|
3
|
+
// Thanks to https://codesandbox.io/s/media-recorder-api-downsampling-16k-mp3-encode-using-lame-js-forked-n1pblw
|
|
4
|
+
function encodeMp3(arrayBuffer) {
|
|
5
|
+
const wav = $dd7ee3788d91dcb8$export$cb948f2d6837f136.readHeader(new DataView(arrayBuffer));
|
|
6
|
+
const dataView = new Int16Array(arrayBuffer, wav.dataOffset, wav.dataLen / 2);
|
|
7
|
+
const mp3Encoder = new $dd7ee3788d91dcb8$export$9ca5d136ebf61cf2(wav.channels, wav.sampleRate, 128);
|
|
8
|
+
const maxSamples = 1152;
|
|
9
|
+
const samplesLeft = wav.channels === 1 ? dataView : new Int16Array(wav.dataLen / (2 * wav.channels));
|
|
10
|
+
const samplesRight = wav.channels === 2 ? new Int16Array(wav.dataLen / (2 * wav.channels)) : undefined;
|
|
11
|
+
if (wav.channels > 1) {
|
|
12
|
+
for (let j = 0; j < samplesLeft.length; j++) {
|
|
13
|
+
samplesLeft[j] = dataView[j * 2];
|
|
14
|
+
samplesRight[j] = dataView[j * 2 + 1];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
const dataBuffer = [];
|
|
18
|
+
let remaining = samplesLeft.length;
|
|
19
|
+
for (let i = 0; remaining >= maxSamples; i += maxSamples) {
|
|
20
|
+
const left = samplesLeft.subarray(i, i + maxSamples);
|
|
21
|
+
let right;
|
|
22
|
+
if (samplesRight) {
|
|
23
|
+
right = samplesRight.subarray(i, i + maxSamples);
|
|
24
|
+
}
|
|
25
|
+
const mp3buf = mp3Encoder.encodeBuffer(left, right);
|
|
26
|
+
dataBuffer.push(new Int8Array(mp3buf));
|
|
27
|
+
remaining -= maxSamples;
|
|
28
|
+
}
|
|
29
|
+
const mp3Lastbuf = mp3Encoder.flush();
|
|
30
|
+
dataBuffer.push(new Int8Array(mp3Lastbuf));
|
|
31
|
+
return dataBuffer;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Convert audioFile to arrayBuffer, because Mp3Encoder requires a parameter of ArrayBuffer type
|
|
35
|
+
function downsampleToWav(file, callback) {
|
|
36
|
+
// Browser compatibility
|
|
37
|
+
// https://caniuse.com/?search=AudioContext
|
|
38
|
+
const audioCtx = new AudioContext();
|
|
39
|
+
const fileReader = new FileReader();
|
|
40
|
+
fileReader.onload = function (ev) {
|
|
41
|
+
// Decode audio
|
|
42
|
+
audioCtx.decodeAudioData(ev.target.result, buffer => {
|
|
43
|
+
// this is where you down sample the audio, usually is 44100 samples per second
|
|
44
|
+
const usingWebkit = !window.OfflineAudioContext;
|
|
45
|
+
const offlineAudioCtx = new OfflineAudioContext(1, 16000 * buffer.duration, 16000);
|
|
46
|
+
const soundSource = offlineAudioCtx.createBufferSource();
|
|
47
|
+
soundSource.buffer = buffer;
|
|
48
|
+
soundSource.connect(offlineAudioCtx.destination);
|
|
49
|
+
const reader = new FileReader();
|
|
50
|
+
reader.onload = function () {
|
|
51
|
+
const renderCompleteHandler = evt => {
|
|
52
|
+
const renderedBuffer = usingWebkit ? evt.renderedBuffer : evt;
|
|
53
|
+
const buffer = bufferToWav(renderedBuffer, renderedBuffer.length);
|
|
54
|
+
if (callback) {
|
|
55
|
+
callback(buffer);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
if (usingWebkit) {
|
|
59
|
+
offlineAudioCtx.oncomplete = renderCompleteHandler;
|
|
60
|
+
offlineAudioCtx.startRendering();
|
|
61
|
+
} else {
|
|
62
|
+
offlineAudioCtx.startRendering().then(renderCompleteHandler)
|
|
63
|
+
// eslint-disable-next-line no-console
|
|
64
|
+
.catch(err => console.warn(err));
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
reader.readAsArrayBuffer(file);
|
|
68
|
+
soundSource.start(0);
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
fileReader.readAsArrayBuffer(file);
|
|
72
|
+
}
|
|
73
|
+
function bufferToWav(abuffer, len) {
|
|
74
|
+
const numOfChan = abuffer.numberOfChannels;
|
|
75
|
+
const length = len * numOfChan * 2 + 44;
|
|
76
|
+
const buffer = new ArrayBuffer(length);
|
|
77
|
+
const view = new DataView(buffer);
|
|
78
|
+
const channels = [];
|
|
79
|
+
let i = 0;
|
|
80
|
+
let sample;
|
|
81
|
+
let offset = 0;
|
|
82
|
+
let pos = 0;
|
|
83
|
+
|
|
84
|
+
// write WAVE header
|
|
85
|
+
setUint32(0x46464952); // "RIFF"
|
|
86
|
+
setUint32(length - 8); // file length - 8
|
|
87
|
+
setUint32(0x45564157); // "WAVE"
|
|
88
|
+
setUint32(0x20746d66); // "fmt " chunk
|
|
89
|
+
setUint32(16); // length = 16
|
|
90
|
+
setUint16(1); // PCM (uncompressed)
|
|
91
|
+
setUint16(numOfChan);
|
|
92
|
+
setUint32(abuffer.sampleRate);
|
|
93
|
+
setUint32(abuffer.sampleRate * 2 * numOfChan); // avg. bytes/sec
|
|
94
|
+
setUint16(numOfChan * 2); // block-align
|
|
95
|
+
setUint16(16); // 16-bit (hardcoded in this demo)
|
|
96
|
+
setUint32(0x61746164); // "data" - chunk
|
|
97
|
+
setUint32(length - pos - 4); // chunk length
|
|
98
|
+
// write interleaved data
|
|
99
|
+
for (i = 0; i < abuffer.numberOfChannels; i++) channels.push(abuffer.getChannelData(i));
|
|
100
|
+
while (pos < length) {
|
|
101
|
+
for (i = 0; i < numOfChan; i++) {
|
|
102
|
+
// interleave channels
|
|
103
|
+
sample = Math.max(-1, Math.min(1, channels[i][offset])); // clamp
|
|
104
|
+
sample = (0.5 + sample < 0 ? sample * 32768 : sample * 32767) | 0; // scale to 16-bit signed int
|
|
105
|
+
view.setInt16(pos, sample, true); // write 16-bit sample
|
|
106
|
+
pos += 2;
|
|
107
|
+
}
|
|
108
|
+
offset++; // next source sample
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return buffer;
|
|
112
|
+
function setUint16(data) {
|
|
113
|
+
view.setUint16(pos, data, true);
|
|
114
|
+
pos += 2;
|
|
115
|
+
}
|
|
116
|
+
function setUint32(data) {
|
|
117
|
+
view.setUint32(pos, data, true);
|
|
118
|
+
pos += 4;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export { downsampleToWav, encodeMp3 };
|
|
123
|
+
//# sourceMappingURL=WebAudioUtils-16540f03.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebAudioUtils-16540f03.js","sources":["../src/hooks/VoiceRecorder/WebAudioUtils.ts"],"sourcesContent":["// Thanks to https://codesandbox.io/s/media-recorder-api-downsampling-16k-mp3-encode-using-lame-js-forked-n1pblw\nimport { WavHeader, Mp3Encoder } from '../../_externals/lamejs/lame.all';\n\nfunction encodeMp3(arrayBuffer: ArrayBuffer): WavHeader {\n const wav = WavHeader.readHeader(new DataView(arrayBuffer));\n const dataView = new Int16Array(arrayBuffer, wav.dataOffset, wav.dataLen / 2);\n const mp3Encoder = new Mp3Encoder(wav.channels, wav.sampleRate, 128);\n const maxSamples = 1152;\n\n const samplesLeft = (wav.channels === 1) ? dataView : new Int16Array(wav.dataLen / (2 * wav.channels));\n const samplesRight = (wav.channels === 2) ? new Int16Array(wav.dataLen / (2 * wav.channels)) : undefined;\n\n if (wav.channels > 1) {\n for (let j = 0; j < samplesLeft.length; j++) {\n samplesLeft[j] = dataView[j * 2];\n samplesRight[j] = dataView[j * 2 + 1];\n }\n }\n\n const dataBuffer = [];\n let remaining = samplesLeft.length;\n for (let i = 0; remaining >= maxSamples; i += maxSamples) {\n const left = samplesLeft.subarray(i, i + maxSamples);\n let right;\n if (samplesRight) {\n right = samplesRight.subarray(i, i + maxSamples);\n }\n const mp3buf = mp3Encoder.encodeBuffer(left, right);\n dataBuffer.push(new Int8Array(mp3buf));\n remaining -= maxSamples;\n }\n\n const mp3Lastbuf = mp3Encoder.flush();\n dataBuffer.push(new Int8Array(mp3Lastbuf));\n return dataBuffer;\n}\n\n// Convert audioFile to arrayBuffer, because Mp3Encoder requires a parameter of ArrayBuffer type\nfunction downsampleToWav(file: File, callback: (buffer: ArrayBuffer) => void): void {\n // Browser compatibility\n // https://caniuse.com/?search=AudioContext\n const audioCtx = new AudioContext();\n const fileReader = new FileReader();\n fileReader.onload = function (ev) {\n // Decode audio\n audioCtx.decodeAudioData(ev.target.result as ArrayBuffer, (buffer) => {\n // this is where you down sample the audio, usually is 44100 samples per second\n const usingWebkit = !window.OfflineAudioContext;\n const offlineAudioCtx = new OfflineAudioContext(1, 16000 * buffer.duration, 16000);\n\n const soundSource = offlineAudioCtx.createBufferSource();\n soundSource.buffer = buffer;\n soundSource.connect(offlineAudioCtx.destination);\n\n const reader = new FileReader();\n reader.onload = function () {\n const renderCompleteHandler = (evt): void => {\n const renderedBuffer = usingWebkit ? evt.renderedBuffer : evt;\n const buffer = bufferToWav(renderedBuffer, renderedBuffer.length);\n if (callback) {\n callback(buffer);\n }\n };\n if (usingWebkit) {\n offlineAudioCtx.oncomplete = renderCompleteHandler;\n offlineAudioCtx.startRendering();\n } else {\n offlineAudioCtx\n .startRendering()\n .then(renderCompleteHandler)\n // eslint-disable-next-line no-console\n .catch((err) => console.warn(err));\n }\n };\n reader.readAsArrayBuffer(file);\n soundSource.start(0);\n });\n };\n fileReader.readAsArrayBuffer(file);\n}\n\nfunction bufferToWav(abuffer, len) {\n const numOfChan = abuffer.numberOfChannels;\n const length = len * numOfChan * 2 + 44;\n const buffer = new ArrayBuffer(length);\n const view = new DataView(buffer);\n const channels = [];\n let i = 0;\n let sample;\n let offset = 0;\n let pos = 0;\n\n // write WAVE header\n setUint32(0x46464952); // \"RIFF\"\n setUint32(length - 8); // file length - 8\n setUint32(0x45564157); // \"WAVE\"\n setUint32(0x20746d66); // \"fmt \" chunk\n setUint32(16); // length = 16\n setUint16(1); // PCM (uncompressed)\n setUint16(numOfChan);\n setUint32(abuffer.sampleRate);\n setUint32(abuffer.sampleRate * 2 * numOfChan); // avg. bytes/sec\n setUint16(numOfChan * 2); // block-align\n setUint16(16); // 16-bit (hardcoded in this demo)\n setUint32(0x61746164); // \"data\" - chunk\n setUint32(length - pos - 4); // chunk length\n // write interleaved data\n for (i = 0; i < abuffer.numberOfChannels; i++)\n channels.push(abuffer.getChannelData(i));\n\n while (pos < length) {\n for (i = 0; i < numOfChan; i++) {\n // interleave channels\n sample = Math.max(-1, Math.min(1, channels[i][offset])); // clamp\n sample = (0.5 + sample < 0 ? sample * 32768 : sample * 32767) | 0; // scale to 16-bit signed int\n view.setInt16(pos, sample, true); // write 16-bit sample\n pos += 2;\n }\n offset++; // next source sample\n }\n\n return buffer;\n\n function setUint16(data) {\n view.setUint16(pos, data, true);\n pos += 2;\n }\n\n function setUint32(data) {\n view.setUint32(pos, data, true);\n pos += 4;\n }\n}\n\nexport { downsampleToWav, encodeMp3 };\n"],"names":["encodeMp3","arrayBuffer","wav","WavHeader","readHeader","DataView","dataView","Int16Array","dataOffset","dataLen","mp3Encoder","Mp3Encoder","channels","sampleRate","maxSamples","samplesLeft","samplesRight","undefined","j","length","dataBuffer","remaining","i","left","subarray","right","mp3buf","encodeBuffer","push","Int8Array","mp3Lastbuf","flush","downsampleToWav","file","callback","audioCtx","AudioContext","fileReader","FileReader","onload","ev","decodeAudioData","target","result","buffer","usingWebkit","window","OfflineAudioContext","offlineAudioCtx","duration","soundSource","createBufferSource","connect","destination","reader","renderCompleteHandler","evt","renderedBuffer","bufferToWav","oncomplete","startRendering","then","catch","err","console","warn","readAsArrayBuffer","start","abuffer","len","numOfChan","numberOfChannels","ArrayBuffer","view","sample","offset","pos","setUint32","setUint16","getChannelData","Math","max","min","setInt16","data"],"mappings":"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"}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
function ownKeys(object, enumerableOnly) {
|
|
2
2
|
var keys = Object.keys(object);
|
|
3
|
-
|
|
4
3
|
if (Object.getOwnPropertySymbols) {
|
|
5
4
|
var symbols = Object.getOwnPropertySymbols(object);
|
|
6
5
|
enumerableOnly && (symbols = symbols.filter(function (sym) {
|
|
7
6
|
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
8
7
|
})), keys.push.apply(keys, symbols);
|
|
9
8
|
}
|
|
10
|
-
|
|
11
9
|
return keys;
|
|
12
10
|
}
|
|
13
|
-
|
|
14
11
|
function _objectSpread2(target) {
|
|
15
12
|
for (var i = 1; i < arguments.length; i++) {
|
|
16
13
|
var source = null != arguments[i] ? arguments[i] : {};
|
|
@@ -20,11 +17,10 @@ function _objectSpread2(target) {
|
|
|
20
17
|
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
21
18
|
});
|
|
22
19
|
}
|
|
23
|
-
|
|
24
20
|
return target;
|
|
25
21
|
}
|
|
26
|
-
|
|
27
22
|
function _defineProperty(obj, key, value) {
|
|
23
|
+
key = _toPropertyKey(key);
|
|
28
24
|
if (key in obj) {
|
|
29
25
|
Object.defineProperty(obj, key, {
|
|
30
26
|
value: value,
|
|
@@ -35,26 +31,36 @@ function _defineProperty(obj, key, value) {
|
|
|
35
31
|
} else {
|
|
36
32
|
obj[key] = value;
|
|
37
33
|
}
|
|
38
|
-
|
|
39
34
|
return obj;
|
|
40
35
|
}
|
|
41
|
-
|
|
42
36
|
function _extends() {
|
|
43
37
|
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
44
38
|
for (var i = 1; i < arguments.length; i++) {
|
|
45
39
|
var source = arguments[i];
|
|
46
|
-
|
|
47
40
|
for (var key in source) {
|
|
48
41
|
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
49
42
|
target[key] = source[key];
|
|
50
43
|
}
|
|
51
44
|
}
|
|
52
45
|
}
|
|
53
|
-
|
|
54
46
|
return target;
|
|
55
47
|
};
|
|
56
48
|
return _extends.apply(this, arguments);
|
|
57
49
|
}
|
|
50
|
+
function _toPrimitive(input, hint) {
|
|
51
|
+
if (typeof input !== "object" || input === null) return input;
|
|
52
|
+
var prim = input[Symbol.toPrimitive];
|
|
53
|
+
if (prim !== undefined) {
|
|
54
|
+
var res = prim.call(input, hint || "default");
|
|
55
|
+
if (typeof res !== "object") return res;
|
|
56
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
57
|
+
}
|
|
58
|
+
return (hint === "string" ? String : Number)(input);
|
|
59
|
+
}
|
|
60
|
+
function _toPropertyKey(arg) {
|
|
61
|
+
var key = _toPrimitive(arg, "string");
|
|
62
|
+
return typeof key === "symbol" ? key : String(key);
|
|
63
|
+
}
|
|
58
64
|
|
|
59
|
-
export { _objectSpread2 as _,
|
|
60
|
-
//# sourceMappingURL=_rollupPluginBabelHelpers-
|
|
65
|
+
export { _objectSpread2 as _, _defineProperty as a, _extends as b };
|
|
66
|
+
//# sourceMappingURL=_rollupPluginBabelHelpers-1be219c2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_rollupPluginBabelHelpers-1be219c2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|