@sendbird/uikit-react 3.5.0-rc.1 → 3.5.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 +312 -235
- package/App.js.map +1 -1
- package/CHANGELOG.md +544 -0
- package/Channel/components/ChannelHeader.js +46 -41
- package/Channel/components/ChannelHeader.js.map +1 -1
- package/Channel/components/ChannelUI.js +104 -131
- package/Channel/components/ChannelUI.js.map +1 -1
- package/Channel/components/FileViewer.js +56 -52
- package/Channel/components/FileViewer.js.map +1 -1
- package/Channel/components/FrozenNotification.js +12 -7
- package/Channel/components/FrozenNotification.js.map +1 -1
- package/Channel/components/Message.js +240 -230
- package/Channel/components/Message.js.map +1 -1
- package/Channel/components/MessageInput.js +152 -129
- package/Channel/components/MessageInput.js.map +1 -1
- package/Channel/components/MessageList.js +260 -175
- package/Channel/components/MessageList.js.map +1 -1
- package/Channel/components/RemoveMessageModal.js +34 -30
- package/Channel/components/RemoveMessageModal.js.map +1 -1
- package/Channel/components/SuggestedMentionList.js +139 -193
- package/Channel/components/SuggestedMentionList.js.map +1 -1
- package/Channel/components/TypingIndicator.js +44 -61
- package/Channel/components/TypingIndicator.js.map +1 -1
- package/Channel/components/UnreadCount.js +18 -20
- package/Channel/components/UnreadCount.js.map +1 -1
- package/Channel/context.js +12 -19
- package/Channel/context.js.map +1 -1
- package/Channel.js +69 -44
- package/Channel.js.map +1 -1
- package/ChannelList/components/AddChannel.js +29 -30
- package/ChannelList/components/AddChannel.js.map +1 -1
- package/ChannelList/components/ChannelListHeader.js +32 -28
- package/ChannelList/components/ChannelListHeader.js.map +1 -1
- package/ChannelList/components/ChannelListUI.js +101 -142
- package/ChannelList/components/ChannelListUI.js.map +1 -1
- package/ChannelList/components/ChannelPreview.js +72 -82
- package/ChannelList/components/ChannelPreview.js.map +1 -1
- package/ChannelList/components/ChannelPreviewAction.js +36 -36
- package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/ChannelList/context.js +7 -8
- package/ChannelList/context.js.map +1 -1
- package/ChannelList.js +32 -31
- package/ChannelList.js.map +1 -1
- package/{ChannelListProvider-1d36e2e9.js → ChannelListProvider-4cf5c0f5.js} +233 -285
- package/ChannelListProvider-4cf5c0f5.js.map +1 -0
- package/{ChannelProvider-289cd35f.js → ChannelProvider-6e8e99df.js} +659 -726
- package/ChannelProvider-6e8e99df.js.map +1 -0
- package/ChannelSettings/components/ChannelProfile.js +33 -46
- package/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/ChannelSettings/components/ChannelSettingsUI.js +45 -48
- package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/ChannelSettings/components/EditDetailsModal.js +47 -58
- package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/ChannelSettings/components/LeaveChannel.js +40 -46
- package/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/ChannelSettings/components/ModerationPanel.js +522 -605
- package/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/ChannelSettings/components/UserListItem.js +71 -72
- package/ChannelSettings/components/UserListItem.js.map +1 -1
- package/ChannelSettings/components/UserPanel.js +29 -32
- package/ChannelSettings/components/UserPanel.js.map +1 -1
- package/ChannelSettings/context.js +53 -57
- package/ChannelSettings/context.js.map +1 -1
- package/ChannelSettings.js +20 -20
- package/ChannelSettings.js.map +1 -1
- package/CreateChannel/components/CreateChannelUI.js +24 -24
- package/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/CreateChannel/components/InviteUsers.js +102 -124
- package/CreateChannel/components/InviteUsers.js.map +1 -1
- package/CreateChannel/components/SelectChannelType.js +41 -42
- package/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +22 -21
- package/CreateChannel.js.map +1 -1
- package/CreateChannelProvider-34603fa5.js +44 -0
- package/CreateChannelProvider-34603fa5.js.map +1 -0
- package/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -43
- package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/CreateOpenChannel/context.js +33 -33
- package/CreateOpenChannel/context.js.map +1 -1
- package/CreateOpenChannel.js +18 -17
- package/CreateOpenChannel.js.map +1 -1
- package/EditUserProfile/components/EditUserProfileUI.js +12 -13
- package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/EditUserProfile/context.js +0 -2
- package/EditUserProfile/context.js.map +1 -1
- package/EditUserProfile.js +18 -17
- package/EditUserProfile.js.map +1 -1
- package/LocalizationContext-04c0c9dc.js +20 -0
- package/{LocalizationContext-289c1917.js.map → LocalizationContext-04c0c9dc.js.map} +1 -1
- package/MediaQueryContext-ff9dca2b.js +87 -0
- package/MediaQueryContext-ff9dca2b.js.map +1 -0
- package/MemberList-9bf26111.js +403 -0
- package/MemberList-9bf26111.js.map +1 -0
- package/Message/context.js +31 -0
- package/Message/context.js.map +1 -0
- package/MessageSearch/components/MessageSearchUI.js +62 -71
- package/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/MessageSearch/context.js +201 -224
- package/MessageSearch/context.js.map +1 -1
- package/MessageSearch.js +46 -58
- package/MessageSearch.js.map +1 -1
- package/OpenChannel/components/FrozenChannelNotification.js +8 -6
- package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
- package/OpenChannel/components/OpenChannelHeader.js +27 -25
- package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/OpenChannel/components/OpenChannelInput.js +50 -35
- package/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessage.js +174 -191
- package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessageList.js +72 -92
- package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/OpenChannel/components/OpenChannelUI.js +52 -49
- package/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/OpenChannel/context.js +8 -9
- package/OpenChannel/context.js.map +1 -1
- package/OpenChannel.js +36 -30
- package/OpenChannel.js.map +1 -1
- package/OpenChannelList/components/OpenChannelListUI.js +61 -76
- package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/OpenChannelList/components/OpenChannelPreview.js +21 -22
- package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
- package/OpenChannelList/context.js +3 -4
- package/OpenChannelList/context.js.map +1 -1
- package/OpenChannelList.js +26 -24
- package/OpenChannelList.js.map +1 -1
- package/OpenChannelListProvider-d7372692.js +429 -0
- package/OpenChannelListProvider-d7372692.js.map +1 -0
- package/OpenChannelProvider-24cd68b9.js +1885 -0
- package/OpenChannelProvider-24cd68b9.js.map +1 -0
- package/OpenChannelSettings/components/EditDetailsModal.js +47 -56
- package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
- package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/OpenChannelSettings/components/OperatorUI.js +516 -586
- package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/OpenChannelSettings/components/ParticipantUI.js +15 -16
- package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/OpenChannelSettings/context.js +56 -69
- package/OpenChannelSettings/context.js.map +1 -1
- package/OpenChannelSettings.js +19 -20
- package/OpenChannelSettings.js.map +1 -1
- package/README.md +62 -13
- package/RemoveMessageModal-94e2bf9e.js +36 -0
- package/RemoveMessageModal-94e2bf9e.js.map +1 -0
- package/SendbirdProvider.js +749 -408
- package/SendbirdProvider.js.map +1 -1
- package/Thread/components/ParentMessageInfo.js +238 -217
- package/Thread/components/ParentMessageInfo.js.map +1 -1
- package/Thread/components/ParentMessageInfoItem.js +112 -89
- package/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/Thread/components/ThreadHeader.js +22 -23
- package/Thread/components/ThreadHeader.js.map +1 -1
- package/Thread/components/ThreadList.js +108 -83
- package/Thread/components/ThreadList.js.map +1 -1
- package/Thread/components/ThreadListItem.js +306 -276
- package/Thread/components/ThreadListItem.js.map +1 -1
- package/Thread/components/ThreadMessageInput.js +146 -113
- package/Thread/components/ThreadMessageInput.js.map +1 -1
- package/Thread/components/ThreadUI.js +169 -138
- package/Thread/components/ThreadUI.js.map +1 -1
- package/Thread/context/types.js +9 -14
- package/Thread/context/types.js.map +1 -1
- package/Thread/context.js +8 -8
- package/Thread.js +87 -57
- package/Thread.js.map +1 -1
- package/ThreadProvider-203b94f3.js +1695 -0
- package/ThreadProvider-203b94f3.js.map +1 -0
- package/{UserProfileContext-e3530842.js → UserProfileContext-c776d522.js} +1 -4
- package/{UserProfileContext-e3530842.js.map → UserProfileContext-c776d522.js.map} +1 -1
- package/VoiceMessageInputWrapper-77d8f487.js +170 -0
- package/VoiceMessageInputWrapper-77d8f487.js.map +1 -0
- package/VoicePlayer/context.js +7 -0
- package/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
- package/VoicePlayer/useVoicePlayer.js +84 -0
- package/VoicePlayer/useVoicePlayer.js.map +1 -0
- package/VoiceRecorder/context.js +156 -0
- package/VoiceRecorder/context.js.map +1 -0
- package/VoiceRecorder/useVoiceRecorder.js +121 -0
- package/VoiceRecorder/useVoiceRecorder.js.map +1 -0
- package/WebAudioUtils-62e6d3a7.js +123 -0
- package/WebAudioUtils-62e6d3a7.js.map +1 -0
- package/{_rollupPluginBabelHelpers-519f674b.js → _rollupPluginBabelHelpers-fb0e05a4.js} +17 -11
- package/_rollupPluginBabelHelpers-fb0e05a4.js.map +1 -0
- package/actionTypes-1db5749d.js +8 -0
- package/actionTypes-1db5749d.js.map +1 -0
- package/cjs/App.js +312 -235
- package/cjs/App.js.map +1 -1
- package/cjs/Channel/components/ChannelHeader.js +46 -41
- package/cjs/Channel/components/ChannelHeader.js.map +1 -1
- package/cjs/Channel/components/ChannelUI.js +102 -129
- package/cjs/Channel/components/ChannelUI.js.map +1 -1
- package/cjs/Channel/components/FileViewer.js +56 -52
- package/cjs/Channel/components/FileViewer.js.map +1 -1
- package/cjs/Channel/components/FrozenNotification.js +12 -7
- package/cjs/Channel/components/FrozenNotification.js.map +1 -1
- package/cjs/Channel/components/Message.js +243 -233
- package/cjs/Channel/components/Message.js.map +1 -1
- package/cjs/Channel/components/MessageInput.js +151 -128
- package/cjs/Channel/components/MessageInput.js.map +1 -1
- package/cjs/Channel/components/MessageList.js +260 -175
- package/cjs/Channel/components/MessageList.js.map +1 -1
- package/cjs/Channel/components/RemoveMessageModal.js +34 -30
- package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
- package/cjs/Channel/components/SuggestedMentionList.js +139 -193
- package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
- package/cjs/Channel/components/TypingIndicator.js +44 -61
- package/cjs/Channel/components/TypingIndicator.js.map +1 -1
- package/cjs/Channel/components/UnreadCount.js +18 -20
- package/cjs/Channel/components/UnreadCount.js.map +1 -1
- package/cjs/Channel/context.js +12 -23
- package/cjs/Channel/context.js.map +1 -1
- package/cjs/Channel.js +69 -44
- package/cjs/Channel.js.map +1 -1
- package/cjs/ChannelList/components/AddChannel.js +29 -30
- package/cjs/ChannelList/components/AddChannel.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListHeader.js +32 -28
- package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListUI.js +100 -141
- package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreview.js +72 -82
- package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreviewAction.js +36 -36
- package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/cjs/ChannelList/context.js +7 -8
- package/cjs/ChannelList/context.js.map +1 -1
- package/cjs/ChannelList.js +32 -31
- package/cjs/ChannelList.js.map +1 -1
- package/cjs/{ChannelListProvider-0de52d2b.js → ChannelListProvider-e0ce316a.js} +232 -284
- package/cjs/ChannelListProvider-e0ce316a.js.map +1 -0
- package/cjs/{ChannelProvider-fc58e60e.js → ChannelProvider-0df75472.js} +657 -724
- package/cjs/ChannelProvider-0df75472.js.map +1 -0
- package/cjs/ChannelSettings/components/ChannelProfile.js +33 -46
- package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +45 -48
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/cjs/ChannelSettings/components/EditDetailsModal.js +47 -58
- package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/ChannelSettings/components/LeaveChannel.js +40 -46
- package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/cjs/ChannelSettings/components/ModerationPanel.js +522 -605
- package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/cjs/ChannelSettings/components/UserListItem.js +71 -72
- package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
- package/cjs/ChannelSettings/components/UserPanel.js +29 -32
- package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
- package/cjs/ChannelSettings/context.js +55 -59
- package/cjs/ChannelSettings/context.js.map +1 -1
- package/cjs/ChannelSettings.js +20 -20
- package/cjs/ChannelSettings.js.map +1 -1
- package/cjs/CreateChannel/components/CreateChannelUI.js +24 -24
- package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/cjs/CreateChannel/components/InviteUsers.js +102 -124
- package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
- package/cjs/CreateChannel/components/SelectChannelType.js +41 -42
- package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/cjs/CreateChannel/context.js +4 -4
- package/cjs/CreateChannel.js +22 -21
- package/cjs/CreateChannel.js.map +1 -1
- package/cjs/CreateChannelProvider-c0fca0a5.js +52 -0
- package/cjs/CreateChannelProvider-c0fca0a5.js.map +1 -0
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -43
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/cjs/CreateOpenChannel/context.js +33 -33
- package/cjs/CreateOpenChannel/context.js.map +1 -1
- package/cjs/CreateOpenChannel.js +18 -17
- package/cjs/CreateOpenChannel.js.map +1 -1
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -13
- package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/cjs/EditUserProfile/context.js +0 -2
- package/cjs/EditUserProfile/context.js.map +1 -1
- package/cjs/EditUserProfile.js +18 -17
- package/cjs/EditUserProfile.js.map +1 -1
- package/cjs/{LocalizationContext-bddc5c2b.js → LocalizationContext-0e429c3d.js} +9 -11
- package/cjs/{LocalizationContext-bddc5c2b.js.map → LocalizationContext-0e429c3d.js.map} +1 -1
- package/cjs/MediaQueryContext-33fc3b17.js +94 -0
- package/cjs/MediaQueryContext-33fc3b17.js.map +1 -0
- package/cjs/MemberList-a45a51c4.js +409 -0
- package/cjs/MemberList-a45a51c4.js.map +1 -0
- package/cjs/Message/context.js +40 -0
- package/cjs/Message/context.js.map +1 -0
- package/cjs/MessageSearch/components/MessageSearchUI.js +61 -70
- package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/cjs/MessageSearch/context.js +201 -224
- package/cjs/MessageSearch/context.js.map +1 -1
- package/cjs/MessageSearch.js +46 -58
- package/cjs/MessageSearch.js.map +1 -1
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +8 -6
- package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelHeader.js +27 -25
- package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelInput.js +50 -35
- package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessage.js +174 -191
- package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +72 -92
- package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelUI.js +52 -49
- package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/cjs/OpenChannel/context.js +8 -9
- package/cjs/OpenChannel/context.js.map +1 -1
- package/cjs/OpenChannel.js +36 -30
- package/cjs/OpenChannel.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelListUI.js +61 -76
- package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelPreview.js +21 -22
- package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
- package/cjs/OpenChannelList/context.js +3 -4
- package/cjs/OpenChannelList/context.js.map +1 -1
- package/cjs/OpenChannelList.js +26 -24
- package/cjs/OpenChannelList.js.map +1 -1
- package/cjs/OpenChannelListProvider-fc8b53ee.js +439 -0
- package/cjs/OpenChannelListProvider-fc8b53ee.js.map +1 -0
- package/cjs/OpenChannelProvider-217a8ac2.js +1894 -0
- package/cjs/OpenChannelProvider-217a8ac2.js.map +1 -0
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +47 -56
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OperatorUI.js +516 -586
- package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -16
- package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/cjs/OpenChannelSettings/context.js +57 -70
- package/cjs/OpenChannelSettings/context.js.map +1 -1
- package/cjs/OpenChannelSettings.js +19 -20
- package/cjs/OpenChannelSettings.js.map +1 -1
- package/cjs/{RemoveMessageModal-9169766a.js → RemoveMessageModal-5903f232.js} +19 -14
- package/cjs/RemoveMessageModal-5903f232.js.map +1 -0
- package/cjs/SendbirdProvider.js +748 -408
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfo.js +237 -216
- package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfoItem.js +111 -88
- package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/cjs/Thread/components/ThreadHeader.js +22 -23
- package/cjs/Thread/components/ThreadHeader.js.map +1 -1
- package/cjs/Thread/components/ThreadList.js +108 -83
- package/cjs/Thread/components/ThreadList.js.map +1 -1
- package/cjs/Thread/components/ThreadListItem.js +305 -275
- package/cjs/Thread/components/ThreadListItem.js.map +1 -1
- package/cjs/Thread/components/ThreadMessageInput.js +146 -113
- package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
- package/cjs/Thread/components/ThreadUI.js +170 -139
- package/cjs/Thread/components/ThreadUI.js.map +1 -1
- package/cjs/Thread/context/types.js +13 -14
- package/cjs/Thread/context/types.js.map +1 -1
- package/cjs/Thread/context.js +8 -8
- package/cjs/Thread.js +87 -57
- package/cjs/Thread.js.map +1 -1
- package/cjs/ThreadProvider-8ee179c2.js +1704 -0
- package/cjs/ThreadProvider-8ee179c2.js.map +1 -0
- package/cjs/{UserProfileContext-8d0dee57.js → UserProfileContext-87580795.js} +1 -4
- package/cjs/{UserProfileContext-8d0dee57.js.map → UserProfileContext-87580795.js.map} +1 -1
- package/cjs/VoiceMessageInputWrapper-4fdc8ef1.js +176 -0
- package/cjs/VoiceMessageInputWrapper-4fdc8ef1.js.map +1 -0
- package/cjs/VoicePlayer/context.js +17 -0
- package/cjs/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
- package/cjs/VoicePlayer/useVoicePlayer.js +88 -0
- package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -0
- package/cjs/VoiceRecorder/context.js +166 -0
- package/cjs/VoiceRecorder/context.js.map +1 -0
- package/cjs/VoiceRecorder/useVoiceRecorder.js +126 -0
- package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -0
- package/cjs/WebAudioUtils-e226789c.js +126 -0
- package/cjs/WebAudioUtils-e226789c.js.map +1 -0
- package/cjs/{_rollupPluginBabelHelpers-fed1e122.js → _rollupPluginBabelHelpers-c89f311a.js} +17 -10
- package/cjs/_rollupPluginBabelHelpers-c89f311a.js.map +1 -0
- package/cjs/actionTypes-0fa2943d.js +10 -0
- package/cjs/actionTypes-0fa2943d.js.map +1 -0
- package/cjs/{color-f47044b3.js → color-bada0fc7.js} +13 -21
- package/cjs/color-bada0fc7.js.map +1 -0
- package/cjs/{compareIds-4124b297.js → compareIds-ccccfe86.js} +5 -6
- package/cjs/compareIds-ccccfe86.js.map +1 -0
- package/cjs/const-a85f3364.js +20 -0
- package/cjs/const-a85f3364.js.map +1 -0
- package/cjs/{const-fd64914b.js → const-d8cece19.js} +4 -4
- package/cjs/const-d8cece19.js.map +1 -0
- package/cjs/consts-1c3020ad.js +6 -0
- package/cjs/consts-1c3020ad.js.map +1 -0
- package/cjs/consts-1d94dc61.js +6 -0
- package/cjs/consts-1d94dc61.js.map +1 -0
- package/cjs/consts-5e0f96b3.js +41 -0
- package/cjs/consts-5e0f96b3.js.map +1 -0
- package/cjs/consts-740f60b8.js +6 -0
- package/cjs/consts-740f60b8.js.map +1 -0
- package/cjs/{context-7a0e057b.js → context-8e7e8457.js} +6 -5
- package/cjs/{context-7a0e057b.js.map → context-8e7e8457.js.map} +1 -1
- package/cjs/dist/index.css +1640 -1187
- 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-d14a43c4.js → index-016f7106.js} +1 -1
- package/cjs/{index-d14a43c4.js.map → index-016f7106.js.map} +1 -1
- package/cjs/{index-9ca07037.js → index-1613ae03.js} +29 -37
- package/cjs/index-1613ae03.js.map +1 -0
- package/cjs/index-2be14d85.js +57 -0
- package/cjs/index-2be14d85.js.map +1 -0
- package/cjs/index-3b30939e.js +79 -0
- package/cjs/index-3b30939e.js.map +1 -0
- package/cjs/index-5231fde8.js +585 -0
- package/cjs/index-5231fde8.js.map +1 -0
- package/cjs/index-648c06ed.js +330 -0
- package/cjs/index-648c06ed.js.map +1 -0
- package/cjs/{index-5d5497c2.js → index-6cb0d040.js} +11 -25
- package/cjs/index-6cb0d040.js.map +1 -0
- package/cjs/{index-c475c3c8.js → index-71fdaa1b.js} +55 -63
- package/cjs/index-71fdaa1b.js.map +1 -0
- package/cjs/{index-343cd84a.js → index-7d125728.js} +2 -2
- package/cjs/{index-343cd84a.js.map → index-7d125728.js.map} +1 -1
- package/cjs/{index-3a4f8219.js → index-7f6bbe0c.js} +42 -51
- package/cjs/index-7f6bbe0c.js.map +1 -0
- package/cjs/{index-8de8f28a.js → index-869e9a94.js} +2 -2
- package/cjs/{index-8de8f28a.js.map → index-869e9a94.js.map} +1 -1
- package/cjs/index-89d81dad.js +456 -0
- package/cjs/index-89d81dad.js.map +1 -0
- package/cjs/{index-abbc8024.js → index-8affdde5.js} +57 -3
- package/cjs/index-8affdde5.js.map +1 -0
- package/cjs/index-99f16473.js +202 -0
- package/cjs/index-99f16473.js.map +1 -0
- package/cjs/index-c9d348b6.js +367 -0
- package/cjs/index-c9d348b6.js.map +1 -0
- package/cjs/index-e8c0080f.js +161 -0
- package/cjs/index-e8c0080f.js.map +1 -0
- package/cjs/{index-c5cd589d.js → index-f570d25c.js} +1 -1
- package/cjs/index-f570d25c.js.map +1 -0
- package/cjs/index.js +84 -63
- package/cjs/index.js.map +1 -1
- package/cjs/index.module-0585715f.js +6 -0
- package/cjs/index.module-0585715f.js.map +1 -0
- package/cjs/lame.all.js +2541 -0
- package/cjs/lame.all.js.map +1 -0
- package/cjs/resolvedReplyType-67e78c63.js +32 -0
- package/cjs/resolvedReplyType-67e78c63.js.map +1 -0
- package/cjs/sendbirdSelectors.js +307 -417
- package/cjs/sendbirdSelectors.js.map +1 -1
- package/cjs/{stringSet-3e6167ef.js → stringSet-106da549.js} +112 -90
- package/cjs/stringSet-106da549.js.map +1 -0
- package/cjs/tokenize-2aa0f876.js +164 -0
- package/cjs/tokenize-2aa0f876.js.map +1 -0
- package/cjs/topics-b384e6b3.js +18 -0
- package/cjs/topics-b384e6b3.js.map +1 -0
- package/cjs/types-e0b77c8c.js +17 -0
- package/cjs/types-e0b77c8c.js.map +1 -0
- package/cjs/ui/Accordion.js +21 -24
- package/cjs/ui/Accordion.js.map +1 -1
- package/cjs/ui/AccordionGroup.js +10 -13
- package/cjs/ui/AccordionGroup.js.map +1 -1
- package/cjs/ui/AdminMessage.js +10 -13
- package/cjs/ui/AdminMessage.js.map +1 -1
- package/cjs/ui/Avatar.js +57 -79
- package/cjs/ui/Avatar.js.map +1 -1
- package/cjs/ui/Badge.js +16 -15
- package/cjs/ui/Badge.js.map +1 -1
- package/cjs/ui/BottomSheet.js +14 -12
- package/cjs/ui/BottomSheet.js.map +1 -1
- package/cjs/ui/Button.js +20 -35
- package/cjs/ui/Button.js.map +1 -1
- package/cjs/ui/ChannelAvatar.js +38 -41
- package/cjs/ui/ChannelAvatar.js.map +1 -1
- package/cjs/ui/Checkbox.js +11 -13
- package/cjs/ui/Checkbox.js.map +1 -1
- package/cjs/ui/ConnectionStatus.js +7 -5
- package/cjs/ui/ConnectionStatus.js.map +1 -1
- package/cjs/ui/ContextMenu.js +175 -199
- package/cjs/ui/ContextMenu.js.map +1 -1
- package/cjs/ui/DateSeparator.js +12 -14
- package/cjs/ui/DateSeparator.js.map +1 -1
- package/cjs/ui/EmojiReactions.js +299 -107
- package/cjs/ui/EmojiReactions.js.map +1 -1
- package/cjs/ui/FileMessageItemBody.js +22 -23
- package/cjs/ui/FileMessageItemBody.js.map +1 -1
- package/cjs/ui/FileViewer.js +36 -36
- package/cjs/ui/FileViewer.js.map +1 -1
- package/cjs/ui/Icon.js +447 -623
- package/cjs/ui/Icon.js.map +1 -1
- package/cjs/ui/IconButton.js +20 -31
- package/cjs/ui/IconButton.js.map +1 -1
- package/cjs/ui/ImageRenderer.js +34 -43
- package/cjs/ui/ImageRenderer.js.map +1 -1
- package/cjs/ui/Input.js +16 -16
- package/cjs/ui/Input.js.map +1 -1
- package/cjs/ui/Label.js +2 -2
- package/cjs/ui/LinkLabel.js +4 -3
- package/cjs/ui/LinkLabel.js.map +1 -1
- package/cjs/ui/Loader.js +10 -12
- package/cjs/ui/Loader.js.map +1 -1
- package/cjs/ui/MentionLabel.js +58 -65
- package/cjs/ui/MentionLabel.js.map +1 -1
- package/cjs/ui/MentionUserLabel.js +12 -10
- package/cjs/ui/MentionUserLabel.js.map +1 -1
- package/cjs/ui/MessageContent.js +212 -548
- package/cjs/ui/MessageContent.js.map +1 -1
- package/cjs/ui/MessageInput.js +392 -119
- package/cjs/ui/MessageInput.js.map +1 -1
- package/cjs/ui/MessageItemMenu.js +83 -83
- package/cjs/ui/MessageItemMenu.js.map +1 -1
- package/cjs/ui/MessageItemReactionMenu.js +58 -62
- package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
- package/cjs/ui/MessageSearchFileItem.js +56 -51
- package/cjs/ui/MessageSearchFileItem.js.map +1 -1
- package/cjs/ui/MessageSearchItem.js +42 -41
- package/cjs/ui/MessageSearchItem.js.map +1 -1
- package/cjs/ui/MessageStatus.js +10 -11
- package/cjs/ui/MessageStatus.js.map +1 -1
- package/cjs/ui/Modal.js +52 -46
- package/cjs/ui/Modal.js.map +1 -1
- package/cjs/ui/MutedAvatarOverlay.js +10 -10
- package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
- package/cjs/ui/OGMessageItemBody.js +67 -63
- package/cjs/ui/OGMessageItemBody.js.map +1 -1
- package/cjs/ui/OpenChannelAdminMessage.js +8 -7
- package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
- package/cjs/ui/OpenChannelAvatar.js +18 -17
- package/cjs/ui/OpenChannelAvatar.js.map +1 -1
- package/cjs/ui/OpenchannelConversationHeader.js +17 -13
- package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
- package/cjs/ui/OpenchannelFileMessage.js +140 -151
- package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
- package/cjs/ui/OpenchannelOGMessage.js +204 -233
- package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
- package/cjs/ui/OpenchannelThumbnailMessage.js +215 -222
- package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/cjs/ui/OpenchannelUserMessage.js +168 -178
- package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
- package/cjs/ui/PlaceHolder.js +5 -6
- package/cjs/ui/PlaceHolder.js.map +1 -1
- package/cjs/ui/PlaybackTime.js +35 -0
- package/cjs/ui/PlaybackTime.js.map +1 -0
- package/cjs/ui/ProgressBar.js +40 -0
- package/cjs/ui/ProgressBar.js.map +1 -0
- package/cjs/ui/QuoteMessage.js +50 -44
- package/cjs/ui/QuoteMessage.js.map +1 -1
- package/cjs/ui/QuoteMessageInput.js +31 -29
- package/cjs/ui/QuoteMessageInput.js.map +1 -1
- package/cjs/ui/ReactionBadge.js +13 -21
- package/cjs/ui/ReactionBadge.js.map +1 -1
- package/cjs/ui/ReactionButton.js +30 -27
- package/cjs/ui/ReactionButton.js.map +1 -1
- package/cjs/ui/SortByRow.js +14 -18
- package/cjs/ui/SortByRow.js.map +1 -1
- package/cjs/ui/TextButton.js +13 -21
- package/cjs/ui/TextButton.js.map +1 -1
- package/cjs/ui/TextMessageItemBody.js +41 -48
- package/cjs/ui/TextMessageItemBody.js.map +1 -1
- package/cjs/ui/ThreadReplies.js +25 -22
- package/cjs/ui/ThreadReplies.js.map +1 -1
- package/cjs/ui/ThumbnailMessageItemBody.js +36 -45
- package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/cjs/ui/Toggle.js +202 -0
- package/cjs/ui/Toggle.js.map +1 -0
- package/cjs/ui/Tooltip.js +8 -9
- package/cjs/ui/Tooltip.js.map +1 -1
- package/cjs/ui/TooltipWrapper.js +17 -20
- package/cjs/ui/TooltipWrapper.js.map +1 -1
- package/cjs/ui/UnknownMessageItemBody.js +21 -22
- package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
- package/cjs/ui/UserListItem.js +76 -76
- package/cjs/ui/UserListItem.js.map +1 -1
- package/cjs/ui/UserProfile.js +31 -29
- package/cjs/ui/UserProfile.js.map +1 -1
- package/cjs/ui/VoiceMessageItemBody.js +119 -0
- package/cjs/ui/VoiceMessageItemBody.js.map +1 -0
- package/cjs/ui/VoiceMessgeInput.js +22 -0
- package/cjs/ui/VoiceMessgeInput.js.map +1 -0
- package/cjs/ui/Word.js +31 -39
- package/cjs/ui/Word.js.map +1 -1
- package/cjs/useDirtyGetMentions-b8ca5675.js +77 -0
- package/cjs/useDirtyGetMentions-b8ca5675.js.map +1 -0
- package/cjs/useLongPress-8037894e.js +87 -0
- package/cjs/useLongPress-8037894e.js.map +1 -0
- package/cjs/useSendbirdStateContext.js +2 -3
- package/cjs/useSendbirdStateContext.js.map +1 -1
- package/cjs/utils/message/getOutgoingMessageState.js +16 -21
- package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
- package/cjs/utils/message/isVoiceMessage.js +12 -0
- package/cjs/utils/message/isVoiceMessage.js.map +1 -0
- package/cjs/{utils-5f86a394.js → utils-01ff5332.js} +3 -7
- package/cjs/{utils-5f86a394.js.map → utils-01ff5332.js.map} +1 -1
- package/cjs/utils-2edcddc8.js +35 -0
- package/cjs/utils-2edcddc8.js.map +1 -0
- package/cjs/utils-5ac3db44.js +31 -0
- package/cjs/utils-5ac3db44.js.map +1 -0
- package/cjs/{utils-374d57b4.js → utils-ad7b5b82.js} +1 -1
- package/cjs/{utils-374d57b4.js.map → utils-ad7b5b82.js.map} +1 -1
- package/cjs/uuid-12b01f73.js +15 -0
- package/cjs/{uuid-2475ef6c.js.map → uuid-12b01f73.js.map} +1 -1
- package/cjs/withSendbird.js +5 -6
- package/cjs/withSendbird.js.map +1 -1
- package/{color-163ba24d.js → color-347926b6.js} +5 -14
- package/{color-163ba24d.js.map → color-347926b6.js.map} +1 -1
- package/{compareIds-ef41eb2c.js → compareIds-3a43c11b.js} +5 -6
- package/compareIds-3a43c11b.js.map +1 -0
- package/const-18dba7a4.js +13 -0
- package/const-18dba7a4.js.map +1 -0
- package/{const-76d87f47.js → const-c608f749.js} +4 -4
- package/const-c608f749.js.map +1 -0
- package/consts-6bca01c7.js +4 -0
- package/consts-6bca01c7.js.map +1 -0
- package/consts-7a169a0f.js +4 -0
- package/consts-7a169a0f.js.map +1 -0
- package/consts-c1baf70a.js +27 -0
- package/consts-c1baf70a.js.map +1 -0
- package/consts-fb4d475a.js +4 -0
- package/consts-fb4d475a.js.map +1 -0
- package/context-786ef1a2.js +13 -0
- package/{context-10475c77.js.map → context-786ef1a2.js.map} +1 -1
- package/dist/index.css +1640 -1187
- package/dist/index.css.map +1 -1
- package/handlers/OpenChannelHandler.js.map +1 -1
- package/handlers/SessionHandler.js.map +1 -1
- package/{index-12754b45.js → index-06b854f7.js} +55 -63
- package/index-06b854f7.js.map +1 -0
- package/index-2673effb.js +360 -0
- package/index-2673effb.js.map +1 -0
- package/{index-4ebfc7a7.js → index-319984d0.js} +1 -1
- package/{index-4ebfc7a7.js.map → index-319984d0.js.map} +1 -1
- package/{index-3c013a28.js → index-4455855e.js} +2 -2
- package/{index-3c013a28.js.map → index-4455855e.js.map} +1 -1
- package/index-6663ce18.js +450 -0
- package/index-6663ce18.js.map +1 -0
- package/{index-a02da5bd.js → index-6c252d25.js} +2 -2
- package/{index-a02da5bd.js.map → index-6c252d25.js.map} +1 -1
- package/index-71a20863.js +320 -0
- package/index-71a20863.js.map +1 -0
- package/index-7d71b26c.js +154 -0
- package/index-7d71b26c.js.map +1 -0
- package/{index-2f346069.js → index-9a4e0846.js} +1 -1
- package/index-9a4e0846.js.map +1 -0
- package/{index-232388fa.js → index-9cd77b08.js} +29 -37
- package/index-9cd77b08.js.map +1 -0
- package/index-c149ea48.js +187 -0
- package/index-c149ea48.js.map +1 -0
- package/index-cf3939c6.js +76 -0
- package/index-cf3939c6.js.map +1 -0
- package/index-cf859f03.js +540 -0
- package/index-cf859f03.js.map +1 -0
- package/{index-2784bdd8.js → index-e33f7f55.js} +11 -25
- package/index-e33f7f55.js.map +1 -0
- package/{index-aea7b7d6.js → index-eabd1e7e.js} +39 -48
- package/index-eabd1e7e.js.map +1 -0
- package/index-ebb62af1.js +51 -0
- package/index-ebb62af1.js.map +1 -0
- package/{index-751f97ce.js → index-edf844f0.js} +57 -4
- package/index-edf844f0.js.map +1 -0
- package/index.d.ts +176 -124
- package/index.js +84 -63
- package/index.js.map +1 -1
- package/index.module-6b7ed635.js +4 -0
- package/index.module-6b7ed635.js.map +1 -0
- package/lame.all.js +2537 -0
- package/lame.all.js.map +1 -0
- package/package.json +62 -41
- package/resolvedReplyType-8776d777.js +29 -0
- package/resolvedReplyType-8776d777.js.map +1 -0
- package/sendbirdSelectors.js +307 -417
- package/sendbirdSelectors.js.map +1 -1
- package/{stringSet-9ae71b7d.js → stringSet-e0ee1265.js} +112 -90
- package/stringSet-e0ee1265.js.map +1 -0
- package/tokenize-1b053c86.js +159 -0
- package/tokenize-1b053c86.js.map +1 -0
- package/topics-70f569e9.js +16 -0
- package/topics-70f569e9.js.map +1 -0
- package/types-77bbdda6.js +15 -0
- package/types-77bbdda6.js.map +1 -0
- package/ui/Accordion.js +21 -24
- package/ui/Accordion.js.map +1 -1
- package/ui/AccordionGroup.js +10 -13
- package/ui/AccordionGroup.js.map +1 -1
- package/ui/AdminMessage.js +10 -13
- package/ui/AdminMessage.js.map +1 -1
- package/ui/Avatar.js +57 -79
- package/ui/Avatar.js.map +1 -1
- package/ui/Badge.js +16 -15
- package/ui/Badge.js.map +1 -1
- package/ui/BottomSheet.js +14 -12
- package/ui/BottomSheet.js.map +1 -1
- package/ui/Button.js +20 -35
- package/ui/Button.js.map +1 -1
- package/ui/ChannelAvatar.js +38 -41
- package/ui/ChannelAvatar.js.map +1 -1
- package/ui/Checkbox.js +11 -13
- package/ui/Checkbox.js.map +1 -1
- package/ui/ConnectionStatus.js +7 -5
- package/ui/ConnectionStatus.js.map +1 -1
- package/ui/ContextMenu.js +176 -200
- package/ui/ContextMenu.js.map +1 -1
- package/ui/DateSeparator.js +12 -14
- package/ui/DateSeparator.js.map +1 -1
- package/ui/EmojiReactions.js +300 -108
- package/ui/EmojiReactions.js.map +1 -1
- package/ui/FileMessageItemBody.js +22 -23
- package/ui/FileMessageItemBody.js.map +1 -1
- package/ui/FileViewer.js +36 -36
- package/ui/FileViewer.js.map +1 -1
- package/ui/Icon.js +448 -622
- package/ui/Icon.js.map +1 -1
- package/ui/IconButton.js +20 -31
- package/ui/IconButton.js.map +1 -1
- package/ui/ImageRenderer.js +34 -43
- package/ui/ImageRenderer.js.map +1 -1
- package/ui/Input.js +16 -16
- package/ui/Input.js.map +1 -1
- package/ui/Label.js +2 -2
- package/ui/LinkLabel.js +4 -3
- package/ui/LinkLabel.js.map +1 -1
- package/ui/Loader.js +10 -12
- package/ui/Loader.js.map +1 -1
- package/ui/MentionLabel.js +58 -65
- package/ui/MentionLabel.js.map +1 -1
- package/ui/MentionUserLabel.js +12 -10
- package/ui/MentionUserLabel.js.map +1 -1
- package/ui/MessageContent.js +215 -551
- package/ui/MessageContent.js.map +1 -1
- package/ui/MessageInput.js +392 -120
- package/ui/MessageInput.js.map +1 -1
- package/ui/MessageItemMenu.js +83 -83
- package/ui/MessageItemMenu.js.map +1 -1
- package/ui/MessageItemReactionMenu.js +58 -62
- package/ui/MessageItemReactionMenu.js.map +1 -1
- package/ui/MessageSearchFileItem.js +55 -50
- package/ui/MessageSearchFileItem.js.map +1 -1
- package/ui/MessageSearchItem.js +41 -40
- package/ui/MessageSearchItem.js.map +1 -1
- package/ui/MessageStatus.js +10 -11
- package/ui/MessageStatus.js.map +1 -1
- package/ui/Modal.js +52 -46
- package/ui/Modal.js.map +1 -1
- package/ui/MutedAvatarOverlay.js +10 -10
- package/ui/MutedAvatarOverlay.js.map +1 -1
- package/ui/OGMessageItemBody.js +68 -64
- package/ui/OGMessageItemBody.js.map +1 -1
- package/ui/OpenChannelAdminMessage.js +8 -7
- package/ui/OpenChannelAdminMessage.js.map +1 -1
- package/ui/OpenChannelAvatar.js +18 -17
- package/ui/OpenChannelAvatar.js.map +1 -1
- package/ui/OpenchannelConversationHeader.js +17 -13
- package/ui/OpenchannelConversationHeader.js.map +1 -1
- package/ui/OpenchannelFileMessage.js +140 -151
- package/ui/OpenchannelFileMessage.js.map +1 -1
- package/ui/OpenchannelOGMessage.js +204 -233
- package/ui/OpenchannelOGMessage.js.map +1 -1
- package/ui/OpenchannelThumbnailMessage.js +215 -222
- package/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/ui/OpenchannelUserMessage.js +168 -178
- package/ui/OpenchannelUserMessage.js.map +1 -1
- package/ui/PlaceHolder.js +5 -6
- package/ui/PlaceHolder.js.map +1 -1
- package/ui/PlaybackTime.js +26 -0
- package/ui/PlaybackTime.js.map +1 -0
- package/ui/ProgressBar.js +30 -0
- package/ui/ProgressBar.js.map +1 -0
- package/ui/QuoteMessage.js +50 -44
- package/ui/QuoteMessage.js.map +1 -1
- package/ui/QuoteMessageInput.js +31 -29
- package/ui/QuoteMessageInput.js.map +1 -1
- package/ui/ReactionBadge.js +13 -21
- package/ui/ReactionBadge.js.map +1 -1
- package/ui/ReactionButton.js +30 -27
- package/ui/ReactionButton.js.map +1 -1
- package/ui/SortByRow.js +14 -18
- package/ui/SortByRow.js.map +1 -1
- package/ui/TextButton.js +13 -21
- package/ui/TextButton.js.map +1 -1
- package/ui/TextMessageItemBody.js +41 -48
- package/ui/TextMessageItemBody.js.map +1 -1
- package/ui/ThreadReplies.js +25 -22
- package/ui/ThreadReplies.js.map +1 -1
- package/ui/ThumbnailMessageItemBody.js +36 -45
- package/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/ui/Toggle.js +191 -0
- package/ui/Toggle.js.map +1 -0
- package/ui/Tooltip.js +8 -9
- package/ui/Tooltip.js.map +1 -1
- package/ui/TooltipWrapper.js +17 -20
- package/ui/TooltipWrapper.js.map +1 -1
- package/ui/UnknownMessageItemBody.js +21 -22
- package/ui/UnknownMessageItemBody.js.map +1 -1
- package/ui/UserListItem.js +76 -76
- package/ui/UserListItem.js.map +1 -1
- package/ui/UserProfile.js +31 -29
- package/ui/UserProfile.js.map +1 -1
- package/ui/VoiceMessageItemBody.js +110 -0
- package/ui/VoiceMessageItemBody.js.map +1 -0
- package/ui/VoiceMessgeInput.js +14 -0
- package/ui/VoiceMessgeInput.js.map +1 -0
- package/ui/Word.js +31 -39
- package/ui/Word.js.map +1 -1
- package/useDirtyGetMentions-f00f1f94.js +75 -0
- package/useDirtyGetMentions-f00f1f94.js.map +1 -0
- package/useLongPress-1ab49410.js +85 -0
- package/useLongPress-1ab49410.js.map +1 -0
- package/useSendbirdStateContext.js +2 -3
- package/useSendbirdStateContext.js.map +1 -1
- package/utils/message/getOutgoingMessageState.js +9 -15
- package/utils/message/getOutgoingMessageState.js.map +1 -1
- package/utils/message/isVoiceMessage.js +8 -0
- package/utils/message/isVoiceMessage.js.map +1 -0
- package/{utils-ea66f822.js → utils-56cb7de5.js} +1 -1
- package/{utils-ea66f822.js.map → utils-56cb7de5.js.map} +1 -1
- package/utils-77f7e8b2.js +29 -0
- package/utils-77f7e8b2.js.map +1 -0
- package/{utils-ddb0df4c.js → utils-7f3d0d8c.js} +3 -7
- package/{utils-ddb0df4c.js.map → utils-7f3d0d8c.js.map} +1 -1
- package/utils-af9b1c06.js +31 -0
- package/utils-af9b1c06.js.map +1 -0
- package/uuid-92d22300.js +13 -0
- package/{uuid-7e004f47.js.map → uuid-92d22300.js.map} +1 -1
- package/withSendbird.js +5 -6
- package/withSendbird.js.map +1 -1
- package/ChannelListProvider-1d36e2e9.js.map +0 -1
- package/ChannelProvider-289cd35f.js.map +0 -1
- package/CreateChannelProvider-72b655e9.js +0 -55
- package/CreateChannelProvider-72b655e9.js.map +0 -1
- package/LocalizationContext-289c1917.js +0 -22
- package/MediaQueryContext-273d29f6.js +0 -90
- package/MediaQueryContext-273d29f6.js.map +0 -1
- package/MemberList-7ad0fa0b.js +0 -435
- package/MemberList-7ad0fa0b.js.map +0 -1
- package/NotificationChannel/components/NotificationChannelUI.js +0 -119
- package/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
- package/NotificationChannel/components/NotificationList.js +0 -111
- package/NotificationChannel/components/NotificationList.js.map +0 -1
- package/NotificationChannel/components/NotificationMessageWrap.js +0 -136
- package/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
- package/NotificationChannel/context.js +0 -12
- package/NotificationChannel.js +0 -58
- package/NotificationChannel.js.map +0 -1
- package/NotificationChannelProvider-ad556c64.js +0 -535
- package/NotificationChannelProvider-ad556c64.js.map +0 -1
- package/OpenChannelListProvider-0febf8b2.js +0 -434
- package/OpenChannelListProvider-0febf8b2.js.map +0 -1
- package/OpenChannelProvider-c254c663.js +0 -2000
- package/OpenChannelProvider-c254c663.js.map +0 -1
- package/RemoveMessageModal-d6cbf9fa.js +0 -31
- package/RemoveMessageModal-d6cbf9fa.js.map +0 -1
- package/ThreadProvider-8696ef31.js +0 -1644
- package/ThreadProvider-8696ef31.js.map +0 -1
- package/_rollupPluginBabelHelpers-519f674b.js.map +0 -1
- package/actionTypes-9f87e87f.js +0 -6
- package/actionTypes-9f87e87f.js.map +0 -1
- package/cjs/ChannelListProvider-0de52d2b.js.map +0 -1
- package/cjs/ChannelProvider-fc58e60e.js.map +0 -1
- package/cjs/CreateChannelProvider-a82d20f4.js +0 -62
- package/cjs/CreateChannelProvider-a82d20f4.js.map +0 -1
- package/cjs/MediaQueryContext-4711a81f.js +0 -97
- package/cjs/MediaQueryContext-4711a81f.js.map +0 -1
- package/cjs/MemberList-b2623166.js +0 -441
- package/cjs/MemberList-b2623166.js.map +0 -1
- package/cjs/NotificationChannel/components/NotificationChannelUI.js +0 -125
- package/cjs/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
- package/cjs/NotificationChannel/components/NotificationList.js +0 -117
- package/cjs/NotificationChannel/components/NotificationList.js.map +0 -1
- package/cjs/NotificationChannel/components/NotificationMessageWrap.js +0 -142
- package/cjs/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
- package/cjs/NotificationChannel/context.js +0 -21
- package/cjs/NotificationChannel.js +0 -64
- package/cjs/NotificationChannel.js.map +0 -1
- package/cjs/NotificationChannelProvider-2cdc7ff4.js +0 -543
- package/cjs/NotificationChannelProvider-2cdc7ff4.js.map +0 -1
- package/cjs/OpenChannelListProvider-60bc3c69.js +0 -443
- package/cjs/OpenChannelListProvider-60bc3c69.js.map +0 -1
- package/cjs/OpenChannelProvider-3ed4eb6e.js +0 -2009
- package/cjs/OpenChannelProvider-3ed4eb6e.js.map +0 -1
- package/cjs/RemoveMessageModal-9169766a.js.map +0 -1
- package/cjs/ThreadProvider-389f5031.js +0 -1653
- package/cjs/ThreadProvider-389f5031.js.map +0 -1
- package/cjs/_rollupPluginBabelHelpers-fed1e122.js.map +0 -1
- package/cjs/actionTypes-2f90e726.js +0 -10
- package/cjs/actionTypes-2f90e726.js.map +0 -1
- package/cjs/color-f47044b3.js.map +0 -1
- package/cjs/compareIds-4124b297.js.map +0 -1
- package/cjs/const-015e5589.js +0 -20
- package/cjs/const-015e5589.js.map +0 -1
- package/cjs/const-fd64914b.js.map +0 -1
- package/cjs/index-30c97863.js +0 -194
- package/cjs/index-30c97863.js.map +0 -1
- package/cjs/index-3a4f8219.js.map +0 -1
- package/cjs/index-40e4653a.js +0 -59
- package/cjs/index-40e4653a.js.map +0 -1
- package/cjs/index-5d5497c2.js.map +0 -1
- package/cjs/index-62c1bdfc.js +0 -701
- package/cjs/index-62c1bdfc.js.map +0 -1
- package/cjs/index-9ca07037.js.map +0 -1
- package/cjs/index-9f3670d0.js +0 -360
- package/cjs/index-9f3670d0.js.map +0 -1
- package/cjs/index-abbc8024.js.map +0 -1
- package/cjs/index-c475c3c8.js.map +0 -1
- package/cjs/index-c5cd589d.js.map +0 -1
- package/cjs/stringSet-3e6167ef.js.map +0 -1
- package/cjs/topics-56842e14.js +0 -22
- package/cjs/topics-56842e14.js.map +0 -1
- package/cjs/tslib.es6-b8ba50ef.js +0 -110
- package/cjs/tslib.es6-b8ba50ef.js.map +0 -1
- package/cjs/useLongPress-99c66f7f.js +0 -118
- package/cjs/useLongPress-99c66f7f.js.map +0 -1
- package/cjs/utils-9adfd244.js +0 -38
- package/cjs/utils-9adfd244.js.map +0 -1
- package/cjs/utils-f6a96ebf.js +0 -32
- package/cjs/utils-f6a96ebf.js.map +0 -1
- package/cjs/uuid-2475ef6c.js +0 -19
- package/compareIds-ef41eb2c.js.map +0 -1
- package/const-76d87f47.js.map +0 -1
- package/const-da6f3d34.js +0 -14
- package/const-da6f3d34.js.map +0 -1
- package/context-10475c77.js +0 -12
- package/index-12754b45.js.map +0 -1
- package/index-1e46e582.js +0 -179
- package/index-1e46e582.js.map +0 -1
- package/index-232388fa.js.map +0 -1
- package/index-2784bdd8.js.map +0 -1
- package/index-2f346069.js.map +0 -1
- package/index-4637b0de.js +0 -57
- package/index-4637b0de.js.map +0 -1
- package/index-4900e890.js +0 -353
- package/index-4900e890.js.map +0 -1
- package/index-751f97ce.js.map +0 -1
- package/index-855ef33d.js +0 -662
- package/index-855ef33d.js.map +0 -1
- package/index-aea7b7d6.js.map +0 -1
- package/stringSet-9ae71b7d.js.map +0 -1
- package/topics-e2963bba.js +0 -13
- package/topics-e2963bba.js.map +0 -1
- package/tslib.es6-72df3331.js +0 -104
- package/tslib.es6-72df3331.js.map +0 -1
- package/useLongPress-1a777e9e.js +0 -116
- package/useLongPress-1a777e9e.js.map +0 -1
- package/utils-2976f2c1.js +0 -30
- package/utils-2976f2c1.js.map +0 -1
- package/utils-6b69fb18.js +0 -34
- package/utils-6b69fb18.js.map +0 -1
- package/uuid-7e004f47.js +0 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.js","sources":["../../../../src/smart-components/Channel/components/Message/index.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useLayoutEffect,\n} from 'react';\nimport type { FileMessage } from '@sendbird/chat/message';\nimport format from 'date-fns/format';\n\nimport SuggestedMentionList from '../SuggestedMentionList';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport { getClassName } from '../../../../utils';\nimport { isDisabledBecauseFrozen, isDisabledBecauseMuted } from '../../context/utils';\nimport { MAX_USER_MENTION_COUNT, MAX_USER_SUGGESTION_COUNT } from '../../context/const';\n\nimport DateSeparator from '../../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport MessageInput from '../../../../ui/MessageInput';\nimport MessageContent from '../../../../ui/MessageContent';\nimport FileViewer from '../FileViewer';\nimport RemoveMessageModal from '../RemoveMessageModal';\nimport { MessageInputKeys } from '../../../../ui/MessageInput/const';\nimport { EveryMessage, RenderCustomSeparatorProps, RenderMessageProps } from '../../../../types';\nimport { useLocalization } from '../../../../lib/LocalizationContext';\n\ntype MessageUIProps = {\n message: EveryMessage;\n hasSeparator?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n handleScroll: () => void;\n // for extending\n renderMessage?: (props: RenderMessageProps) => React.ReactElement;\n renderCustomSeparator?: (props: RenderCustomSeparatorProps) => React.ReactElement;\n renderEditInput?: () => React.ReactElement;\n renderMessageContent?: () => React.ReactElement;\n};\n\nconst Message = (props: MessageUIProps): React.FC<MessageUIProps> | React.ReactElement => {\n const {\n message,\n hasSeparator,\n chainTop,\n chainBottom,\n handleScroll,\n renderCustomSeparator,\n renderEditInput,\n renderMessage,\n renderMessageContent,\n } = props;\n\n const { dateLocale } = useLocalization();\n const globalStore = useSendbirdStateContext();\n const {\n userId,\n isOnline,\n isMentionEnabled,\n userMention,\n } = globalStore?.config;\n const maxUserMentionCount = userMention?.maxMentionCount || MAX_USER_MENTION_COUNT;\n const maxUserSuggestionCount = userMention?.maxSuggestionCount || MAX_USER_SUGGESTION_COUNT;\n\n const {\n initialized,\n currentGroupChannel,\n highLightedMessageId,\n setHighLightedMessageId,\n animatedMessageId,\n setAnimatedMessageId,\n updateMessage,\n scrollToMessage,\n replyType,\n threadReplySelectType,\n isReactionEnabled,\n toggleReaction,\n emojiContainer,\n nicknamesMap,\n setQuoteMessage,\n resendMessage,\n renderUserMentionItem,\n onReplyInThread,\n onQuoteMessageClick,\n onMessageAnimated,\n onMessageHighlighted,\n } = useChannelContext();\n\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const [isAnimated, setIsAnimated] = useState(false);\n const [isHighlighted, setIsHighlighted] = useState(false);\n const [mentionNickname, setMentionNickname] = useState('');\n const [mentionedUsers, setMentionedUsers] = useState([]);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [messageInputEvent, setMessageInputEvent] = useState(null);\n const [selectedUser, setSelectedUser] = useState(null);\n const [mentionSuggestedUsers, setMentionSuggestedUsers] = useState([]);\n const [ableMention, setAbleMention] = useState(true);\n const editMessageInputRef = useRef(null);\n const useMessageScrollRef = useRef(null);\n const displaySuggestedMentionList = isOnline\n && isMentionEnabled\n && mentionNickname.length > 0\n && !isDisabledBecauseFrozen(currentGroupChannel)\n && !isDisabledBecauseMuted(currentGroupChannel);\n const disabled = !initialized\n || isDisabledBecauseFrozen(currentGroupChannel)\n || isDisabledBecauseMuted(currentGroupChannel)\n || !isOnline;\n\n useEffect(() => {\n if (mentionedUsers?.length >= maxUserMentionCount) {\n setAbleMention(false);\n } else {\n setAbleMention(true);\n }\n }, [mentionedUsers]);\n\n useEffect(() => {\n setMentionedUsers(mentionedUsers.filter(({ userId }) => {\n const i = mentionedUserIds.indexOf(userId);\n if (i < 0) {\n return false;\n } else {\n mentionedUserIds.splice(i, 1);\n return true;\n }\n }));\n }, [mentionedUserIds]);\n\n useLayoutEffect(() => {\n handleScroll?.();\n }, [showEdit, message?.reactions?.length]);\n\n useLayoutEffect(() => {\n if (highLightedMessageId === message.messageId) {\n if (useMessageScrollRef && useMessageScrollRef.current) {\n useMessageScrollRef.current.scrollIntoView({ block: 'center', inline: 'center' });\n setIsAnimated(false);\n setTimeout(() => {\n setIsHighlighted(true);\n }, 500);\n setTimeout(() => {\n setHighLightedMessageId(0);\n onMessageHighlighted?.();\n }, 1600);\n }\n } else {\n setIsHighlighted(false);\n }\n }, [highLightedMessageId, useMessageScrollRef.current, message.messageId]);\n\n useLayoutEffect(() => {\n if (animatedMessageId === message.messageId) {\n if (useMessageScrollRef && useMessageScrollRef.current) {\n useMessageScrollRef.current.scrollIntoView({ block: 'center', inline: 'center' });\n setIsHighlighted(false);\n setTimeout(() => {\n setIsAnimated(true);\n }, 500);\n setTimeout(() => {\n setAnimatedMessageId(0);\n onMessageAnimated?.();\n }, 1600);\n }\n } else {\n setIsAnimated(false);\n }\n }, [animatedMessageId, useMessageScrollRef.current, message.messageId, onMessageAnimated]);\n const renderedMessage = useMemo(() => {\n return renderMessage?.({\n message,\n chainTop,\n chainBottom,\n });\n }, [message, renderMessage]);\n const renderedCustomSeparator = useMemo(() => {\n if (renderCustomSeparator) {\n return renderCustomSeparator?.({ message: message });\n }\n return null;\n }, [message, renderCustomSeparator]);\n\n if (renderedMessage) {\n return (\n <div\n ref={useMessageScrollRef}\n className={getClassName([\n 'sendbird-msg-hoc sendbird-msg--scroll-ref',\n isAnimated ? 'sendbird-msg-hoc__animated' : '',\n isHighlighted ? 'sendbird-msg-hoc__highlighted' : '',\n ])}\n >\n {/* date-separator */}\n {\n // TODO: Add message instance as a function parameter\n hasSeparator && (renderedCustomSeparator || (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy', {\n locale: dateLocale,\n })}\n </Label>\n </DateSeparator>\n ))\n }\n {renderedMessage}\n </div>\n );\n }\n\n if (showEdit && message?.isUserMessage?.()) {\n return renderEditInput?.() || (\n <>\n {\n displaySuggestedMentionList && (\n <SuggestedMentionList\n targetNickname={mentionNickname}\n inputEvent={messageInputEvent}\n renderUserMentionItem={renderUserMentionItem}\n onUserItemClick={(user) => {\n if (user) {\n setMentionedUsers([...mentionedUsers, user]);\n }\n setMentionNickname('');\n setSelectedUser(user);\n setMessageInputEvent(null);\n }}\n onFocusItemChange={() => {\n setMessageInputEvent(null);\n }}\n onFetchUsers={(users) => {\n setMentionSuggestedUsers(users);\n }}\n ableAddMention={ableMention}\n maxMentionCount={maxUserMentionCount}\n maxSuggestionCount={maxUserSuggestionCount}\n />\n )\n }\n <MessageInput\n isEdit\n disabled={disabled}\n ref={editMessageInputRef}\n mentionSelectedUser={selectedUser}\n isMentionEnabled={isMentionEnabled}\n message={message}\n onStartTyping={() => {\n currentGroupChannel?.startTyping?.();\n }}\n onUpdateMessage={({ messageId, message, mentionTemplate }) => {\n updateMessage({\n messageId,\n message,\n mentionedUsers,\n mentionTemplate,\n });\n setShowEdit(false);\n currentGroupChannel?.endTyping?.();\n }}\n onCancelEdit={() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setMentionSuggestedUsers([])\n setShowEdit(false);\n currentGroupChannel?.endTyping?.();\n }}\n onUserMentioned={(user) => {\n if (selectedUser?.userId === user?.userId) {\n setSelectedUser(null);\n setMentionNickname('');\n }\n }}\n onMentionStringChange={(mentionText) => {\n setMentionNickname(mentionText);\n }}\n onMentionedUserIdsUpdated={(userIds) => {\n setMentionedUserIds(userIds);\n }}\n onKeyDown={(e) => {\n if (displaySuggestedMentionList && mentionSuggestedUsers?.length > 0\n && ((e.key === MessageInputKeys.Enter && ableMention) || e.key === MessageInputKeys.ArrowUp || e.key === MessageInputKeys.ArrowDown)\n ) {\n setMessageInputEvent(e);\n return true;\n }\n return false;\n }}\n />\n </>\n );\n }\n\n return (\n <div\n className={getClassName([\n 'sendbird-msg-hoc sendbird-msg--scroll-ref',\n isAnimated ? 'sendbird-msg-hoc__animated' : '',\n isHighlighted ? 'sendbird-msg-hoc__highlighted' : '',\n ])}\n style={{ marginBottom: '2px' }}\n ref={useMessageScrollRef}\n >\n {/* date-separator */}\n {\n hasSeparator && (renderedCustomSeparator || (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy', {\n locale: dateLocale,\n })}\n </Label>\n </DateSeparator>\n ))\n }\n {/* Message */}\n {\n renderMessageContent?.() || (\n <MessageContent\n className=\"sendbird-message-hoc__message-content\"\n userId={userId}\n scrollToMessage={scrollToMessage}\n channel={currentGroupChannel}\n message={message}\n disabled={!isOnline}\n chainTop={chainTop}\n chainBottom={chainBottom}\n isReactionEnabled={isReactionEnabled}\n replyType={replyType}\n threadReplySelectType={threadReplySelectType}\n nicknamesMap={nicknamesMap}\n emojiContainer={emojiContainer}\n showEdit={setShowEdit}\n showRemove={setShowRemove}\n showFileViewer={setShowFileViewer}\n resendMessage={resendMessage}\n toggleReaction={toggleReaction}\n setQuoteMessage={setQuoteMessage}\n onReplyInThread={onReplyInThread}\n onQuoteMessageClick={onQuoteMessageClick}\n />\n )\n }\n {/* Modal */}\n {\n showRemove && (\n <RemoveMessageModal\n message={message}\n onCancel={() => setShowRemove(false)}\n />\n )\n }\n {\n showFileViewer && (\n <FileViewer\n message={message as FileMessage}\n onCancel={() => setShowFileViewer(false)}\n />\n )\n }\n </div>\n );\n};\n\nexport default Message;\n"],"names":["Message","props","message","hasSeparator","chainTop","chainBottom","handleScroll","renderCustomSeparator","renderEditInput","renderMessage","renderMessageContent","dateLocale","useLocalization","globalStore","useSendbirdStateContext","_c","config","userId","isOnline","isMentionEnabled","userMention","maxUserMentionCount","maxMentionCount","MAX_USER_MENTION_COUNT","maxUserSuggestionCount","maxSuggestionCount","MAX_USER_SUGGESTION_COUNT","_d","useChannelContext","initialized","currentGroupChannel","highLightedMessageId","setHighLightedMessageId","animatedMessageId","setAnimatedMessageId","updateMessage","scrollToMessage","replyType","threadReplySelectType","isReactionEnabled","toggleReaction","emojiContainer","nicknamesMap","setQuoteMessage","resendMessage","renderUserMentionItem","onReplyInThread","onQuoteMessageClick","onMessageAnimated","onMessageHighlighted","_e","useState","showEdit","setShowEdit","_f","showRemove","setShowRemove","_g","showFileViewer","setShowFileViewer","_h","isAnimated","setIsAnimated","_j","isHighlighted","setIsHighlighted","_k","mentionNickname","setMentionNickname","_l","mentionedUsers","setMentionedUsers","_m","mentionedUserIds","setMentionedUserIds","_o","messageInputEvent","setMessageInputEvent","_p","selectedUser","setSelectedUser","_q","mentionSuggestedUsers","setMentionSuggestedUsers","_r","ableMention","setAbleMention","editMessageInputRef","useRef","useMessageScrollRef","displaySuggestedMentionList","length","isDisabledBecauseFrozen","isDisabledBecauseMuted","disabled","useEffect","filter","_a","i","indexOf","splice","useLayoutEffect","reactions","messageId","current","scrollIntoView","block","inline","setTimeout","renderedMessage","useMemo","renderedCustomSeparator","React","getClassName","DateSeparator","Label","LabelTypography","CAPTION_2","LabelColors","ONBACKGROUND_2","format","createdAt","locale","_b","isUserMessage","call","SuggestedMentionList","user","__spreadArray","users","MessageInput","startTyping","mentionTemplate","endTyping","mentionText","userIds","e","key","MessageInputKeys","Enter","ArrowUp","ArrowDown","marginBottom","MessageContent","RemoveMessageModal","FileViewer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Message.js","sources":["../../../../src/utils/useDidMountEffect.ts","../../../../src/modules/Channel/components/Message/index.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nconst useDidMountEffect = (func: () => void, deps: Array<unknown>): void => {\n const [didMount, setDidmount] = useState(false);\n useEffect(() => {\n if (didMount) {\n func();\n } else {\n setDidmount(true);\n }\n }, deps);\n};\n\nexport default useDidMountEffect;\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useLayoutEffect,\n} from 'react';\nimport type { FileMessage } from '@sendbird/chat/message';\nimport format from 'date-fns/format';\n\nimport useDidMountEffect from '../../../../utils/useDidMountEffect';\nimport SuggestedMentionList from '../SuggestedMentionList';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport { getClassName } from '../../../../utils';\nimport { isDisabledBecauseFrozen, isDisabledBecauseMuted } from '../../context/utils';\nimport { MAX_USER_MENTION_COUNT, MAX_USER_SUGGESTION_COUNT } from '../../context/const';\n\nimport DateSeparator from '../../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport MessageInput from '../../../../ui/MessageInput';\nimport MessageContent from '../../../../ui/MessageContent';\nimport FileViewer from '../FileViewer';\nimport RemoveMessageModal from '../RemoveMessageModal';\nimport { MessageInputKeys } from '../../../../ui/MessageInput/const';\nimport { EveryMessage, RenderCustomSeparatorProps, RenderMessageProps } from '../../../../types';\nimport { useLocalization } from '../../../../lib/LocalizationContext';\nimport { useHandleOnScrollCallback } from '../../../../hooks/useHandleOnScrollCallback';\nimport { useDirtyGetMentions } from '../../../Message/hooks/useDirtyGetMentions';\n\ntype MessageUIProps = {\n message: EveryMessage;\n hasSeparator?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n handleScroll?: () => void;\n handleMessageListHeightChange?: () => void;\n // for extending\n renderMessage?: (props: RenderMessageProps) => React.ReactElement;\n renderCustomSeparator?: (props: RenderCustomSeparatorProps) => React.ReactElement;\n renderEditInput?: () => React.ReactElement;\n renderMessageContent?: () => React.ReactElement;\n};\n\n// todo: Refactor this component, is too complex now\nconst Message = ({\n message,\n hasSeparator,\n chainTop,\n chainBottom,\n handleScroll,\n handleMessageListHeightChange,\n renderCustomSeparator,\n renderEditInput,\n renderMessage,\n renderMessageContent,\n}: MessageUIProps): React.ReactElement => {\n const { dateLocale } = useLocalization();\n const globalStore = useSendbirdStateContext();\n\n const {\n userId,\n isOnline,\n isMentionEnabled,\n userMention,\n logger,\n } = globalStore.config;\n const maxUserMentionCount = userMention?.maxMentionCount || MAX_USER_MENTION_COUNT;\n const maxUserSuggestionCount = userMention?.maxSuggestionCount || MAX_USER_SUGGESTION_COUNT;\n\n const {\n initialized,\n currentGroupChannel,\n highLightedMessageId,\n setHighLightedMessageId,\n animatedMessageId,\n setAnimatedMessageId,\n updateMessage,\n scrollToMessage,\n replyType,\n threadReplySelectType,\n isReactionEnabled,\n toggleReaction,\n emojiContainer,\n nicknamesMap,\n setQuoteMessage,\n resendMessage,\n renderUserMentionItem,\n onReplyInThread,\n onQuoteMessageClick,\n onMessageAnimated,\n onMessageHighlighted,\n onScrollCallback,\n } = useChannelContext();\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const [isAnimated, setIsAnimated] = useState(false);\n const [isHighlighted, setIsHighlighted] = useState(false);\n const [mentionNickname, setMentionNickname] = useState('');\n const [mentionedUsers, setMentionedUsers] = useState([]);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [messageInputEvent, setMessageInputEvent] = useState(null);\n const [selectedUser, setSelectedUser] = useState(null);\n const [mentionSuggestedUsers, setMentionSuggestedUsers] = useState([]);\n const editMessageInputRef = useRef(null);\n const messageScrollRef = useRef(null);\n const displaySuggestedMentionList = isOnline\n && isMentionEnabled\n && mentionNickname.length > 0\n && !isDisabledBecauseFrozen(currentGroupChannel)\n && !isDisabledBecauseMuted(currentGroupChannel);\n const disabled = !initialized\n || isDisabledBecauseFrozen(currentGroupChannel)\n || isDisabledBecauseMuted(currentGroupChannel)\n || !isOnline;\n\n const handleOnScroll = useHandleOnScrollCallback({\n hasMore: false,\n onScroll: onScrollCallback,\n scrollRef: messageScrollRef,\n });\n\n const mentionNodes = useDirtyGetMentions({ ref: editMessageInputRef }, { logger });\n const ableMention = mentionNodes?.length < maxUserMentionCount;\n\n useEffect(() => {\n setMentionedUsers(mentionedUsers.filter(({ userId }) => {\n const i = mentionedUserIds.indexOf(userId);\n if (i < 0) {\n return false;\n } else {\n mentionedUserIds.splice(i, 1);\n return true;\n }\n }));\n }, [mentionedUserIds]);\n\n // Move the messsage list scroll when the last message's height is changed by reactions\n useDidMountEffect(() => {\n if (currentGroupChannel?.lastMessage?.messageId === message?.messageId) {\n handleScroll?.();\n }\n }, [showEdit, message?.reactions?.length]);\n useLayoutEffect(() => {\n handleMessageListHeightChange?.();\n }, []);\n\n useLayoutEffect(() => {\n let animationTimeout = null;\n let messageHighlightedTimeout = null;\n if (highLightedMessageId === message.messageId && messageScrollRef?.current) {\n handleOnScroll();\n setIsAnimated(false);\n animationTimeout = setTimeout(() => {\n setIsHighlighted(true);\n }, 500);\n messageHighlightedTimeout = setTimeout(() => {\n setHighLightedMessageId(0);\n onMessageHighlighted?.();\n }, 1600);\n } else {\n setIsHighlighted(false);\n }\n return () => {\n clearTimeout(animationTimeout);\n clearTimeout(messageHighlightedTimeout);\n };\n }, [highLightedMessageId, messageScrollRef.current, message.messageId]);\n\n useLayoutEffect(() => {\n let animationTimeout = null;\n let messageAnimatedTimeout = null;\n if (animatedMessageId === message.messageId && messageScrollRef?.current) {\n handleOnScroll();\n setIsHighlighted(false);\n animationTimeout = setTimeout(() => {\n setIsAnimated(true);\n }, 500);\n messageAnimatedTimeout = setTimeout(() => {\n setAnimatedMessageId(0);\n onMessageAnimated?.();\n }, 1600);\n } else {\n setIsAnimated(false);\n }\n return () => {\n clearTimeout(animationTimeout);\n clearTimeout(messageAnimatedTimeout);\n };\n }, [animatedMessageId, messageScrollRef.current, message.messageId, onMessageAnimated]);\n const renderedMessage = useMemo(() => {\n return renderMessage?.({\n message,\n chainTop,\n chainBottom,\n });\n }, [message, renderMessage]);\n const renderedCustomSeparator = useMemo(() => {\n if (renderCustomSeparator) {\n return renderCustomSeparator?.({ message: message });\n }\n return null;\n }, [message, renderCustomSeparator]);\n\n if (renderedMessage) {\n return (\n <div\n // do not delete this data attribute, used for scroll to given message\n // and also for testing\n data-sb-message-id={message.messageId}\n data-sb-created-at={message.createdAt}\n ref={messageScrollRef}\n className={getClassName([\n 'sendbird-msg-hoc sendbird-msg--scroll-ref',\n isAnimated ? 'sendbird-msg-hoc__animated' : '',\n isHighlighted ? 'sendbird-msg-hoc__highlighted' : '',\n ])}\n >\n {/* date-separator */}\n {\n // TODO: Add message instance as a function parameter\n hasSeparator && (renderedCustomSeparator || (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy', {\n locale: dateLocale,\n })}\n </Label>\n </DateSeparator>\n ))\n }\n {renderedMessage}\n </div>\n );\n }\n\n if (showEdit && message?.isUserMessage?.()) {\n return renderEditInput?.() || (\n <>\n {\n displaySuggestedMentionList && (\n <SuggestedMentionList\n targetNickname={mentionNickname}\n inputEvent={messageInputEvent}\n renderUserMentionItem={renderUserMentionItem}\n onUserItemClick={(user) => {\n if (user) {\n setMentionedUsers([...mentionedUsers, user]);\n }\n setMentionNickname('');\n setSelectedUser(user);\n setMessageInputEvent(null);\n }}\n onFocusItemChange={() => {\n setMessageInputEvent(null);\n }}\n onFetchUsers={(users) => {\n setMentionSuggestedUsers(users);\n }}\n ableAddMention={ableMention}\n maxMentionCount={maxUserMentionCount}\n maxSuggestionCount={maxUserSuggestionCount}\n />\n )\n }\n <MessageInput\n isEdit\n channel={currentGroupChannel}\n disabled={disabled}\n ref={editMessageInputRef}\n mentionSelectedUser={selectedUser}\n isMentionEnabled={isMentionEnabled}\n message={message}\n onStartTyping={() => {\n currentGroupChannel?.startTyping?.();\n }}\n onUpdateMessage={({ messageId, message, mentionTemplate }) => {\n updateMessage({\n messageId,\n message,\n mentionedUsers,\n mentionTemplate,\n });\n setShowEdit(false);\n currentGroupChannel?.endTyping?.();\n }}\n onCancelEdit={() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setMentionSuggestedUsers([]);\n setShowEdit(false);\n currentGroupChannel?.endTyping?.();\n }}\n onUserMentioned={(user) => {\n if (selectedUser?.userId === user?.userId) {\n setSelectedUser(null);\n setMentionNickname('');\n }\n }}\n onMentionStringChange={(mentionText) => {\n setMentionNickname(mentionText);\n }}\n onMentionedUserIdsUpdated={(userIds) => {\n setMentionedUserIds(userIds);\n }}\n onKeyDown={(e) => {\n if (displaySuggestedMentionList && mentionSuggestedUsers?.length > 0\n && ((e.key === MessageInputKeys.Enter && ableMention) || e.key === MessageInputKeys.ArrowUp || e.key === MessageInputKeys.ArrowDown)\n ) {\n setMessageInputEvent(e);\n return true;\n }\n return false;\n }}\n />\n </>\n );\n }\n\n return (\n <div\n className={getClassName([\n 'sendbird-msg-hoc sendbird-msg--scroll-ref',\n isAnimated ? 'sendbird-msg-hoc__animated' : '',\n isHighlighted ? 'sendbird-msg-hoc__highlighted' : '',\n ])}\n style={{ marginBottom: '2px' }}\n data-sb-message-id={message.messageId}\n data-sb-created-at={message.createdAt}\n ref={messageScrollRef}\n >\n {/* date-separator */}\n {\n hasSeparator && (renderedCustomSeparator || (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy', {\n locale: dateLocale,\n })}\n </Label>\n </DateSeparator>\n ))\n }\n {/* Message */}\n {\n renderMessageContent?.() || (\n <MessageContent\n className=\"sendbird-message-hoc__message-content\"\n userId={userId}\n scrollToMessage={scrollToMessage}\n channel={currentGroupChannel}\n message={message}\n disabled={!isOnline}\n chainTop={chainTop}\n chainBottom={chainBottom}\n isReactionEnabled={isReactionEnabled}\n replyType={replyType}\n threadReplySelectType={threadReplySelectType}\n nicknamesMap={nicknamesMap}\n emojiContainer={emojiContainer}\n showEdit={setShowEdit}\n showRemove={setShowRemove}\n showFileViewer={setShowFileViewer}\n resendMessage={resendMessage}\n toggleReaction={toggleReaction}\n setQuoteMessage={setQuoteMessage}\n onReplyInThread={onReplyInThread}\n onQuoteMessageClick={onQuoteMessageClick}\n onMessageHeightChange={handleScroll}\n />\n )\n }\n {/* Modal */}\n {\n showRemove && (\n <RemoveMessageModal\n message={message}\n onCancel={() => setShowRemove(false)}\n />\n )\n }\n {\n showFileViewer && (\n <FileViewer\n message={message as FileMessage}\n onCancel={() => setShowFileViewer(false)}\n />\n )\n }\n </div>\n );\n};\n\nexport default Message;\n"],"names":["useDidMountEffect","func","deps","didMount","setDidmount","useState","useEffect","Message","_ref","_message$reactions","_message$isUserMessag","message","hasSeparator","chainTop","chainBottom","handleScroll","handleMessageListHeightChange","renderCustomSeparator","renderEditInput","renderMessage","renderMessageContent","dateLocale","useLocalization","globalStore","useSendbirdStateContext","userId","isOnline","isMentionEnabled","userMention","logger","config","maxUserMentionCount","maxMentionCount","MAX_USER_MENTION_COUNT","maxUserSuggestionCount","maxSuggestionCount","MAX_USER_SUGGESTION_COUNT","initialized","currentGroupChannel","highLightedMessageId","setHighLightedMessageId","animatedMessageId","setAnimatedMessageId","updateMessage","scrollToMessage","replyType","threadReplySelectType","isReactionEnabled","toggleReaction","emojiContainer","nicknamesMap","setQuoteMessage","resendMessage","renderUserMentionItem","onReplyInThread","onQuoteMessageClick","onMessageAnimated","onMessageHighlighted","onScrollCallback","useChannelContext","showEdit","setShowEdit","showRemove","setShowRemove","showFileViewer","setShowFileViewer","isAnimated","setIsAnimated","isHighlighted","setIsHighlighted","mentionNickname","setMentionNickname","mentionedUsers","setMentionedUsers","mentionedUserIds","setMentionedUserIds","messageInputEvent","setMessageInputEvent","selectedUser","setSelectedUser","mentionSuggestedUsers","setMentionSuggestedUsers","editMessageInputRef","useRef","messageScrollRef","displaySuggestedMentionList","length","isDisabledBecauseFrozen","isDisabledBecauseMuted","disabled","handleOnScroll","useHandleOnScrollCallback","hasMore","onScroll","scrollRef","mentionNodes","useDirtyGetMentions","ref","ableMention","filter","_ref2","i","indexOf","splice","_currentGroupChannel$","lastMessage","messageId","reactions","useLayoutEffect","animationTimeout","messageHighlightedTimeout","current","setTimeout","clearTimeout","messageAnimatedTimeout","renderedMessage","useMemo","renderedCustomSeparator","React","createElement","createdAt","className","getClassName","DateSeparator","Label","type","LabelTypography","CAPTION_2","color","LabelColors","ONBACKGROUND_2","format","locale","isUserMessage","call","Fragment","SuggestedMentionList","targetNickname","inputEvent","onUserItemClick","user","onFocusItemChange","onFetchUsers","users","ableAddMention","MessageInput","isEdit","channel","mentionSelectedUser","onStartTyping","_currentGroupChannel$2","startTyping","onUpdateMessage","_ref3","_currentGroupChannel$3","mentionTemplate","endTyping","onCancelEdit","_currentGroupChannel$4","onUserMentioned","onMentionStringChange","mentionText","onMentionedUserIdsUpdated","userIds","onKeyDown","e","key","MessageInputKeys","Enter","ArrowUp","ArrowDown","style","marginBottom","MessageContent","onMessageHeightChange","RemoveMessageModal","onCancel","FileViewer"],"mappings":"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"}
|
|
@@ -1,128 +1,136 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tslib_es6 = require('../../tslib.es6-b8ba50ef.js');
|
|
4
3
|
var React = require('react');
|
|
5
|
-
var Channel_context = require('../../ChannelProvider-
|
|
4
|
+
var Channel_context = require('../../ChannelProvider-0df75472.js');
|
|
6
5
|
var ui_MessageInput = require('../../ui/MessageInput.js');
|
|
7
6
|
var ui_QuoteMessageInput = require('../../ui/QuoteMessageInput.js');
|
|
8
|
-
var LocalizationContext = require('../../LocalizationContext-
|
|
7
|
+
var LocalizationContext = require('../../LocalizationContext-0e429c3d.js');
|
|
9
8
|
var useSendbirdStateContext = require('../../useSendbirdStateContext.js');
|
|
10
9
|
var Channel_components_SuggestedMentionList = require('./SuggestedMentionList.js');
|
|
11
|
-
var _const = require('../../const-
|
|
12
|
-
require('../../
|
|
10
|
+
var _const = require('../../const-d8cece19.js');
|
|
11
|
+
var VoiceMessageInputWrapper = require('../../VoiceMessageInputWrapper-4fdc8ef1.js');
|
|
12
|
+
var useDirtyGetMentions = require('../../useDirtyGetMentions-b8ca5675.js');
|
|
13
|
+
var MediaQueryContext = require('../../MediaQueryContext-33fc3b17.js');
|
|
14
|
+
require('../../UserProfileContext-87580795.js');
|
|
13
15
|
require('prop-types');
|
|
14
|
-
require('../../
|
|
15
|
-
require('../../index-
|
|
16
|
-
require('../../
|
|
17
|
-
require('../../
|
|
16
|
+
require('../../const-a85f3364.js');
|
|
17
|
+
require('../../index-869e9a94.js');
|
|
18
|
+
require('../../index-016f7106.js');
|
|
19
|
+
require('../../topics-b384e6b3.js');
|
|
20
|
+
require('../../index-5231fde8.js');
|
|
21
|
+
require('../../_rollupPluginBabelHelpers-c89f311a.js');
|
|
18
22
|
require('../../utils/message/getOutgoingMessageState.js');
|
|
19
|
-
require('../../
|
|
20
|
-
require('../../compareIds-4124b297.js');
|
|
21
|
-
require('../../const-015e5589.js');
|
|
23
|
+
require('../../compareIds-ccccfe86.js');
|
|
22
24
|
require('@sendbird/chat/groupChannel');
|
|
23
|
-
require('../../uuid-
|
|
25
|
+
require('../../uuid-12b01f73.js');
|
|
24
26
|
require('@sendbird/chat/message');
|
|
25
|
-
require('../../
|
|
26
|
-
require('
|
|
27
|
-
require('../../ui/SortByRow.js');
|
|
28
|
-
require('../../index-5d5497c2.js');
|
|
29
|
-
require('../../stringSet-3e6167ef.js');
|
|
30
|
-
require('../../ui/ReactionButton.js');
|
|
31
|
-
require('../../ui/ImageRenderer.js');
|
|
32
|
-
require('../../ui/Icon.js');
|
|
33
|
-
require('react-dom/server');
|
|
27
|
+
require('../../consts-5e0f96b3.js');
|
|
28
|
+
require('../../resolvedReplyType-67e78c63.js');
|
|
34
29
|
require('../../ui/IconButton.js');
|
|
35
30
|
require('../../ui/Button.js');
|
|
36
|
-
require('../../
|
|
31
|
+
require('../../index-6cb0d040.js');
|
|
32
|
+
require('../../stringSet-106da549.js');
|
|
33
|
+
require('dompurify');
|
|
34
|
+
require('../../consts-1c3020ad.js');
|
|
35
|
+
require('../../ui/Icon.js');
|
|
36
|
+
require('../../consts-1d94dc61.js');
|
|
37
|
+
require('../../consts-740f60b8.js');
|
|
38
|
+
require('../../tokenize-2aa0f876.js');
|
|
39
|
+
require('../../index.module-0585715f.js');
|
|
40
|
+
require('../../ui/ImageRenderer.js');
|
|
37
41
|
require('../../withSendbird.js');
|
|
38
42
|
require('../../ui/Avatar.js');
|
|
39
|
-
require('../../ThreadProvider-
|
|
43
|
+
require('../../ThreadProvider-8ee179c2.js');
|
|
40
44
|
require('../../Thread/context/types.js');
|
|
41
45
|
require('@sendbird/chat');
|
|
46
|
+
require('../../VoicePlayer/useVoicePlayer.js');
|
|
47
|
+
require('../../index-648c06ed.js');
|
|
48
|
+
require('../../VoiceRecorder/context.js');
|
|
49
|
+
require('../../ui/Modal.js');
|
|
50
|
+
require('react-dom');
|
|
51
|
+
require('../../index-f570d25c.js');
|
|
52
|
+
require('../../VoiceRecorder/useVoiceRecorder.js');
|
|
53
|
+
require('../../index-e8c0080f.js');
|
|
54
|
+
require('../../ui/PlaybackTime.js');
|
|
55
|
+
require('../../ui/ProgressBar.js');
|
|
56
|
+
require('../../ui/TextButton.js');
|
|
57
|
+
require('../../color-bada0fc7.js');
|
|
42
58
|
|
|
43
59
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
44
60
|
|
|
45
61
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
46
62
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
setMessageInputEvent = _j[1];
|
|
99
|
-
|
|
100
|
-
var disabled = !initialized || Channel_context.isDisabledBecauseFrozen(channel) || Channel_context.isDisabledBecauseMuted(channel) || !isOnline;
|
|
101
|
-
var isOperator = Channel_context.isOperator(channel);
|
|
102
|
-
var isBroadcast = channel === null || channel === void 0 ? void 0 : channel.isBroadcast;
|
|
103
|
-
var displaySuggestedMentionList = isOnline && isMentionEnabled && mentionNickname.length > 0 && !Channel_context.isDisabledBecauseFrozen(channel) && !Channel_context.isDisabledBecauseMuted(channel); // Reset when channel changes
|
|
104
|
-
|
|
105
|
-
React.useEffect(function () {
|
|
63
|
+
const MessageInputWrapper = (props, ref) => {
|
|
64
|
+
const {
|
|
65
|
+
value,
|
|
66
|
+
renderFileUploadIcon,
|
|
67
|
+
renderVoiceMessageIcon,
|
|
68
|
+
renderSendMessageIcon
|
|
69
|
+
} = props;
|
|
70
|
+
const propDisabled = props.disabled;
|
|
71
|
+
const {
|
|
72
|
+
currentGroupChannel,
|
|
73
|
+
initialized,
|
|
74
|
+
quoteMessage,
|
|
75
|
+
sendMessage,
|
|
76
|
+
sendFileMessage,
|
|
77
|
+
sendVoiceMessage,
|
|
78
|
+
setQuoteMessage,
|
|
79
|
+
messageInputRef,
|
|
80
|
+
renderUserMentionItem
|
|
81
|
+
} = Channel_context.useChannelContext();
|
|
82
|
+
const globalStore = useSendbirdStateContext();
|
|
83
|
+
const {
|
|
84
|
+
isMobile
|
|
85
|
+
} = MediaQueryContext.useMediaQueryContext();
|
|
86
|
+
const channel = currentGroupChannel;
|
|
87
|
+
const {
|
|
88
|
+
isOnline,
|
|
89
|
+
isMentionEnabled,
|
|
90
|
+
userMention,
|
|
91
|
+
isVoiceMessageEnabled,
|
|
92
|
+
logger
|
|
93
|
+
} = globalStore.config;
|
|
94
|
+
const maxUserMentionCount = (userMention === null || userMention === void 0 ? void 0 : userMention.maxMentionCount) || 10;
|
|
95
|
+
const maxUserSuggestionCount = (userMention === null || userMention === void 0 ? void 0 : userMention.maxSuggestionCount) || 15;
|
|
96
|
+
const {
|
|
97
|
+
stringSet
|
|
98
|
+
} = React.useContext(LocalizationContext.LocalizationContext);
|
|
99
|
+
const [mentionNickname, setMentionNickname] = React.useState('');
|
|
100
|
+
// todo: set type
|
|
101
|
+
const [mentionedUsers, setMentionedUsers] = React.useState([]);
|
|
102
|
+
const [mentionedUserIds, setMentionedUserIds] = React.useState([]);
|
|
103
|
+
const [selectedUser, setSelectedUser] = React.useState(null);
|
|
104
|
+
const [mentionSuggestedUsers, setMentionSuggestedUsers] = React.useState([]);
|
|
105
|
+
const [messageInputEvent, setMessageInputEvent] = React.useState(null);
|
|
106
|
+
const [showVoiceMessageInput, setShowVoiceMessageInput] = React.useState(false);
|
|
107
|
+
const disabled = propDisabled || !initialized || Channel_context.isDisabledBecauseFrozen(channel) || Channel_context.isDisabledBecauseMuted(channel) || !isOnline;
|
|
108
|
+
const isOperator = Channel_context.isOperator(channel);
|
|
109
|
+
const isBroadcast = channel === null || channel === void 0 ? void 0 : channel.isBroadcast;
|
|
110
|
+
const displaySuggestedMentionList = isOnline && isMentionEnabled && mentionNickname.length > 0 && !Channel_context.isDisabledBecauseFrozen(channel) && !Channel_context.isDisabledBecauseMuted(channel) && !isBroadcast;
|
|
111
|
+
|
|
112
|
+
// Reset when channel changes
|
|
113
|
+
React.useEffect(() => {
|
|
106
114
|
setMentionNickname('');
|
|
107
115
|
setMentionedUsers([]);
|
|
108
116
|
setMentionedUserIds([]);
|
|
109
117
|
setSelectedUser(null);
|
|
110
118
|
setMentionSuggestedUsers([]);
|
|
111
|
-
setAbleMention(true);
|
|
112
119
|
setMessageInputEvent(null);
|
|
120
|
+
setShowVoiceMessageInput(false);
|
|
113
121
|
}, [channel === null || channel === void 0 ? void 0 : channel.url]);
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
122
|
+
const mentionNodes = useDirtyGetMentions.useDirtyGetMentions({
|
|
123
|
+
ref: ref || messageInputRef
|
|
124
|
+
}, {
|
|
125
|
+
logger
|
|
126
|
+
});
|
|
127
|
+
const ableMention = (mentionNodes === null || mentionNodes === void 0 ? void 0 : mentionNodes.length) < maxUserMentionCount;
|
|
128
|
+
React.useEffect(() => {
|
|
129
|
+
setMentionedUsers(mentionedUsers.filter(_ref => {
|
|
130
|
+
let {
|
|
131
|
+
userId
|
|
132
|
+
} = _ref;
|
|
133
|
+
const i = mentionedUserIds.indexOf(userId);
|
|
126
134
|
if (i < 0) {
|
|
127
135
|
return false;
|
|
128
136
|
} else {
|
|
@@ -130,32 +138,31 @@ var MessageInputWrapper = function (props, ref) {
|
|
|
130
138
|
return true;
|
|
131
139
|
}
|
|
132
140
|
}));
|
|
133
|
-
}, [mentionedUserIds]);
|
|
141
|
+
}, [mentionedUserIds]);
|
|
134
142
|
|
|
143
|
+
// broadcast channel + not operator
|
|
135
144
|
if (isBroadcast && !isOperator) {
|
|
136
145
|
return null;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
|
|
146
|
+
}
|
|
147
|
+
// other conditions
|
|
140
148
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
141
|
-
className:
|
|
149
|
+
className: `sendbird-message-input-wrapper${showVoiceMessageInput ? '--voice-message' : ''}`
|
|
142
150
|
}, displaySuggestedMentionList && /*#__PURE__*/React__default["default"].createElement(Channel_components_SuggestedMentionList, {
|
|
143
151
|
targetNickname: mentionNickname,
|
|
144
152
|
inputEvent: messageInputEvent,
|
|
145
153
|
renderUserMentionItem: renderUserMentionItem,
|
|
146
|
-
onUserItemClick:
|
|
154
|
+
onUserItemClick: user => {
|
|
147
155
|
if (user) {
|
|
148
|
-
setMentionedUsers(
|
|
156
|
+
setMentionedUsers([...mentionedUsers, user]);
|
|
149
157
|
}
|
|
150
|
-
|
|
151
158
|
setMentionNickname('');
|
|
152
159
|
setSelectedUser(user);
|
|
153
160
|
setMessageInputEvent(null);
|
|
154
161
|
},
|
|
155
|
-
onFocusItemChange:
|
|
162
|
+
onFocusItemChange: () => {
|
|
156
163
|
setMessageInputEvent(null);
|
|
157
164
|
},
|
|
158
|
-
onFetchUsers:
|
|
165
|
+
onFetchUsers: users => {
|
|
159
166
|
setMentionSuggestedUsers(users);
|
|
160
167
|
},
|
|
161
168
|
ableAddMention: ableMention,
|
|
@@ -165,64 +172,80 @@ var MessageInputWrapper = function (props, ref) {
|
|
|
165
172
|
className: "sendbird-message-input-wrapper__quote-message-input"
|
|
166
173
|
}, /*#__PURE__*/React__default["default"].createElement(ui_QuoteMessageInput, {
|
|
167
174
|
replyingMessage: quoteMessage,
|
|
168
|
-
onClose:
|
|
169
|
-
|
|
175
|
+
onClose: () => setQuoteMessage(null)
|
|
176
|
+
})), showVoiceMessageInput ? /*#__PURE__*/React__default["default"].createElement(VoiceMessageInputWrapper.VoiceMessageInputWrapper, {
|
|
177
|
+
channel: channel,
|
|
178
|
+
onSubmitClick: (recordedFile, duration) => {
|
|
179
|
+
sendVoiceMessage(recordedFile, duration, quoteMessage);
|
|
180
|
+
setQuoteMessage(null);
|
|
181
|
+
setShowVoiceMessageInput(false);
|
|
182
|
+
},
|
|
183
|
+
onCancelClick: () => {
|
|
184
|
+
setShowVoiceMessageInput(false);
|
|
170
185
|
}
|
|
171
|
-
})
|
|
186
|
+
}) : /*#__PURE__*/React__default["default"].createElement(ui_MessageInput, {
|
|
172
187
|
className: "sendbird-message-input-wrapper__message-input",
|
|
173
188
|
value: value,
|
|
174
189
|
channelUrl: channel === null || channel === void 0 ? void 0 : channel.url,
|
|
175
190
|
mentionSelectedUser: selectedUser,
|
|
176
191
|
isMentionEnabled: isMentionEnabled,
|
|
177
|
-
|
|
192
|
+
isVoiceMessageEnabled: isVoiceMessageEnabled,
|
|
193
|
+
onVoiceMessageIconClick: () => {
|
|
194
|
+
setShowVoiceMessageInput(true);
|
|
195
|
+
},
|
|
196
|
+
setMentionedUsers: setMentionedUsers,
|
|
197
|
+
channel: channel,
|
|
198
|
+
placeholder: quoteMessage && stringSet.MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER || Channel_context.isDisabledBecauseFrozen(channel) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__DISABLED || Channel_context.isDisabledBecauseMuted(channel) && (isMobile ? stringSet.MESSAGE_INPUT__PLACE_HOLDER__MUTED_SHORT : stringSet.MESSAGE_INPUT__PLACE_HOLDER__MUTED),
|
|
178
199
|
ref: ref || messageInputRef,
|
|
179
200
|
disabled: disabled,
|
|
180
|
-
|
|
201
|
+
renderFileUploadIcon: renderFileUploadIcon,
|
|
202
|
+
renderSendMessageIcon: renderSendMessageIcon,
|
|
203
|
+
renderVoiceMessageIcon: renderVoiceMessageIcon,
|
|
204
|
+
onStartTyping: () => {
|
|
181
205
|
channel === null || channel === void 0 ? void 0 : channel.startTyping();
|
|
182
206
|
},
|
|
183
|
-
onSendMessage:
|
|
184
|
-
var
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
207
|
+
onSendMessage: _ref2 => {
|
|
208
|
+
var _channel$endTyping;
|
|
209
|
+
let {
|
|
210
|
+
message,
|
|
211
|
+
mentionTemplate
|
|
212
|
+
} = _ref2;
|
|
188
213
|
sendMessage({
|
|
189
|
-
message
|
|
190
|
-
quoteMessage
|
|
191
|
-
mentionedUsers
|
|
192
|
-
mentionTemplate
|
|
214
|
+
message,
|
|
215
|
+
quoteMessage,
|
|
216
|
+
mentionedUsers,
|
|
217
|
+
mentionTemplate
|
|
193
218
|
});
|
|
194
219
|
setMentionNickname('');
|
|
195
220
|
setMentionedUsers([]);
|
|
196
221
|
setQuoteMessage(null);
|
|
197
|
-
|
|
222
|
+
channel === null || channel === void 0 ? void 0 : (_channel$endTyping = channel.endTyping) === null || _channel$endTyping === void 0 ? void 0 : _channel$endTyping.call(channel);
|
|
198
223
|
},
|
|
199
|
-
onFileUpload:
|
|
224
|
+
onFileUpload: file => {
|
|
200
225
|
sendFileMessage(file, quoteMessage);
|
|
201
226
|
setQuoteMessage(null);
|
|
202
227
|
},
|
|
203
|
-
onUserMentioned:
|
|
228
|
+
onUserMentioned: user => {
|
|
204
229
|
if ((selectedUser === null || selectedUser === void 0 ? void 0 : selectedUser.userId) === (user === null || user === void 0 ? void 0 : user.userId)) {
|
|
205
230
|
setSelectedUser(null);
|
|
206
231
|
setMentionNickname('');
|
|
207
232
|
}
|
|
208
233
|
},
|
|
209
|
-
onMentionStringChange:
|
|
234
|
+
onMentionStringChange: mentionText => {
|
|
210
235
|
setMentionNickname(mentionText);
|
|
211
236
|
},
|
|
212
|
-
onMentionedUserIdsUpdated:
|
|
237
|
+
onMentionedUserIdsUpdated: userIds => {
|
|
213
238
|
setMentionedUserIds(userIds);
|
|
214
239
|
},
|
|
215
|
-
onKeyDown:
|
|
240
|
+
onKeyDown: e => {
|
|
216
241
|
if (displaySuggestedMentionList && (mentionSuggestedUsers === null || mentionSuggestedUsers === void 0 ? void 0 : mentionSuggestedUsers.length) > 0 && (e.key === _const.MessageInputKeys.Enter && ableMention || e.key === _const.MessageInputKeys.ArrowUp || e.key === _const.MessageInputKeys.ArrowDown)) {
|
|
217
242
|
setMessageInputEvent(e);
|
|
218
243
|
return true;
|
|
219
244
|
}
|
|
220
|
-
|
|
221
245
|
return false;
|
|
222
246
|
}
|
|
223
247
|
}));
|
|
224
248
|
};
|
|
225
|
-
|
|
226
249
|
var MessageInputWrapper$1 = /*#__PURE__*/React__default["default"].forwardRef(MessageInputWrapper);
|
|
227
250
|
|
|
228
251
|
module.exports = MessageInputWrapper$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageInput.js","sources":["../../../../src/smart-components/Channel/components/MessageInput/index.tsx"],"sourcesContent":["import React, { useState, useContext, useEffect } from 'react';\n\nimport './message-input.scss';\nimport * as utils from '../../context/utils';\n\nimport MessageInput from '../../../../ui/MessageInput';\nimport QuoteMessageInput from '../../../../ui/QuoteMessageInput';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport SuggestedMentionList from '../SuggestedMentionList';\nimport { MessageInputKeys } from '../../../../ui/MessageInput/const';\n\nexport type MessageInputWrapperProps = {\n value?: string;\n};\n\n\nconst MessageInputWrapper = (\n props: MessageInputWrapperProps,\n ref: React.MutableRefObject<any>,\n): JSX.Element => {\n const { value } = props;\n const {\n currentGroupChannel,\n initialized,\n quoteMessage,\n sendMessage,\n sendFileMessage,\n setQuoteMessage,\n messageInputRef,\n renderUserMentionItem,\n } = useChannelContext();\n const globalStore = useSendbirdStateContext();\n const channel = currentGroupChannel;\n\n const { isOnline, isMentionEnabled, userMention } = globalStore?.config;\n const maxUserMentionCount = userMention?.maxMentionCount || 10;\n const maxUserSuggestionCount = userMention?.maxSuggestionCount || 15;\n\n const { stringSet } = useContext(LocalizationContext);\n const [mentionNickname, setMentionNickname] = useState('');\n const [mentionedUsers, setMentionedUsers] = useState([]);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [selectedUser, setSelectedUser] = useState(null);\n const [mentionSuggestedUsers, setMentionSuggestedUsers] = useState([]);\n const [ableMention, setAbleMention] = useState(true);\n const [messageInputEvent, setMessageInputEvent] = useState(null);\n const disabled = !initialized\n || utils.isDisabledBecauseFrozen(channel)\n || utils.isDisabledBecauseMuted(channel)\n || !isOnline;\n const isOperator = utils.isOperator(channel);\n const isBroadcast = channel?.isBroadcast;\n\n const displaySuggestedMentionList = isOnline\n && isMentionEnabled\n && mentionNickname.length > 0\n && !utils.isDisabledBecauseFrozen(channel)\n && !utils.isDisabledBecauseMuted(channel);\n\n // Reset when channel changes\n useEffect(() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setSelectedUser(null);\n setMentionSuggestedUsers([]);\n setAbleMention(true);\n setMessageInputEvent(null);\n }, [channel?.url]);\n\n useEffect(() => {\n if (mentionedUsers?.length >= maxUserMentionCount) {\n setAbleMention(false);\n } else {\n setAbleMention(true);\n }\n }, [mentionedUsers]);\n\n useEffect(() => {\n setMentionedUsers(mentionedUsers.filter(({ userId }) => {\n const i = mentionedUserIds.indexOf(userId);\n if (i < 0) {\n return false;\n } else {\n mentionedUserIds.splice(i, 1);\n return true;\n }\n }));\n }, [mentionedUserIds]);\n\n // broadcast channel + not operator\n if (isBroadcast && !isOperator) {\n return null;\n }\n // other conditions\n return (\n <div className=\"sendbird-message-input-wrapper\">\n {\n displaySuggestedMentionList && (\n <SuggestedMentionList\n targetNickname={mentionNickname}\n inputEvent={messageInputEvent}\n renderUserMentionItem={renderUserMentionItem}\n onUserItemClick={(user) => {\n if (user) {\n setMentionedUsers([...mentionedUsers, user]);\n }\n setMentionNickname('');\n setSelectedUser(user);\n setMessageInputEvent(null);\n }}\n onFocusItemChange={() => {\n setMessageInputEvent(null);\n }}\n onFetchUsers={(users) => {\n setMentionSuggestedUsers(users);\n }}\n ableAddMention={ableMention}\n maxMentionCount={maxUserMentionCount}\n maxSuggestionCount={maxUserSuggestionCount}\n />\n )\n }\n {quoteMessage && (\n <div className=\"sendbird-message-input-wrapper__quote-message-input\">\n <QuoteMessageInput\n replyingMessage={quoteMessage}\n onClose={() => setQuoteMessage(null)}\n />\n </div>\n )}\n <MessageInput\n className=\"sendbird-message-input-wrapper__message-input\"\n value={value}\n channelUrl={channel?.url}\n mentionSelectedUser={selectedUser}\n isMentionEnabled={isMentionEnabled}\n placeholder={\n (quoteMessage && stringSet.MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER)\n || (utils.isDisabledBecauseFrozen(channel) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__DISABLED)\n || (utils.isDisabledBecauseMuted(channel) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__MUTED)\n }\n ref={ref || messageInputRef}\n disabled={disabled}\n onStartTyping={() => {\n channel?.startTyping();\n }}\n onSendMessage={({ message, mentionTemplate }) => {\n sendMessage({\n message,\n quoteMessage,\n mentionedUsers,\n mentionTemplate,\n });\n setMentionNickname('');\n setMentionedUsers([]);\n setQuoteMessage(null);\n channel?.endTyping?.();\n }}\n onFileUpload={(file) => {\n sendFileMessage(file, quoteMessage);\n setQuoteMessage(null);\n }}\n onUserMentioned={(user) => {\n if (selectedUser?.userId === user?.userId) {\n setSelectedUser(null);\n setMentionNickname('');\n }\n }}\n onMentionStringChange={(mentionText) => {\n setMentionNickname(mentionText);\n }}\n onMentionedUserIdsUpdated={(userIds) => {\n setMentionedUserIds(userIds);\n }}\n onKeyDown={(e) => {\n if (displaySuggestedMentionList && mentionSuggestedUsers?.length > 0\n && ((e.key === MessageInputKeys.Enter && ableMention) || e.key === MessageInputKeys.ArrowUp || e.key === MessageInputKeys.ArrowDown)\n ) {\n setMessageInputEvent(e);\n return true;\n }\n return false;\n }}\n />\n </div>\n );\n}\n\nexport default React.forwardRef(MessageInputWrapper);\n"],"names":["MessageInputWrapper","props","ref","value","_a","useChannelContext","currentGroupChannel","initialized","quoteMessage","sendMessage","sendFileMessage","setQuoteMessage","messageInputRef","renderUserMentionItem","globalStore","useSendbirdStateContext","channel","_b","config","isOnline","isMentionEnabled","userMention","maxUserMentionCount","maxMentionCount","maxUserSuggestionCount","maxSuggestionCount","stringSet","useContext","LocalizationContext","_c","useState","mentionNickname","setMentionNickname","_d","mentionedUsers","setMentionedUsers","_e","mentionedUserIds","setMentionedUserIds","_f","selectedUser","setSelectedUser","_g","mentionSuggestedUsers","setMentionSuggestedUsers","_h","ableMention","setAbleMention","_j","messageInputEvent","setMessageInputEvent","disabled","utils","isOperator","isBroadcast","displaySuggestedMentionList","length","useEffect","url","filter","userId","i","indexOf","splice","React","SuggestedMentionList","user","__spreadArray","users","QuoteMessageInput","MessageInput","MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER","MESSAGE_INPUT__PLACE_HOLDER__DISABLED","MESSAGE_INPUT__PLACE_HOLDER__MUTED","startTyping","message","mentionTemplate","endTyping","file","mentionText","userIds","e","key","MessageInputKeys","Enter","ArrowUp","ArrowDown","forwardRef"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessageInput.js","sources":["../../../../src/modules/Channel/components/MessageInput/index.tsx"],"sourcesContent":["import React, { useState, useContext, useEffect } from 'react';\n\nimport './message-input.scss';\nimport * as utils from '../../context/utils';\n\nimport MessageInput from '../../../../ui/MessageInput';\nimport QuoteMessageInput from '../../../../ui/QuoteMessageInput';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport SuggestedMentionList from '../SuggestedMentionList';\nimport { MessageInputKeys } from '../../../../ui/MessageInput/const';\nimport VoiceMessageInputWrapper from './VoiceMessageInputWrapper';\nimport { useDirtyGetMentions } from '../../../Message/hooks/useDirtyGetMentions';\nimport { useMediaQueryContext } from '../../../../lib/MediaQueryContext';\n\nexport type MessageInputWrapperProps = {\n value?: string;\n disabled?: boolean;\n renderFileUploadIcon?: () => React.ReactElement;\n renderVoiceMessageIcon?: () => React.ReactElement;\n renderSendMessageIcon?: () => React.ReactElement;\n};\n\nconst MessageInputWrapper = (\n props: MessageInputWrapperProps,\n ref: React.MutableRefObject<any>,\n): JSX.Element => {\n const {\n value,\n renderFileUploadIcon,\n renderVoiceMessageIcon,\n renderSendMessageIcon,\n } = props;\n const propDisabled = props.disabled;\n const {\n currentGroupChannel,\n initialized,\n quoteMessage,\n sendMessage,\n sendFileMessage,\n sendVoiceMessage,\n setQuoteMessage,\n messageInputRef,\n renderUserMentionItem,\n } = useChannelContext();\n const globalStore = useSendbirdStateContext();\n const { isMobile } = useMediaQueryContext();\n const channel = currentGroupChannel;\n\n const {\n isOnline,\n isMentionEnabled,\n userMention,\n isVoiceMessageEnabled,\n logger,\n } = globalStore.config;\n const maxUserMentionCount = userMention?.maxMentionCount || 10;\n const maxUserSuggestionCount = userMention?.maxSuggestionCount || 15;\n\n const { stringSet } = useContext(LocalizationContext);\n const [mentionNickname, setMentionNickname] = useState('');\n // todo: set type\n const [mentionedUsers, setMentionedUsers] = useState([]);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [selectedUser, setSelectedUser] = useState(null);\n const [mentionSuggestedUsers, setMentionSuggestedUsers] = useState([]);\n const [messageInputEvent, setMessageInputEvent] = useState(null);\n const [showVoiceMessageInput, setShowVoiceMessageInput] = useState(false);\n const disabled = propDisabled\n || !initialized\n || utils.isDisabledBecauseFrozen(channel)\n || utils.isDisabledBecauseMuted(channel)\n || !isOnline;\n const isOperator = utils.isOperator(channel);\n const isBroadcast = channel?.isBroadcast;\n\n const displaySuggestedMentionList = isOnline\n && isMentionEnabled\n && mentionNickname.length > 0\n && !utils.isDisabledBecauseFrozen(channel)\n && !utils.isDisabledBecauseMuted(channel)\n && !isBroadcast;\n\n // Reset when channel changes\n useEffect(() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setSelectedUser(null);\n setMentionSuggestedUsers([]);\n setMessageInputEvent(null);\n setShowVoiceMessageInput(false);\n }, [channel?.url]);\n\n const mentionNodes = useDirtyGetMentions({ ref: ref || messageInputRef }, { logger });\n const ableMention = mentionNodes?.length < maxUserMentionCount;\n\n useEffect(() => {\n setMentionedUsers(mentionedUsers.filter(({ userId }) => {\n const i = mentionedUserIds.indexOf(userId);\n if (i < 0) {\n return false;\n } else {\n mentionedUserIds.splice(i, 1);\n return true;\n }\n }));\n }, [mentionedUserIds]);\n\n // broadcast channel + not operator\n if (isBroadcast && !isOperator) {\n return null;\n }\n // other conditions\n return (\n <div className={`sendbird-message-input-wrapper${showVoiceMessageInput ? '--voice-message' : ''}`}>\n {\n displaySuggestedMentionList && (\n <SuggestedMentionList\n targetNickname={mentionNickname}\n inputEvent={messageInputEvent}\n renderUserMentionItem={renderUserMentionItem}\n onUserItemClick={(user) => {\n if (user) {\n setMentionedUsers([...mentionedUsers, user]);\n }\n setMentionNickname('');\n setSelectedUser(user);\n setMessageInputEvent(null);\n }}\n onFocusItemChange={() => {\n setMessageInputEvent(null);\n }}\n onFetchUsers={(users) => {\n setMentionSuggestedUsers(users);\n }}\n ableAddMention={ableMention}\n maxMentionCount={maxUserMentionCount}\n maxSuggestionCount={maxUserSuggestionCount}\n />\n )\n }\n {quoteMessage && (\n <div className=\"sendbird-message-input-wrapper__quote-message-input\">\n <QuoteMessageInput\n replyingMessage={quoteMessage}\n onClose={() => setQuoteMessage(null)}\n />\n </div>\n )}\n {\n showVoiceMessageInput\n ? (\n <VoiceMessageInputWrapper\n channel={channel}\n onSubmitClick={(recordedFile, duration) => {\n sendVoiceMessage(recordedFile, duration, quoteMessage);\n setQuoteMessage(null);\n setShowVoiceMessageInput(false);\n }}\n onCancelClick={() => {\n setShowVoiceMessageInput(false);\n }}\n />\n )\n : (\n <MessageInput\n className=\"sendbird-message-input-wrapper__message-input\"\n value={value}\n channelUrl={channel?.url}\n mentionSelectedUser={selectedUser}\n isMentionEnabled={isMentionEnabled}\n isVoiceMessageEnabled={isVoiceMessageEnabled}\n onVoiceMessageIconClick={() => {\n setShowVoiceMessageInput(true);\n }}\n setMentionedUsers={setMentionedUsers}\n channel={channel}\n placeholder={\n (quoteMessage && stringSet.MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER)\n || (utils.isDisabledBecauseFrozen(channel) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__DISABLED)\n || (utils.isDisabledBecauseMuted(channel) && (\n isMobile ? stringSet.MESSAGE_INPUT__PLACE_HOLDER__MUTED_SHORT : stringSet.MESSAGE_INPUT__PLACE_HOLDER__MUTED\n ))\n }\n ref={ref || messageInputRef}\n disabled={disabled}\n renderFileUploadIcon={renderFileUploadIcon}\n renderSendMessageIcon={renderSendMessageIcon}\n renderVoiceMessageIcon={renderVoiceMessageIcon}\n onStartTyping={() => {\n channel?.startTyping();\n }}\n onSendMessage={({ message, mentionTemplate }) => {\n sendMessage({\n message,\n quoteMessage,\n mentionedUsers,\n mentionTemplate,\n });\n setMentionNickname('');\n setMentionedUsers([]);\n setQuoteMessage(null);\n channel?.endTyping?.();\n }}\n onFileUpload={(file) => {\n sendFileMessage(file, quoteMessage);\n setQuoteMessage(null);\n }}\n onUserMentioned={(user) => {\n if (selectedUser?.userId === user?.userId) {\n setSelectedUser(null);\n setMentionNickname('');\n }\n }}\n onMentionStringChange={(mentionText) => {\n setMentionNickname(mentionText);\n }}\n onMentionedUserIdsUpdated={(userIds) => {\n setMentionedUserIds(userIds);\n }}\n onKeyDown={(e) => {\n if (displaySuggestedMentionList && mentionSuggestedUsers?.length > 0\n && ((e.key === MessageInputKeys.Enter && ableMention) || e.key === MessageInputKeys.ArrowUp || e.key === MessageInputKeys.ArrowDown)\n ) {\n setMessageInputEvent(e);\n return true;\n }\n return false;\n }}\n />\n )\n }\n </div>\n );\n};\n\nexport default React.forwardRef(MessageInputWrapper);\n"],"names":["MessageInputWrapper","props","ref","value","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","propDisabled","disabled","currentGroupChannel","initialized","quoteMessage","sendMessage","sendFileMessage","sendVoiceMessage","setQuoteMessage","messageInputRef","renderUserMentionItem","useChannelContext","globalStore","useSendbirdStateContext","isMobile","useMediaQueryContext","channel","isOnline","isMentionEnabled","userMention","isVoiceMessageEnabled","logger","config","maxUserMentionCount","maxMentionCount","maxUserSuggestionCount","maxSuggestionCount","stringSet","useContext","LocalizationContext","mentionNickname","setMentionNickname","useState","mentionedUsers","setMentionedUsers","mentionedUserIds","setMentionedUserIds","selectedUser","setSelectedUser","mentionSuggestedUsers","setMentionSuggestedUsers","messageInputEvent","setMessageInputEvent","showVoiceMessageInput","setShowVoiceMessageInput","utils","isOperator","isBroadcast","displaySuggestedMentionList","length","useEffect","url","mentionNodes","useDirtyGetMentions","ableMention","filter","_ref","userId","i","indexOf","splice","React","createElement","className","SuggestedMentionList","targetNickname","inputEvent","onUserItemClick","user","onFocusItemChange","onFetchUsers","users","ableAddMention","QuoteMessageInput","replyingMessage","onClose","VoiceMessageInputWrapper","onSubmitClick","recordedFile","duration","onCancelClick","MessageInput","channelUrl","mentionSelectedUser","onVoiceMessageIconClick","placeholder","MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER","MESSAGE_INPUT__PLACE_HOLDER__DISABLED","MESSAGE_INPUT__PLACE_HOLDER__MUTED_SHORT","MESSAGE_INPUT__PLACE_HOLDER__MUTED","onStartTyping","startTyping","onSendMessage","_ref2","_channel$endTyping","message","mentionTemplate","endTyping","call","onFileUpload","file","onUserMentioned","onMentionStringChange","mentionText","onMentionedUserIdsUpdated","userIds","onKeyDown","e","key","MessageInputKeys","Enter","ArrowUp","ArrowDown","forwardRef"],"mappings":"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"}
|