@sendbird/uikit-react 3.4.6 → 3.4.7-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/App.js +177 -172
- package/App.js.map +1 -1
- package/Channel/components/ChannelHeader.js +44 -39
- package/Channel/components/ChannelHeader.js.map +1 -1
- package/Channel/components/ChannelUI.js +63 -61
- package/Channel/components/ChannelUI.js.map +1 -1
- package/Channel/components/FileViewer.js +52 -46
- package/Channel/components/FileViewer.js.map +1 -1
- package/Channel/components/FrozenNotification.js +12 -9
- package/Channel/components/FrozenNotification.js.map +1 -1
- package/Channel/components/Message.js +165 -183
- package/Channel/components/Message.js.map +1 -1
- package/Channel/components/MessageInput.js +106 -113
- package/Channel/components/MessageInput.js.map +1 -1
- package/Channel/components/MessageList.js +128 -130
- package/Channel/components/MessageList.js.map +1 -1
- package/Channel/components/RemoveMessageModal.js +32 -28
- package/Channel/components/RemoveMessageModal.js.map +1 -1
- package/Channel/components/SuggestedMentionList.js +134 -153
- package/Channel/components/SuggestedMentionList.js.map +1 -1
- package/Channel/components/TypingIndicator.js +43 -42
- package/Channel/components/TypingIndicator.js.map +1 -1
- package/Channel/components/UnreadCount.js +18 -16
- package/Channel/components/UnreadCount.js.map +1 -1
- package/Channel/context.js +13 -14
- package/Channel/context.js.map +1 -1
- package/Channel.js +39 -40
- package/Channel.js.map +1 -1
- package/ChannelList/components/AddChannel.js +27 -29
- package/ChannelList/components/AddChannel.js.map +1 -1
- package/ChannelList/components/ChannelListHeader.js +30 -21
- package/ChannelList/components/ChannelListHeader.js.map +1 -1
- package/ChannelList/components/ChannelListUI.js +91 -98
- package/ChannelList/components/ChannelListUI.js.map +1 -1
- package/ChannelList/components/ChannelPreview.js +70 -73
- package/ChannelList/components/ChannelPreview.js.map +1 -1
- package/ChannelList/components/ChannelPreviewAction.js +30 -30
- package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/ChannelList/context.js +7 -8
- package/ChannelList/context.js.map +1 -1
- package/ChannelList.js +30 -31
- package/ChannelList.js.map +1 -1
- package/{ChannelListProvider-a2f2ee4a.js → ChannelListProvider-c1d2f942.js} +160 -156
- package/ChannelListProvider-c1d2f942.js.map +1 -0
- package/{ChannelProvider-bb459e82.js → ChannelProvider-4ab3a851.js} +429 -412
- package/ChannelProvider-4ab3a851.js.map +1 -0
- package/ChannelSettings/components/ChannelProfile.js +33 -37
- package/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/ChannelSettings/components/ChannelSettingsUI.js +45 -40
- package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/ChannelSettings/components/EditDetailsModal.js +47 -48
- package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/ChannelSettings/components/LeaveChannel.js +38 -35
- package/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/ChannelSettings/components/ModerationPanel.js +511 -556
- package/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/ChannelSettings/components/UserListItem.js +69 -69
- package/ChannelSettings/components/UserListItem.js.map +1 -1
- package/ChannelSettings/components/UserPanel.js +25 -27
- package/ChannelSettings/components/UserPanel.js.map +1 -1
- package/ChannelSettings/context.js +53 -49
- package/ChannelSettings/context.js.map +1 -1
- package/ChannelSettings.js +19 -18
- package/ChannelSettings.js.map +1 -1
- package/CreateChannel/components/CreateChannelUI.js +24 -21
- package/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/CreateChannel/components/InviteUsers.js +92 -93
- package/CreateChannel/components/InviteUsers.js.map +1 -1
- package/CreateChannel/components/SelectChannelType.js +41 -35
- package/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +22 -20
- package/CreateChannel.js.map +1 -1
- package/CreateChannelProvider-d2188082.js +44 -0
- package/CreateChannelProvider-d2188082.js.map +1 -0
- package/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -34
- package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/CreateOpenChannel/context.js +33 -28
- package/CreateOpenChannel/context.js.map +1 -1
- package/CreateOpenChannel.js +18 -16
- package/CreateOpenChannel.js.map +1 -1
- package/EditUserProfile/components/EditUserProfileUI.js +12 -12
- package/EditUserProfile/context.js.map +1 -1
- package/EditUserProfile.js +18 -16
- package/EditUserProfile.js.map +1 -1
- package/LocalizationContext-9c54e783.js +20 -0
- package/{LocalizationContext-3d8c0b24.js.map → LocalizationContext-9c54e783.js.map} +1 -1
- package/MediaQueryContext-1988a4bc.js +82 -0
- package/MediaQueryContext-1988a4bc.js.map +1 -0
- package/MemberList-80ea8604.js +395 -0
- package/MemberList-80ea8604.js.map +1 -0
- package/Message/context.js +11 -10
- package/Message/context.js.map +1 -1
- package/MessageSearch/components/MessageSearchUI.js +59 -54
- package/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/MessageSearch/context.js +176 -165
- package/MessageSearch/context.js.map +1 -1
- package/MessageSearch.js +45 -47
- 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 -22
- package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/OpenChannel/components/OpenChannelInput.js +32 -28
- package/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessage.js +171 -172
- package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessageList.js +60 -65
- package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/OpenChannel/components/OpenChannelUI.js +50 -48
- package/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/OpenChannel/context.js +8 -8
- package/OpenChannel.js +32 -33
- package/OpenChannel.js.map +1 -1
- package/OpenChannelList/components/OpenChannelListUI.js +58 -59
- 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 -3
- package/OpenChannelList.js +24 -23
- package/OpenChannelList.js.map +1 -1
- package/{OpenChannelListProvider-f9ec8658.js → OpenChannelListProvider-c76663eb.js} +177 -155
- package/OpenChannelListProvider-c76663eb.js.map +1 -0
- package/OpenChannelProvider-fe3326aa.js +1883 -0
- package/{cjs/OpenChannelProvider-850b9cd0.js.map → OpenChannelProvider-fe3326aa.js.map} +1 -1
- package/OpenChannelSettings/components/EditDetailsModal.js +46 -46
- package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelProfile.js +26 -26
- package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -36
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/OpenChannelSettings/components/OperatorUI.js +508 -533
- package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/OpenChannelSettings/components/ParticipantUI.js +15 -15
- package/OpenChannelSettings/context.js +54 -56
- package/OpenChannelSettings/context.js.map +1 -1
- package/OpenChannelSettings.js +19 -19
- package/OpenChannelSettings.js.map +1 -1
- package/RemoveMessageModal-99b5bab4.js +36 -0
- package/RemoveMessageModal-99b5bab4.js.map +1 -0
- package/SendbirdProvider.js +546 -405
- package/SendbirdProvider.js.map +1 -1
- package/Thread/components/ParentMessageInfo.js +157 -170
- package/Thread/components/ParentMessageInfo.js.map +1 -1
- package/Thread/components/ParentMessageInfoItem.js +68 -62
- package/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/Thread/components/ThreadHeader.js +22 -22
- package/Thread/components/ThreadHeader.js.map +1 -1
- package/Thread/components/ThreadList.js +82 -77
- package/Thread/components/ThreadList.js.map +1 -1
- package/Thread/components/ThreadListItem.js +208 -219
- package/Thread/components/ThreadListItem.js.map +1 -1
- package/Thread/components/ThreadMessageInput.js +103 -105
- package/Thread/components/ThreadMessageInput.js.map +1 -1
- package/Thread/components/ThreadUI.js +130 -116
- package/Thread/components/ThreadUI.js.map +1 -1
- package/Thread/context/types.js +9 -9
- package/Thread/context/types.js.map +1 -1
- package/Thread/context.js +8 -8
- package/Thread.js +55 -55
- package/Thread.js.map +1 -1
- package/ThreadProvider-0a3c5f37.js +1692 -0
- package/ThreadProvider-0a3c5f37.js.map +1 -0
- package/{UserProfileContext-41938ddc.js → UserProfileContext-a8aa4c0f.js} +1 -1
- package/{UserProfileContext-41938ddc.js.map → UserProfileContext-a8aa4c0f.js.map} +1 -1
- package/{VoiceMessageInputWrapper-0cd90994.js → VoiceMessageInputWrapper-ff160b51.js} +60 -59
- package/VoiceMessageInputWrapper-ff160b51.js.map +1 -0
- package/VoicePlayer/context.js +3 -3
- package/VoicePlayer/useVoicePlayer.js +38 -43
- package/VoicePlayer/useVoicePlayer.js.map +1 -1
- package/VoiceRecorder/context.js +46 -45
- package/VoiceRecorder/context.js.map +1 -1
- package/VoiceRecorder/useVoiceRecorder.js +43 -40
- package/VoiceRecorder/useVoiceRecorder.js.map +1 -1
- package/{WebAudioUtils-682aa6c0.js → WebAudioUtils-5f08f354.js} +37 -37
- package/{WebAudioUtils-682aa6c0.js.map → WebAudioUtils-5f08f354.js.map} +1 -1
- package/{_rollupPluginBabelHelpers-79f64283.js → _rollupPluginBabelHelpers-b2d9bfc5.js} +2 -2
- package/_rollupPluginBabelHelpers-b2d9bfc5.js.map +1 -0
- package/{actionTypes-52102db0.js → actionTypes-e436fe6c.js} +2 -2
- package/{actionTypes-52102db0.js.map → actionTypes-e436fe6c.js.map} +1 -1
- package/cjs/App.js +177 -172
- package/cjs/App.js.map +1 -1
- package/cjs/Channel/components/ChannelHeader.js +44 -39
- package/cjs/Channel/components/ChannelHeader.js.map +1 -1
- package/cjs/Channel/components/ChannelUI.js +63 -61
- package/cjs/Channel/components/ChannelUI.js.map +1 -1
- package/cjs/Channel/components/FileViewer.js +52 -46
- package/cjs/Channel/components/FileViewer.js.map +1 -1
- package/cjs/Channel/components/FrozenNotification.js +12 -9
- package/cjs/Channel/components/FrozenNotification.js.map +1 -1
- package/cjs/Channel/components/Message.js +165 -183
- package/cjs/Channel/components/Message.js.map +1 -1
- package/cjs/Channel/components/MessageInput.js +106 -113
- package/cjs/Channel/components/MessageInput.js.map +1 -1
- package/cjs/Channel/components/MessageList.js +128 -130
- package/cjs/Channel/components/MessageList.js.map +1 -1
- package/cjs/Channel/components/RemoveMessageModal.js +32 -28
- package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
- package/cjs/Channel/components/SuggestedMentionList.js +134 -153
- package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
- package/cjs/Channel/components/TypingIndicator.js +43 -42
- package/cjs/Channel/components/TypingIndicator.js.map +1 -1
- package/cjs/Channel/components/UnreadCount.js +18 -16
- package/cjs/Channel/components/UnreadCount.js.map +1 -1
- package/cjs/Channel/context.js +14 -18
- package/cjs/Channel/context.js.map +1 -1
- package/cjs/Channel.js +39 -40
- package/cjs/Channel.js.map +1 -1
- package/cjs/ChannelList/components/AddChannel.js +27 -29
- package/cjs/ChannelList/components/AddChannel.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListHeader.js +30 -21
- package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListUI.js +91 -98
- package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreview.js +70 -73
- package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreviewAction.js +30 -30
- 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 +30 -31
- package/cjs/ChannelList.js.map +1 -1
- package/cjs/{ChannelListProvider-b0a363e0.js → ChannelListProvider-61d644da.js} +160 -156
- package/cjs/ChannelListProvider-61d644da.js.map +1 -0
- package/cjs/{ChannelProvider-cf5867c2.js → ChannelProvider-620bb354.js} +430 -412
- package/cjs/ChannelProvider-620bb354.js.map +1 -0
- package/cjs/ChannelSettings/components/ChannelProfile.js +33 -37
- package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +45 -40
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/cjs/ChannelSettings/components/EditDetailsModal.js +47 -48
- package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/ChannelSettings/components/LeaveChannel.js +38 -35
- package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/cjs/ChannelSettings/components/ModerationPanel.js +511 -556
- package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/cjs/ChannelSettings/components/UserListItem.js +69 -69
- package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
- package/cjs/ChannelSettings/components/UserPanel.js +25 -27
- package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
- package/cjs/ChannelSettings/context.js +53 -49
- package/cjs/ChannelSettings/context.js.map +1 -1
- package/cjs/ChannelSettings.js +19 -18
- package/cjs/ChannelSettings.js.map +1 -1
- package/cjs/CreateChannel/components/CreateChannelUI.js +24 -21
- package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/cjs/CreateChannel/components/InviteUsers.js +92 -93
- package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
- package/cjs/CreateChannel/components/SelectChannelType.js +41 -35
- package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/cjs/CreateChannel/context.js +4 -4
- package/cjs/CreateChannel.js +22 -20
- package/cjs/CreateChannel.js.map +1 -1
- package/cjs/CreateChannelProvider-88b316a6.js +52 -0
- package/cjs/CreateChannelProvider-88b316a6.js.map +1 -0
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -34
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/cjs/CreateOpenChannel/context.js +33 -28
- package/cjs/CreateOpenChannel/context.js.map +1 -1
- package/cjs/CreateOpenChannel.js +18 -16
- package/cjs/CreateOpenChannel.js.map +1 -1
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -12
- package/cjs/EditUserProfile/context.js.map +1 -1
- package/cjs/EditUserProfile.js +18 -16
- package/cjs/EditUserProfile.js.map +1 -1
- package/cjs/{LocalizationContext-498cb747.js → LocalizationContext-af96cf5f.js} +9 -9
- package/cjs/{LocalizationContext-498cb747.js.map → LocalizationContext-af96cf5f.js.map} +1 -1
- package/cjs/MediaQueryContext-8ec3f647.js +89 -0
- package/cjs/MediaQueryContext-8ec3f647.js.map +1 -0
- package/cjs/MemberList-7513f386.js +401 -0
- package/cjs/MemberList-7513f386.js.map +1 -0
- package/cjs/Message/context.js +11 -10
- package/cjs/Message/context.js.map +1 -1
- package/cjs/MessageSearch/components/MessageSearchUI.js +59 -54
- package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/cjs/MessageSearch/context.js +176 -165
- package/cjs/MessageSearch/context.js.map +1 -1
- package/cjs/MessageSearch.js +45 -47
- 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 -22
- package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelInput.js +32 -28
- package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessage.js +171 -172
- package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +60 -65
- package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelUI.js +50 -48
- package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/cjs/OpenChannel/context.js +8 -8
- package/cjs/OpenChannel.js +32 -33
- package/cjs/OpenChannel.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelListUI.js +58 -59
- 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 -3
- package/cjs/OpenChannelList.js +24 -23
- package/cjs/OpenChannelList.js.map +1 -1
- package/cjs/OpenChannelListProvider-e78bf867.js +439 -0
- package/cjs/OpenChannelListProvider-e78bf867.js.map +1 -0
- package/cjs/OpenChannelProvider-ea1d7b37.js +1892 -0
- package/cjs/OpenChannelProvider-ea1d7b37.js.map +1 -0
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +46 -46
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +26 -26
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -36
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OperatorUI.js +508 -533
- package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -15
- package/cjs/OpenChannelSettings/context.js +54 -56
- package/cjs/OpenChannelSettings/context.js.map +1 -1
- package/cjs/OpenChannelSettings.js +19 -19
- package/cjs/OpenChannelSettings.js.map +1 -1
- package/cjs/{RemoveMessageModal-457b1535.js → RemoveMessageModal-15d1dcbd.js} +19 -13
- package/cjs/RemoveMessageModal-15d1dcbd.js.map +1 -0
- package/cjs/SendbirdProvider.js +546 -405
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfo.js +157 -170
- package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfoItem.js +68 -62
- package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/cjs/Thread/components/ThreadHeader.js +22 -22
- package/cjs/Thread/components/ThreadHeader.js.map +1 -1
- package/cjs/Thread/components/ThreadList.js +82 -77
- package/cjs/Thread/components/ThreadList.js.map +1 -1
- package/cjs/Thread/components/ThreadListItem.js +208 -219
- package/cjs/Thread/components/ThreadListItem.js.map +1 -1
- package/cjs/Thread/components/ThreadMessageInput.js +103 -105
- package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
- package/cjs/Thread/components/ThreadUI.js +130 -116
- package/cjs/Thread/components/ThreadUI.js.map +1 -1
- package/cjs/Thread/context/types.js +13 -9
- package/cjs/Thread/context/types.js.map +1 -1
- package/cjs/Thread/context.js +8 -8
- package/cjs/Thread.js +55 -55
- package/cjs/Thread.js.map +1 -1
- package/cjs/ThreadProvider-572574d7.js +1701 -0
- package/cjs/ThreadProvider-572574d7.js.map +1 -0
- package/cjs/{UserProfileContext-617420c9.js → UserProfileContext-f068b0ba.js} +1 -1
- package/cjs/{UserProfileContext-617420c9.js.map → UserProfileContext-f068b0ba.js.map} +1 -1
- package/cjs/{VoiceMessageInputWrapper-43c29f38.js → VoiceMessageInputWrapper-db7f2b72.js} +60 -59
- package/cjs/VoiceMessageInputWrapper-db7f2b72.js.map +1 -0
- package/cjs/VoicePlayer/context.js +3 -3
- package/cjs/VoicePlayer/useVoicePlayer.js +38 -43
- package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -1
- package/cjs/VoiceRecorder/context.js +46 -45
- package/cjs/VoiceRecorder/context.js.map +1 -1
- package/cjs/VoiceRecorder/useVoiceRecorder.js +43 -40
- package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -1
- package/cjs/{WebAudioUtils-2b845cd2.js → WebAudioUtils-043bdeca.js} +37 -37
- package/cjs/{WebAudioUtils-2b845cd2.js.map → WebAudioUtils-043bdeca.js.map} +1 -1
- package/cjs/{_rollupPluginBabelHelpers-c2313dcd.js → _rollupPluginBabelHelpers-c5955c81.js} +2 -1
- package/cjs/_rollupPluginBabelHelpers-c5955c81.js.map +1 -0
- package/cjs/{actionTypes-0e0d2d59.js → actionTypes-f2efbb7c.js} +2 -2
- package/cjs/{actionTypes-0e0d2d59.js.map → actionTypes-f2efbb7c.js.map} +1 -1
- package/cjs/{color-7f7508e6.js → color-afeb8dc2.js} +13 -12
- package/cjs/color-afeb8dc2.js.map +1 -0
- package/cjs/{compareIds-27f7912f.js → compareIds-18b3b1d6.js} +1 -1
- package/cjs/{compareIds-27f7912f.js.map → compareIds-18b3b1d6.js.map} +1 -1
- package/cjs/const-6691e574.js +20 -0
- package/cjs/const-6691e574.js.map +1 -0
- package/cjs/{const-61fc7be6.js → const-ab0f6056.js} +4 -4
- package/cjs/{const-61fc7be6.js.map → const-ab0f6056.js.map} +1 -1
- package/cjs/consts-6ec77e9a.js +6 -0
- package/cjs/consts-6ec77e9a.js.map +1 -0
- package/cjs/consts-a422c2f9.js +6 -0
- package/cjs/{consts-46fa3a3a.js.map → consts-a422c2f9.js.map} +1 -1
- package/cjs/{consts-8605e767.js → consts-a5382bc1.js} +18 -14
- package/cjs/{consts-8605e767.js.map → consts-a5382bc1.js.map} +1 -1
- package/cjs/consts-bc27beff.js +6 -0
- package/cjs/{consts-ad849467.js.map → consts-bc27beff.js.map} +1 -1
- package/cjs/{context-a4af6955.js → context-60c4d3b7.js} +6 -5
- package/cjs/{context-a4af6955.js.map → context-60c4d3b7.js.map} +1 -1
- package/cjs/dist/index.css +197 -93
- 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-0b344bd7.js +57 -0
- package/cjs/index-0b344bd7.js.map +1 -0
- package/cjs/{index-ac1b0ab9.js → index-4ee95667.js} +2 -4
- package/cjs/index-4ee95667.js.map +1 -0
- package/cjs/{index-67f813a3.js → index-68c57136.js} +1 -1
- package/cjs/{index-67f813a3.js.map → index-68c57136.js.map} +1 -1
- package/cjs/{index-a4887600.js → index-6cb4a530.js} +3 -12
- package/cjs/index-6cb4a530.js.map +1 -0
- package/cjs/{index-b8a20afd.js → index-73643285.js} +2 -2
- package/cjs/{index-b8a20afd.js.map → index-73643285.js.map} +1 -1
- package/cjs/index-76afc309.js +197 -0
- package/cjs/index-76afc309.js.map +1 -0
- package/cjs/{index-3626dfeb.js → index-8049c2a3.js} +22 -15
- package/cjs/index-8049c2a3.js.map +1 -0
- package/cjs/{index-8b6bb1ee.js → index-83d1d15e.js} +10 -30
- package/cjs/index-83d1d15e.js.map +1 -0
- package/cjs/{index-0dff9958.js → index-900dd19f.js} +37 -27
- package/cjs/index-900dd19f.js.map +1 -0
- package/cjs/index-9d518988.js +292 -0
- package/cjs/{index-cd680348.js.map → index-9d518988.js.map} +1 -1
- package/cjs/{index-8b5a13fe.js → index-a50b2339.js} +50 -50
- package/cjs/index-a50b2339.js.map +1 -0
- package/cjs/{index-ead97d9a.js → index-c1de8d8f.js} +37 -39
- package/cjs/{index-ead97d9a.js.map → index-c1de8d8f.js.map} +1 -1
- package/cjs/index-ec8b6978.js +361 -0
- package/cjs/index-ec8b6978.js.map +1 -0
- package/cjs/index-f2146bae.js +563 -0
- package/cjs/index-f2146bae.js.map +1 -0
- package/cjs/{index-71173fef.js → index-f65677b1.js} +56 -193
- package/cjs/index-f65677b1.js.map +1 -0
- package/cjs/{index-983f9d7a.js → index-ff8ea47f.js} +17 -17
- package/cjs/{index-983f9d7a.js.map → index-ff8ea47f.js.map} +1 -1
- package/cjs/index.js +51 -51
- package/cjs/{index.module-cf39e3b9.js → index.module-9f5edc7b.js} +1 -1
- package/cjs/{index.module-cf39e3b9.js.map → index.module-9f5edc7b.js.map} +1 -1
- package/cjs/lame.all.js.map +1 -1
- package/cjs/sendbirdSelectors.js +319 -371
- package/cjs/sendbirdSelectors.js.map +1 -1
- package/cjs/{stringSet-061fe0c1.js → stringSet-68748705.js} +2 -2
- package/cjs/stringSet-68748705.js.map +1 -0
- package/cjs/tokenize-d86ab0c7.js +140 -0
- package/cjs/tokenize-d86ab0c7.js.map +1 -0
- package/cjs/{topics-c8adbede.js → topics-825e5d42.js} +2 -2
- package/cjs/{topics-c8adbede.js.map → topics-825e5d42.js.map} +1 -1
- package/cjs/types-24accb8d.js +17 -0
- package/cjs/{types-beecfca4.js.map → types-24accb8d.js.map} +1 -1
- package/cjs/ui/Accordion.js +19 -18
- package/cjs/ui/Accordion.js.map +1 -1
- package/cjs/ui/AccordionGroup.js +10 -11
- package/cjs/ui/AccordionGroup.js.map +1 -1
- package/cjs/ui/AdminMessage.js +10 -10
- package/cjs/ui/AdminMessage.js.map +1 -1
- package/cjs/ui/Avatar.js +55 -59
- 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 -10
- package/cjs/ui/BottomSheet.js.map +1 -1
- package/cjs/ui/Button.js +20 -24
- 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 +9 -10
- 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 +139 -135
- 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 +78 -86
- package/cjs/ui/EmojiReactions.js.map +1 -1
- package/cjs/ui/FileMessageItemBody.js +22 -22
- package/cjs/ui/FileMessageItemBody.js.map +1 -1
- package/cjs/ui/FileViewer.js +36 -35
- package/cjs/ui/FileViewer.js.map +1 -1
- package/cjs/ui/Icon.js +16 -16
- package/cjs/ui/Icon.js.map +1 -1
- package/cjs/ui/IconButton.js +20 -28
- package/cjs/ui/IconButton.js.map +1 -1
- package/cjs/ui/ImageRenderer.js +33 -39
- package/cjs/ui/ImageRenderer.js.map +1 -1
- package/cjs/ui/Input.js +16 -14
- package/cjs/ui/Input.js.map +1 -1
- package/cjs/ui/Label.js +2 -2
- package/cjs/ui/LinkLabel.js +2 -2
- 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 -61
- package/cjs/ui/MentionLabel.js.map +1 -1
- package/cjs/ui/MentionUserLabel.js +10 -10
- package/cjs/ui/MentionUserLabel.js.map +1 -1
- package/cjs/ui/MessageContent.js +273 -270
- package/cjs/ui/MessageContent.js.map +1 -1
- package/cjs/ui/MessageInput.js +87 -79
- package/cjs/ui/MessageInput.js.map +1 -1
- package/cjs/ui/MessageItemMenu.js +70 -72
- package/cjs/ui/MessageItemMenu.js.map +1 -1
- package/cjs/ui/MessageItemReactionMenu.js +50 -57
- package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
- package/cjs/ui/MessageSearchFileItem.js +49 -38
- package/cjs/ui/MessageSearchFileItem.js.map +1 -1
- package/cjs/ui/MessageSearchItem.js +40 -32
- package/cjs/ui/MessageSearchItem.js.map +1 -1
- package/cjs/ui/MessageStatus.js +10 -10
- package/cjs/ui/Modal.js +52 -45
- 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 +48 -44
- 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 +134 -140
- package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
- package/cjs/ui/OpenchannelOGMessage.js +177 -176
- package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
- package/cjs/ui/OpenchannelThumbnailMessage.js +209 -214
- package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/cjs/ui/OpenchannelUserMessage.js +159 -164
- 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 +15 -16
- package/cjs/ui/PlaybackTime.js.map +1 -1
- package/cjs/ui/ProgressBar.js +13 -15
- package/cjs/ui/ProgressBar.js.map +1 -1
- package/cjs/ui/QuoteMessage.js +42 -38
- package/cjs/ui/QuoteMessage.js.map +1 -1
- package/cjs/ui/QuoteMessageInput.js +27 -23
- package/cjs/ui/QuoteMessageInput.js.map +1 -1
- package/cjs/ui/ReactionBadge.js +13 -17
- package/cjs/ui/ReactionBadge.js.map +1 -1
- package/cjs/ui/ReactionButton.js +15 -18
- package/cjs/ui/ReactionButton.js.map +1 -1
- package/cjs/ui/SortByRow.js +14 -14
- 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 +31 -31
- package/cjs/ui/TextMessageItemBody.js.map +1 -1
- package/cjs/ui/ThreadReplies.js +25 -21
- package/cjs/ui/ThreadReplies.js.map +1 -1
- package/cjs/ui/ThumbnailMessageItemBody.js +32 -37
- 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 -18
- package/cjs/ui/TooltipWrapper.js.map +1 -1
- package/cjs/ui/UnknownMessageItemBody.js +19 -18
- package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
- package/cjs/ui/UserListItem.js +72 -73
- package/cjs/ui/UserListItem.js.map +1 -1
- package/cjs/ui/UserProfile.js +30 -25
- package/cjs/ui/UserProfile.js.map +1 -1
- package/cjs/ui/VoiceMessageItemBody.js +37 -42
- package/cjs/ui/VoiceMessageItemBody.js.map +1 -1
- package/cjs/ui/VoiceMessgeInput.js +7 -8
- package/cjs/ui/VoiceMessgeInput.js.map +1 -1
- package/cjs/ui/Word.js +26 -27
- package/cjs/ui/Word.js.map +1 -1
- package/cjs/useLongPress-d9deb354.js +83 -0
- package/cjs/{useLongPress-f3ee01a0.js.map → useLongPress-d9deb354.js.map} +1 -1
- package/cjs/useSendbirdStateContext.js +2 -2
- package/cjs/useSendbirdStateContext.js.map +1 -1
- package/cjs/utils/message/getOutgoingMessageState.js +16 -14
- package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
- package/cjs/utils/message/isVoiceMessage.js +3 -3
- package/cjs/utils/message/isVoiceMessage.js.map +1 -1
- package/cjs/{utils-98ac09d1.js → utils-21326993.js} +3 -3
- package/cjs/{utils-98ac09d1.js.map → utils-21326993.js.map} +1 -1
- package/cjs/utils-4b74ea64.js +31 -0
- package/cjs/utils-4b74ea64.js.map +1 -0
- package/cjs/utils-7f75ad97.js +35 -0
- package/cjs/utils-7f75ad97.js.map +1 -0
- package/cjs/{utils-1038446c.js → utils-d5176360.js} +1 -1
- package/cjs/{utils-1038446c.js.map → utils-d5176360.js.map} +1 -1
- package/cjs/uuid-0b4ed44c.js +15 -0
- package/cjs/{uuid-1ffa3b79.js.map → uuid-0b4ed44c.js.map} +1 -1
- package/cjs/withSendbird.js +15 -16
- package/cjs/withSendbird.js.map +1 -1
- package/{color-73049158.js → color-3bac434a.js} +5 -5
- package/{color-73049158.js.map → color-3bac434a.js.map} +1 -1
- package/{compareIds-88bffa50.js → compareIds-1e0e668f.js} +1 -1
- package/{compareIds-88bffa50.js.map → compareIds-1e0e668f.js.map} +1 -1
- package/const-5f722b91.js +13 -0
- package/const-5f722b91.js.map +1 -0
- package/{const-2919bc87.js → const-6a07b718.js} +4 -4
- package/{const-2919bc87.js.map → const-6a07b718.js.map} +1 -1
- package/consts-790ae3a9.js +4 -0
- package/{consts-0ea80430.js.map → consts-790ae3a9.js.map} +1 -1
- package/consts-aadaccca.js +4 -0
- package/consts-aadaccca.js.map +1 -0
- package/consts-c9746f2b.js +27 -0
- package/{consts-966c9540.js.map → consts-c9746f2b.js.map} +1 -1
- package/consts-d4c78cc0.js +4 -0
- package/consts-d4c78cc0.js.map +1 -0
- package/context-fcbabe23.js +13 -0
- package/{context-9baa8d25.js.map → context-fcbabe23.js.map} +1 -1
- package/dist/index.css +197 -93
- package/dist/index.css.map +1 -1
- package/handlers/OpenChannelHandler.js.map +1 -1
- package/handlers/SessionHandler.js.map +1 -1
- package/{index-d37f34a3.js → index-1a3c0d72.js} +2 -4
- package/index-1a3c0d72.js.map +1 -0
- package/{index-ad125f51.js → index-2a938266.js} +1 -1
- package/{index-ad125f51.js.map → index-2a938266.js.map} +1 -1
- package/{index-ac5ad4f9.js → index-3062a861.js} +3 -12
- package/index-3062a861.js.map +1 -0
- package/index-38a78d99.js +283 -0
- package/{index-fd4fc9f0.js.map → index-38a78d99.js.map} +1 -1
- package/{index-cce0e324.js → index-4111594a.js} +2 -2
- package/{index-cce0e324.js.map → index-4111594a.js.map} +1 -1
- package/{index-61a102d7.js → index-51bd074f.js} +37 -27
- package/index-51bd074f.js.map +1 -0
- package/{index-fa96d1c0.js → index-59bd3da1.js} +50 -50
- package/index-59bd3da1.js.map +1 -0
- package/{index-91355132.js → index-77f3d9b0.js} +17 -17
- package/{index-91355132.js.map → index-77f3d9b0.js.map} +1 -1
- package/{index-a9183365.js → index-83600696.js} +37 -39
- package/{index-a9183365.js.map → index-83600696.js.map} +1 -1
- package/index-8df6bff0.js +51 -0
- package/index-8df6bff0.js.map +1 -0
- package/{index-aaa9b9f8.js → index-a9ddd0f5.js} +10 -30
- package/index-a9ddd0f5.js.map +1 -0
- package/index-c7cc73db.js +182 -0
- package/index-c7cc73db.js.map +1 -0
- package/{index-9cead71b.js → index-cfd0e4c4.js} +22 -15
- package/index-cfd0e4c4.js.map +1 -0
- package/index-dbe0e004.js +520 -0
- package/index-dbe0e004.js.map +1 -0
- package/index-ef0bd198.js +354 -0
- package/index-ef0bd198.js.map +1 -0
- package/{index-95b46112.js → index-f48cfdf7.js} +56 -193
- package/index-f48cfdf7.js.map +1 -0
- package/index.d.ts +38 -8
- package/index.js +51 -51
- package/{index.module-e6530c0d.js → index.module-ab8289c1.js} +1 -1
- package/{index.module-e6530c0d.js.map → index.module-ab8289c1.js.map} +1 -1
- package/lame.all.js.map +1 -1
- package/package.json +21 -3
- package/sendbirdSelectors.js +319 -371
- package/sendbirdSelectors.js.map +1 -1
- package/{stringSet-9d579825.js → stringSet-1f18348a.js} +2 -2
- package/stringSet-1f18348a.js.map +1 -0
- package/tokenize-63d895d3.js +135 -0
- package/tokenize-63d895d3.js.map +1 -0
- package/{topics-f9301447.js → topics-d8d10f83.js} +2 -2
- package/{topics-f9301447.js.map → topics-d8d10f83.js.map} +1 -1
- package/types-a85de720.js +15 -0
- package/{types-d0a9adf8.js.map → types-a85de720.js.map} +1 -1
- package/ui/Accordion.js +19 -18
- package/ui/Accordion.js.map +1 -1
- package/ui/AccordionGroup.js +10 -11
- package/ui/AccordionGroup.js.map +1 -1
- package/ui/AdminMessage.js +10 -10
- package/ui/AdminMessage.js.map +1 -1
- package/ui/Avatar.js +55 -59
- 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 -10
- package/ui/BottomSheet.js.map +1 -1
- package/ui/Button.js +20 -24
- package/ui/Button.js.map +1 -1
- package/ui/ChannelAvatar.js +38 -41
- package/ui/ChannelAvatar.js.map +1 -1
- package/ui/Checkbox.js +9 -10
- package/ui/Checkbox.js.map +1 -1
- package/ui/ConnectionStatus.js +7 -5
- package/ui/ConnectionStatus.js.map +1 -1
- package/ui/ContextMenu.js +139 -135
- package/ui/ContextMenu.js.map +1 -1
- package/ui/DateSeparator.js +12 -14
- package/ui/DateSeparator.js.map +1 -1
- package/ui/EmojiReactions.js +78 -86
- package/ui/EmojiReactions.js.map +1 -1
- package/ui/FileMessageItemBody.js +22 -22
- package/ui/FileMessageItemBody.js.map +1 -1
- package/ui/FileViewer.js +36 -35
- package/ui/FileViewer.js.map +1 -1
- package/ui/Icon.js +2 -2
- package/ui/Icon.js.map +1 -1
- package/ui/IconButton.js +20 -28
- package/ui/IconButton.js.map +1 -1
- package/ui/ImageRenderer.js +33 -39
- package/ui/ImageRenderer.js.map +1 -1
- package/ui/Input.js +16 -14
- package/ui/Input.js.map +1 -1
- package/ui/Label.js +2 -2
- package/ui/LinkLabel.js +2 -2
- 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 -61
- package/ui/MentionLabel.js.map +1 -1
- package/ui/MentionUserLabel.js +10 -10
- package/ui/MentionUserLabel.js.map +1 -1
- package/ui/MessageContent.js +273 -270
- package/ui/MessageContent.js.map +1 -1
- package/ui/MessageInput.js +87 -79
- package/ui/MessageInput.js.map +1 -1
- package/ui/MessageItemMenu.js +70 -72
- package/ui/MessageItemMenu.js.map +1 -1
- package/ui/MessageItemReactionMenu.js +50 -57
- package/ui/MessageItemReactionMenu.js.map +1 -1
- package/ui/MessageSearchFileItem.js +49 -38
- package/ui/MessageSearchFileItem.js.map +1 -1
- package/ui/MessageSearchItem.js +40 -32
- package/ui/MessageSearchItem.js.map +1 -1
- package/ui/MessageStatus.js +10 -10
- package/ui/Modal.js +52 -45
- package/ui/Modal.js.map +1 -1
- package/ui/MutedAvatarOverlay.js +10 -10
- package/ui/MutedAvatarOverlay.js.map +1 -1
- package/ui/OGMessageItemBody.js +48 -44
- 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 +134 -140
- package/ui/OpenchannelFileMessage.js.map +1 -1
- package/ui/OpenchannelOGMessage.js +177 -176
- package/ui/OpenchannelOGMessage.js.map +1 -1
- package/ui/OpenchannelThumbnailMessage.js +209 -214
- package/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/ui/OpenchannelUserMessage.js +159 -164
- package/ui/OpenchannelUserMessage.js.map +1 -1
- package/ui/PlaceHolder.js +5 -6
- package/ui/PlaceHolder.js.map +1 -1
- package/ui/PlaybackTime.js +15 -16
- package/ui/PlaybackTime.js.map +1 -1
- package/ui/ProgressBar.js +13 -15
- package/ui/ProgressBar.js.map +1 -1
- package/ui/QuoteMessage.js +42 -38
- package/ui/QuoteMessage.js.map +1 -1
- package/ui/QuoteMessageInput.js +27 -23
- package/ui/QuoteMessageInput.js.map +1 -1
- package/ui/ReactionBadge.js +13 -17
- package/ui/ReactionBadge.js.map +1 -1
- package/ui/ReactionButton.js +15 -18
- package/ui/ReactionButton.js.map +1 -1
- package/ui/SortByRow.js +14 -14
- package/ui/SortByRow.js.map +1 -1
- package/ui/TextButton.js +13 -21
- package/ui/TextButton.js.map +1 -1
- package/ui/TextMessageItemBody.js +31 -31
- package/ui/TextMessageItemBody.js.map +1 -1
- package/ui/ThreadReplies.js +25 -21
- package/ui/ThreadReplies.js.map +1 -1
- package/ui/ThumbnailMessageItemBody.js +32 -37
- 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 -18
- package/ui/TooltipWrapper.js.map +1 -1
- package/ui/UnknownMessageItemBody.js +19 -18
- package/ui/UnknownMessageItemBody.js.map +1 -1
- package/ui/UserListItem.js +72 -73
- package/ui/UserListItem.js.map +1 -1
- package/ui/UserProfile.js +30 -25
- package/ui/UserProfile.js.map +1 -1
- package/ui/VoiceMessageItemBody.js +37 -42
- package/ui/VoiceMessageItemBody.js.map +1 -1
- package/ui/VoiceMessgeInput.js +7 -8
- package/ui/VoiceMessgeInput.js.map +1 -1
- package/ui/Word.js +26 -27
- package/ui/Word.js.map +1 -1
- package/useLongPress-8acf717c.js +81 -0
- package/{useLongPress-f119ff35.js.map → useLongPress-8acf717c.js.map} +1 -1
- package/useSendbirdStateContext.js +2 -2
- package/useSendbirdStateContext.js.map +1 -1
- package/utils/message/getOutgoingMessageState.js +9 -8
- package/utils/message/getOutgoingMessageState.js.map +1 -1
- package/utils/message/isVoiceMessage.js +3 -3
- package/utils/message/isVoiceMessage.js.map +1 -1
- package/{utils-86d65b96.js → utils-0c09801e.js} +1 -1
- package/{utils-86d65b96.js.map → utils-0c09801e.js.map} +1 -1
- package/utils-447a922e.js +31 -0
- package/utils-447a922e.js.map +1 -0
- package/{utils-e53018f1.js → utils-83bbfb63.js} +3 -3
- package/{utils-e53018f1.js.map → utils-83bbfb63.js.map} +1 -1
- package/utils-b57bff14.js +29 -0
- package/utils-b57bff14.js.map +1 -0
- package/uuid-48baadaf.js +13 -0
- package/{uuid-86cb48e0.js.map → uuid-48baadaf.js.map} +1 -1
- package/withSendbird.js +15 -16
- package/withSendbird.js.map +1 -1
- package/ChannelListProvider-a2f2ee4a.js.map +0 -1
- package/ChannelProvider-bb459e82.js.map +0 -1
- package/CreateChannelProvider-a935d833.js +0 -48
- package/CreateChannelProvider-a935d833.js.map +0 -1
- package/LocalizationContext-3d8c0b24.js +0 -20
- package/MediaQueryContext-1348e37b.js +0 -80
- package/MediaQueryContext-1348e37b.js.map +0 -1
- package/MemberList-d8124d7e.js +0 -412
- package/MemberList-d8124d7e.js.map +0 -1
- package/OpenChannelListProvider-f9ec8658.js.map +0 -1
- package/OpenChannelProvider-36d0dd05.js +0 -1844
- package/OpenChannelProvider-36d0dd05.js.map +0 -1
- package/RemoveMessageModal-7852c71d.js +0 -30
- package/RemoveMessageModal-7852c71d.js.map +0 -1
- package/ThreadProvider-43c384e9.js +0 -1623
- package/ThreadProvider-43c384e9.js.map +0 -1
- package/VoiceMessageInputWrapper-0cd90994.js.map +0 -1
- package/_rollupPluginBabelHelpers-79f64283.js.map +0 -1
- package/cjs/ChannelListProvider-b0a363e0.js.map +0 -1
- package/cjs/ChannelProvider-cf5867c2.js.map +0 -1
- package/cjs/CreateChannelProvider-f82d812f.js +0 -55
- package/cjs/CreateChannelProvider-f82d812f.js.map +0 -1
- package/cjs/MediaQueryContext-b9c2ec1f.js +0 -87
- package/cjs/MediaQueryContext-b9c2ec1f.js.map +0 -1
- package/cjs/MemberList-13ba769f.js +0 -418
- package/cjs/MemberList-13ba769f.js.map +0 -1
- package/cjs/OpenChannelListProvider-02d6d44b.js +0 -416
- package/cjs/OpenChannelListProvider-02d6d44b.js.map +0 -1
- package/cjs/OpenChannelProvider-850b9cd0.js +0 -1853
- package/cjs/RemoveMessageModal-457b1535.js.map +0 -1
- package/cjs/ThreadProvider-37f2f0a3.js +0 -1632
- package/cjs/ThreadProvider-37f2f0a3.js.map +0 -1
- package/cjs/VoiceMessageInputWrapper-43c29f38.js.map +0 -1
- package/cjs/_rollupPluginBabelHelpers-c2313dcd.js.map +0 -1
- package/cjs/color-7f7508e6.js.map +0 -1
- package/cjs/const-e22c9d25.js +0 -19
- package/cjs/const-e22c9d25.js.map +0 -1
- package/cjs/consts-3764bd68.js +0 -6
- package/cjs/consts-3764bd68.js.map +0 -1
- package/cjs/consts-46fa3a3a.js +0 -6
- package/cjs/consts-ad849467.js +0 -6
- package/cjs/index-0b9ad941.js +0 -346
- package/cjs/index-0b9ad941.js.map +0 -1
- package/cjs/index-0dff9958.js.map +0 -1
- package/cjs/index-2ac1f908.js +0 -649
- package/cjs/index-2ac1f908.js.map +0 -1
- package/cjs/index-3626dfeb.js.map +0 -1
- package/cjs/index-71173fef.js.map +0 -1
- package/cjs/index-8b5a13fe.js.map +0 -1
- package/cjs/index-8b6bb1ee.js.map +0 -1
- package/cjs/index-a415176f.js +0 -192
- package/cjs/index-a415176f.js.map +0 -1
- package/cjs/index-a4887600.js.map +0 -1
- package/cjs/index-ac1b0ab9.js.map +0 -1
- package/cjs/index-cd680348.js +0 -271
- package/cjs/index-ddcf90b1.js +0 -59
- package/cjs/index-ddcf90b1.js.map +0 -1
- package/cjs/stringSet-061fe0c1.js.map +0 -1
- package/cjs/tokenize-7e34a56e.js +0 -141
- package/cjs/tokenize-7e34a56e.js.map +0 -1
- package/cjs/tslib.es6-8f4b0cfe.js +0 -97
- package/cjs/tslib.es6-8f4b0cfe.js.map +0 -1
- package/cjs/types-beecfca4.js +0 -11
- package/cjs/useLongPress-f3ee01a0.js +0 -100
- package/cjs/utils-3f3c2287.js +0 -27
- package/cjs/utils-3f3c2287.js.map +0 -1
- package/cjs/utils-6a97ff3a.js +0 -35
- package/cjs/utils-6a97ff3a.js.map +0 -1
- package/cjs/uuid-1ffa3b79.js +0 -17
- package/const-df1daff9.js +0 -13
- package/const-df1daff9.js.map +0 -1
- package/consts-0ea80430.js +0 -4
- package/consts-1861f891.js +0 -4
- package/consts-1861f891.js.map +0 -1
- package/consts-966c9540.js +0 -23
- package/consts-f4362414.js +0 -4
- package/consts-f4362414.js.map +0 -1
- package/context-9baa8d25.js +0 -12
- package/index-179bed8d.js +0 -177
- package/index-179bed8d.js.map +0 -1
- package/index-61a102d7.js.map +0 -1
- package/index-95b46112.js.map +0 -1
- package/index-9cead71b.js.map +0 -1
- package/index-aaa9b9f8.js.map +0 -1
- package/index-ac5ad4f9.js.map +0 -1
- package/index-c70af435.js +0 -53
- package/index-c70af435.js.map +0 -1
- package/index-d37f34a3.js.map +0 -1
- package/index-e378ca4e.js +0 -607
- package/index-e378ca4e.js.map +0 -1
- package/index-f0f9692b.js +0 -339
- package/index-f0f9692b.js.map +0 -1
- package/index-fa96d1c0.js.map +0 -1
- package/index-fd4fc9f0.js +0 -262
- package/stringSet-9d579825.js.map +0 -1
- package/tokenize-bd8e35b2.js +0 -136
- package/tokenize-bd8e35b2.js.map +0 -1
- package/tslib.es6-d6e50ec3.js +0 -92
- package/tslib.es6-d6e50ec3.js.map +0 -1
- package/types-d0a9adf8.js +0 -9
- package/useLongPress-f119ff35.js +0 -98
- package/utils-0c8334fa.js +0 -25
- package/utils-0c8334fa.js.map +0 -1
- package/utils-e659e765.js +0 -31
- package/utils-e659e765.js.map +0 -1
- package/uuid-86cb48e0.js +0 -15
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-c5955c81.js');
|
|
5
|
+
var consts = require('./consts-a5382bc1.js');
|
|
6
|
+
var useSendbirdStateContext = require('./useSendbirdStateContext.js');
|
|
7
|
+
|
|
8
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
9
|
+
|
|
10
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
11
|
+
|
|
12
|
+
const INITIALIZE_AUDIO_UNIT = 'INITIALIZE_AUDIO_UNIT';
|
|
13
|
+
const SET_CURRENT_PLAYER = 'SET_CURRENT_PLAYER';
|
|
14
|
+
const ON_VOICE_PLAYER_PLAY = 'ON_VOICE_PLAYER_PLAY';
|
|
15
|
+
const ON_VOICE_PLAYER_PAUSE = 'ON_VOICE_PLAYER_PAUSE';
|
|
16
|
+
const ON_CURRENT_TIME_UPDATE = 'ON_CURRENT_TIME_UPDATE';
|
|
17
|
+
|
|
18
|
+
const VoicePlayerStatus = {
|
|
19
|
+
IDLE: 'IDLE',
|
|
20
|
+
PREPARING: 'PREPARING',
|
|
21
|
+
PLAYING: 'PLAYING',
|
|
22
|
+
PAUSED: 'PAUSED',
|
|
23
|
+
COMPLETED: 'COMPLETED'
|
|
24
|
+
};
|
|
25
|
+
const AudioUnitDefaultValue = () => ({
|
|
26
|
+
audioFile: null,
|
|
27
|
+
playbackTime: 0,
|
|
28
|
+
duration: 1000,
|
|
29
|
+
playingStatus: VoicePlayerStatus.IDLE
|
|
30
|
+
});
|
|
31
|
+
const voicePlayerInitialState = {
|
|
32
|
+
currentPlayer: null,
|
|
33
|
+
currentGroupKey: '',
|
|
34
|
+
audioStorage: {}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
function voicePlayerReducer(state, action) {
|
|
38
|
+
switch (action.type) {
|
|
39
|
+
case INITIALIZE_AUDIO_UNIT:
|
|
40
|
+
{
|
|
41
|
+
var _state$audioStorage;
|
|
42
|
+
const {
|
|
43
|
+
groupKey
|
|
44
|
+
} = action.payload;
|
|
45
|
+
const audioUnit = (_state$audioStorage = state.audioStorage) !== null && _state$audioStorage !== void 0 && _state$audioStorage[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue();
|
|
46
|
+
audioUnit.playingStatus = VoicePlayerStatus.PREPARING;
|
|
47
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
48
|
+
audioStorage: _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state.audioStorage), {}, {
|
|
49
|
+
[groupKey]: audioUnit
|
|
50
|
+
})
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
case SET_CURRENT_PLAYER:
|
|
54
|
+
{
|
|
55
|
+
const {
|
|
56
|
+
audioPlayer,
|
|
57
|
+
groupKey
|
|
58
|
+
} = action.payload;
|
|
59
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
60
|
+
currentPlayer: audioPlayer,
|
|
61
|
+
currentGroupKey: groupKey
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
case ON_VOICE_PLAYER_PLAY:
|
|
65
|
+
{
|
|
66
|
+
var _state$audioStorage2;
|
|
67
|
+
const {
|
|
68
|
+
groupKey,
|
|
69
|
+
audioFile
|
|
70
|
+
} = action.payload;
|
|
71
|
+
const audioUnit = (_state$audioStorage2 = state.audioStorage) !== null && _state$audioStorage2 !== void 0 && _state$audioStorage2[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue();
|
|
72
|
+
audioUnit.audioFile = audioFile;
|
|
73
|
+
audioUnit.playingStatus = VoicePlayerStatus.PLAYING;
|
|
74
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
75
|
+
audioStorage: _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state.audioStorage), {}, {
|
|
76
|
+
[groupKey]: audioUnit
|
|
77
|
+
})
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
case ON_VOICE_PLAYER_PAUSE:
|
|
81
|
+
{
|
|
82
|
+
var _state$audioStorage3;
|
|
83
|
+
const {
|
|
84
|
+
groupKey
|
|
85
|
+
} = action.payload;
|
|
86
|
+
const audioUnit = (_state$audioStorage3 = state.audioStorage) !== null && _state$audioStorage3 !== void 0 && _state$audioStorage3[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue();
|
|
87
|
+
audioUnit.playingStatus = VoicePlayerStatus.PAUSED;
|
|
88
|
+
const {
|
|
89
|
+
currentTime,
|
|
90
|
+
duration
|
|
91
|
+
} = state.currentPlayer;
|
|
92
|
+
if (audioUnit.playbackTime === audioUnit.duration) {
|
|
93
|
+
audioUnit.playbackTime = 0;
|
|
94
|
+
} else if (currentTime > 0 && duration > 0) {
|
|
95
|
+
audioUnit.playbackTime = currentTime;
|
|
96
|
+
audioUnit.duration = duration;
|
|
97
|
+
}
|
|
98
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
99
|
+
audioStorage: _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state.audioStorage), {}, {
|
|
100
|
+
[groupKey]: audioUnit
|
|
101
|
+
})
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
case ON_CURRENT_TIME_UPDATE:
|
|
105
|
+
{
|
|
106
|
+
var _state$audioStorage4;
|
|
107
|
+
const {
|
|
108
|
+
groupKey
|
|
109
|
+
} = action.payload;
|
|
110
|
+
const {
|
|
111
|
+
currentTime,
|
|
112
|
+
duration
|
|
113
|
+
} = state.currentPlayer;
|
|
114
|
+
const audioUnit = (_state$audioStorage4 = state.audioStorage) !== null && _state$audioStorage4 !== void 0 && _state$audioStorage4[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue();
|
|
115
|
+
if (currentTime > 0 && duration > 0) {
|
|
116
|
+
audioUnit.playbackTime = currentTime;
|
|
117
|
+
audioUnit.duration = duration;
|
|
118
|
+
}
|
|
119
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
120
|
+
audioStorage: _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state.audioStorage), {}, {
|
|
121
|
+
[groupKey]: audioUnit
|
|
122
|
+
})
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
default:
|
|
126
|
+
return state;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// VoicePlayerProvider interface
|
|
131
|
+
|
|
132
|
+
const noop = () => {/* noop */};
|
|
133
|
+
const VoicePlayerStoreDefaultValue = {
|
|
134
|
+
currentGroupKey: '',
|
|
135
|
+
currentPlayer: null,
|
|
136
|
+
audioStorage: {}
|
|
137
|
+
};
|
|
138
|
+
const VoicePlayerContext = /*#__PURE__*/React.createContext({
|
|
139
|
+
play: noop,
|
|
140
|
+
pause: noop,
|
|
141
|
+
stop: noop,
|
|
142
|
+
voicePlayerStore: VoicePlayerStoreDefaultValue
|
|
143
|
+
});
|
|
144
|
+
const VoicePlayerProvider = _ref => {
|
|
145
|
+
let {
|
|
146
|
+
children
|
|
147
|
+
} = _ref;
|
|
148
|
+
const [voicePlayerStore, voicePlayerDispatcher] = React.useReducer(voicePlayerReducer, voicePlayerInitialState);
|
|
149
|
+
const {
|
|
150
|
+
currentGroupKey,
|
|
151
|
+
currentPlayer,
|
|
152
|
+
audioStorage
|
|
153
|
+
} = voicePlayerStore;
|
|
154
|
+
const {
|
|
155
|
+
config
|
|
156
|
+
} = useSendbirdStateContext();
|
|
157
|
+
const {
|
|
158
|
+
logger
|
|
159
|
+
} = config;
|
|
160
|
+
const stop = function () {
|
|
161
|
+
let text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
162
|
+
if (currentGroupKey.includes(text)) {
|
|
163
|
+
logger.info('VoicePlayer: Pause playing(by text).');
|
|
164
|
+
pause(currentGroupKey);
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
const pause = groupKey => {
|
|
168
|
+
if (currentGroupKey === groupKey && currentPlayer !== null) {
|
|
169
|
+
logger.info('VoicePlayer: Pause playing(by group key).');
|
|
170
|
+
currentPlayer === null || currentPlayer === void 0 ? void 0 : currentPlayer.pause();
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
const play = _ref2 => {
|
|
174
|
+
let {
|
|
175
|
+
groupKey,
|
|
176
|
+
audioFile = null,
|
|
177
|
+
audioFileUrl = ''
|
|
178
|
+
} = _ref2;
|
|
179
|
+
if (groupKey !== currentGroupKey) {
|
|
180
|
+
pause(currentGroupKey);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// Clear the previous AudioPlayer element
|
|
184
|
+
const voicePlayerRoot = document.getElementById(consts.VOICE_PLAYER_ROOT_ID);
|
|
185
|
+
const voicePlayerAudioElement = document.getElementById(consts.VOICE_PLAYER_AUDIO_ID);
|
|
186
|
+
if (voicePlayerAudioElement) {
|
|
187
|
+
voicePlayerRoot.removeChild(voicePlayerAudioElement);
|
|
188
|
+
}
|
|
189
|
+
logger.info('VoicePlayer: Start getting audio file.');
|
|
190
|
+
new Promise(resolve => {
|
|
191
|
+
var _audioStorage$groupKe;
|
|
192
|
+
if (audioFile) {
|
|
193
|
+
resolve(audioFile);
|
|
194
|
+
logger.info('VoicePlayer: Use the audioFile instance.');
|
|
195
|
+
}
|
|
196
|
+
if (audioStorage !== null && audioStorage !== void 0 && (_audioStorage$groupKe = audioStorage[groupKey]) !== null && _audioStorage$groupKe !== void 0 && _audioStorage$groupKe.audioFile) {
|
|
197
|
+
resolve(audioStorage[groupKey].audioFile);
|
|
198
|
+
logger.info('VoicePlayer: Get from the audioStorage.');
|
|
199
|
+
}
|
|
200
|
+
voicePlayerDispatcher({
|
|
201
|
+
type: INITIALIZE_AUDIO_UNIT,
|
|
202
|
+
payload: {
|
|
203
|
+
groupKey
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
fetch(audioFileUrl).then(res => res.blob()).then(blob => {
|
|
207
|
+
const audioFile = new File([blob], consts.VOICE_MESSAGE_FILE_NAME, {
|
|
208
|
+
lastModified: new Date().getTime(),
|
|
209
|
+
type: consts.VOICE_MESSAGE_MIME_TYPE
|
|
210
|
+
});
|
|
211
|
+
resolve(audioFile);
|
|
212
|
+
logger.info('VoicePlayer: Get the audioFile from URL.');
|
|
213
|
+
});
|
|
214
|
+
}).then(audioFile => {
|
|
215
|
+
var _URL, _URL$createObjectURL;
|
|
216
|
+
logger.info('VoicePlayer: Succeeded getting audio file.', audioFile);
|
|
217
|
+
const currentAudioUnit = audioStorage[groupKey] || AudioUnitDefaultValue();
|
|
218
|
+
const audioPlayer = new Audio((_URL = URL) === null || _URL === void 0 ? void 0 : (_URL$createObjectURL = _URL.createObjectURL) === null || _URL$createObjectURL === void 0 ? void 0 : _URL$createObjectURL.call(_URL, audioFile));
|
|
219
|
+
audioPlayer.id = consts.VOICE_PLAYER_AUDIO_ID;
|
|
220
|
+
audioPlayer.currentTime = currentAudioUnit.playbackTime;
|
|
221
|
+
audioPlayer.volume = 1;
|
|
222
|
+
audioPlayer.loop = false;
|
|
223
|
+
audioPlayer.onplaying = () => {
|
|
224
|
+
logger.info('VoicePlayer: OnPlaying event is called from audioPlayer', {
|
|
225
|
+
groupKey,
|
|
226
|
+
audioPlayer
|
|
227
|
+
});
|
|
228
|
+
voicePlayerDispatcher({
|
|
229
|
+
type: ON_VOICE_PLAYER_PLAY,
|
|
230
|
+
payload: {
|
|
231
|
+
groupKey,
|
|
232
|
+
audioFile
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
};
|
|
236
|
+
audioPlayer.onpause = () => {
|
|
237
|
+
logger.info('VoicePlayer: OnPause event is called from audioPlayer', {
|
|
238
|
+
groupKey,
|
|
239
|
+
audioPlayer
|
|
240
|
+
});
|
|
241
|
+
voicePlayerDispatcher({
|
|
242
|
+
type: ON_VOICE_PLAYER_PAUSE,
|
|
243
|
+
payload: {
|
|
244
|
+
groupKey
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
};
|
|
248
|
+
audioPlayer.ontimeupdate = () => {
|
|
249
|
+
voicePlayerDispatcher({
|
|
250
|
+
type: ON_CURRENT_TIME_UPDATE,
|
|
251
|
+
payload: {
|
|
252
|
+
groupKey
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
};
|
|
256
|
+
audioPlayer === null || audioPlayer === void 0 ? void 0 : audioPlayer.play();
|
|
257
|
+
const voicePlayerRoot = document.getElementById(consts.VOICE_PLAYER_ROOT_ID);
|
|
258
|
+
voicePlayerRoot.appendChild(audioPlayer);
|
|
259
|
+
voicePlayerDispatcher({
|
|
260
|
+
type: SET_CURRENT_PLAYER,
|
|
261
|
+
payload: {
|
|
262
|
+
groupKey,
|
|
263
|
+
audioPlayer
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
logger.info('VoicePlayer: Succeeded playing audio player.', {
|
|
267
|
+
groupKey,
|
|
268
|
+
audioPlayer
|
|
269
|
+
});
|
|
270
|
+
});
|
|
271
|
+
};
|
|
272
|
+
return /*#__PURE__*/React__default["default"].createElement(VoicePlayerContext.Provider, {
|
|
273
|
+
value: {
|
|
274
|
+
play,
|
|
275
|
+
pause,
|
|
276
|
+
stop,
|
|
277
|
+
voicePlayerStore
|
|
278
|
+
}
|
|
279
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
280
|
+
id: consts.VOICE_PLAYER_ROOT_ID,
|
|
281
|
+
style: {
|
|
282
|
+
display: 'none'
|
|
283
|
+
}
|
|
284
|
+
}), children);
|
|
285
|
+
};
|
|
286
|
+
const useVoicePlayerContext = () => React.useContext(VoicePlayerContext);
|
|
287
|
+
|
|
288
|
+
exports.AudioUnitDefaultValue = AudioUnitDefaultValue;
|
|
289
|
+
exports.VoicePlayerProvider = VoicePlayerProvider;
|
|
290
|
+
exports.VoicePlayerStatus = VoicePlayerStatus;
|
|
291
|
+
exports.useVoicePlayerContext = useVoicePlayerContext;
|
|
292
|
+
//# sourceMappingURL=index-9d518988.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-cd680348.js","sources":["../../src/hooks/VoicePlayer/dux/actionTypes.ts","../../src/hooks/VoicePlayer/dux/initialState.ts","../../src/hooks/VoicePlayer/dux/reducer.ts","../../src/hooks/VoicePlayer/index.tsx"],"sourcesContent":["import { ObjectValues } from '../../../utils/typeHelpers/objectValues';\n\nexport const actionTypes = {\n INITIALIZE_AUDIO_UNIT: 'INITIALIZE_AUDIO_UNIT',\n SET_CURRENT_PLAYER: 'SET_CURRENT_PLAYER',\n ON_VOICE_PLAYER_PLAY: 'ON_VOICE_PLAYER_PLAY',\n ON_VOICE_PLAYER_PAUSE: 'ON_VOICE_PLAYER_PAUSE',\n ON_CURRENT_TIME_UPDATE: 'ON_CURRENT_TIME_UPDATE',\n} as const;\n\nexport type VoicePlayerActionType = ObjectValues<typeof actionTypes>;\n\nexport const INITIALIZE_AUDIO_UNIT: VoicePlayerActionType = 'INITIALIZE_AUDIO_UNIT';\nexport const SET_CURRENT_PLAYER: VoicePlayerActionType = 'SET_CURRENT_PLAYER';\nexport const ON_VOICE_PLAYER_PLAY: VoicePlayerActionType = 'ON_VOICE_PLAYER_PLAY';\nexport const ON_VOICE_PLAYER_PAUSE: VoicePlayerActionType = 'ON_VOICE_PLAYER_PAUSE';\nexport const ON_CURRENT_TIME_UPDATE: VoicePlayerActionType = 'ON_CURRENT_TIME_UPDATE';\n","import { GroupKey } from '../utils';\n\nexport const VoicePlayerStatus = {\n IDLE: 'IDLE',\n PREPARING: 'PREPARING',\n PLAYING: 'PLAYING',\n PAUSED: 'PAUSED',\n COMPLETED: 'COMPLETED',\n} as const;\nexport type VoicePlayerStatus = typeof VoicePlayerStatus[keyof typeof VoicePlayerStatus];\n\nexport type AudioStorageUnit = {\n playingStatus: VoicePlayerStatus;\n audioFile: null | File;\n playbackTime: number;\n duration: number;\n}\nexport const AudioUnitDefaultValue = (): AudioStorageUnit => ({\n audioFile: null,\n playbackTime: 0,\n duration: 1000,\n playingStatus: VoicePlayerStatus.IDLE,\n});\n\nexport interface VoicePlayerInitialState {\n currentPlayer: null | HTMLAudioElement;\n currentGroupKey: string;\n audioStorage: Record<GroupKey, AudioStorageUnit>;\n}\n\nexport const voicePlayerInitialState: VoicePlayerInitialState = {\n currentPlayer: null,\n currentGroupKey: '',\n audioStorage: {},\n};\n","import {\n INITIALIZE_AUDIO_UNIT,\n ON_CURRENT_TIME_UPDATE,\n ON_VOICE_PLAYER_PAUSE,\n ON_VOICE_PLAYER_PLAY,\n SET_CURRENT_PLAYER,\n} from './actionTypes';\nimport {\n AudioStorageUnit,\n AudioUnitDefaultValue,\n VoicePlayerInitialState,\n VoicePlayerStatus,\n} from './initialState';\n\ntype InitializeAudioUnitPayload = { groupKey: string };\ntype SetCurrentPlayerPayload = { audioPlayer: HTMLAudioElement, groupKey: string };\ntype OnVoicePlayerPlayPayload = { groupKey: string, audioFile: File };\ntype OnVoicePlayerPausePayload = { groupKey: string };\ntype OnCurrentTimeUpdatePayload = { groupKey: string };\ntype PayloadType = (\n InitializeAudioUnitPayload\n | SetCurrentPlayerPayload\n | OnVoicePlayerPlayPayload\n | OnVoicePlayerPausePayload\n | OnCurrentTimeUpdatePayload\n);\ntype ActionType = {\n type: string;\n payload: PayloadType;\n}\n\nexport default function voicePlayerReducer(\n state: VoicePlayerInitialState,\n action: ActionType,\n): VoicePlayerInitialState {\n switch (action.type) {\n case INITIALIZE_AUDIO_UNIT: {\n const { groupKey } = action.payload as InitializeAudioUnitPayload;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n audioUnit.playingStatus = VoicePlayerStatus.PREPARING;\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n case SET_CURRENT_PLAYER: {\n const { audioPlayer, groupKey } = action.payload as SetCurrentPlayerPayload;\n return {\n ...state,\n currentPlayer: audioPlayer,\n currentGroupKey: groupKey,\n };\n }\n case ON_VOICE_PLAYER_PLAY: {\n const { groupKey, audioFile } = action.payload as OnVoicePlayerPlayPayload;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n audioUnit.audioFile = audioFile;\n audioUnit.playingStatus = VoicePlayerStatus.PLAYING;\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n case ON_VOICE_PLAYER_PAUSE: {\n const { groupKey } = action.payload as OnVoicePlayerPausePayload;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n audioUnit.playingStatus = VoicePlayerStatus.PAUSED;\n const { currentTime, duration } = state.currentPlayer as HTMLAudioElement;\n if (audioUnit.playbackTime === audioUnit.duration) {\n audioUnit.playbackTime = 0;\n } else if (currentTime > 0 && duration > 0) {\n audioUnit.playbackTime = currentTime;\n audioUnit.duration = duration;\n }\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n case ON_CURRENT_TIME_UPDATE: {\n const { groupKey } = action.payload as OnCurrentTimeUpdatePayload;\n const { currentTime, duration } = state.currentPlayer as HTMLAudioElement;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n if (currentTime > 0 && duration > 0) {\n audioUnit.playbackTime = currentTime;\n audioUnit.duration = duration;\n }\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n default:\n return state;\n }\n}\n","import React, { createContext, useContext, useReducer } from 'react';\nimport voicePlayerReducer from './dux/reducer';\nimport {\n AudioStorageUnit,\n AudioUnitDefaultValue,\n VoicePlayerInitialState,\n voicePlayerInitialState,\n} from './dux/initialState';\nimport {\n INITIALIZE_AUDIO_UNIT,\n ON_CURRENT_TIME_UPDATE,\n ON_VOICE_PLAYER_PAUSE,\n ON_VOICE_PLAYER_PLAY,\n SET_CURRENT_PLAYER,\n} from './dux/actionTypes';\nimport {\n VOICE_MESSAGE_FILE_NAME,\n VOICE_MESSAGE_MIME_TYPE,\n VOICE_PLAYER_AUDIO_ID,\n VOICE_PLAYER_ROOT_ID,\n} from '../../utils/consts';\nimport useSendbirdStateContext from '../useSendbirdStateContext';\n\n// VoicePlayerProvider interface\nexport interface VoicePlayerProps {\n children: React.ReactElement;\n}\nexport interface VoicePlayerPlayProps {\n groupKey: string;\n audioFile?: File;\n audioFileUrl?: string;\n}\nexport interface VoicePlayerContext {\n play: (props: VoicePlayerPlayProps) => void;\n pause: (groupKey?: string) => void;\n stop: (text?: string) => void;\n voicePlayerStore: VoicePlayerInitialState;\n}\n\nconst noop = () => { /* noop */ };\nconst VoicePlayerStoreDefaultValue = {\n currentGroupKey: '',\n currentPlayer: null,\n audioStorage: {},\n};\n\nconst VoicePlayerContext = createContext<VoicePlayerContext>({\n play: noop,\n pause: noop,\n stop: noop,\n voicePlayerStore: VoicePlayerStoreDefaultValue,\n});\n\nexport const VoicePlayerProvider = ({\n children,\n}: VoicePlayerProps): React.ReactElement => {\n const [voicePlayerStore, voicePlayerDispatcher] = useReducer(voicePlayerReducer, voicePlayerInitialState);\n const {\n currentGroupKey,\n currentPlayer,\n audioStorage,\n } = voicePlayerStore;\n const { config } = useSendbirdStateContext();\n const { logger } = config;\n\n const stop = (text = '') => {\n if (currentGroupKey.includes(text)) {\n logger.info('VoicePlayer: Pause playing(by text).');\n pause(currentGroupKey);\n }\n };\n\n const pause = (groupKey: string) => {\n if (currentGroupKey === groupKey && currentPlayer !== null) {\n logger.info('VoicePlayer: Pause playing(by group key).');\n currentPlayer?.pause();\n }\n };\n\n const play = ({\n groupKey,\n audioFile = null,\n audioFileUrl = '',\n }: VoicePlayerPlayProps): void => {\n if (groupKey !== currentGroupKey) {\n pause(currentGroupKey);\n }\n\n // Clear the previous AudioPlayer element\n const voicePlayerRoot = document.getElementById(VOICE_PLAYER_ROOT_ID);\n const voicePlayerAudioElement = document.getElementById(VOICE_PLAYER_AUDIO_ID);\n if (voicePlayerAudioElement) {\n voicePlayerRoot.removeChild(voicePlayerAudioElement);\n }\n\n logger.info('VoicePlayer: Start getting audio file.');\n new Promise((resolve) => {\n if (audioFile) {\n resolve(audioFile);\n logger.info('VoicePlayer: Use the audioFile instance.');\n }\n if (audioStorage?.[groupKey]?.audioFile) {\n resolve(audioStorage[groupKey].audioFile);\n logger.info('VoicePlayer: Get from the audioStorage.');\n }\n voicePlayerDispatcher({\n type: INITIALIZE_AUDIO_UNIT,\n payload: { groupKey },\n });\n fetch(audioFileUrl)\n .then((res) => res.blob())\n .then((blob) => {\n const audioFile = new File([blob], VOICE_MESSAGE_FILE_NAME, {\n lastModified: new Date().getTime(),\n type: VOICE_MESSAGE_MIME_TYPE,\n });\n resolve(audioFile);\n logger.info('VoicePlayer: Get the audioFile from URL.');\n });\n }).then((audioFile: File) => {\n logger.info('VoicePlayer: Succeeded getting audio file.', audioFile);\n const currentAudioUnit = audioStorage[groupKey] || AudioUnitDefaultValue() as AudioStorageUnit;\n const audioPlayer = new Audio(URL?.createObjectURL?.(audioFile));\n audioPlayer.id = VOICE_PLAYER_AUDIO_ID;\n audioPlayer.currentTime = currentAudioUnit.playbackTime;\n audioPlayer.volume = 1;\n audioPlayer.loop = false;\n audioPlayer.onplaying = () => {\n logger.info('VoicePlayer: OnPlaying event is called from audioPlayer', { groupKey, audioPlayer });\n voicePlayerDispatcher({\n type: ON_VOICE_PLAYER_PLAY,\n payload: { groupKey, audioFile },\n });\n };\n audioPlayer.onpause = () => {\n logger.info('VoicePlayer: OnPause event is called from audioPlayer', { groupKey, audioPlayer });\n voicePlayerDispatcher({\n type: ON_VOICE_PLAYER_PAUSE,\n payload: { groupKey },\n });\n };\n audioPlayer.ontimeupdate = () => {\n voicePlayerDispatcher({\n type: ON_CURRENT_TIME_UPDATE,\n payload: { groupKey },\n });\n };\n audioPlayer?.play();\n const voicePlayerRoot = document.getElementById(VOICE_PLAYER_ROOT_ID);\n voicePlayerRoot.appendChild(audioPlayer);\n voicePlayerDispatcher({\n type: SET_CURRENT_PLAYER,\n payload: { groupKey, audioPlayer },\n });\n logger.info('VoicePlayer: Succeeded playing audio player.', { groupKey, audioPlayer });\n });\n };\n\n return (\n <VoicePlayerContext.Provider value={{\n play,\n pause,\n stop,\n voicePlayerStore,\n }}>\n <div id={VOICE_PLAYER_ROOT_ID} style={{ display: 'none' }} />\n {children}\n </VoicePlayerContext.Provider>\n );\n};\n\nexport const useVoicePlayerContext = (): VoicePlayerContext => useContext(VoicePlayerContext);\n"],"names":["INITIALIZE_AUDIO_UNIT","SET_CURRENT_PLAYER","ON_VOICE_PLAYER_PLAY","ON_VOICE_PLAYER_PAUSE","ON_CURRENT_TIME_UPDATE","VoicePlayerStatus","IDLE","PREPARING","PLAYING","PAUSED","COMPLETED","AudioUnitDefaultValue","audioFile","playbackTime","duration","playingStatus","voicePlayerInitialState","currentPlayer","currentGroupKey","audioStorage","voicePlayerReducer","state","action","type","groupKey","payload","audioUnit","_e","__assign","_a","_j","audioPlayer","_k","_f","_b","_g","_l","currentTime","_c","_m","_h","_d","noop","VoicePlayerStoreDefaultValue","VoicePlayerContext","createContext","play","pause","stop","voicePlayerStore","VoicePlayerProvider","children","useReducer","voicePlayerDispatcher","config","useSendbirdStateContext","logger","text","includes","info","audioFileUrl","voicePlayerRoot","document","getElementById","VOICE_PLAYER_ROOT_ID","voicePlayerAudioElement","VOICE_PLAYER_AUDIO_ID","removeChild","Promise","resolve","fetch","then","res","blob","File","VOICE_MESSAGE_FILE_NAME","lastModified","Date","getTime","VOICE_MESSAGE_MIME_TYPE","currentAudioUnit","Audio","URL","createObjectURL","id","volume","loop","onplaying","onpause","ontimeupdate","appendChild","React","createElement","Provider","value","style","display","useVoicePlayerContext","useContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-9d518988.js","sources":["../../src/hooks/VoicePlayer/dux/actionTypes.ts","../../src/hooks/VoicePlayer/dux/initialState.ts","../../src/hooks/VoicePlayer/dux/reducer.ts","../../src/hooks/VoicePlayer/index.tsx"],"sourcesContent":["import { ObjectValues } from '../../../utils/typeHelpers/objectValues';\n\nexport const actionTypes = {\n INITIALIZE_AUDIO_UNIT: 'INITIALIZE_AUDIO_UNIT',\n SET_CURRENT_PLAYER: 'SET_CURRENT_PLAYER',\n ON_VOICE_PLAYER_PLAY: 'ON_VOICE_PLAYER_PLAY',\n ON_VOICE_PLAYER_PAUSE: 'ON_VOICE_PLAYER_PAUSE',\n ON_CURRENT_TIME_UPDATE: 'ON_CURRENT_TIME_UPDATE',\n} as const;\n\nexport type VoicePlayerActionType = ObjectValues<typeof actionTypes>;\n\nexport const INITIALIZE_AUDIO_UNIT: VoicePlayerActionType = 'INITIALIZE_AUDIO_UNIT';\nexport const SET_CURRENT_PLAYER: VoicePlayerActionType = 'SET_CURRENT_PLAYER';\nexport const ON_VOICE_PLAYER_PLAY: VoicePlayerActionType = 'ON_VOICE_PLAYER_PLAY';\nexport const ON_VOICE_PLAYER_PAUSE: VoicePlayerActionType = 'ON_VOICE_PLAYER_PAUSE';\nexport const ON_CURRENT_TIME_UPDATE: VoicePlayerActionType = 'ON_CURRENT_TIME_UPDATE';\n","import { GroupKey } from '../utils';\n\nexport const VoicePlayerStatus = {\n IDLE: 'IDLE',\n PREPARING: 'PREPARING',\n PLAYING: 'PLAYING',\n PAUSED: 'PAUSED',\n COMPLETED: 'COMPLETED',\n} as const;\nexport type VoicePlayerStatus = typeof VoicePlayerStatus[keyof typeof VoicePlayerStatus];\n\nexport type AudioStorageUnit = {\n playingStatus: VoicePlayerStatus;\n audioFile: null | File;\n playbackTime: number;\n duration: number;\n}\nexport const AudioUnitDefaultValue = (): AudioStorageUnit => ({\n audioFile: null,\n playbackTime: 0,\n duration: 1000,\n playingStatus: VoicePlayerStatus.IDLE,\n});\n\nexport interface VoicePlayerInitialState {\n currentPlayer: null | HTMLAudioElement;\n currentGroupKey: string;\n audioStorage: Record<GroupKey, AudioStorageUnit>;\n}\n\nexport const voicePlayerInitialState: VoicePlayerInitialState = {\n currentPlayer: null,\n currentGroupKey: '',\n audioStorage: {},\n};\n","import {\n INITIALIZE_AUDIO_UNIT,\n ON_CURRENT_TIME_UPDATE,\n ON_VOICE_PLAYER_PAUSE,\n ON_VOICE_PLAYER_PLAY,\n SET_CURRENT_PLAYER,\n} from './actionTypes';\nimport {\n AudioStorageUnit,\n AudioUnitDefaultValue,\n VoicePlayerInitialState,\n VoicePlayerStatus,\n} from './initialState';\n\ntype InitializeAudioUnitPayload = { groupKey: string };\ntype SetCurrentPlayerPayload = { audioPlayer: HTMLAudioElement, groupKey: string };\ntype OnVoicePlayerPlayPayload = { groupKey: string, audioFile: File };\ntype OnVoicePlayerPausePayload = { groupKey: string };\ntype OnCurrentTimeUpdatePayload = { groupKey: string };\ntype PayloadType = (\n InitializeAudioUnitPayload\n | SetCurrentPlayerPayload\n | OnVoicePlayerPlayPayload\n | OnVoicePlayerPausePayload\n | OnCurrentTimeUpdatePayload\n);\ntype ActionType = {\n type: string;\n payload: PayloadType;\n}\n\nexport default function voicePlayerReducer(\n state: VoicePlayerInitialState,\n action: ActionType,\n): VoicePlayerInitialState {\n switch (action.type) {\n case INITIALIZE_AUDIO_UNIT: {\n const { groupKey } = action.payload as InitializeAudioUnitPayload;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n audioUnit.playingStatus = VoicePlayerStatus.PREPARING;\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n case SET_CURRENT_PLAYER: {\n const { audioPlayer, groupKey } = action.payload as SetCurrentPlayerPayload;\n return {\n ...state,\n currentPlayer: audioPlayer,\n currentGroupKey: groupKey,\n };\n }\n case ON_VOICE_PLAYER_PLAY: {\n const { groupKey, audioFile } = action.payload as OnVoicePlayerPlayPayload;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n audioUnit.audioFile = audioFile;\n audioUnit.playingStatus = VoicePlayerStatus.PLAYING;\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n case ON_VOICE_PLAYER_PAUSE: {\n const { groupKey } = action.payload as OnVoicePlayerPausePayload;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n audioUnit.playingStatus = VoicePlayerStatus.PAUSED;\n const { currentTime, duration } = state.currentPlayer as HTMLAudioElement;\n if (audioUnit.playbackTime === audioUnit.duration) {\n audioUnit.playbackTime = 0;\n } else if (currentTime > 0 && duration > 0) {\n audioUnit.playbackTime = currentTime;\n audioUnit.duration = duration;\n }\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n case ON_CURRENT_TIME_UPDATE: {\n const { groupKey } = action.payload as OnCurrentTimeUpdatePayload;\n const { currentTime, duration } = state.currentPlayer as HTMLAudioElement;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n if (currentTime > 0 && duration > 0) {\n audioUnit.playbackTime = currentTime;\n audioUnit.duration = duration;\n }\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n default:\n return state;\n }\n}\n","import React, { createContext, useContext, useReducer } from 'react';\nimport voicePlayerReducer from './dux/reducer';\nimport {\n AudioStorageUnit,\n AudioUnitDefaultValue,\n VoicePlayerInitialState,\n voicePlayerInitialState,\n} from './dux/initialState';\nimport {\n INITIALIZE_AUDIO_UNIT,\n ON_CURRENT_TIME_UPDATE,\n ON_VOICE_PLAYER_PAUSE,\n ON_VOICE_PLAYER_PLAY,\n SET_CURRENT_PLAYER,\n} from './dux/actionTypes';\nimport {\n VOICE_MESSAGE_FILE_NAME,\n VOICE_MESSAGE_MIME_TYPE,\n VOICE_PLAYER_AUDIO_ID,\n VOICE_PLAYER_ROOT_ID,\n} from '../../utils/consts';\nimport useSendbirdStateContext from '../useSendbirdStateContext';\n\n// VoicePlayerProvider interface\nexport interface VoicePlayerProps {\n children: React.ReactElement;\n}\nexport interface VoicePlayerPlayProps {\n groupKey: string;\n audioFile?: File;\n audioFileUrl?: string;\n}\nexport interface VoicePlayerContext {\n play: (props: VoicePlayerPlayProps) => void;\n pause: (groupKey?: string) => void;\n stop: (text?: string) => void;\n voicePlayerStore: VoicePlayerInitialState;\n}\n\nconst noop = () => { /* noop */ };\nconst VoicePlayerStoreDefaultValue = {\n currentGroupKey: '',\n currentPlayer: null,\n audioStorage: {},\n};\n\nconst VoicePlayerContext = createContext<VoicePlayerContext>({\n play: noop,\n pause: noop,\n stop: noop,\n voicePlayerStore: VoicePlayerStoreDefaultValue,\n});\n\nexport const VoicePlayerProvider = ({\n children,\n}: VoicePlayerProps): React.ReactElement => {\n const [voicePlayerStore, voicePlayerDispatcher] = useReducer(voicePlayerReducer, voicePlayerInitialState);\n const {\n currentGroupKey,\n currentPlayer,\n audioStorage,\n } = voicePlayerStore;\n const { config } = useSendbirdStateContext();\n const { logger } = config;\n\n const stop = (text = '') => {\n if (currentGroupKey.includes(text)) {\n logger.info('VoicePlayer: Pause playing(by text).');\n pause(currentGroupKey);\n }\n };\n\n const pause = (groupKey: string) => {\n if (currentGroupKey === groupKey && currentPlayer !== null) {\n logger.info('VoicePlayer: Pause playing(by group key).');\n currentPlayer?.pause();\n }\n };\n\n const play = ({\n groupKey,\n audioFile = null,\n audioFileUrl = '',\n }: VoicePlayerPlayProps): void => {\n if (groupKey !== currentGroupKey) {\n pause(currentGroupKey);\n }\n\n // Clear the previous AudioPlayer element\n const voicePlayerRoot = document.getElementById(VOICE_PLAYER_ROOT_ID);\n const voicePlayerAudioElement = document.getElementById(VOICE_PLAYER_AUDIO_ID);\n if (voicePlayerAudioElement) {\n voicePlayerRoot.removeChild(voicePlayerAudioElement);\n }\n\n logger.info('VoicePlayer: Start getting audio file.');\n new Promise((resolve) => {\n if (audioFile) {\n resolve(audioFile);\n logger.info('VoicePlayer: Use the audioFile instance.');\n }\n if (audioStorage?.[groupKey]?.audioFile) {\n resolve(audioStorage[groupKey].audioFile);\n logger.info('VoicePlayer: Get from the audioStorage.');\n }\n voicePlayerDispatcher({\n type: INITIALIZE_AUDIO_UNIT,\n payload: { groupKey },\n });\n fetch(audioFileUrl)\n .then((res) => res.blob())\n .then((blob) => {\n const audioFile = new File([blob], VOICE_MESSAGE_FILE_NAME, {\n lastModified: new Date().getTime(),\n type: VOICE_MESSAGE_MIME_TYPE,\n });\n resolve(audioFile);\n logger.info('VoicePlayer: Get the audioFile from URL.');\n });\n }).then((audioFile: File) => {\n logger.info('VoicePlayer: Succeeded getting audio file.', audioFile);\n const currentAudioUnit = audioStorage[groupKey] || AudioUnitDefaultValue() as AudioStorageUnit;\n const audioPlayer = new Audio(URL?.createObjectURL?.(audioFile));\n audioPlayer.id = VOICE_PLAYER_AUDIO_ID;\n audioPlayer.currentTime = currentAudioUnit.playbackTime;\n audioPlayer.volume = 1;\n audioPlayer.loop = false;\n audioPlayer.onplaying = () => {\n logger.info('VoicePlayer: OnPlaying event is called from audioPlayer', { groupKey, audioPlayer });\n voicePlayerDispatcher({\n type: ON_VOICE_PLAYER_PLAY,\n payload: { groupKey, audioFile },\n });\n };\n audioPlayer.onpause = () => {\n logger.info('VoicePlayer: OnPause event is called from audioPlayer', { groupKey, audioPlayer });\n voicePlayerDispatcher({\n type: ON_VOICE_PLAYER_PAUSE,\n payload: { groupKey },\n });\n };\n audioPlayer.ontimeupdate = () => {\n voicePlayerDispatcher({\n type: ON_CURRENT_TIME_UPDATE,\n payload: { groupKey },\n });\n };\n audioPlayer?.play();\n const voicePlayerRoot = document.getElementById(VOICE_PLAYER_ROOT_ID);\n voicePlayerRoot.appendChild(audioPlayer);\n voicePlayerDispatcher({\n type: SET_CURRENT_PLAYER,\n payload: { groupKey, audioPlayer },\n });\n logger.info('VoicePlayer: Succeeded playing audio player.', { groupKey, audioPlayer });\n });\n };\n\n return (\n <VoicePlayerContext.Provider value={{\n play,\n pause,\n stop,\n voicePlayerStore,\n }}>\n <div id={VOICE_PLAYER_ROOT_ID} style={{ display: 'none' }} />\n {children}\n </VoicePlayerContext.Provider>\n );\n};\n\nexport const useVoicePlayerContext = (): VoicePlayerContext => useContext(VoicePlayerContext);\n"],"names":["INITIALIZE_AUDIO_UNIT","SET_CURRENT_PLAYER","ON_VOICE_PLAYER_PLAY","ON_VOICE_PLAYER_PAUSE","ON_CURRENT_TIME_UPDATE","VoicePlayerStatus","IDLE","PREPARING","PLAYING","PAUSED","COMPLETED","AudioUnitDefaultValue","audioFile","playbackTime","duration","playingStatus","voicePlayerInitialState","currentPlayer","currentGroupKey","audioStorage","voicePlayerReducer","state","action","type","_state$audioStorage","groupKey","payload","audioUnit","_objectSpread","audioPlayer","_state$audioStorage2","_state$audioStorage3","currentTime","_state$audioStorage4","noop","VoicePlayerStoreDefaultValue","VoicePlayerContext","createContext","play","pause","stop","voicePlayerStore","VoicePlayerProvider","_ref","children","voicePlayerDispatcher","useReducer","config","useSendbirdStateContext","logger","text","arguments","length","undefined","includes","info","_ref2","audioFileUrl","voicePlayerRoot","document","getElementById","VOICE_PLAYER_ROOT_ID","voicePlayerAudioElement","VOICE_PLAYER_AUDIO_ID","removeChild","Promise","resolve","_audioStorage$groupKe","fetch","then","res","blob","File","VOICE_MESSAGE_FILE_NAME","lastModified","Date","getTime","VOICE_MESSAGE_MIME_TYPE","_URL","_URL$createObjectURL","currentAudioUnit","Audio","URL","createObjectURL","call","id","volume","loop","onplaying","onpause","ontimeupdate","appendChild","React","createElement","Provider","value","style","display","useVoicePlayerContext","useContext"],"mappings":"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"}
|
|
@@ -2,72 +2,72 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var ui_Modal = require('./ui/Modal.js');
|
|
5
|
-
var LocalizationContext = require('./LocalizationContext-
|
|
5
|
+
var LocalizationContext = require('./LocalizationContext-af96cf5f.js');
|
|
6
6
|
var useSendbirdStateContext = require('./useSendbirdStateContext.js');
|
|
7
7
|
var ui_Input = require('./ui/Input.js');
|
|
8
8
|
var ui_Avatar = require('./ui/Avatar.js');
|
|
9
9
|
var ui_Icon = require('./ui/Icon.js');
|
|
10
10
|
var ui_Button = require('./ui/Button.js');
|
|
11
|
-
var ui_Label = require('./index-
|
|
11
|
+
var ui_Label = require('./index-73643285.js');
|
|
12
12
|
var ui_TextButton = require('./ui/TextButton.js');
|
|
13
|
-
var utils = require('./utils-
|
|
14
|
-
var actionTypes = require('./actionTypes-
|
|
13
|
+
var utils = require('./utils-d5176360.js');
|
|
14
|
+
var actionTypes = require('./actionTypes-f2efbb7c.js');
|
|
15
15
|
|
|
16
16
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
17
17
|
|
|
18
18
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
const EditUserProfileProviderContext = /*#__PURE__*/React__default["default"].createContext(undefined);
|
|
21
|
+
const EditUserProfileProvider = props => {
|
|
22
|
+
const {
|
|
23
|
+
children,
|
|
24
|
+
onEditProfile,
|
|
25
|
+
onCancel,
|
|
26
|
+
onThemeChange
|
|
27
|
+
} = props;
|
|
28
|
+
const value = React.useMemo(() => {
|
|
27
29
|
return {
|
|
28
|
-
onEditProfile
|
|
29
|
-
onCancel
|
|
30
|
-
onThemeChange
|
|
30
|
+
onEditProfile,
|
|
31
|
+
onCancel,
|
|
32
|
+
onThemeChange
|
|
31
33
|
};
|
|
32
34
|
}, []);
|
|
33
35
|
return /*#__PURE__*/React__default["default"].createElement(EditUserProfileProviderContext.Provider, {
|
|
34
36
|
value: value
|
|
35
37
|
}, children);
|
|
36
38
|
};
|
|
37
|
-
|
|
38
|
-
return React__default["default"].useContext(EditUserProfileProviderContext);
|
|
39
|
-
};
|
|
39
|
+
const useEditUserProfileContext = () => React__default["default"].useContext(EditUserProfileProviderContext);
|
|
40
40
|
|
|
41
41
|
function EditUserProfile() {
|
|
42
|
-
var
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
42
|
+
var _store$config, _store$config2, _store$stores, _store$stores$userSto, _store$stores2, _store$stores2$sdkSto, _store$dispatchers;
|
|
43
|
+
const editProfileProps = useEditUserProfileContext();
|
|
44
|
+
const store = useSendbirdStateContext();
|
|
45
|
+
const hiddenInputRef = React.useRef(null);
|
|
46
|
+
const inputRef = React.useRef(null);
|
|
47
|
+
const formRef = React.useRef(null);
|
|
48
|
+
const {
|
|
49
|
+
stringSet
|
|
50
|
+
} = React.useContext(LocalizationContext.LocalizationContext);
|
|
51
|
+
const [currentImg, setCurrentImg] = React.useState(null);
|
|
52
|
+
const [newFile, setNewFile] = React.useState(null);
|
|
53
|
+
const {
|
|
54
|
+
onEditProfile,
|
|
55
|
+
onCancel,
|
|
56
|
+
onThemeChange
|
|
57
|
+
} = editProfileProps;
|
|
58
|
+
const theme = (store === null || store === void 0 ? void 0 : (_store$config = store.config) === null || _store$config === void 0 ? void 0 : _store$config.theme) || 'light';
|
|
59
|
+
const changeTheme = (store === null || store === void 0 ? void 0 : (_store$config2 = store.config) === null || _store$config2 === void 0 ? void 0 : _store$config2.setCurrenttheme) || utils.noop;
|
|
60
|
+
const user = store === null || store === void 0 ? void 0 : (_store$stores = store.stores) === null || _store$stores === void 0 ? void 0 : (_store$stores$userSto = _store$stores.userStore) === null || _store$stores$userSto === void 0 ? void 0 : _store$stores$userSto.user;
|
|
61
|
+
const sdk = store === null || store === void 0 ? void 0 : (_store$stores2 = store.stores) === null || _store$stores2 === void 0 ? void 0 : (_store$stores2$sdkSto = _store$stores2.sdkStore) === null || _store$stores2$sdkSto === void 0 ? void 0 : _store$stores2$sdkSto.sdk;
|
|
62
|
+
const userDispatcher = store === null || store === void 0 ? void 0 : (_store$dispatchers = store.dispatchers) === null || _store$dispatchers === void 0 ? void 0 : _store$dispatchers.userDispatcher;
|
|
63
63
|
return /*#__PURE__*/React__default["default"].createElement(ui_Modal["default"], {
|
|
64
64
|
titleText: stringSet.EDIT_PROFILE__TITLE,
|
|
65
65
|
submitText: stringSet.BUTTON__SAVE,
|
|
66
66
|
type: ui_Button.ButtonTypes.PRIMARY,
|
|
67
67
|
onCancel: onCancel,
|
|
68
68
|
isFullScreenOnMobile: true,
|
|
69
|
-
onSubmit:
|
|
70
|
-
var
|
|
69
|
+
onSubmit: () => {
|
|
70
|
+
var _inputRef$current;
|
|
71
71
|
if ((user === null || user === void 0 ? void 0 : user.nickname) !== '' && !inputRef.current.value) {
|
|
72
72
|
if (formRef.current.reportValidity) {
|
|
73
73
|
// might not work in explorer
|
|
@@ -76,9 +76,9 @@ function EditUserProfile() {
|
|
|
76
76
|
return;
|
|
77
77
|
}
|
|
78
78
|
sdk === null || sdk === void 0 ? void 0 : sdk.updateCurrentUserInfo({
|
|
79
|
-
nickname:
|
|
79
|
+
nickname: inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.value,
|
|
80
80
|
profileImage: newFile
|
|
81
|
-
}).then(
|
|
81
|
+
}).then(updatedUser => {
|
|
82
82
|
userDispatcher({
|
|
83
83
|
type: actionTypes.USER_ACTIONS.UPDATE_USER_INFO,
|
|
84
84
|
payload: updatedUser
|
|
@@ -91,7 +91,7 @@ function EditUserProfile() {
|
|
|
91
91
|
}, /*#__PURE__*/React__default["default"].createElement("form", {
|
|
92
92
|
className: "sendbird-edit-user-profile",
|
|
93
93
|
ref: formRef,
|
|
94
|
-
onSubmit:
|
|
94
|
+
onSubmit: e => {
|
|
95
95
|
e.preventDefault();
|
|
96
96
|
}
|
|
97
97
|
}, /*#__PURE__*/React__default["default"].createElement("section", {
|
|
@@ -109,7 +109,7 @@ function EditUserProfile() {
|
|
|
109
109
|
style: {
|
|
110
110
|
display: 'none'
|
|
111
111
|
},
|
|
112
|
-
onChange:
|
|
112
|
+
onChange: e => {
|
|
113
113
|
setCurrentImg(URL.createObjectURL(e.target.files[0]));
|
|
114
114
|
setNewFile(e.target.files[0]);
|
|
115
115
|
hiddenInputRef.current.value = '';
|
|
@@ -117,9 +117,7 @@ function EditUserProfile() {
|
|
|
117
117
|
}), /*#__PURE__*/React__default["default"].createElement(ui_TextButton, {
|
|
118
118
|
className: "sendbird-edit-user-profile__img__avatar-button",
|
|
119
119
|
disableUnderline: true,
|
|
120
|
-
onClick:
|
|
121
|
-
return hiddenInputRef.current.click();
|
|
122
|
-
}
|
|
120
|
+
onClick: () => hiddenInputRef.current.click()
|
|
123
121
|
}, /*#__PURE__*/React__default["default"].createElement(ui_Label.Label, {
|
|
124
122
|
type: ui_Label.LabelTypography.BUTTON_1,
|
|
125
123
|
color: ui_Label.LabelColors.PRIMARY
|
|
@@ -142,24 +140,26 @@ function EditUserProfile() {
|
|
|
142
140
|
}, /*#__PURE__*/React__default["default"].createElement(ui_Input.InputLabel, null, stringSet.EDIT_PROFILE__THEME_LABEL), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
143
141
|
className: "sendbird-edit-user-profile__theme__theme-icon"
|
|
144
142
|
}, theme === 'dark' ? /*#__PURE__*/React__default["default"].createElement(ui_Icon["default"], {
|
|
145
|
-
onClick:
|
|
143
|
+
onClick: () => {
|
|
146
144
|
changeTheme('light');
|
|
147
145
|
onThemeChange === null || onThemeChange === void 0 ? void 0 : onThemeChange('light');
|
|
148
146
|
// if (onThemeChange && typeof onThemeChange === 'function') {
|
|
149
147
|
// onThemeChange('light');
|
|
150
148
|
// }
|
|
151
149
|
},
|
|
150
|
+
|
|
152
151
|
type: ui_Icon.IconTypes.TOGGLE_ON,
|
|
153
152
|
width: 44,
|
|
154
153
|
height: 24
|
|
155
154
|
}) : /*#__PURE__*/React__default["default"].createElement(ui_Icon["default"], {
|
|
156
|
-
onClick:
|
|
155
|
+
onClick: () => {
|
|
157
156
|
changeTheme('dark');
|
|
158
157
|
onThemeChange === null || onThemeChange === void 0 ? void 0 : onThemeChange('dark');
|
|
159
158
|
// if (onThemeChange && typeof onThemeChange === 'function') {
|
|
160
159
|
// onThemeChange('dark');
|
|
161
160
|
// }
|
|
162
161
|
},
|
|
162
|
+
|
|
163
163
|
type: ui_Icon.IconTypes.TOGGLE_OFF,
|
|
164
164
|
width: 44,
|
|
165
165
|
height: 24
|
|
@@ -168,4 +168,4 @@ function EditUserProfile() {
|
|
|
168
168
|
|
|
169
169
|
exports.EditUserProfile = EditUserProfile;
|
|
170
170
|
exports.EditUserProfileProvider = EditUserProfileProvider;
|
|
171
|
-
//# sourceMappingURL=index-
|
|
171
|
+
//# sourceMappingURL=index-a50b2339.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-a50b2339.js","sources":["../../src/modules/EditUserProfile/context/EditUserProfIleProvider.tsx","../../src/modules/EditUserProfile/components/EditUserProfileUI/index.tsx"],"sourcesContent":["import type { User } from '@sendbird/chat';\nimport React, { useMemo } from 'react';\n\nconst EditUserProfileProviderContext = React.createContext(undefined);\n\nexport interface EditUserProfileProps {\n children?: React.ReactElement;\n onCancel?(): void;\n onThemeChange?(theme: string): void;\n onEditProfile?(updatedUser: User): void;\n}\n\nexport interface EditUserProfileProviderInterface {\n onCancel?(): void;\n onThemeChange?(theme: string): void;\n onEditProfile?(updatedUser: User): void;\n}\n\nconst EditUserProfileProvider: React.FC<EditUserProfileProps> = (props: EditUserProfileProps) => {\n const {\n children,\n onEditProfile,\n onCancel,\n onThemeChange,\n } = props;\n\n const value = useMemo(() => {\n return {\n onEditProfile,\n onCancel,\n onThemeChange,\n };\n }, []);\n\n return (\n <EditUserProfileProviderContext.Provider value={value}>\n {children}\n </EditUserProfileProviderContext.Provider>\n );\n}\n\nconst useEditUserProfileContext = (): EditUserProfileProviderInterface => (\n React.useContext(EditUserProfileProviderContext)\n);\n\nexport {\n EditUserProfileProvider,\n useEditUserProfileContext,\n};\n","import './edit-user-profile.scss';\n\nimport React, {\n ReactElement,\n useRef,\n useState,\n useContext,\n} from 'react';\nimport { useEditUserProfileContext } from '../../context/EditUserProfIleProvider';\n\nimport Modal from '../../../../ui/Modal';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\n\nimport Input, { InputLabel } from '../../../../ui/Input';\nimport Avatar from '../../../../ui/Avatar';\nimport Icon, { IconTypes } from '../../../../ui/Icon';\nimport { ButtonTypes } from '../../../../ui/Button';\nimport Label, { LabelColors, LabelTypography } from '../../../../ui/Label';\nimport TextButton from '../../../../ui/TextButton';\nimport { noop } from '../../../../utils/utils';\nimport { USER_ACTIONS } from '../../../../lib/dux/user/actionTypes';\n\nexport default function EditUserProfile(): ReactElement {\n const editProfileProps = useEditUserProfileContext();\n const store = useSendbirdStateContext();\n const hiddenInputRef = useRef(null);\n const inputRef = useRef(null);\n const formRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const [currentImg, setCurrentImg] = useState(null);\n const [newFile, setNewFile] = useState(null);\n\n const {\n onEditProfile,\n onCancel,\n onThemeChange,\n } = editProfileProps;\n\n const theme = store?.config?.theme || 'light';\n const changeTheme = store?.config?.setCurrenttheme || noop;\n const user = store?.stores?.userStore?.user;\n const sdk = store?.stores?.sdkStore?.sdk;\n const userDispatcher = store?.dispatchers?.userDispatcher;\n\n return (\n <Modal\n titleText={stringSet.EDIT_PROFILE__TITLE}\n submitText={stringSet.BUTTON__SAVE}\n type={ButtonTypes.PRIMARY}\n onCancel={onCancel}\n isFullScreenOnMobile\n onSubmit={() => {\n if (user?.nickname !== '' && !inputRef.current.value) {\n if (formRef.current.reportValidity) { // might not work in explorer\n formRef.current.reportValidity();\n }\n return;\n }\n sdk?.updateCurrentUserInfo({\n nickname: inputRef?.current?.value,\n profileImage: newFile,\n }).then((updatedUser) => {\n userDispatcher({ type: USER_ACTIONS.UPDATE_USER_INFO, payload: updatedUser });\n if (onEditProfile && typeof onEditProfile === 'function') {\n onEditProfile(updatedUser);\n }\n });\n }}\n >\n <form\n className=\"sendbird-edit-user-profile\"\n ref={formRef}\n onSubmit={(e) => { e.preventDefault(); }}\n >\n <section className=\"sendbird-edit-user-profile__img\">\n <InputLabel>\n {stringSet.EDIT_PROFILE__IMAGE_LABEL}\n </InputLabel>\n <div className=\"sendbird-edit-user-profile__img__avatar\">\n <Avatar\n width=\"80px\"\n height=\"80px\"\n src={currentImg || user?.profileUrl}\n />\n </div>\n <input\n ref={hiddenInputRef}\n type=\"file\"\n accept=\"image/gif, image/jpeg, image/png\"\n style={{ display: 'none' }}\n onChange={(e) => {\n setCurrentImg(URL.createObjectURL(e.target.files[0]));\n setNewFile(e.target.files[0]);\n hiddenInputRef.current.value = '';\n }}\n />\n <TextButton\n className=\"sendbird-edit-user-profile__img__avatar-button\"\n disableUnderline\n onClick={() => hiddenInputRef.current.click()}\n >\n <Label type={LabelTypography.BUTTON_1} color={LabelColors.PRIMARY}>\n {stringSet.EDIT_PROFILE__IMAGE_UPLOAD}\n </Label>\n </TextButton>\n </section>\n <section className=\"sendbird-edit-user-profile__name\">\n <InputLabel>\n {stringSet.EDIT_PROFILE__NICKNAME_LABEL}\n </InputLabel>\n <Input\n required={user?.nickname !== ''}\n name=\"sendbird-edit-user-profile__name__input\"\n ref={inputRef}\n value={user?.nickname}\n placeHolder={stringSet.EDIT_PROFILE__NICKNAME_PLACEHOLDER}\n />\n </section>\n <section className=\"sendbird-edit-user-profile__userid\">\n <InputLabel>\n {/* userID */}\n {stringSet.EDIT_PROFILE__USERID_LABEL}\n </InputLabel>\n <Input\n disabled\n name=\"sendbird-edit-user-profile__userid__input\"\n value={user?.userId}\n />\n </section>\n <section className=\"sendbird-edit-user-profile__theme\">\n <InputLabel>\n {stringSet.EDIT_PROFILE__THEME_LABEL}\n </InputLabel>\n <div className=\"sendbird-edit-user-profile__theme__theme-icon\">\n {\n theme === 'dark'\n ? (\n <Icon\n onClick={() => {\n changeTheme('light');\n onThemeChange?.('light');\n // if (onThemeChange && typeof onThemeChange === 'function') {\n // onThemeChange('light');\n // }\n }}\n type={IconTypes.TOGGLE_ON}\n width={44}\n height={24}\n />\n )\n : (\n <Icon\n onClick={() => {\n changeTheme('dark');\n onThemeChange?.('dark');\n // if (onThemeChange && typeof onThemeChange === 'function') {\n // onThemeChange('dark');\n // }\n }}\n type={IconTypes.TOGGLE_OFF}\n width={44}\n height={24}\n />\n )\n }\n </div>\n </section>\n </form>\n </Modal>\n );\n}\n"],"names":["EditUserProfileProviderContext","React","createContext","undefined","EditUserProfileProvider","props","children","onEditProfile","onCancel","onThemeChange","value","useMemo","createElement","Provider","useEditUserProfileContext","useContext","EditUserProfile","_store$config","_store$config2","_store$stores","_store$stores$userSto","_store$stores2","_store$stores2$sdkSto","_store$dispatchers","editProfileProps","store","useSendbirdStateContext","hiddenInputRef","useRef","inputRef","formRef","stringSet","LocalizationContext","currentImg","setCurrentImg","useState","newFile","setNewFile","theme","config","changeTheme","setCurrenttheme","noop","user","stores","userStore","sdk","sdkStore","userDispatcher","dispatchers","Modal","titleText","EDIT_PROFILE__TITLE","submitText","BUTTON__SAVE","type","ButtonTypes","PRIMARY","isFullScreenOnMobile","onSubmit","_inputRef$current","nickname","current","reportValidity","updateCurrentUserInfo","profileImage","then","updatedUser","USER_ACTIONS","UPDATE_USER_INFO","payload","className","ref","e","preventDefault","InputLabel","EDIT_PROFILE__IMAGE_LABEL","Avatar","width","height","src","profileUrl","accept","style","display","onChange","URL","createObjectURL","target","files","TextButton","disableUnderline","onClick","click","Label","LabelTypography","BUTTON_1","color","LabelColors","EDIT_PROFILE__IMAGE_UPLOAD","EDIT_PROFILE__NICKNAME_LABEL","Input","required","name","placeHolder","EDIT_PROFILE__NICKNAME_PLACEHOLDER","EDIT_PROFILE__USERID_LABEL","disabled","userId","EDIT_PROFILE__THEME_LABEL","Icon","IconTypes","TOGGLE_ON","TOGGLE_OFF"],"mappings":"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"}
|