@sendbird/uikit-react 3.6.11-beta.2 → 3.7.0-rc.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 +272 -345
- package/App.js.map +1 -1
- package/CHANGELOG.md +134 -0
- package/Channel/components/ChannelHeader.js +45 -50
- package/Channel/components/ChannelHeader.js.map +1 -1
- package/Channel/components/ChannelUI.js +76 -77
- package/Channel/components/ChannelUI.js.map +1 -1
- package/Channel/components/FileViewer.js +53 -58
- package/Channel/components/FileViewer.js.map +1 -1
- package/Channel/components/FrozenNotification.js +9 -12
- package/Channel/components/FrozenNotification.js.map +1 -1
- package/Channel/components/Message.js +198 -176
- package/Channel/components/Message.js.map +1 -1
- package/Channel/components/MessageInput.js +137 -130
- package/Channel/components/MessageInput.js.map +1 -1
- package/Channel/components/MessageList.js +171 -161
- package/Channel/components/MessageList.js.map +1 -1
- package/Channel/components/RemoveMessageModal.js +40 -41
- package/Channel/components/RemoveMessageModal.js.map +1 -1
- package/Channel/components/SuggestedMentionList.js +156 -136
- package/Channel/components/SuggestedMentionList.js.map +1 -1
- package/Channel/components/TypingIndicator.js +47 -48
- package/Channel/components/TypingIndicator.js.map +1 -1
- package/Channel/components/UnreadCount.js +17 -18
- package/Channel/components/UnreadCount.js.map +1 -1
- package/Channel/context.js +17 -17
- package/Channel/utils/compareMessagesForGrouping.js +11 -11
- package/Channel/utils/compareMessagesForGrouping.js.map +1 -1
- package/Channel/utils/getMessagePartsInfo.js +32 -26
- package/Channel/utils/getMessagePartsInfo.js.map +1 -1
- package/Channel.js +54 -51
- package/Channel.js.map +1 -1
- package/ChannelList/components/AddChannel.js +32 -30
- package/ChannelList/components/AddChannel.js.map +1 -1
- package/ChannelList/components/ChannelListHeader.js +22 -31
- package/ChannelList/components/ChannelListHeader.js.map +1 -1
- package/ChannelList/components/ChannelListUI.js +93 -88
- package/ChannelList/components/ChannelListUI.js.map +1 -1
- package/ChannelList/components/ChannelPreview.js +79 -75
- package/ChannelList/components/ChannelPreview.js.map +1 -1
- package/ChannelList/components/ChannelPreviewAction.js +85 -91
- package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/ChannelList/context.js +9 -10
- package/ChannelList/context.js.map +1 -1
- package/ChannelList.js +38 -35
- package/ChannelList.js.map +1 -1
- package/ChannelListProvider-f520f5b3.js +1051 -0
- package/ChannelListProvider-f520f5b3.js.map +1 -0
- package/ChannelProvider-7f6fd1f8.js +2080 -0
- package/ChannelProvider-7f6fd1f8.js.map +1 -0
- package/ChannelSettings/components/ChannelProfile.js +42 -37
- package/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/ChannelSettings/components/ChannelSettingsUI.js +44 -47
- package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/ChannelSettings/components/EditDetailsModal.js +54 -52
- package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/ChannelSettings/components/LeaveChannel.js +39 -41
- package/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/ChannelSettings/components/ModerationPanel.js +552 -509
- package/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/ChannelSettings/components/UserListItem.js +66 -66
- package/ChannelSettings/components/UserListItem.js.map +1 -1
- package/ChannelSettings/components/UserPanel.js +29 -26
- package/ChannelSettings/components/UserPanel.js.map +1 -1
- package/ChannelSettings/context.js +52 -57
- package/ChannelSettings/context.js.map +1 -1
- package/ChannelSettings.js +20 -19
- package/ChannelSettings.js.map +1 -1
- package/CreateChannel/components/CreateChannelUI.js +23 -25
- package/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/CreateChannel/components/InviteUsers.js +106 -102
- package/CreateChannel/components/InviteUsers.js.map +1 -1
- package/CreateChannel/components/SelectChannelType.js +38 -43
- package/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +22 -23
- package/CreateChannel.js.map +1 -1
- package/CreateChannelProvider-c25dd81b.js +48 -0
- package/{CreateChannelProvider-a2fad282.js.map → CreateChannelProvider-c25dd81b.js.map} +1 -1
- package/CreateOpenChannel/components/CreateOpenChannelUI.js +38 -36
- package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/CreateOpenChannel/context.js +29 -34
- package/CreateOpenChannel/context.js.map +1 -1
- package/CreateOpenChannel.js +20 -21
- package/CreateOpenChannel.js.map +1 -1
- package/EditUserProfile/components/EditUserProfileUI.js +152 -21
- package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/EditUserProfile/context.js +13 -13
- package/EditUserProfile/context.js.map +1 -1
- package/EditUserProfile.js +19 -19
- package/EditUserProfile.js.map +1 -1
- package/LocalizationContext-d18a86d8.js +20 -0
- package/{LocalizationContext-2463058b.js.map → LocalizationContext-d18a86d8.js.map} +1 -1
- package/MediaQueryContext-3eeeec4f.js +85 -0
- package/MediaQueryContext-3eeeec4f.js.map +1 -0
- package/MemberList-469dae9b.js +422 -0
- package/{MemberList-593867cb.js.map → MemberList-469dae9b.js.map} +1 -1
- package/Message/context.js +11 -12
- package/Message/context.js.map +1 -1
- package/Message/hooks/useDirtyGetMentions.js +21 -26
- package/Message/hooks/useDirtyGetMentions.js.map +1 -1
- package/MessageSearch/components/MessageSearchUI.js +56 -61
- package/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/MessageSearch/context.js +166 -177
- package/MessageSearch/context.js.map +1 -1
- package/MessageSearch.js +49 -47
- package/MessageSearch.js.map +1 -1
- package/OpenChannel/components/FrozenChannelNotification.js +6 -8
- package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
- package/OpenChannel/components/OpenChannelHeader.js +22 -27
- package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/OpenChannel/components/OpenChannelInput.js +32 -35
- package/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessage.js +170 -171
- package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessageList.js +70 -64
- package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/OpenChannel/components/OpenChannelUI.js +53 -54
- package/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/OpenChannel/context.js +8 -9
- package/OpenChannel/context.js.map +1 -1
- package/OpenChannel.js +37 -35
- package/OpenChannel.js.map +1 -1
- package/OpenChannelList/components/OpenChannelListUI.js +63 -61
- package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/OpenChannelList/components/OpenChannelPreview.js +22 -21
- package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
- package/OpenChannelList/context.js +3 -3
- package/OpenChannelList.js +27 -27
- package/OpenChannelList.js.map +1 -1
- package/{OpenChannelListProvider-a0a09f0b.js → OpenChannelListProvider-24e735a1.js} +156 -178
- package/{OpenChannelListProvider-a0a09f0b.js.map → OpenChannelListProvider-24e735a1.js.map} +1 -1
- package/OpenChannelProvider-e9cb0f98.js +1850 -0
- package/{OpenChannelProvider-3e4b8c8e.js.map → OpenChannelProvider-e9cb0f98.js.map} +1 -1
- package/OpenChannelSettings/components/EditDetailsModal.js +52 -51
- package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelProfile.js +30 -29
- package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +39 -47
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/OpenChannelSettings/components/OperatorUI.js +550 -518
- package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/OpenChannelSettings/components/ParticipantUI.js +16 -15
- package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/OpenChannelSettings/context.js +58 -57
- package/OpenChannelSettings/context.js.map +1 -1
- package/OpenChannelSettings.js +20 -19
- package/OpenChannelSettings.js.map +1 -1
- package/README.md +4 -4
- package/RemoveMessageModal-f0cd37a5.js +33 -0
- package/RemoveMessageModal-f0cd37a5.js.map +1 -0
- package/SendbirdProvider.js +726 -690
- package/SendbirdProvider.js.map +1 -1
- package/Thread/components/ParentMessageInfo.js +194 -181
- package/Thread/components/ParentMessageInfo.js.map +1 -1
- package/Thread/components/ParentMessageInfoItem.js +86 -79
- package/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/Thread/components/ThreadHeader.js +22 -22
- package/Thread/components/ThreadHeader.js.map +1 -1
- package/Thread/components/ThreadList.js +126 -94
- package/Thread/components/ThreadList.js.map +1 -1
- package/Thread/components/ThreadListItem.js +260 -241
- package/Thread/components/ThreadListItem.js.map +1 -1
- package/Thread/components/ThreadMessageInput.js +121 -120
- package/Thread/components/ThreadMessageInput.js.map +1 -1
- package/Thread/components/ThreadUI.js +128 -144
- package/Thread/components/ThreadUI.js.map +1 -1
- package/Thread/context/types.js +9 -9
- package/Thread/context/types.js.map +1 -1
- package/Thread/context.js +1678 -19
- package/Thread/context.js.map +1 -1
- package/Thread.js +76 -73
- package/Thread.js.map +1 -1
- package/UserProfileContext-26e71f9a.js +34 -0
- package/UserProfileContext-26e71f9a.js.map +1 -0
- package/VoicePlayer/context.js +3 -3
- package/VoicePlayer/useVoicePlayer.js +52 -46
- package/VoicePlayer/useVoicePlayer.js.map +1 -1
- package/VoiceRecorder/context.js +68 -64
- package/VoiceRecorder/context.js.map +1 -1
- package/VoiceRecorder/useVoiceRecorder.js +50 -52
- package/VoiceRecorder/useVoiceRecorder.js.map +1 -1
- package/{WebAudioUtils-f9386235.js → WebAudioUtils-dbb010a5.js} +38 -38
- package/{WebAudioUtils-f9386235.js.map → WebAudioUtils-dbb010a5.js.map} +1 -1
- package/{_rollupPluginBabelHelpers-50c9576f.js → _rollupPluginBabelHelpers-07dcbc2b.js} +17 -17
- package/_rollupPluginBabelHelpers-07dcbc2b.js.map +1 -0
- package/{actionTypes-501b8c11.js → actionTypes-3cd49b5c.js} +2 -2
- package/{actionTypes-501b8c11.js.map → actionTypes-3cd49b5c.js.map} +1 -1
- package/cjs/App.js +270 -344
- package/cjs/App.js.map +1 -1
- package/cjs/Channel/components/ChannelHeader.js +44 -49
- package/cjs/Channel/components/ChannelHeader.js.map +1 -1
- package/cjs/Channel/components/ChannelUI.js +79 -80
- package/cjs/Channel/components/ChannelUI.js.map +1 -1
- package/cjs/Channel/components/FileViewer.js +52 -57
- package/cjs/Channel/components/FileViewer.js.map +1 -1
- package/cjs/Channel/components/FrozenNotification.js +9 -12
- package/cjs/Channel/components/FrozenNotification.js.map +1 -1
- package/cjs/Channel/components/Message.js +197 -175
- package/cjs/Channel/components/Message.js.map +1 -1
- package/cjs/Channel/components/MessageInput.js +136 -129
- package/cjs/Channel/components/MessageInput.js.map +1 -1
- package/cjs/Channel/components/MessageList.js +173 -163
- package/cjs/Channel/components/MessageList.js.map +1 -1
- package/cjs/Channel/components/RemoveMessageModal.js +41 -42
- package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
- package/cjs/Channel/components/SuggestedMentionList.js +155 -135
- package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
- package/cjs/Channel/components/TypingIndicator.js +46 -47
- package/cjs/Channel/components/TypingIndicator.js.map +1 -1
- package/cjs/Channel/components/UnreadCount.js +17 -18
- package/cjs/Channel/components/UnreadCount.js.map +1 -1
- package/cjs/Channel/context.js +17 -17
- package/cjs/Channel/utils/compareMessagesForGrouping.js +11 -11
- package/cjs/Channel/utils/compareMessagesForGrouping.js.map +1 -1
- package/cjs/Channel/utils/getMessagePartsInfo.js +32 -26
- package/cjs/Channel/utils/getMessagePartsInfo.js.map +1 -1
- package/cjs/Channel.js +54 -51
- package/cjs/Channel.js.map +1 -1
- package/cjs/ChannelList/components/AddChannel.js +31 -29
- package/cjs/ChannelList/components/AddChannel.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListHeader.js +21 -30
- package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListUI.js +96 -91
- package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreview.js +78 -74
- package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreviewAction.js +84 -91
- package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/cjs/ChannelList/context.js +9 -10
- package/cjs/ChannelList/context.js.map +1 -1
- package/cjs/ChannelList.js +38 -35
- package/cjs/ChannelList.js.map +1 -1
- package/cjs/ChannelListProvider-a418de2e.js +1060 -0
- package/cjs/ChannelListProvider-a418de2e.js.map +1 -0
- package/cjs/ChannelProvider-7fa98120.js +2088 -0
- package/cjs/ChannelProvider-7fa98120.js.map +1 -0
- package/cjs/ChannelSettings/components/ChannelProfile.js +41 -36
- package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +44 -47
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/cjs/ChannelSettings/components/EditDetailsModal.js +54 -52
- package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/ChannelSettings/components/LeaveChannel.js +38 -40
- package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/cjs/ChannelSettings/components/ModerationPanel.js +559 -516
- package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/cjs/ChannelSettings/components/UserListItem.js +66 -66
- package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
- package/cjs/ChannelSettings/components/UserPanel.js +29 -26
- package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
- package/cjs/ChannelSettings/context.js +51 -56
- package/cjs/ChannelSettings/context.js.map +1 -1
- package/cjs/ChannelSettings.js +20 -19
- package/cjs/ChannelSettings.js.map +1 -1
- package/cjs/CreateChannel/components/CreateChannelUI.js +23 -25
- package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/cjs/CreateChannel/components/InviteUsers.js +106 -102
- package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
- package/cjs/CreateChannel/components/SelectChannelType.js +37 -42
- package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/cjs/CreateChannel/context.js +4 -4
- package/cjs/CreateChannel.js +22 -23
- package/cjs/CreateChannel.js.map +1 -1
- package/cjs/CreateChannelProvider-70c9cb7c.js +55 -0
- package/cjs/{CreateChannelProvider-8b8a557c.js.map → CreateChannelProvider-70c9cb7c.js.map} +1 -1
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +39 -37
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/cjs/CreateOpenChannel/context.js +28 -33
- package/cjs/CreateOpenChannel/context.js.map +1 -1
- package/cjs/CreateOpenChannel.js +20 -21
- package/cjs/CreateOpenChannel.js.map +1 -1
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +153 -22
- package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/cjs/EditUserProfile/context.js +13 -13
- package/cjs/EditUserProfile/context.js.map +1 -1
- package/cjs/EditUserProfile.js +21 -21
- package/cjs/EditUserProfile.js.map +1 -1
- package/cjs/{LocalizationContext-482c1343.js → LocalizationContext-5009012e.js} +9 -9
- package/cjs/{LocalizationContext-482c1343.js.map → LocalizationContext-5009012e.js.map} +1 -1
- package/cjs/MediaQueryContext-d6fdbe43.js +92 -0
- package/cjs/MediaQueryContext-d6fdbe43.js.map +1 -0
- package/cjs/MemberList-529a0086.js +428 -0
- package/cjs/{MemberList-26b8de48.js.map → MemberList-529a0086.js.map} +1 -1
- package/cjs/Message/context.js +11 -12
- package/cjs/Message/context.js.map +1 -1
- package/cjs/Message/hooks/useDirtyGetMentions.js +21 -26
- package/cjs/Message/hooks/useDirtyGetMentions.js.map +1 -1
- package/cjs/MessageSearch/components/MessageSearchUI.js +60 -65
- package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/cjs/MessageSearch/context.js +165 -176
- package/cjs/MessageSearch/context.js.map +1 -1
- package/cjs/MessageSearch.js +49 -47
- package/cjs/MessageSearch.js.map +1 -1
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +6 -8
- package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelHeader.js +22 -27
- package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelInput.js +32 -35
- package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessage.js +169 -170
- package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +69 -63
- package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelUI.js +56 -57
- 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 +37 -35
- package/cjs/OpenChannel.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelListUI.js +66 -64
- package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelPreview.js +22 -21
- package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
- package/cjs/OpenChannelList/context.js +3 -3
- package/cjs/OpenChannelList.js +27 -27
- package/cjs/OpenChannelList.js.map +1 -1
- package/cjs/OpenChannelListProvider-0b8cd3bf.js +416 -0
- package/cjs/{OpenChannelListProvider-2e3ee48d.js.map → OpenChannelListProvider-0b8cd3bf.js.map} +1 -1
- package/cjs/OpenChannelProvider-d8cc11fe.js +1859 -0
- package/cjs/{OpenChannelProvider-8577ea58.js.map → OpenChannelProvider-d8cc11fe.js.map} +1 -1
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +53 -52
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +29 -28
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +40 -48
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OperatorUI.js +557 -525
- package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +16 -15
- package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/cjs/OpenChannelSettings/context.js +57 -56
- package/cjs/OpenChannelSettings/context.js.map +1 -1
- package/cjs/OpenChannelSettings.js +20 -19
- package/cjs/OpenChannelSettings.js.map +1 -1
- package/cjs/RemoveMessageModal-f029d40e.js +39 -0
- package/cjs/RemoveMessageModal-f029d40e.js.map +1 -0
- package/cjs/SendbirdProvider.js +733 -693
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfo.js +193 -180
- package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfoItem.js +86 -79
- package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/cjs/Thread/components/ThreadHeader.js +22 -22
- package/cjs/Thread/components/ThreadHeader.js.map +1 -1
- package/cjs/Thread/components/ThreadList.js +125 -93
- package/cjs/Thread/components/ThreadList.js.map +1 -1
- package/cjs/Thread/components/ThreadListItem.js +263 -244
- package/cjs/Thread/components/ThreadListItem.js.map +1 -1
- package/cjs/Thread/components/ThreadMessageInput.js +120 -119
- package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
- package/cjs/Thread/components/ThreadUI.js +134 -150
- package/cjs/Thread/components/ThreadUI.js.map +1 -1
- package/cjs/Thread/context/types.js +9 -13
- package/cjs/Thread/context/types.js.map +1 -1
- package/cjs/Thread/context.js +1680 -21
- package/cjs/Thread/context.js.map +1 -1
- package/cjs/Thread.js +76 -73
- package/cjs/Thread.js.map +1 -1
- package/cjs/UserProfileContext-922a43ec.js +41 -0
- package/cjs/UserProfileContext-922a43ec.js.map +1 -0
- package/cjs/VoicePlayer/context.js +3 -3
- package/cjs/VoicePlayer/useVoicePlayer.js +52 -46
- package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -1
- package/cjs/VoiceRecorder/context.js +67 -63
- package/cjs/VoiceRecorder/context.js.map +1 -1
- package/cjs/VoiceRecorder/useVoiceRecorder.js +49 -51
- package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -1
- package/cjs/{WebAudioUtils-142344fd.js → WebAudioUtils-29717597.js} +38 -38
- package/cjs/{WebAudioUtils-142344fd.js.map → WebAudioUtils-29717597.js.map} +1 -1
- package/cjs/{_rollupPluginBabelHelpers-83d7e84b.js → _rollupPluginBabelHelpers-94c18dc1.js} +16 -17
- package/cjs/_rollupPluginBabelHelpers-94c18dc1.js.map +1 -0
- package/cjs/{actionTypes-1d118952.js → actionTypes-7fa02f94.js} +2 -2
- package/cjs/{actionTypes-1d118952.js.map → actionTypes-7fa02f94.js.map} +1 -1
- package/cjs/{color-d83b77ac.js → color-477ddbd4.js} +12 -13
- package/cjs/color-477ddbd4.js.map +1 -0
- package/cjs/{compareIds-bef997cb.js → compareIds-de541666.js} +7 -6
- package/cjs/compareIds-de541666.js.map +1 -0
- package/cjs/{const-1726bde0.js → const-640252c1.js} +4 -4
- package/cjs/{const-1726bde0.js.map → const-640252c1.js.map} +1 -1
- package/cjs/const-9def5c09.js +19 -0
- package/cjs/{const-67ff9e34.js.map → const-9def5c09.js.map} +1 -1
- package/cjs/consts-54f5c12d.js +6 -0
- package/cjs/consts-54f5c12d.js.map +1 -0
- package/cjs/consts-85cd42fa.js +6 -0
- package/cjs/{consts-bf228385.js.map → consts-85cd42fa.js.map} +1 -1
- package/cjs/{consts-fb07c671.js → consts-95462b21.js} +18 -25
- package/cjs/{consts-fb07c671.js.map → consts-95462b21.js.map} +1 -1
- package/cjs/consts-a3b7ae99.js +6 -0
- package/cjs/{consts-d3b53f23.js.map → consts-a3b7ae99.js.map} +1 -1
- package/cjs/{context-bd2878ff.js → context-9814fafe.js} +5 -6
- package/cjs/{context-bd2878ff.js.map → context-9814fafe.js.map} +1 -1
- package/cjs/dist/index.css +110 -95
- 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/hooks/useModal.js +84 -0
- package/cjs/hooks/useModal.js.map +1 -0
- package/cjs/{index-81baccd0.js → index-0a25b9b2.js} +166 -154
- package/cjs/index-0a25b9b2.js.map +1 -0
- package/cjs/index-0ec5a831.js +308 -0
- package/cjs/{index-1f6b30ea.js.map → index-0ec5a831.js.map} +1 -1
- package/cjs/{index-18720f0d.js → index-35820a94.js} +2 -2
- package/cjs/{index-18720f0d.js.map → index-35820a94.js.map} +1 -1
- package/cjs/index-609b07a2.js +7 -0
- package/cjs/index-609b07a2.js.map +1 -0
- package/cjs/index-6b0644d7.js +369 -0
- package/cjs/index-6b0644d7.js.map +1 -0
- package/cjs/{index-857630c5.js → index-7b0c6630.js} +104 -114
- package/cjs/index-7b0c6630.js.map +1 -0
- package/cjs/index-80a11b6a.js +197 -0
- package/cjs/{index-6ab9a40d.js.map → index-80a11b6a.js.map} +1 -1
- package/cjs/{index-4eb7e2b5.js → index-826b76d5.js} +2 -4
- package/cjs/index-826b76d5.js.map +1 -0
- package/cjs/{index-11f9cc0f.js → index-83d2aed9.js} +3 -12
- package/cjs/index-83d2aed9.js.map +1 -0
- package/cjs/index-aeb36f01.js +173 -0
- package/cjs/index-aeb36f01.js.map +1 -0
- package/cjs/{index-c9b003b3.js → index-b6d51e74.js} +56 -193
- package/cjs/index-b6d51e74.js.map +1 -0
- package/cjs/index-b995f638.js +741 -0
- package/cjs/index-b995f638.js.map +1 -0
- package/cjs/{index-759f2a26.js → index-bdf7089c.js} +72 -80
- package/cjs/{index-759f2a26.js.map → index-bdf7089c.js.map} +1 -1
- package/cjs/{index-7c374c20.js → index-c22e0cbf.js} +25 -28
- package/cjs/{index-7c374c20.js.map → index-c22e0cbf.js.map} +1 -1
- package/cjs/index-daf80c58.js +20 -0
- package/cjs/index-daf80c58.js.map +1 -0
- package/cjs/index-e81e2882.js +59 -0
- package/cjs/{index-2ab19f9b.js.map → index-e81e2882.js.map} +1 -1
- package/cjs/{index-91b4af96.js → index-ee3bf381.js} +39 -37
- package/cjs/{index-91b4af96.js.map → index-ee3bf381.js.map} +1 -1
- package/cjs/{index-d04f312e.js → index-fd8a0abb.js} +10 -30
- package/cjs/index-fd8a0abb.js.map +1 -0
- package/cjs/index.js +66 -63
- package/cjs/index.js.map +1 -1
- package/cjs/lame.all.js.map +1 -1
- package/cjs/package.json +2 -49
- package/cjs/{topics-adde627b.js → pubSub/topics.js} +6 -2
- package/cjs/pubSub/topics.js.map +1 -0
- package/cjs/{resolvedReplyType-85b4bd7c.js → resolvedReplyType-c20ef661.js} +1 -1
- package/cjs/{resolvedReplyType-85b4bd7c.js.map → resolvedReplyType-c20ef661.js.map} +1 -1
- package/cjs/sendbirdSelectors.js +381 -332
- package/cjs/sendbirdSelectors.js.map +1 -1
- package/cjs/stringFormatterUtils-e324636c.js +16 -0
- package/cjs/{stringFormatterUtils-8d6592ca.js.map → stringFormatterUtils-e324636c.js.map} +1 -1
- package/cjs/{stringSet-d00535a5.js → stringSet-98b52c49.js} +9 -2
- package/cjs/stringSet-98b52c49.js.map +1 -0
- package/cjs/{tokenize-9296fc47.js → tokenize-91bdbeb0.js} +56 -61
- package/cjs/{tokenize-9296fc47.js.map → tokenize-91bdbeb0.js.map} +1 -1
- package/cjs/tslib.es6-2f2b0bca.js +102 -0
- package/cjs/tslib.es6-2f2b0bca.js.map +1 -0
- package/cjs/types-31ed2276.js +11 -0
- package/cjs/types-31ed2276.js.map +1 -0
- package/cjs/types-66554668.js +15 -0
- package/cjs/types-66554668.js.map +1 -0
- package/cjs/ui/Accordion.js +18 -19
- package/cjs/ui/Accordion.js.map +1 -1
- package/cjs/ui/AccordionGroup.js +11 -10
- package/cjs/ui/AccordionGroup.js.map +1 -1
- package/cjs/ui/AdminMessage.js +10 -10
- package/cjs/ui/AdminMessage.js.map +1 -1
- package/cjs/ui/Avatar.js +59 -55
- package/cjs/ui/Avatar.js.map +1 -1
- package/cjs/ui/Badge.js +15 -16
- package/cjs/ui/Badge.js.map +1 -1
- package/cjs/ui/BottomSheet.js +15 -17
- package/cjs/ui/BottomSheet.js.map +1 -1
- package/cjs/ui/Button.js +31 -33
- package/cjs/ui/Button.js.map +1 -1
- package/cjs/ui/ChannelAvatar.js +41 -38
- package/cjs/ui/ChannelAvatar.js.map +1 -1
- package/cjs/ui/Checkbox.js +10 -9
- package/cjs/ui/Checkbox.js.map +1 -1
- package/cjs/ui/ConnectionStatus.js +5 -7
- package/cjs/ui/ConnectionStatus.js.map +1 -1
- package/cjs/ui/ContextMenu.js +143 -144
- package/cjs/ui/ContextMenu.js.map +1 -1
- package/cjs/ui/DateSeparator.js +14 -12
- package/cjs/ui/DateSeparator.js.map +1 -1
- package/cjs/ui/EmojiReactions.js +206 -176
- package/cjs/ui/EmojiReactions.js.map +1 -1
- package/cjs/ui/FileMessageItemBody.js +23 -23
- package/cjs/ui/FileMessageItemBody.js.map +1 -1
- package/cjs/ui/FileViewer.js +14 -12
- package/cjs/ui/FileViewer.js.map +1 -1
- package/cjs/ui/Icon.js +16 -16
- package/cjs/ui/Icon.js.map +1 -1
- package/cjs/ui/IconButton.js +28 -20
- package/cjs/ui/IconButton.js.map +1 -1
- package/cjs/ui/ImageRenderer.js +84 -64
- package/cjs/ui/ImageRenderer.js.map +1 -1
- package/cjs/ui/Input.js +14 -16
- package/cjs/ui/Input.js.map +1 -1
- package/cjs/ui/Label.js +2 -2
- package/cjs/ui/LinkLabel.js +2 -2
- package/cjs/ui/LinkLabel.js.map +1 -1
- package/cjs/ui/Loader.js +12 -10
- package/cjs/ui/Loader.js.map +1 -1
- package/cjs/ui/MentionLabel.js +63 -59
- package/cjs/ui/MentionLabel.js.map +1 -1
- package/cjs/ui/MentionUserLabel.js +10 -10
- package/cjs/ui/MentionUserLabel.js.map +1 -1
- package/cjs/ui/MessageContent.js +187 -171
- package/cjs/ui/MessageContent.js.map +1 -1
- package/cjs/ui/MessageInput/hooks/usePaste.js +5 -4
- package/cjs/ui/MessageInput/hooks/usePaste.js.map +1 -1
- package/cjs/ui/MessageInput.js +55 -57
- package/cjs/ui/MessageInput.js.map +1 -1
- package/cjs/ui/MessageItemMenu.js +93 -72
- package/cjs/ui/MessageItemMenu.js.map +1 -1
- package/cjs/ui/MessageItemReactionMenu.js +64 -56
- package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
- package/cjs/ui/MessageSearchFileItem.js +40 -49
- package/cjs/ui/MessageSearchFileItem.js.map +1 -1
- package/cjs/ui/MessageSearchItem.js +32 -40
- package/cjs/ui/MessageSearchItem.js.map +1 -1
- package/cjs/ui/MessageStatus.js +11 -11
- package/cjs/ui/Modal.js +57 -59
- 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 +47 -47
- package/cjs/ui/OGMessageItemBody.js.map +1 -1
- package/cjs/ui/OpenChannelAdminMessage.js +7 -8
- package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
- package/cjs/ui/OpenChannelAvatar.js +17 -18
- package/cjs/ui/OpenChannelAvatar.js.map +1 -1
- package/cjs/ui/OpenchannelConversationHeader.js +13 -17
- package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
- package/cjs/ui/OpenchannelFileMessage.js +147 -139
- package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
- package/cjs/ui/OpenchannelOGMessage.js +185 -178
- package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
- package/cjs/ui/OpenchannelThumbnailMessage.js +220 -213
- package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/cjs/ui/OpenchannelUserMessage.js +172 -164
- package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
- package/cjs/ui/PlaceHolder.js +108 -10
- package/cjs/ui/PlaceHolder.js.map +1 -1
- package/cjs/ui/PlaybackTime.js +16 -15
- package/cjs/ui/PlaybackTime.js.map +1 -1
- package/cjs/ui/ProgressBar.js +15 -13
- package/cjs/ui/ProgressBar.js.map +1 -1
- package/cjs/ui/QuoteMessage.js +41 -44
- package/cjs/ui/QuoteMessage.js.map +1 -1
- package/cjs/ui/QuoteMessageInput.js +45 -31
- package/cjs/ui/QuoteMessageInput.js.map +1 -1
- package/cjs/ui/ReactionBadge.js +17 -13
- package/cjs/ui/ReactionBadge.js.map +1 -1
- package/cjs/ui/ReactionButton.js +19 -19
- package/cjs/ui/ReactionButton.js.map +1 -1
- package/cjs/ui/SortByRow.js +14 -14
- package/cjs/ui/SortByRow.js.map +1 -1
- package/cjs/ui/TextButton.js +21 -13
- package/cjs/ui/TextButton.js.map +1 -1
- package/cjs/ui/TextMessageItemBody.js +33 -31
- package/cjs/ui/TextMessageItemBody.js.map +1 -1
- package/cjs/ui/ThreadReplies.js +21 -25
- package/cjs/ui/ThreadReplies.js.map +1 -1
- package/cjs/ui/ThumbnailMessageItemBody.js +37 -28
- package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/cjs/ui/Toggle.js +85 -77
- package/cjs/ui/Toggle.js.map +1 -1
- package/cjs/ui/Tooltip.js +9 -8
- package/cjs/ui/Tooltip.js.map +1 -1
- package/cjs/ui/TooltipWrapper.js +18 -17
- package/cjs/ui/TooltipWrapper.js.map +1 -1
- package/cjs/ui/UnknownMessageItemBody.js +19 -20
- package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
- package/cjs/ui/UserListItem.js +80 -75
- package/cjs/ui/UserListItem.js.map +1 -1
- package/cjs/ui/UserProfile.js +28 -33
- package/cjs/ui/UserProfile.js.map +1 -1
- package/cjs/ui/VoiceMessageItemBody.js +49 -43
- package/cjs/ui/VoiceMessageItemBody.js.map +1 -1
- package/cjs/ui/VoiceMessgeInput.js +8 -7
- package/cjs/ui/VoiceMessgeInput.js.map +1 -1
- package/cjs/ui/Word.js +29 -27
- package/cjs/ui/Word.js.map +1 -1
- package/cjs/{useHandleUploadFiles-b2fc56e5.js → useHandleUploadFiles-fbe6ad64.js} +114 -127
- package/cjs/useHandleUploadFiles-fbe6ad64.js.map +1 -0
- package/cjs/useLongPress-c1da8ba7.js +105 -0
- package/cjs/useLongPress-c1da8ba7.js.map +1 -0
- package/cjs/useSendMultipleFilesMessage-87e0ffa3.js +316 -0
- package/cjs/useSendMultipleFilesMessage-87e0ffa3.js.map +1 -0
- package/cjs/useSendbirdStateContext.js +8 -3
- package/cjs/useSendbirdStateContext.js.map +1 -1
- package/cjs/useStatefulFileInfoList-aa70b6b9.js +228 -0
- package/cjs/useStatefulFileInfoList-aa70b6b9.js.map +1 -0
- package/cjs/utils/message/getOutgoingMessageState.js +14 -16
- package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
- package/cjs/utils/message/isVoiceMessage.js +4 -4
- package/cjs/utils/message/isVoiceMessage.js.map +1 -1
- package/cjs/utils-0fac6ad1.js +27 -0
- package/cjs/utils-0fac6ad1.js.map +1 -0
- package/cjs/utils-180c6bc8.js +10 -0
- package/cjs/utils-180c6bc8.js.map +1 -0
- package/cjs/{utils-991911af.js → utils-46483130.js} +3 -3
- package/cjs/{utils-991911af.js.map → utils-46483130.js.map} +1 -1
- package/cjs/utils-55fc6797.js +170 -0
- package/cjs/utils-55fc6797.js.map +1 -0
- package/cjs/utils-851724e0.js +62 -0
- package/cjs/utils-851724e0.js.map +1 -0
- package/cjs/utils-e313131f.js +35 -0
- package/cjs/utils-e313131f.js.map +1 -0
- package/cjs/uuid-c74bbbb6.js +17 -0
- package/cjs/{uuid-b2806cf5.js.map → uuid-c74bbbb6.js.map} +1 -1
- package/cjs/withSendbird.js +16 -22
- package/cjs/withSendbird.js.map +1 -1
- package/{color-b7f211a8.js → color-1383d4ab.js} +5 -5
- package/{color-b7f211a8.js.map → color-1383d4ab.js.map} +1 -1
- package/compareIds-b56b02f1.js +16 -0
- package/compareIds-b56b02f1.js.map +1 -0
- package/{const-74ec9eb4.js → const-4bc3721f.js} +4 -4
- package/{const-74ec9eb4.js.map → const-4bc3721f.js.map} +1 -1
- package/const-e3326913.js +13 -0
- package/{const-711048c3.js.map → const-e3326913.js.map} +1 -1
- package/consts-7f4d53a3.js +4 -0
- package/consts-7f4d53a3.js.map +1 -0
- package/consts-833420ed.js +4 -0
- package/{consts-6ee24012.js.map → consts-833420ed.js.map} +1 -1
- package/consts-aa64aca8.js +30 -0
- package/{consts-691a3935.js.map → consts-aa64aca8.js.map} +1 -1
- package/consts-f0ba9b80.js +4 -0
- package/consts-f0ba9b80.js.map +1 -0
- package/context-ae47ac54.js +12 -0
- package/{context-b4c70964.js.map → context-ae47ac54.js.map} +1 -1
- package/dist/index.css +110 -95
- package/dist/index.css.map +1 -1
- package/handlers/OpenChannelHandler.js.map +1 -1
- package/handlers/SessionHandler.js.map +1 -1
- package/hooks/useModal.js +73 -0
- package/hooks/useModal.js.map +1 -0
- package/{index-aa520474.js → index-12103973.js} +2 -2
- package/{index-aa520474.js.map → index-12103973.js.map} +1 -1
- package/index-124a5766.js +298 -0
- package/{index-e15f6b6a.js.map → index-124a5766.js.map} +1 -1
- package/{index-13401b87.js → index-1432c287.js} +2 -4
- package/index-1432c287.js.map +1 -0
- package/{index-b22c4150.js → index-1969ccd8.js} +25 -28
- package/{index-b22c4150.js.map → index-1969ccd8.js.map} +1 -1
- package/index-3d508585.js +53 -0
- package/{index-ae7ef8cf.js.map → index-3d508585.js.map} +1 -1
- package/{index-8a01c364.js → index-40447645.js} +73 -81
- package/{index-8a01c364.js.map → index-40447645.js.map} +1 -1
- package/{index-c421b228.js → index-7a1085b6.js} +99 -109
- package/index-7a1085b6.js.map +1 -0
- package/index-89b3b8ba.js +362 -0
- package/index-89b3b8ba.js.map +1 -0
- package/index-8c72f0bd.js +182 -0
- package/{index-98138798.js.map → index-8c72f0bd.js.map} +1 -1
- package/index-942c5fa2.js +161 -0
- package/index-942c5fa2.js.map +1 -0
- package/index-c6095960.js +4 -0
- package/index-c6095960.js.map +1 -0
- package/index-c7ed4aef.js +13 -0
- package/index-c7ed4aef.js.map +1 -0
- package/{index-daa3ae67.js → index-c81fd6ec.js} +56 -193
- package/index-c81fd6ec.js.map +1 -0
- package/{index-7700a436.js → index-d3f61405.js} +10 -30
- package/index-d3f61405.js.map +1 -0
- package/{index-5cb32ab5.js → index-dc1827ea.js} +3 -12
- package/index-dc1827ea.js.map +1 -0
- package/{index-3530f4f6.js → index-ec0c048b.js} +39 -37
- package/{index-3530f4f6.js.map → index-ec0c048b.js.map} +1 -1
- package/{index-b25ffa7e.js → index-eec0ce47.js} +166 -154
- package/index-eec0ce47.js.map +1 -0
- package/index-fc1642cb.js +692 -0
- package/index-fc1642cb.js.map +1 -0
- package/index.d.ts +143 -79
- package/index.js +66 -63
- package/index.js.map +1 -1
- package/lame.all.js.map +1 -1
- package/package.json +3 -3
- package/{topics-5659403d.js → pubSub/topics.js} +4 -3
- package/pubSub/topics.js.map +1 -0
- package/{resolvedReplyType-1a128514.js → resolvedReplyType-0532593c.js} +1 -1
- package/{resolvedReplyType-1a128514.js.map → resolvedReplyType-0532593c.js.map} +1 -1
- package/sendbirdSelectors.js +381 -332
- package/sendbirdSelectors.js.map +1 -1
- package/stringFormatterUtils-444f6f4c.js +14 -0
- package/{stringFormatterUtils-dbad592d.js.map → stringFormatterUtils-444f6f4c.js.map} +1 -1
- package/{stringSet-2814bf17.js → stringSet-1106c8ec.js} +9 -2
- package/stringSet-1106c8ec.js.map +1 -0
- package/{tokenize-4b153552.js → tokenize-d17bf862.js} +56 -61
- package/{tokenize-4b153552.js.map → tokenize-d17bf862.js.map} +1 -1
- package/tslib.es6-0c779aab.js +97 -0
- package/tslib.es6-0c779aab.js.map +1 -0
- package/types-4ffc52f6.js +15 -0
- package/types-4ffc52f6.js.map +1 -0
- package/types-50e412d8.js +9 -0
- package/types-50e412d8.js.map +1 -0
- package/ui/Accordion.js +18 -19
- package/ui/Accordion.js.map +1 -1
- package/ui/AccordionGroup.js +11 -10
- package/ui/AccordionGroup.js.map +1 -1
- package/ui/AdminMessage.js +10 -10
- package/ui/AdminMessage.js.map +1 -1
- package/ui/Avatar.js +59 -55
- package/ui/Avatar.js.map +1 -1
- package/ui/Badge.js +15 -16
- package/ui/Badge.js.map +1 -1
- package/ui/BottomSheet.js +15 -17
- package/ui/BottomSheet.js.map +1 -1
- package/ui/Button.js +19 -26
- package/ui/Button.js.map +1 -1
- package/ui/ChannelAvatar.js +41 -38
- package/ui/ChannelAvatar.js.map +1 -1
- package/ui/Checkbox.js +10 -9
- package/ui/Checkbox.js.map +1 -1
- package/ui/ConnectionStatus.js +5 -7
- package/ui/ConnectionStatus.js.map +1 -1
- package/ui/ContextMenu.js +143 -144
- package/ui/ContextMenu.js.map +1 -1
- package/ui/DateSeparator.js +14 -12
- package/ui/DateSeparator.js.map +1 -1
- package/ui/EmojiReactions.js +207 -177
- package/ui/EmojiReactions.js.map +1 -1
- package/ui/FileMessageItemBody.js +23 -23
- package/ui/FileMessageItemBody.js.map +1 -1
- package/ui/FileViewer.js +14 -12
- package/ui/FileViewer.js.map +1 -1
- package/ui/Icon.js +2 -2
- package/ui/Icon.js.map +1 -1
- package/ui/IconButton.js +28 -20
- package/ui/IconButton.js.map +1 -1
- package/ui/ImageRenderer.js +84 -65
- package/ui/ImageRenderer.js.map +1 -1
- package/ui/Input.js +14 -16
- package/ui/Input.js.map +1 -1
- package/ui/Label.js +2 -2
- package/ui/LinkLabel.js +2 -2
- package/ui/LinkLabel.js.map +1 -1
- package/ui/Loader.js +12 -10
- package/ui/Loader.js.map +1 -1
- package/ui/MentionLabel.js +64 -60
- package/ui/MentionLabel.js.map +1 -1
- package/ui/MentionUserLabel.js +10 -10
- package/ui/MentionUserLabel.js.map +1 -1
- package/ui/MessageContent.js +186 -170
- package/ui/MessageContent.js.map +1 -1
- package/ui/MessageInput/hooks/usePaste.js +5 -4
- package/ui/MessageInput/hooks/usePaste.js.map +1 -1
- package/ui/MessageInput.js +48 -50
- package/ui/MessageInput.js.map +1 -1
- package/ui/MessageItemMenu.js +93 -72
- package/ui/MessageItemMenu.js.map +1 -1
- package/ui/MessageItemReactionMenu.js +64 -56
- package/ui/MessageItemReactionMenu.js.map +1 -1
- package/ui/MessageSearchFileItem.js +40 -49
- package/ui/MessageSearchFileItem.js.map +1 -1
- package/ui/MessageSearchItem.js +32 -40
- package/ui/MessageSearchItem.js.map +1 -1
- package/ui/MessageStatus.js +11 -11
- package/ui/Modal.js +57 -59
- package/ui/Modal.js.map +1 -1
- package/ui/MutedAvatarOverlay.js +10 -10
- package/ui/MutedAvatarOverlay.js.map +1 -1
- package/ui/OGMessageItemBody.js +47 -47
- package/ui/OGMessageItemBody.js.map +1 -1
- package/ui/OpenChannelAdminMessage.js +7 -8
- package/ui/OpenChannelAdminMessage.js.map +1 -1
- package/ui/OpenChannelAvatar.js +17 -18
- package/ui/OpenChannelAvatar.js.map +1 -1
- package/ui/OpenchannelConversationHeader.js +13 -17
- package/ui/OpenchannelConversationHeader.js.map +1 -1
- package/ui/OpenchannelFileMessage.js +147 -139
- package/ui/OpenchannelFileMessage.js.map +1 -1
- package/ui/OpenchannelOGMessage.js +185 -178
- package/ui/OpenchannelOGMessage.js.map +1 -1
- package/ui/OpenchannelThumbnailMessage.js +220 -213
- package/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/ui/OpenchannelUserMessage.js +172 -164
- package/ui/OpenchannelUserMessage.js.map +1 -1
- package/ui/PlaceHolder.js +106 -8
- package/ui/PlaceHolder.js.map +1 -1
- package/ui/PlaybackTime.js +16 -15
- package/ui/PlaybackTime.js.map +1 -1
- package/ui/ProgressBar.js +15 -13
- package/ui/ProgressBar.js.map +1 -1
- package/ui/QuoteMessage.js +41 -44
- package/ui/QuoteMessage.js.map +1 -1
- package/ui/QuoteMessageInput.js +45 -31
- package/ui/QuoteMessageInput.js.map +1 -1
- package/ui/ReactionBadge.js +17 -13
- package/ui/ReactionBadge.js.map +1 -1
- package/ui/ReactionButton.js +19 -19
- package/ui/ReactionButton.js.map +1 -1
- package/ui/SortByRow.js +14 -14
- package/ui/SortByRow.js.map +1 -1
- package/ui/TextButton.js +21 -13
- package/ui/TextButton.js.map +1 -1
- package/ui/TextMessageItemBody.js +33 -31
- package/ui/TextMessageItemBody.js.map +1 -1
- package/ui/ThreadReplies.js +21 -25
- package/ui/ThreadReplies.js.map +1 -1
- package/ui/ThumbnailMessageItemBody.js +37 -28
- package/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/ui/Toggle.js +86 -78
- package/ui/Toggle.js.map +1 -1
- package/ui/Tooltip.js +9 -8
- package/ui/Tooltip.js.map +1 -1
- package/ui/TooltipWrapper.js +18 -17
- package/ui/TooltipWrapper.js.map +1 -1
- package/ui/UnknownMessageItemBody.js +19 -20
- package/ui/UnknownMessageItemBody.js.map +1 -1
- package/ui/UserListItem.js +80 -75
- package/ui/UserListItem.js.map +1 -1
- package/ui/UserProfile.js +29 -34
- package/ui/UserProfile.js.map +1 -1
- package/ui/VoiceMessageItemBody.js +49 -43
- package/ui/VoiceMessageItemBody.js.map +1 -1
- package/ui/VoiceMessgeInput.js +8 -7
- package/ui/VoiceMessgeInput.js.map +1 -1
- package/ui/Word.js +29 -27
- package/ui/Word.js.map +1 -1
- package/{useHandleUploadFiles-406a6c9c.js → useHandleUploadFiles-33aff88e.js} +111 -124
- package/useHandleUploadFiles-33aff88e.js.map +1 -0
- package/useLongPress-322bb6a3.js +103 -0
- package/useLongPress-322bb6a3.js.map +1 -0
- package/useSendMultipleFilesMessage-4489a0f6.js +283 -0
- package/useSendMultipleFilesMessage-4489a0f6.js.map +1 -0
- package/useSendbirdStateContext.js +5 -3
- package/useSendbirdStateContext.js.map +1 -1
- package/useStatefulFileInfoList-dd95f949.js +219 -0
- package/useStatefulFileInfoList-dd95f949.js.map +1 -0
- package/utils/message/getOutgoingMessageState.js +8 -9
- package/utils/message/getOutgoingMessageState.js.map +1 -1
- package/utils/message/isVoiceMessage.js +4 -4
- package/utils/message/isVoiceMessage.js.map +1 -1
- package/{utils-7cc92ac2.js → utils-158c1683.js} +3 -3
- package/{utils-7cc92ac2.js.map → utils-158c1683.js.map} +1 -1
- package/utils-3660243c.js +25 -0
- package/utils-3660243c.js.map +1 -0
- package/utils-40040f8e.js +157 -0
- package/utils-40040f8e.js.map +1 -0
- package/utils-48a3ef27.js +31 -0
- package/utils-48a3ef27.js.map +1 -0
- package/utils-74c161a0.js +7 -0
- package/utils-74c161a0.js.map +1 -0
- package/utils-e98a7f8c.js +57 -0
- package/utils-e98a7f8c.js.map +1 -0
- package/uuid-3c77ef7b.js +15 -0
- package/{uuid-16373bba.js.map → uuid-3c77ef7b.js.map} +1 -1
- package/withSendbird.js +16 -22
- package/withSendbird.js.map +1 -1
- package/ChannelListProvider-1188e373.js +0 -1028
- package/ChannelListProvider-1188e373.js.map +0 -1
- package/ChannelProvider-9de00431.js +0 -1933
- package/ChannelProvider-9de00431.js.map +0 -1
- package/CreateChannelProvider-a2fad282.js +0 -44
- package/LocalizationContext-2463058b.js +0 -20
- package/MediaQueryContext-e3429d12.js +0 -87
- package/MediaQueryContext-e3429d12.js.map +0 -1
- package/MemberList-593867cb.js +0 -404
- package/OpenChannelProvider-3e4b8c8e.js +0 -1890
- package/RemoveMessageModal-9162aebe.js +0 -38
- package/RemoveMessageModal-9162aebe.js.map +0 -1
- package/ThreadProvider-9a3b145f.js +0 -1778
- package/ThreadProvider-9a3b145f.js.map +0 -1
- package/UserProfileContext-4ae968eb.js +0 -41
- package/UserProfileContext-4ae968eb.js.map +0 -1
- package/_rollupPluginBabelHelpers-50c9576f.js.map +0 -1
- package/cjs/ChannelListProvider-e55e6242.js +0 -1037
- package/cjs/ChannelListProvider-e55e6242.js.map +0 -1
- package/cjs/ChannelProvider-6fa73019.js +0 -1941
- package/cjs/ChannelProvider-6fa73019.js.map +0 -1
- package/cjs/CreateChannelProvider-8b8a557c.js +0 -52
- package/cjs/MediaQueryContext-73aac8cf.js +0 -94
- package/cjs/MediaQueryContext-73aac8cf.js.map +0 -1
- package/cjs/MemberList-26b8de48.js +0 -410
- package/cjs/OpenChannelListProvider-2e3ee48d.js +0 -439
- package/cjs/OpenChannelProvider-8577ea58.js +0 -1899
- package/cjs/RemoveMessageModal-dfeeb36a.js +0 -44
- package/cjs/RemoveMessageModal-dfeeb36a.js.map +0 -1
- package/cjs/ThreadProvider-8b0cf491.js +0 -1787
- package/cjs/ThreadProvider-8b0cf491.js.map +0 -1
- package/cjs/UserProfileContext-fa8d0383.js +0 -49
- package/cjs/UserProfileContext-fa8d0383.js.map +0 -1
- package/cjs/_rollupPluginBabelHelpers-83d7e84b.js.map +0 -1
- package/cjs/color-d83b77ac.js.map +0 -1
- package/cjs/compareIds-bef997cb.js.map +0 -1
- package/cjs/const-67ff9e34.js +0 -20
- package/cjs/consts-b018b1ed.js +0 -6
- package/cjs/consts-b018b1ed.js.map +0 -1
- package/cjs/consts-bf228385.js +0 -6
- package/cjs/consts-d3b53f23.js +0 -6
- package/cjs/index-11f9cc0f.js.map +0 -1
- package/cjs/index-1a9fdbb4.js +0 -368
- package/cjs/index-1a9fdbb4.js.map +0 -1
- package/cjs/index-1f6b30ea.js +0 -330
- package/cjs/index-2ab19f9b.js +0 -57
- package/cjs/index-4b5a006d.js +0 -139
- package/cjs/index-4b5a006d.js.map +0 -1
- package/cjs/index-4eb7e2b5.js.map +0 -1
- package/cjs/index-56a25735.js +0 -171
- package/cjs/index-56a25735.js.map +0 -1
- package/cjs/index-6ab9a40d.js +0 -202
- package/cjs/index-7f41c4b6.js +0 -118
- package/cjs/index-7f41c4b6.js.map +0 -1
- package/cjs/index-81baccd0.js.map +0 -1
- package/cjs/index-857630c5.js.map +0 -1
- package/cjs/index-8ec12d1d.js +0 -164
- package/cjs/index-8ec12d1d.js.map +0 -1
- package/cjs/index-c9b003b3.js.map +0 -1
- package/cjs/index-cbcacbee.js +0 -9
- package/cjs/index-cbcacbee.js.map +0 -1
- package/cjs/index-d04f312e.js.map +0 -1
- package/cjs/index-e9ac5ae1.js +0 -58
- package/cjs/index-e9ac5ae1.js.map +0 -1
- package/cjs/index-fbe9cc73.js +0 -647
- package/cjs/index-fbe9cc73.js.map +0 -1
- package/cjs/index.module-a24e9cd7.js +0 -6
- package/cjs/index.module-a24e9cd7.js.map +0 -1
- package/cjs/stringFormatterUtils-8d6592ca.js +0 -16
- package/cjs/stringSet-d00535a5.js.map +0 -1
- package/cjs/topics-adde627b.js.map +0 -1
- package/cjs/types-0b5148cb.js +0 -17
- package/cjs/types-0b5148cb.js.map +0 -1
- package/cjs/useHandleUploadFiles-b2fc56e5.js.map +0 -1
- package/cjs/useLongPress-1c0f4696.js +0 -87
- package/cjs/useLongPress-1c0f4696.js.map +0 -1
- package/cjs/useSendMultipleFilesMessage-81cdc9d0.js +0 -109
- package/cjs/useSendMultipleFilesMessage-81cdc9d0.js.map +0 -1
- package/cjs/utils-418b4438.js +0 -62
- package/cjs/utils-418b4438.js.map +0 -1
- package/cjs/utils-5bfb4516.js +0 -35
- package/cjs/utils-5bfb4516.js.map +0 -1
- package/cjs/utils-68aa6bf6.js +0 -345
- package/cjs/utils-68aa6bf6.js.map +0 -1
- package/cjs/utils-b34d4e2c.js +0 -31
- package/cjs/utils-b34d4e2c.js.map +0 -1
- package/cjs/utils-c47c68b1.js +0 -6
- package/cjs/utils-c47c68b1.js.map +0 -1
- package/cjs/uuid-b2806cf5.js +0 -15
- package/compareIds-8ed6e36a.js +0 -15
- package/compareIds-8ed6e36a.js.map +0 -1
- package/const-711048c3.js +0 -13
- package/consts-675764c9.js +0 -4
- package/consts-675764c9.js.map +0 -1
- package/consts-691a3935.js +0 -37
- package/consts-6ee24012.js +0 -4
- package/consts-eb77e905.js +0 -4
- package/consts-eb77e905.js.map +0 -1
- package/context-b4c70964.js +0 -13
- package/index-128523eb.js +0 -110
- package/index-128523eb.js.map +0 -1
- package/index-13401b87.js.map +0 -1
- package/index-5cb32ab5.js.map +0 -1
- package/index-5d6a0f12.js +0 -598
- package/index-5d6a0f12.js.map +0 -1
- package/index-60a7bf91.js +0 -164
- package/index-60a7bf91.js.map +0 -1
- package/index-7700a436.js.map +0 -1
- package/index-7946293f.js +0 -152
- package/index-7946293f.js.map +0 -1
- package/index-7b7478f5.js +0 -132
- package/index-7b7478f5.js.map +0 -1
- package/index-82178c6a.js +0 -361
- package/index-82178c6a.js.map +0 -1
- package/index-98138798.js +0 -187
- package/index-98887e8d.js +0 -7
- package/index-98887e8d.js.map +0 -1
- package/index-ae7ef8cf.js +0 -51
- package/index-b25ffa7e.js.map +0 -1
- package/index-c421b228.js.map +0 -1
- package/index-d99155f7.js +0 -51
- package/index-d99155f7.js.map +0 -1
- package/index-daa3ae67.js.map +0 -1
- package/index-e15f6b6a.js +0 -320
- package/index.module-60af77d3.js +0 -4
- package/index.module-60af77d3.js.map +0 -1
- package/stringFormatterUtils-dbad592d.js +0 -14
- package/stringSet-2814bf17.js.map +0 -1
- package/topics-5659403d.js.map +0 -1
- package/types-89092633.js +0 -15
- package/types-89092633.js.map +0 -1
- package/useHandleUploadFiles-406a6c9c.js.map +0 -1
- package/useLongPress-5e1ad951.js +0 -85
- package/useLongPress-5e1ad951.js.map +0 -1
- package/useSendMultipleFilesMessage-a3a2c84b.js +0 -107
- package/useSendMultipleFilesMessage-a3a2c84b.js.map +0 -1
- package/utils-0c22998a.js +0 -306
- package/utils-0c22998a.js.map +0 -1
- package/utils-407da489.js +0 -4
- package/utils-407da489.js.map +0 -1
- package/utils-b97d5113.js +0 -57
- package/utils-b97d5113.js.map +0 -1
- package/utils-cae84d8a.js +0 -29
- package/utils-cae84d8a.js.map +0 -1
- package/utils-ebf008e2.js +0 -31
- package/utils-ebf008e2.js.map +0 -1
- package/uuid-16373bba.js +0 -13
package/ui/MessageInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageInput.js","sources":["../../src/ui/MessageInput/messageInputUtils.ts","../../src/ui/MessageInput/index.jsx"],"sourcesContent":["/**\n * Write new utils here\n * Migrate old utils as needed, and delete utils.js\n */\n// import { ChannelType } from '@sendbird/chat';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { match } from 'ts-pattern';\n\nimport type { SendBirdStateConfig } from '../../lib/types';\n\n/**\n * FIXME:\n * Import this ChannelType enum from @sendbird/chat\n * once MessageInput.spec unit tests can be run \\wo jest <-> ESM issue\n */\nenum ChannelType {\n BASE = 'base',\n GROUP = 'group',\n OPEN = 'open',\n}\n/**\n * FIXME: Simplify this in UIKit@v4\n * If customer is using MessageInput inside our modules(ie: Channel, Thread, etc),\n * we should use the config from the module.\n * If customer is using MessageInput outside our modules(ie: custom UI),\n * we expect Channel to be undefined and customer gets control to show/hide file-upload.\n * @param {*} channel GroupChannel | OpenChannel\n * @param {*} config SendBirdStateConfig\n * @returns boolean\n */\nexport const checkIfFileUploadEnabled = ({ channel, config }: {\n channel?: GroupChannel | OpenChannel,\n config?: SendBirdStateConfig,\n}) => {\n const isEnabled = match(channel?.channelType)\n .with(ChannelType.GROUP, () => config?.groupChannel?.enableDocument)\n .with(ChannelType.OPEN, () => config?.openChannel?.enableDocument)\n .otherwise(() => true);\n\n return isEnabled;\n};\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { MessageInputKeys, NodeNames, NodeTypes } from './const';\n\nimport { USER_MENTION_TEMP_CHAR } from '../../modules/Channel/context/const';\nimport IconButton from '../IconButton';\nimport Button, { ButtonTypes, ButtonSizes } from '../Button';\nimport renderMentionLabelToString from '../MentionUserLabel/renderToString';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../hooks/useSendbirdStateContext';\n\nimport {\n isChannelTypeSupportsMultipleFilesMessage,\n nodeListToArray,\n sanitizeString,\n} from './utils';\nimport {\n arrayEqual,\n getClassName,\n getMimeTypesUIKitAccepts,\n} from '../../utils';\nimport usePaste from './hooks/usePaste';\nimport { tokenizeMessage } from '../../modules/Message/utils/tokens/tokenize';\nimport { USER_MENTION_PREFIX } from '../../modules/Message/consts';\nimport { TOKEN_TYPES } from '../../modules/Message/utils/tokens/types';\nimport { checkIfFileUploadEnabled } from './messageInputUtils';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\n\nconst displayCaret = (element, position) => {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(element.childNodes[0], position);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n element.focus();\n};\n\nconst resetInput = (ref) => {\n try {\n /* eslint-disable no-param-reassign */\n ref.current.innerHTML = '';\n } catch {\n //\n }\n};\n\nconst initialTargetStringInfo = {\n targetString: '',\n startNodeIndex: null,\n startOffsetIndex: null,\n endNodeIndex: null,\n endOffsetIndex: null,\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n className,\n messageFieldId,\n isEdit,\n isMentionEnabled,\n isVoiceMessageEnabled,\n isSelectingMultipleFilesEnabled,\n disabled,\n message,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onUpdateMessage,\n onCancelEdit,\n onStartTyping,\n channelUrl,\n channel,\n mentionSelectedUser,\n onUserMentioned,\n onMentionStringChange,\n onMentionedUserIdsUpdated,\n onVoiceMessageIconClick,\n onKeyUp,\n onKeyDown,\n renderFileUploadIcon,\n renderVoiceMessageIcon,\n renderSendMessageIcon,\n setMentionedUsers,\n acceptableMimeTypes,\n } = props;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useLocalization();\n const { config } = useSendbirdStateContext();\n\n const isFileUploadEnabled = checkIfFileUploadEnabled({\n channel,\n config,\n });\n\n const fileInputRef = useRef(null);\n const [isInput, setIsInput] = useState(false);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [targetStringInfo, setTargetStringInfo] = useState({ ...initialTargetStringInfo });\n const setHeight = useMemo(() => (\n () => {\n try {\n const elem = ref?.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem && elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n } catch (error) {\n // error\n }\n }\n ), []);\n\n // #Edit mode\n // for easilly initialize input value from outside, but\n // useEffect(_, [channelUrl]) erase it\n const initialValue = props?.value;\n useEffect(() => {\n const textField = ref?.current;\n try {\n textField.innerHTML = initialValue;\n displayCaret(textField, initialValue?.length);\n } catch {\n //\n }\n setMentionedUserIds([]);\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention & #Edit | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n const tokens = tokenizeMessage({\n messageText: message?.mentionedMessageTemplate,\n mentionedUsers,\n });\n textField.innerHTML = tokens.map((token) => {\n if (token.type === TOKEN_TYPES.mention) {\n const mentionedUser = mentionedUsers.find((user) => user.userId === token.userId);\n const nickname = `${USER_MENTION_PREFIX}${mentionedUser?.nickname || token.value || stringSet.MENTION_NAME__NO_NAME}`;\n return renderMentionLabelToString({\n userId: token.userId,\n nickname,\n });\n }\n return sanitizeString(token.value);\n }).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = sanitizeString(message?.message);\n } catch {\n //\n }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.textContent?.trim().length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = nodeListToArray(textField?.childNodes);\n const frontTextNode = document?.createTextNode(\n childNodes[startNodeIndex]?.textContent.slice(0, startOffsetIndex),\n );\n const backTextNode = document?.createTextNode(\n `\\u00A0${childNodes[endNodeIndex]?.textContent.slice(endOffsetIndex)}`,\n );\n const mentionLabel = renderMentionLabelToString({\n userId: mentionSelectedUser?.userId,\n nickname: `${USER_MENTION_TEMP_CHAR}${mentionSelectedUser?.nickname || stringSet.MENTION_NAME__NO_NAME}`,\n });\n const div = document.createElement('div');\n div.innerHTML = mentionLabel;\n const newNodes = [\n ...childNodes.slice(0, startNodeIndex),\n frontTextNode,\n div.childNodes[0],\n backTextNode,\n ...childNodes.slice(endNodeIndex + 1),\n ];\n textField.innerHTML = '';\n newNodes.forEach((newNode) => {\n textField.appendChild(newNode);\n });\n onUserMentioned(mentionSelectedUser);\n if (window.getSelection || document.getSelection) {\n // set caret postion\n const selection = window.getSelection() || document.getSelection();\n selection.removeAllRanges();\n const range = new Range();\n range.selectNodeContents(textField);\n range.setStart(textField.childNodes[startNodeIndex + 2], 1);\n range.setEnd(textField.childNodes[startNodeIndex + 2], 1);\n range.collapse(false);\n selection.addRange(range);\n textField.focus();\n }\n setTargetStringInfo({ ...initialTargetStringInfo });\n setHeight();\n useMentionedLabelDetection();\n }\n }\n }, [mentionSelectedUser, isMentionEnabled]);\n\n // #Mention | Detect mentioning user nickname\n const useMentionInputDetection = useCallback(() => {\n const selection = window?.getSelection?.() || document?.getSelection?.();\n const textField = ref?.current;\n if (selection.anchorNode === textField) {\n onMentionStringChange('');\n }\n if (isMentionEnabled && selection\n && selection.anchorNode === selection.focusNode\n && selection.anchorOffset === selection.focusOffset\n ) {\n let textStack = '';\n let startNodeIndex = null;\n let startOffsetIndex = null;\n for (let index = 0; index < textField.childNodes.length; index += 1) {\n const currentNode = textField.childNodes[index];\n if (currentNode.nodeType === NodeTypes.TextNode) {\n /* text node */\n const textContent = (currentNode === selection.anchorNode)\n ? currentNode?.textContent.slice(0, selection.anchorOffset) || ''\n : currentNode?.textContent || '';\n if (textStack.length > 0) {\n textStack += textContent;\n } else {\n let charLastIndex = textContent.lastIndexOf(USER_MENTION_TEMP_CHAR);\n for (let i = charLastIndex - 1; i > -1; i -= 1) {\n if (textContent[i] === USER_MENTION_TEMP_CHAR) {\n charLastIndex = i;\n } else {\n break;\n }\n }\n if (charLastIndex > -1) {\n textStack = textContent;\n startNodeIndex = index;\n startOffsetIndex = charLastIndex;\n }\n }\n } else {\n /* other nodes */\n textStack = '';\n startNodeIndex = null;\n startOffsetIndex = null;\n }\n if (currentNode === selection.anchorNode) {\n /**\n * targetString could be ''\n * startNodeIndex and startOffsetIndex could be null\n */\n const targetString = textStack ? textStack.slice(startOffsetIndex) : '';// include template character\n setTargetStringInfo({\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex: index,\n endOffsetIndex: selection.anchorOffset,\n });\n onMentionStringChange(targetString);\n return;\n }\n }\n }\n }, [isMentionEnabled]);\n\n const sendMessage = () => {\n const textField = ref?.current;\n if (!isEdit && textField?.textContent) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Br) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else if (node?.nodeType === NodeTypes.ElementNode && node?.nodeName === NodeNames.Div) {\n // handles newline in safari\n const { textContent = '' } = node;\n messageText += `\\n${textContent}`;\n mentionTemplate += `\\n${textContent}`;\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { message: messageText, mentionTemplate };\n onSendMessage(params);\n resetInput(ref);\n // important: keeps the keyboard open -> must add test on refactor\n textField.focus();\n setIsInput(false);\n setHeight();\n }\n };\n const isEditDisabled = !(ref?.current?.textContent?.trim());\n const editMessage = () => {\n const textField = ref?.current;\n const messageId = message?.messageId;\n if (isEdit && messageId) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { messageId, message: messageText, mentionTemplate };\n onUpdateMessage(params);\n resetInput(ref);\n }\n };\n const onPaste = usePaste({\n ref,\n setMentionedUserIds,\n setMentionedUsers,\n channel,\n setIsInput,\n setHeight,\n });\n\n return (\n <form\n className={getClassName([\n className,\n isEdit ? 'sendbird-message-input__edit' : '',\n disabled ? 'sendbird-message-input-form__disabled' : '',\n ])}\n >\n <div\n className={getClassName([\n 'sendbird-message-input',\n disabled ? 'sendbird-message-input__disabled' : '',\n ])}\n >\n <div\n id={`${textFieldId}${isEdit ? message?.messageId : ''}`}\n className={`sendbird-message-input--textarea ${textFieldId}`}\n contentEditable={!disabled}\n role=\"textbox\"\n aria-label=\"Text Input\"\n disabled={disabled}\n ref={ref}\n maxLength={maxLength}\n onKeyDown={(e) => {\n const preventEvent = onKeyDown(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n if (!e.shiftKey && e.key === MessageInputKeys.Enter\n && ref?.current?.textContent?.trim().length > 0\n && e?.nativeEvent?.isComposing !== true\n ) {\n e.preventDefault();\n sendMessage();\n }\n if (e.key === MessageInputKeys.Backspace\n && ref?.current?.childNodes?.length === 2\n && !ref?.current?.childNodes?.[0]?.textContent\n && ref?.current.childNodes?.[1]?.nodeType === NodeTypes.ElementNode\n ) {\n ref?.current.removeChild(ref?.current.childNodes[1]);\n }\n }\n }}\n onKeyUp={(e) => {\n const preventEvent = onKeyUp(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n useMentionInputDetection();\n }\n }}\n onClick={() => {\n useMentionInputDetection();\n }}\n onInput={() => {\n setHeight();\n onStartTyping();\n setIsInput(ref?.current?.textContent?.trim().length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={onPaste}\n />\n {/* placeholder */}\n {(ref?.current?.textContent?.length ?? 0) === 0 && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={disabled ? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n {\n renderSendMessageIcon?.() || (\n <Icon\n type={IconTypes.SEND}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )\n }\n {/* file upload icon */}\n {\n (!isEdit && !isInput) && (\n (renderFileUploadIcon?.()\n // UIKit Dashboard configuration should have lower priority than\n // renderFileUploadIcon which is set in code level\n || (isFileUploadEnabled && (\n <IconButton\n className={`sendbird-message-input--attach ${isVoiceMessageEnabled ? 'is-voice-message-enabled' : ''}`}\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n // todo: clear previous input\n fileInputRef?.current?.click?.();\n }}\n >\n <Icon\n type={IconTypes.ATTACH}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n <input\n className=\"sendbird-message-input--attach-input\"\n type=\"file\"\n ref={fileInputRef}\n // It will affect to <Channel /> and <Thread />\n onChange={(event) => {\n const { files } = event.currentTarget;\n onFileUpload(files && files.length === 1 ? [files[0]] : [...files]);\n event.target.value = '';\n }}\n accept={getMimeTypesUIKitAccepts(acceptableMimeTypes)}\n multiple={\n isSelectingMultipleFilesEnabled\n && isChannelTypeSupportsMultipleFilesMessage(channel)\n }\n />\n </IconButton>\n )\n ))\n )\n }\n {/* voice message input trigger */}\n {(isVoiceMessageEnabled && !isEdit && !isInput) && (\n <IconButton\n className=\"sendbird-message-input--voice-message\"\n width=\"32px\"\n height=\"32px\"\n onClick={onVoiceMessageIconClick}\n >\n {\n renderVoiceMessageIcon?.() || (\n <Icon\n type={IconTypes.AUDIO_ON_LINED}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )}\n </div>\n {/* Edit */}\n {\n isEdit && (\n <div className=\"sendbird-message-input--edit-action\">\n <Button\n className=\"sendbird-message-input--edit-action__cancel\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={onCancelEdit}\n >\n {stringSet.BUTTON__CANCEL}\n </Button>\n <Button\n className=\"sendbird-message-input--edit-action__save\"\n type={ButtonTypes.PRIMARY}\n size={ButtonSizes.SMALL}\n disabled={isEditDisabled}\n onClick={() => editMessage()}\n >\n {stringSet.BUTTON__SAVE}\n </Button>\n </div>\n )\n }\n </form>\n );\n});\n\nMessageInput.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n isSelectingMultipleFilesEnabled: PropTypes.bool,\n disabled: PropTypes.bool,\n value: PropTypes.string,\n placeholder: PropTypes.string,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onUpdateMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n channelUrl: PropTypes.string,\n channel: PropTypes.shape({\n channelType: PropTypes.string,\n }).isRequired,\n messageFieldId: PropTypes.string,\n acceptableMimeTypes: PropTypes.arrayOf(PropTypes.string),\n // Mention\n message: PropTypes.shape({\n messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n message: PropTypes.string,\n mentionedMessageTemplate: PropTypes.string,\n mentionedUsers: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n setMentionedUsers: PropTypes.func,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n // Voice Message\n onVoiceMessageIconClick: PropTypes.func,\n renderVoiceMessageIcon: PropTypes.func,\n renderSendMessageIcon: PropTypes.func,\n renderFileUploadIcon: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n className: '',\n messageFieldId: '',\n channelUrl: '',\n onSendMessage: noop,\n onUpdateMessage: noop,\n value: null,\n message: null,\n isEdit: false,\n isMentionEnabled: false,\n isVoiceMessageEnabled: true,\n isSelectingMultipleFilesEnabled: false,\n onVoiceMessageIconClick: noop,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n mentionSelectedUser: null,\n onUserMentioned: noop,\n onMentionStringChange: noop,\n onMentionedUserIdsUpdated: noop,\n onKeyUp: noop,\n onKeyDown: noop,\n setMentionedUsers: noop,\n renderVoiceMessageIcon: noop,\n renderFileUploadIcon: noop,\n renderSendMessageIcon: noop,\n acceptableMimeTypes: null,\n};\n\nexport default MessageInput;\n"],"names":["ChannelType","checkIfFileUploadEnabled","_ref","channel","config","isEnabled","match","channelType","with","GROUP","_config$groupChannel","groupChannel","enableDocument","OPEN","_config$openChannel","openChannel","otherwise","TEXT_FIELD_ID","LINE_HEIGHT","noop","displayCaret","element","position","range","document","createRange","sel","window","getSelection","setStart","childNodes","collapse","removeAllRanges","addRange","focus","resetInput","ref","current","innerHTML","_unused","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","_ref$current","_ref$current$textCont","_ref$current$textCont2","_ref$current6","_ref$current6$textCon","className","messageFieldId","isEdit","isMentionEnabled","isVoiceMessageEnabled","isSelectingMultipleFilesEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onVoiceMessageIconClick","onKeyUp","onKeyDown","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","setMentionedUsers","acceptableMimeTypes","textFieldId","stringSet","useLocalization","useSendbirdStateContext","isFileUploadEnabled","fileInputRef","useRef","isInput","setIsInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","setHeight","useMemo","elem","MAX_HEIGHT","body","offsetHeight","scrollHeight","style","height","error","initialValue","value","useEffect","_textField$textConten","textField","length","_unused2","textContent","trim","messageId","_message$mentionedUse","_message$mentionedMes","_textField$textConten2","mentionedUsers","mentionedMessageTemplate","tokens","tokenizeMessage","messageText","map","token","type","TOKEN_TYPES","mention","mentionedUser","find","user","userId","nickname","USER_MENTION_PREFIX","MENTION_NAME__NO_NAME","renderMentionLabelToString","sanitizeString","join","_unused3","useMentionedLabelDetection","useCallback","_textField$textConten3","newMentionedUserIds","getElementsByClassName","node","_node$dataset","dataset","userid","arrayEqual","_document","_childNodes$startNode","_document2","_childNodes$endNodeIn","nodeListToArray","frontTextNode","createTextNode","slice","backTextNode","mentionLabel","USER_MENTION_TEMP_CHAR","div","createElement","newNodes","forEach","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","_window","_window$getSelection","_document3","_document3$getSelecti","call","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","i","sendMessage","mentionTemplate","ElementNode","nodeName","NodeNames","Span","innerText","Br","Div","params","isEditDisabled","editMessage","onPaste","usePaste","getClassName","id","contentEditable","role","e","preventEvent","preventDefault","_ref$current2","_ref$current2$textCon","_e$nativeEvent","_ref$current3","_ref$current3$childNo","_ref$current4","_ref$current4$childNo","_ref$current4$childNo2","_ref$current$childNod","_ref$current$childNod2","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","onClick","onInput","_ref$current5","_ref$current5$textCon","Label","LabelTypography","BODY_1","color","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconButton","width","Icon","IconTypes","SEND","fillColor","IconColors","ON_BACKGROUND_4","PRIMARY","_fileInputRef$current","_fileInputRef$current2","click","ATTACH","CONTENT_INVERSE","onChange","event","files","currentTarget","target","accept","getMimeTypesUIKitAccepts","multiple","isChannelTypeSupportsMultipleFilesMessage","AUDIO_ON_LINED","Button","ButtonTypes","SECONDARY","size","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","number","func","shape","isRequired","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessageInput.js","sources":["../../src/ui/MessageInput/messageInputUtils.ts","../../src/ui/MessageInput/index.jsx"],"sourcesContent":["/**\n * Write new utils here\n * Migrate old utils as needed, and delete utils.js\n */\n// import { ChannelType } from '@sendbird/chat';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { match } from 'ts-pattern';\n\nimport type { SendBirdStateConfig } from '../../lib/types';\n\n/**\n * FIXME:\n * Import this ChannelType enum from @sendbird/chat\n * once MessageInput.spec unit tests can be run \\wo jest <-> ESM issue\n */\nenum ChannelType {\n BASE = 'base',\n GROUP = 'group',\n OPEN = 'open',\n}\n/**\n * FIXME: Simplify this in UIKit@v4\n * If customer is using MessageInput inside our modules(ie: Channel, Thread, etc),\n * we should use the config from the module.\n * If customer is using MessageInput outside our modules(ie: custom UI),\n * we expect Channel to be undefined and customer gets control to show/hide file-upload.\n * @param {*} channel GroupChannel | OpenChannel\n * @param {*} config SendBirdStateConfig\n * @returns boolean\n */\nexport const checkIfFileUploadEnabled = ({ channel, config }: {\n channel?: GroupChannel | OpenChannel,\n config?: SendBirdStateConfig,\n}) => {\n const isEnabled = match(channel?.channelType)\n .with(ChannelType.GROUP, () => config?.groupChannel?.enableDocument)\n .with(ChannelType.OPEN, () => config?.openChannel?.enableDocument)\n .otherwise(() => true);\n\n return isEnabled;\n};\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { MessageInputKeys, NodeNames, NodeTypes } from './const';\n\nimport { USER_MENTION_TEMP_CHAR } from '../../modules/Channel/context/const';\nimport IconButton from '../IconButton';\nimport Button, { ButtonTypes, ButtonSizes } from '../Button';\nimport renderMentionLabelToString from '../MentionUserLabel/renderToString';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../hooks/useSendbirdStateContext';\n\nimport {\n isChannelTypeSupportsMultipleFilesMessage,\n nodeListToArray,\n sanitizeString,\n} from './utils';\nimport {\n arrayEqual,\n getClassName,\n getMimeTypesUIKitAccepts,\n} from '../../utils';\nimport usePaste from './hooks/usePaste';\nimport { tokenizeMessage } from '../../modules/Message/utils/tokens/tokenize';\nimport { USER_MENTION_PREFIX } from '../../modules/Message/consts';\nimport { TOKEN_TYPES } from '../../modules/Message/utils/tokens/types';\nimport { checkIfFileUploadEnabled } from './messageInputUtils';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\n\nconst displayCaret = (element, position) => {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(element.childNodes[0], position);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n element.focus();\n};\n\nconst resetInput = (ref) => {\n try {\n /* eslint-disable no-param-reassign */\n ref.current.innerHTML = '';\n } catch {\n //\n }\n};\n\nconst initialTargetStringInfo = {\n targetString: '',\n startNodeIndex: null,\n startOffsetIndex: null,\n endNodeIndex: null,\n endOffsetIndex: null,\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n className,\n messageFieldId,\n isEdit,\n isMentionEnabled,\n isVoiceMessageEnabled,\n isSelectingMultipleFilesEnabled,\n disabled,\n message,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onUpdateMessage,\n onCancelEdit,\n onStartTyping,\n channelUrl,\n channel,\n mentionSelectedUser,\n onUserMentioned,\n onMentionStringChange,\n onMentionedUserIdsUpdated,\n onVoiceMessageIconClick,\n onKeyUp,\n onKeyDown,\n renderFileUploadIcon,\n renderVoiceMessageIcon,\n renderSendMessageIcon,\n setMentionedUsers,\n acceptableMimeTypes,\n } = props;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useLocalization();\n const { config } = useSendbirdStateContext();\n\n const isFileUploadEnabled = checkIfFileUploadEnabled({\n channel,\n config,\n });\n\n const fileInputRef = useRef(null);\n const [isInput, setIsInput] = useState(false);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [targetStringInfo, setTargetStringInfo] = useState({ ...initialTargetStringInfo });\n const setHeight = useMemo(() => (\n () => {\n try {\n const elem = ref?.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem && elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n } catch (error) {\n // error\n }\n }\n ), []);\n\n // #Edit mode\n // for easilly initialize input value from outside, but\n // useEffect(_, [channelUrl]) erase it\n const initialValue = props?.value;\n useEffect(() => {\n const textField = ref?.current;\n try {\n textField.innerHTML = initialValue;\n displayCaret(textField, initialValue?.length);\n } catch {\n //\n }\n setMentionedUserIds([]);\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention & #Edit | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n const tokens = tokenizeMessage({\n messageText: message?.mentionedMessageTemplate,\n mentionedUsers,\n });\n textField.innerHTML = tokens.map((token) => {\n if (token.type === TOKEN_TYPES.mention) {\n const mentionedUser = mentionedUsers.find((user) => user.userId === token.userId);\n const nickname = `${USER_MENTION_PREFIX}${mentionedUser?.nickname || token.value || stringSet.MENTION_NAME__NO_NAME}`;\n return renderMentionLabelToString({\n userId: token.userId,\n nickname,\n });\n }\n return sanitizeString(token.value);\n }).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = sanitizeString(message?.message);\n } catch {\n //\n }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.textContent?.trim().length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = nodeListToArray(textField?.childNodes);\n const frontTextNode = document?.createTextNode(\n childNodes[startNodeIndex]?.textContent.slice(0, startOffsetIndex),\n );\n const backTextNode = document?.createTextNode(\n `\\u00A0${childNodes[endNodeIndex]?.textContent.slice(endOffsetIndex)}`,\n );\n const mentionLabel = renderMentionLabelToString({\n userId: mentionSelectedUser?.userId,\n nickname: `${USER_MENTION_TEMP_CHAR}${mentionSelectedUser?.nickname || stringSet.MENTION_NAME__NO_NAME}`,\n });\n const div = document.createElement('div');\n div.innerHTML = mentionLabel;\n const newNodes = [\n ...childNodes.slice(0, startNodeIndex),\n frontTextNode,\n div.childNodes[0],\n backTextNode,\n ...childNodes.slice(endNodeIndex + 1),\n ];\n textField.innerHTML = '';\n newNodes.forEach((newNode) => {\n textField.appendChild(newNode);\n });\n onUserMentioned(mentionSelectedUser);\n if (window.getSelection || document.getSelection) {\n // set caret postion\n const selection = window.getSelection() || document.getSelection();\n selection.removeAllRanges();\n const range = new Range();\n range.selectNodeContents(textField);\n range.setStart(textField.childNodes[startNodeIndex + 2], 1);\n range.setEnd(textField.childNodes[startNodeIndex + 2], 1);\n range.collapse(false);\n selection.addRange(range);\n textField.focus();\n }\n setTargetStringInfo({ ...initialTargetStringInfo });\n setHeight();\n useMentionedLabelDetection();\n }\n }\n }, [mentionSelectedUser, isMentionEnabled]);\n\n // #Mention | Detect mentioning user nickname\n const useMentionInputDetection = useCallback(() => {\n const selection = window?.getSelection?.() || document?.getSelection?.();\n const textField = ref?.current;\n if (selection.anchorNode === textField) {\n onMentionStringChange('');\n }\n if (isMentionEnabled && selection\n && selection.anchorNode === selection.focusNode\n && selection.anchorOffset === selection.focusOffset\n ) {\n let textStack = '';\n let startNodeIndex = null;\n let startOffsetIndex = null;\n for (let index = 0; index < textField.childNodes.length; index += 1) {\n const currentNode = textField.childNodes[index];\n if (currentNode.nodeType === NodeTypes.TextNode) {\n /* text node */\n const textContent = (currentNode === selection.anchorNode)\n ? currentNode?.textContent.slice(0, selection.anchorOffset) || ''\n : currentNode?.textContent || '';\n if (textStack.length > 0) {\n textStack += textContent;\n } else {\n let charLastIndex = textContent.lastIndexOf(USER_MENTION_TEMP_CHAR);\n for (let i = charLastIndex - 1; i > -1; i -= 1) {\n if (textContent[i] === USER_MENTION_TEMP_CHAR) {\n charLastIndex = i;\n } else {\n break;\n }\n }\n if (charLastIndex > -1) {\n textStack = textContent;\n startNodeIndex = index;\n startOffsetIndex = charLastIndex;\n }\n }\n } else {\n /* other nodes */\n textStack = '';\n startNodeIndex = null;\n startOffsetIndex = null;\n }\n if (currentNode === selection.anchorNode) {\n /**\n * targetString could be ''\n * startNodeIndex and startOffsetIndex could be null\n */\n const targetString = textStack ? textStack.slice(startOffsetIndex) : '';// include template character\n setTargetStringInfo({\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex: index,\n endOffsetIndex: selection.anchorOffset,\n });\n onMentionStringChange(targetString);\n return;\n }\n }\n }\n }, [isMentionEnabled]);\n\n const sendMessage = () => {\n const textField = ref?.current;\n if (!isEdit && textField?.textContent) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Br) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else if (node?.nodeType === NodeTypes.ElementNode && node?.nodeName === NodeNames.Div) {\n // handles newline in safari\n const { textContent = '' } = node;\n messageText += `\\n${textContent}`;\n mentionTemplate += `\\n${textContent}`;\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { message: messageText, mentionTemplate };\n onSendMessage(params);\n resetInput(ref);\n // important: keeps the keyboard open -> must add test on refactor\n textField.focus();\n setIsInput(false);\n setHeight();\n }\n };\n const isEditDisabled = !(ref?.current?.textContent?.trim());\n const editMessage = () => {\n const textField = ref?.current;\n const messageId = message?.messageId;\n if (isEdit && messageId) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { messageId, message: messageText, mentionTemplate };\n onUpdateMessage(params);\n resetInput(ref);\n }\n };\n const onPaste = usePaste({\n ref,\n setMentionedUserIds,\n setMentionedUsers,\n channel,\n setIsInput,\n setHeight,\n });\n\n return (\n <form\n className={getClassName([\n className,\n isEdit ? 'sendbird-message-input__edit' : '',\n disabled ? 'sendbird-message-input-form__disabled' : '',\n ])}\n >\n <div\n className={getClassName([\n 'sendbird-message-input',\n disabled ? 'sendbird-message-input__disabled' : '',\n ])}\n >\n <div\n id={`${textFieldId}${isEdit ? message?.messageId : ''}`}\n className={`sendbird-message-input--textarea ${textFieldId}`}\n contentEditable={!disabled}\n role=\"textbox\"\n aria-label=\"Text Input\"\n disabled={disabled}\n ref={ref}\n maxLength={maxLength}\n onKeyDown={(e) => {\n const preventEvent = onKeyDown(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n if (!e.shiftKey && e.key === MessageInputKeys.Enter\n && ref?.current?.textContent?.trim().length > 0\n && e?.nativeEvent?.isComposing !== true\n ) {\n e.preventDefault();\n sendMessage();\n }\n if (e.key === MessageInputKeys.Backspace\n && ref?.current?.childNodes?.length === 2\n && !ref?.current?.childNodes?.[0]?.textContent\n && ref?.current.childNodes?.[1]?.nodeType === NodeTypes.ElementNode\n ) {\n ref?.current.removeChild(ref?.current.childNodes[1]);\n }\n }\n }}\n onKeyUp={(e) => {\n const preventEvent = onKeyUp(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n useMentionInputDetection();\n }\n }}\n onClick={() => {\n useMentionInputDetection();\n }}\n onInput={() => {\n setHeight();\n onStartTyping();\n setIsInput(ref?.current?.textContent?.trim().length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={onPaste}\n />\n {/* placeholder */}\n {(ref?.current?.textContent?.length ?? 0) === 0 && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={disabled ? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n {\n renderSendMessageIcon?.() || (\n <Icon\n type={IconTypes.SEND}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )\n }\n {/* file upload icon */}\n {\n (!isEdit && !isInput) && (\n (renderFileUploadIcon?.()\n // UIKit Dashboard configuration should have lower priority than\n // renderFileUploadIcon which is set in code level\n || (isFileUploadEnabled && (\n <IconButton\n className={`sendbird-message-input--attach ${isVoiceMessageEnabled ? 'is-voice-message-enabled' : ''}`}\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n // todo: clear previous input\n fileInputRef?.current?.click?.();\n }}\n >\n <Icon\n type={IconTypes.ATTACH}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n <input\n className=\"sendbird-message-input--attach-input\"\n type=\"file\"\n ref={fileInputRef}\n // It will affect to <Channel /> and <Thread />\n onChange={(event) => {\n const { files } = event.currentTarget;\n onFileUpload(files && files.length === 1 ? [files[0]] : [...files]);\n event.target.value = '';\n }}\n accept={getMimeTypesUIKitAccepts(acceptableMimeTypes)}\n multiple={\n isSelectingMultipleFilesEnabled\n && isChannelTypeSupportsMultipleFilesMessage(channel)\n }\n />\n </IconButton>\n )\n ))\n )\n }\n {/* voice message input trigger */}\n {(isVoiceMessageEnabled && !isEdit && !isInput) && (\n <IconButton\n className=\"sendbird-message-input--voice-message\"\n width=\"32px\"\n height=\"32px\"\n onClick={onVoiceMessageIconClick}\n >\n {\n renderVoiceMessageIcon?.() || (\n <Icon\n type={IconTypes.AUDIO_ON_LINED}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )}\n </div>\n {/* Edit */}\n {\n isEdit && (\n <div className=\"sendbird-message-input--edit-action\">\n <Button\n className=\"sendbird-message-input--edit-action__cancel\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={onCancelEdit}\n >\n {stringSet.BUTTON__CANCEL}\n </Button>\n <Button\n className=\"sendbird-message-input--edit-action__save\"\n type={ButtonTypes.PRIMARY}\n size={ButtonSizes.SMALL}\n disabled={isEditDisabled}\n onClick={() => editMessage()}\n >\n {stringSet.BUTTON__SAVE}\n </Button>\n </div>\n )\n }\n </form>\n );\n});\n\nMessageInput.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n isSelectingMultipleFilesEnabled: PropTypes.bool,\n disabled: PropTypes.bool,\n value: PropTypes.string,\n placeholder: PropTypes.string,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onUpdateMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n channelUrl: PropTypes.string,\n channel: PropTypes.shape({\n channelType: PropTypes.string,\n }).isRequired,\n messageFieldId: PropTypes.string,\n acceptableMimeTypes: PropTypes.arrayOf(PropTypes.string),\n // Mention\n message: PropTypes.shape({\n messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n message: PropTypes.string,\n mentionedMessageTemplate: PropTypes.string,\n mentionedUsers: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n setMentionedUsers: PropTypes.func,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n // Voice Message\n onVoiceMessageIconClick: PropTypes.func,\n renderVoiceMessageIcon: PropTypes.func,\n renderSendMessageIcon: PropTypes.func,\n renderFileUploadIcon: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n className: '',\n messageFieldId: '',\n channelUrl: '',\n onSendMessage: noop,\n onUpdateMessage: noop,\n value: null,\n message: null,\n isEdit: false,\n isMentionEnabled: false,\n isVoiceMessageEnabled: true,\n isSelectingMultipleFilesEnabled: false,\n onVoiceMessageIconClick: noop,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n mentionSelectedUser: null,\n onUserMentioned: noop,\n onMentionStringChange: noop,\n onMentionedUserIdsUpdated: noop,\n onKeyUp: noop,\n onKeyDown: noop,\n setMentionedUsers: noop,\n renderVoiceMessageIcon: noop,\n renderFileUploadIcon: noop,\n renderSendMessageIcon: noop,\n acceptableMimeTypes: null,\n};\n\nexport default MessageInput;\n"],"names":["ChannelType","checkIfFileUploadEnabled","_a","channel","config","isEnabled","match","channelType","with","GROUP","groupChannel","enableDocument","OPEN","openChannel","otherwise","TEXT_FIELD_ID","LINE_HEIGHT","noop","displayCaret","element","position","range","document","createRange","sel","window","getSelection","setStart","childNodes","collapse","removeAllRanges","addRange","focus","resetInput","ref","current","innerHTML","_unused","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","_ref$current","_ref$current$textCont","_ref$current6","className","messageFieldId","isEdit","isMentionEnabled","isVoiceMessageEnabled","isSelectingMultipleFilesEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onVoiceMessageIconClick","onKeyUp","onKeyDown","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","setMentionedUsers","acceptableMimeTypes","textFieldId","stringSet","useLocalization","useSendbirdStateContext","isFileUploadEnabled","fileInputRef","useRef","isInput","setIsInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","setHeight","useMemo","elem","MAX_HEIGHT","body","offsetHeight","scrollHeight","style","height","error","initialValue","value","useEffect","_textField$textConten","textField","length","_unused2","textContent","trim","messageId","_message$mentionedUse","_message$mentionedMes","_textField$textConten2","mentionedUsers","mentionedMessageTemplate","tokens","tokenizeMessage","messageText","map","token","type","TOKEN_TYPES","mention","mentionedUser","find","user","userId","nickname","USER_MENTION_PREFIX","MENTION_NAME__NO_NAME","renderMentionLabelToString","sanitizeString","join","_unused3","useMentionedLabelDetection","useCallback","_textField$textConten3","newMentionedUserIds","getElementsByClassName","node","_node$dataset","dataset","userid","arrayEqual","_document","_childNodes$startNode","_document2","_childNodes$endNodeIn","nodeListToArray","frontTextNode","createTextNode","slice","backTextNode","mentionLabel","USER_MENTION_TEMP_CHAR","div","createElement","newNodes","forEach","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","_window","_window$getSelection","_document3","_document3$getSelecti","call","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","i","sendMessage","mentionTemplate","ElementNode","nodeName","NodeNames","Span","innerText","Br","Div","params","isEditDisabled","editMessage","onPaste","usePaste","getClassName","id","contentEditable","role","e","preventEvent","preventDefault","_ref$current2","_e$nativeEvent","_ref$current3","_ref$current4","_ref$current$childNod","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","onClick","onInput","_ref$current5","Label","LabelTypography","BODY_1","color","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconButton","width","Icon","IconTypes","SEND","fillColor","IconColors","ON_BACKGROUND_4","PRIMARY","_fileInputRef$current","_fileInputRef$current2","click","ATTACH","CONTENT_INVERSE","onChange","event","files","currentTarget","target","accept","getMimeTypesUIKitAccepts","multiple","isChannelTypeSupportsMultipleFilesMessage","AUDIO_ON_LINED","Button","ButtonTypes","SECONDARY","size","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","number","func","shape","isRequired","defaultProps"],"mappings":"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"}
|
package/ui/MessageItemMenu.js
CHANGED
|
@@ -2,55 +2,71 @@ import React__default, { useContext, useRef } from 'react';
|
|
|
2
2
|
import ContextMenu, { MenuItems, MenuItem } from './ContextMenu.js';
|
|
3
3
|
import Icon, { IconTypes, IconColors } from './Icon.js';
|
|
4
4
|
import IconButton from './IconButton.js';
|
|
5
|
-
import {
|
|
6
|
-
import { a as LocalizationContext } from '../LocalizationContext-
|
|
7
|
-
import { R as Role } from '../types-
|
|
8
|
-
import '../
|
|
5
|
+
import { y as isUserMessage, H as isSentMessage, I as isFailedMessage, J as isPendingMessage, o as getClassName, K as copyToClipboard } from '../index-fc1642cb.js';
|
|
6
|
+
import { a as LocalizationContext } from '../LocalizationContext-d18a86d8.js';
|
|
7
|
+
import { R as Role } from '../types-50e412d8.js';
|
|
8
|
+
import { u as useChannelContext } from '../ChannelProvider-7f6fd1f8.js';
|
|
9
|
+
import '../tslib.es6-0c779aab.js';
|
|
9
10
|
import 'react-dom';
|
|
10
11
|
import './SortByRow.js';
|
|
11
|
-
import '../uuid-
|
|
12
|
-
import '../index-
|
|
12
|
+
import '../uuid-3c77ef7b.js';
|
|
13
|
+
import '../index-12103973.js';
|
|
13
14
|
import 'prop-types';
|
|
14
|
-
import '../stringSet-
|
|
15
|
+
import '../stringSet-1106c8ec.js';
|
|
15
16
|
import '../utils/message/getOutgoingMessageState.js';
|
|
16
|
-
import '../index
|
|
17
|
-
import '../index-
|
|
17
|
+
import '../index-c6095960.js';
|
|
18
|
+
import '../index-d3f61405.js';
|
|
19
|
+
import '../UserProfileContext-26e71f9a.js';
|
|
20
|
+
import '../useSendbirdStateContext.js';
|
|
21
|
+
import '../withSendbird.js';
|
|
22
|
+
import '../const-e3326913.js';
|
|
23
|
+
import '../utils-40040f8e.js';
|
|
24
|
+
import '../index-c81fd6ec.js';
|
|
25
|
+
import '@sendbird/chat/message';
|
|
26
|
+
import '../useSendMultipleFilesMessage-4489a0f6.js';
|
|
27
|
+
import '../pubSub/topics.js';
|
|
28
|
+
import '../compareIds-b56b02f1.js';
|
|
29
|
+
import '@sendbird/chat/groupChannel';
|
|
30
|
+
import '../_rollupPluginBabelHelpers-07dcbc2b.js';
|
|
31
|
+
import '../consts-aa64aca8.js';
|
|
32
|
+
import '../resolvedReplyType-0532593c.js';
|
|
18
33
|
|
|
19
|
-
function MessageItemMenu(
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
isByMe = false,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
34
|
+
function MessageItemMenu(_a) {
|
|
35
|
+
var _b;
|
|
36
|
+
var className = _a.className,
|
|
37
|
+
message = _a.message,
|
|
38
|
+
channel = _a.channel,
|
|
39
|
+
_c = _a.isByMe,
|
|
40
|
+
isByMe = _c === void 0 ? false : _c,
|
|
41
|
+
_d = _a.disabled,
|
|
42
|
+
disabled = _d === void 0 ? false : _d,
|
|
43
|
+
replyType = _a.replyType,
|
|
44
|
+
_e = _a.disableDeleteMessage,
|
|
45
|
+
disableDeleteMessage = _e === void 0 ? null : _e,
|
|
46
|
+
showEdit = _a.showEdit,
|
|
47
|
+
showRemove = _a.showRemove,
|
|
48
|
+
resendMessage = _a.resendMessage,
|
|
49
|
+
setQuoteMessage = _a.setQuoteMessage,
|
|
50
|
+
setSupposedHover = _a.setSupposedHover,
|
|
51
|
+
onReplyInThread = _a.onReplyInThread,
|
|
52
|
+
_f = _a.onMoveToParentMessage,
|
|
53
|
+
onMoveToParentMessage = _f === void 0 ? null : _f;
|
|
54
|
+
var stringSet = useContext(LocalizationContext).stringSet;
|
|
55
|
+
var triggerRef = useRef(null);
|
|
56
|
+
var containerRef = useRef(null);
|
|
57
|
+
var channelStore = useChannelContext();
|
|
58
|
+
var showMenuItemCopy = isUserMessage(message);
|
|
59
|
+
var showMenuItemEdit = !(channel === null || channel === void 0 ? void 0 : channel.isEphemeral) && isUserMessage(message) && isSentMessage(message) && isByMe;
|
|
60
|
+
var showMenuItemResend = isFailedMessage(message) && (message === null || message === void 0 ? void 0 : message.isResendable) && isByMe;
|
|
61
|
+
var showMenuItemDelete = !(channel === null || channel === void 0 ? void 0 : channel.isEphemeral) && !isPendingMessage(message) && isByMe;
|
|
62
|
+
var showMenuItemOpenInChannel = onMoveToParentMessage !== null;
|
|
47
63
|
/**
|
|
48
64
|
* TODO: Manage timing issue
|
|
49
65
|
* User delete pending message -> Sending message success
|
|
50
66
|
*/
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
67
|
+
var isReplyTypeEnabled = !isFailedMessage(message) && !isPendingMessage(message) && ((_b = channel === null || channel === void 0 ? void 0 : channel.isGroupChannel) === null || _b === void 0 ? void 0 : _b.call(channel)) && !(channel === null || channel === void 0 ? void 0 : channel.isEphemeral) && ((channel === null || channel === void 0 ? void 0 : channel.isBroadcast) && (channel === null || channel === void 0 ? void 0 : channel.myRole) === Role.OPERATOR || !(channel === null || channel === void 0 ? void 0 : channel.isBroadcast));
|
|
68
|
+
var showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';
|
|
69
|
+
var showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !(message === null || message === void 0 ? void 0 : message.parentMessageId) && onReplyInThread;
|
|
54
70
|
if (!(showMenuItemCopy || showMenuItemReply || showMenuItemThread || showMenuItemOpenInChannel || showMenuItemEdit || showMenuItemResend || showMenuItemDelete)) {
|
|
55
71
|
return null;
|
|
56
72
|
}
|
|
@@ -58,28 +74,30 @@ function MessageItemMenu(_ref) {
|
|
|
58
74
|
className: getClassName([className, 'sendbird-message-item-menu']),
|
|
59
75
|
ref: containerRef
|
|
60
76
|
}, /*#__PURE__*/React__default.createElement(ContextMenu, {
|
|
61
|
-
menuTrigger:
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
77
|
+
menuTrigger: function (toggleDropdown) {
|
|
78
|
+
return /*#__PURE__*/React__default.createElement(IconButton, {
|
|
79
|
+
className: "sendbird-message-item-menu__trigger",
|
|
80
|
+
ref: triggerRef,
|
|
81
|
+
width: "32px",
|
|
82
|
+
height: "32px",
|
|
83
|
+
onClick: function () {
|
|
84
|
+
toggleDropdown();
|
|
85
|
+
setSupposedHover(true);
|
|
86
|
+
},
|
|
87
|
+
onBlur: function () {
|
|
88
|
+
setSupposedHover(false);
|
|
89
|
+
}
|
|
90
|
+
}, /*#__PURE__*/React__default.createElement(Icon, {
|
|
91
|
+
className: "sendbird-message-item-menu__trigger__icon",
|
|
92
|
+
type: IconTypes.MORE,
|
|
93
|
+
fillColor: IconColors.CONTENT_INVERSE,
|
|
94
|
+
width: "24px",
|
|
95
|
+
height: "24px"
|
|
96
|
+
}));
|
|
97
|
+
},
|
|
98
|
+
menuItems: function (close) {
|
|
99
|
+
var _a;
|
|
100
|
+
var closeDropdown = function () {
|
|
83
101
|
close();
|
|
84
102
|
setSupposedHover(false);
|
|
85
103
|
};
|
|
@@ -91,14 +109,14 @@ function MessageItemMenu(_ref) {
|
|
|
91
109
|
openLeft: isByMe
|
|
92
110
|
}, showMenuItemCopy && /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
93
111
|
className: "sendbird-message-item-menu__list__menu-item menu-item-copy",
|
|
94
|
-
onClick: ()
|
|
112
|
+
onClick: function () {
|
|
95
113
|
copyToClipboard(message === null || message === void 0 ? void 0 : message.message);
|
|
96
114
|
closeDropdown();
|
|
97
115
|
},
|
|
98
116
|
dataSbId: "ui_message_item_menu_copy"
|
|
99
117
|
}, stringSet.MESSAGE_MENU__COPY), showMenuItemReply && /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
100
118
|
className: "sendbird-message-item-menu__list__menu-item menu-item-reply",
|
|
101
|
-
onClick: ()
|
|
119
|
+
onClick: function () {
|
|
102
120
|
setQuoteMessage(message);
|
|
103
121
|
closeDropdown();
|
|
104
122
|
},
|
|
@@ -106,23 +124,23 @@ function MessageItemMenu(_ref) {
|
|
|
106
124
|
dataSbId: "ui_message_item_menu_reply"
|
|
107
125
|
}, stringSet.MESSAGE_MENU__REPLY), showMenuItemThread && /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
108
126
|
className: "sendbird-message-item-menu__list__menu-item menu-item-thread",
|
|
109
|
-
onClick: ()
|
|
127
|
+
onClick: function () {
|
|
110
128
|
onReplyInThread === null || onReplyInThread === void 0 ? void 0 : onReplyInThread({
|
|
111
|
-
message
|
|
129
|
+
message: message
|
|
112
130
|
});
|
|
113
131
|
closeDropdown();
|
|
114
132
|
},
|
|
115
133
|
dataSbId: "ui_message_item_menu_thread"
|
|
116
134
|
}, stringSet.MESSAGE_MENU__THREAD), showMenuItemOpenInChannel && /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
117
135
|
className: "sendbird-message-item-menu__list__menu-item menu-item-open-channel",
|
|
118
|
-
onClick: ()
|
|
136
|
+
onClick: function () {
|
|
119
137
|
onMoveToParentMessage === null || onMoveToParentMessage === void 0 ? void 0 : onMoveToParentMessage();
|
|
120
138
|
closeDropdown();
|
|
121
139
|
},
|
|
122
140
|
dataSbId: "ui_message_item_menu_open_in_channel"
|
|
123
141
|
}, stringSet.MESSAGE_MENU__OPEN_IN_CHANNEL), showMenuItemEdit && /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
124
142
|
className: "sendbird-message-item-menu__list__menu-item menu-item-edit",
|
|
125
|
-
onClick: ()
|
|
143
|
+
onClick: function () {
|
|
126
144
|
if (!disabled) {
|
|
127
145
|
showEdit(true);
|
|
128
146
|
closeDropdown();
|
|
@@ -131,7 +149,7 @@ function MessageItemMenu(_ref) {
|
|
|
131
149
|
dataSbId: "ui_message_item_menu_edit"
|
|
132
150
|
}, stringSet.MESSAGE_MENU__EDIT), showMenuItemResend && /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
133
151
|
className: "sendbird-message-item-menu__list__menu-item menu-item-resend",
|
|
134
|
-
onClick: ()
|
|
152
|
+
onClick: function () {
|
|
135
153
|
if (!disabled) {
|
|
136
154
|
resendMessage(message);
|
|
137
155
|
closeDropdown();
|
|
@@ -140,13 +158,16 @@ function MessageItemMenu(_ref) {
|
|
|
140
158
|
dataSbId: "ui_message_item_menu_resend"
|
|
141
159
|
}, stringSet.MESSAGE_MENU__RESEND), showMenuItemDelete && /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
142
160
|
className: "sendbird-message-item-menu__list__menu-item menu-item-delete",
|
|
143
|
-
onClick: ()
|
|
144
|
-
|
|
161
|
+
onClick: function () {
|
|
162
|
+
var _a;
|
|
163
|
+
if (isFailedMessage(message)) {
|
|
164
|
+
(_a = channelStore === null || channelStore === void 0 ? void 0 : channelStore.deleteMessage) === null || _a === void 0 ? void 0 : _a.call(channelStore, message);
|
|
165
|
+
} else if (!disabled) {
|
|
145
166
|
showRemove(true);
|
|
146
167
|
closeDropdown();
|
|
147
168
|
}
|
|
148
169
|
},
|
|
149
|
-
disable: typeof disableDeleteMessage === 'boolean' ? disableDeleteMessage : (message === null || message === void 0 ? void 0 :
|
|
170
|
+
disable: typeof disableDeleteMessage === 'boolean' ? disableDeleteMessage : ((_a = message === null || message === void 0 ? void 0 : message.threadInfo) === null || _a === void 0 ? void 0 : _a.replyCount) > 0,
|
|
150
171
|
dataSbId: "ui_message_item_menu_delete"
|
|
151
172
|
}, stringSet.MESSAGE_MENU__DELETE));
|
|
152
173
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageItemMenu.js","sources":["../../src/ui/MessageItemMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useContext, useRef } from 'react';\nimport type { UserMessage } from '@sendbird/chat/message';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport {\n getClassName,\n copyToClipboard,\n isUserMessage,\n isSentMessage,\n isFailedMessage,\n isPendingMessage, SendableMessageType,\n} from '../../utils/index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { Role } from '../../lib/types';\nimport { ReplyType } from '../../types';\n\ninterface Props {\n className?: string | Array<string>;\n message: SendableMessageType;\n channel: GroupChannel | OpenChannel;\n isByMe?: boolean;\n disabled?: boolean;\n replyType?: ReplyType;\n disableDeleteMessage?: boolean;\n showEdit?: (bool: boolean) => void;\n showRemove?: (bool: boolean) => void;\n resendMessage?: (message: SendableMessageType) => void;\n setQuoteMessage?: (message: SendableMessageType) => void;\n setSupposedHover?: (bool: boolean) => void;\n onReplyInThread?: (props: { message: SendableMessageType }) => void;\n onMoveToParentMessage?: () => void;\n}\n\nexport default function MessageItemMenu({\n className,\n message,\n channel,\n isByMe = false,\n disabled = false,\n replyType,\n disableDeleteMessage = null,\n showEdit,\n showRemove,\n resendMessage,\n setQuoteMessage,\n setSupposedHover,\n onReplyInThread,\n onMoveToParentMessage = null,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (!channel?.isEphemeral && isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n const showMenuItemDelete: boolean = !channel?.isEphemeral && !isPendingMessage(message) && isByMe;\n const showMenuItemOpenInChannel: boolean = onMoveToParentMessage !== null;\n /**\n * TODO: Manage timing issue\n * User delete pending message -> Sending message success\n */\n const isReplyTypeEnabled = !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel?.()\n && !channel?.isEphemeral\n && (\n ((channel as GroupChannel)?.isBroadcast && channel?.myRole === Role.OPERATOR)\n || !(channel as GroupChannel)?.isBroadcast\n ));\n const showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';\n const showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !message?.parentMessageId && onReplyInThread;\n\n if (!(showMenuItemCopy\n || showMenuItemReply\n || showMenuItemThread\n || showMenuItemOpenInChannel\n || showMenuItemEdit\n || showMenuItemResend\n || showMenuItemDelete\n )) {\n return null;\n }\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-menu__trigger__icon\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <MenuItems\n className=\"sendbird-message-item-menu__list\"\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n openLeft={isByMe}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-copy\"\n onClick={() => {\n copyToClipboard((message as UserMessage)?.message);\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_copy\"\n >\n {stringSet.MESSAGE_MENU__COPY}\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-reply\"\n onClick={() => {\n setQuoteMessage(message);\n closeDropdown();\n }}\n disable={message?.parentMessageId > 0}\n dataSbId=\"ui_message_item_menu_reply\"\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-thread\"\n onClick={() => {\n onReplyInThread?.({ message });\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_thread\"\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </MenuItem>\n )}\n {showMenuItemOpenInChannel && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-open-channel\"\n onClick={() => {\n onMoveToParentMessage?.();\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_open_in_channel\"\n >\n {stringSet.MESSAGE_MENU__OPEN_IN_CHANNEL}\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-edit\"\n onClick={() => {\n if (!disabled) {\n showEdit(true);\n closeDropdown();\n }\n }}\n dataSbId=\"ui_message_item_menu_edit\"\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-resend\"\n onClick={() => {\n if (!disabled) {\n resendMessage(message);\n closeDropdown();\n }\n }}\n dataSbId=\"ui_message_item_menu_resend\"\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </MenuItem>\n )}\n {showMenuItemDelete && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-delete\"\n onClick={() => {\n if (!disabled) {\n showRemove(true);\n closeDropdown();\n }\n }}\n disable={\n typeof disableDeleteMessage === 'boolean'\n ? disableDeleteMessage\n : message?.threadInfo?.replyCount > 0\n }\n dataSbId=\"ui_message_item_menu_delete\"\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </MenuItem>\n )}\n </MenuItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemMenu","_ref","_channel$isGroupChann","className","message","channel","isByMe","disabled","replyType","disableDeleteMessage","showEdit","showRemove","resendMessage","setQuoteMessage","setSupposedHover","onReplyInThread","onMoveToParentMessage","stringSet","useContext","LocalizationContext","triggerRef","useRef","containerRef","showMenuItemCopy","isUserMessage","showMenuItemEdit","isEphemeral","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemOpenInChannel","isReplyTypeEnabled","isGroupChannel","call","isBroadcast","myRole","Role","OPERATOR","showMenuItemReply","showMenuItemThread","parentMessageId","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","_message$threadInfo","closeDropdown","MenuItems","parentRef","parentContainRef","openLeft","MenuItem","copyToClipboard","dataSbId","MESSAGE_MENU__COPY","disable","MESSAGE_MENU__REPLY","MESSAGE_MENU__THREAD","MESSAGE_MENU__OPEN_IN_CHANNEL","MESSAGE_MENU__EDIT","MESSAGE_MENU__RESEND","threadInfo","replyCount","MESSAGE_MENU__DELETE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessageItemMenu.js","sources":["../../src/ui/MessageItemMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useContext, useRef } from 'react';\nimport type { UserMessage } from '@sendbird/chat/message';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport {\n getClassName,\n copyToClipboard,\n isUserMessage,\n isSentMessage,\n isFailedMessage,\n isPendingMessage,\n SendableMessageType,\n} from '../../utils/index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { Role } from '../../lib/types';\nimport { ReplyType } from '../../types';\nimport { useChannelContext } from '../../modules/Channel/context/ChannelProvider';\n\ninterface Props {\n className?: string | Array<string>;\n message: SendableMessageType;\n channel: GroupChannel | OpenChannel;\n isByMe?: boolean;\n disabled?: boolean;\n replyType?: ReplyType;\n disableDeleteMessage?: boolean;\n showEdit?: (bool: boolean) => void;\n showRemove?: (bool: boolean) => void;\n resendMessage?: (message: SendableMessageType) => void;\n setQuoteMessage?: (message: SendableMessageType) => void;\n setSupposedHover?: (bool: boolean) => void;\n onReplyInThread?: (props: { message: SendableMessageType }) => void;\n onMoveToParentMessage?: () => void;\n}\n\nexport default function MessageItemMenu({\n className,\n message,\n channel,\n isByMe = false,\n disabled = false,\n replyType,\n disableDeleteMessage = null,\n showEdit,\n showRemove,\n resendMessage,\n setQuoteMessage,\n setSupposedHover,\n onReplyInThread,\n onMoveToParentMessage = null,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n const channelStore = useChannelContext();\n\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (!channel?.isEphemeral && isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n const showMenuItemDelete: boolean = !channel?.isEphemeral && !isPendingMessage(message) && isByMe;\n const showMenuItemOpenInChannel: boolean = onMoveToParentMessage !== null;\n /**\n * TODO: Manage timing issue\n * User delete pending message -> Sending message success\n */\n const isReplyTypeEnabled = !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel?.()\n && !channel?.isEphemeral\n && (\n ((channel as GroupChannel)?.isBroadcast && channel?.myRole === Role.OPERATOR)\n || !(channel as GroupChannel)?.isBroadcast\n ));\n const showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';\n const showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !message?.parentMessageId && onReplyInThread;\n\n if (!(showMenuItemCopy\n || showMenuItemReply\n || showMenuItemThread\n || showMenuItemOpenInChannel\n || showMenuItemEdit\n || showMenuItemResend\n || showMenuItemDelete\n )) {\n return null;\n }\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-menu__trigger__icon\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <MenuItems\n className=\"sendbird-message-item-menu__list\"\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n openLeft={isByMe}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-copy\"\n onClick={() => {\n copyToClipboard((message as UserMessage)?.message);\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_copy\"\n >\n {stringSet.MESSAGE_MENU__COPY}\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-reply\"\n onClick={() => {\n setQuoteMessage(message);\n closeDropdown();\n }}\n disable={message?.parentMessageId > 0}\n dataSbId=\"ui_message_item_menu_reply\"\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-thread\"\n onClick={() => {\n onReplyInThread?.({ message });\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_thread\"\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </MenuItem>\n )}\n {showMenuItemOpenInChannel && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-open-channel\"\n onClick={() => {\n onMoveToParentMessage?.();\n closeDropdown();\n }}\n dataSbId=\"ui_message_item_menu_open_in_channel\"\n >\n {stringSet.MESSAGE_MENU__OPEN_IN_CHANNEL}\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-edit\"\n onClick={() => {\n if (!disabled) {\n showEdit(true);\n closeDropdown();\n }\n }}\n dataSbId=\"ui_message_item_menu_edit\"\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-resend\"\n onClick={() => {\n if (!disabled) {\n resendMessage(message);\n closeDropdown();\n }\n }}\n dataSbId=\"ui_message_item_menu_resend\"\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </MenuItem>\n )}\n {showMenuItemDelete && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-delete\"\n onClick={() => {\n if (isFailedMessage(message)) {\n channelStore?.deleteMessage?.(message);\n } else if (!disabled) {\n showRemove(true);\n closeDropdown();\n }\n }}\n disable={\n typeof disableDeleteMessage === 'boolean'\n ? disableDeleteMessage\n : message?.threadInfo?.replyCount > 0\n }\n dataSbId=\"ui_message_item_menu_delete\"\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </MenuItem>\n )}\n </MenuItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemMenu","_a","className","message","channel","_c","isByMe","_d","disabled","replyType","_e","disableDeleteMessage","showEdit","showRemove","resendMessage","setQuoteMessage","setSupposedHover","onReplyInThread","_f","onMoveToParentMessage","stringSet","useContext","LocalizationContext","triggerRef","useRef","containerRef","channelStore","useChannelContext","showMenuItemCopy","isUserMessage","showMenuItemEdit","isEphemeral","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemOpenInChannel","isReplyTypeEnabled","isGroupChannel","_b","call","isBroadcast","myRole","Role","OPERATOR","showMenuItemReply","showMenuItemThread","parentMessageId","React","createElement","getClassName","ref","ContextMenu","menuTrigger","toggleDropdown","IconButton","width","height","onClick","onBlur","Icon","type","IconTypes","MORE","fillColor","IconColors","CONTENT_INVERSE","menuItems","close","closeDropdown","MenuItems","parentRef","parentContainRef","openLeft","MenuItem","copyToClipboard","dataSbId","MESSAGE_MENU__COPY","disable","MESSAGE_MENU__REPLY","MESSAGE_MENU__THREAD","MESSAGE_MENU__OPEN_IN_CHANNEL","MESSAGE_MENU__EDIT","MESSAGE_MENU__RESEND","deleteMessage","threadInfo","replyCount","MESSAGE_MENU__DELETE"],"mappings":"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"}
|