@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-b995f638.js","sources":["../../src/utils/index.ts"],"sourcesContent":["import SendbirdChat, { Emoji, EmojiCategory, EmojiContainer, User } from '@sendbird/chat';\nimport { GroupChannel, Member, SendbirdGroupChat, GroupChannelListQuery } from '@sendbird/chat/groupChannel';\nimport {\n AdminMessage,\n BaseMessage,\n FileMessage,\n MessageListParams,\n MultipleFilesMessage,\n Reaction,\n UploadedFileInfo,\n UserMessage,\n} from '@sendbird/chat/message';\nimport { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport { getOutgoingMessageState, OutgoingMessageStates } from './exports/getOutgoingMessageState';\nimport { Nullable } from '../types';\nimport { match } from 'ts-pattern';\n\n// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\nexport const SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/svg+xml',\n 'image/webp', // not supported in IE\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n 'video/quicktime', // .mov\n ],\n AUDIO: [\n 'audio/aac',\n 'audio/midi',\n 'audio/x-midi',\n 'audio/mpeg',\n 'audio/ogg',\n 'audio/opus',\n 'audio/wav',\n 'audio/webm',\n 'audio/3gpp',\n 'audio/3gpp2',\n 'audio/mp3',\n ],\n DOCUMENT: [\n 'text/plain',\n 'text/css',\n 'text/csv',\n 'text/html',\n 'text/calendar',\n 'text/javascript',\n 'text/xml',\n ],\n APPLICATION: [\n 'application/x-abiword',\n 'application/x-freearc',\n 'application/vnd.amazon.ebook',\n 'application/octet-stream',\n 'application/x-bzip',\n 'application/x-bzip2',\n 'application/x-cdf',\n 'application/x-csh',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.ms-fontobject',\n 'application/epub+zip',\n 'application/gzip',\n 'application/java-archive',\n 'application/json',\n 'application/ld+json',\n 'application/vnd.apple.installer+xml',\n 'application/vnd.oasis.opendocument.presentation',\n 'application/vnd.oasis.opendocument.spreadsheet',\n 'application/vnd.oasis.opendocument.text',\n 'application/ogg',\n 'application/pdf',\n 'application/x-httpd-php',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/vnd.rar',\n 'application/rtf',\n 'application/x-sh',\n 'application/x-tar',\n 'application/vnd.visio',\n 'application/xhtml+xml',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/xml',\n 'application/vnd.mozilla.xul+xml',\n 'application/zip',\n 'application/x-7z-compressed',\n ],\n};\n\nexport const getMimeTypesUIKitAccepts = (acceptableMimeTypes?: Array<string>): string => {\n const { IMAGE, VIDEO, AUDIO } = SUPPORTED_MIMES;\n\n if (Array.isArray(acceptableMimeTypes) && acceptableMimeTypes.length > 0) {\n return (\n acceptableMimeTypes\n .reduce((accumulator: Array<string>, acceptableMimeType: string): Array<string> => (\n accumulator.concat(\n match(acceptableMimeType)\n .with('image', () => IMAGE)\n .with('video', () => VIDEO)\n .with('audio', () => AUDIO)\n .otherwise(() => []),\n )\n ), [])\n .join()\n );\n }\n return (\n Object.values(SUPPORTED_MIMES)\n .reduce((accumulator: Array<string>, mimeTypes: Array<string>) => (\n accumulator.concat(mimeTypes)\n ), [])\n .join()\n );\n // concat() is fater than flat()\n};\n\n/* eslint-disable no-redeclare */\nexport interface UIKitMessageTypes {\n ADMIN: 'ADMIN',\n TEXT: 'TEXT',\n FILE: 'FILE',\n MULTIPLE_FILES: 'MULTIPLE_FILES',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n}\nexport const UIKitMessageTypes: UIKitMessageTypes = {\n ADMIN: 'ADMIN',\n TEXT: 'TEXT',\n FILE: 'FILE',\n MULTIPLE_FILES: 'MULTIPLE_FILES',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n};\n/* eslint-disable no-redeclare */\nexport interface UIKitFileTypes {\n IMAGE: 'IMAGE',\n AUDIO: 'AUDIO',\n VIDEO: 'VIDEO',\n GIF: 'GIF',\n VOICE: 'VOICE',\n OTHERS: 'OTHERS',\n}\nexport const UIKitFileTypes: UIKitFileTypes = {\n IMAGE: 'IMAGE',\n AUDIO: 'AUDIO',\n VIDEO: 'VIDEO',\n GIF: 'GIF',\n VOICE: 'VOICE',\n OTHERS: 'OTHERS',\n};\n\n/* eslint-disable no-redeclare */\nexport interface SendingMessageStatus {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n}\nconst SendingMessageStatus: SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport type CoreMessageType = AdminMessage | UserMessage | FileMessage | MultipleFilesMessage;\nexport type SendableMessageType = UserMessage | FileMessage | MultipleFilesMessage;\n\nexport const isTextuallyNull = (text: string): boolean => {\n if (text === '' || text === null) {\n return true;\n }\n return false;\n};\n\nexport const isImage = (type: string): boolean => SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0;\nexport const isVideo = (type: string): boolean => SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0;\nexport const isGif = (type: string): boolean => type === 'image/gif';\nexport const isSupportedFileView = (type: string): boolean => isImage(type) || isVideo(type);\nexport const isAudio = (type: string): boolean => SUPPORTED_MIMES.AUDIO.indexOf(type) >= 0;\n\nexport const getUIKitFileTypes = (): UIKitFileTypes => ({ ...UIKitFileTypes });\nexport const getUIKitFileType = (type: string): string => {\n if (isGif(type)) return UIKitFileTypes.GIF;\n if (isImage(type)) return UIKitFileTypes.IMAGE;\n if (isVideo(type)) return UIKitFileTypes.VIDEO;\n if (isAudio(type)) return UIKitFileTypes.AUDIO;\n return UIKitFileTypes.OTHERS;\n};\n\nexport const isSentMessage = (\n message: SendableMessageType,\n): boolean => (message.sendingStatus === 'succeeded');\nexport const isDeliveredMessage = (\n channel: GroupChannel,\n message: SendableMessageType,\n): boolean => (\n getOutgoingMessageState(channel, message) === OutgoingMessageStates.DELIVERED\n || getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ\n);\nexport const isReadMessage = (\n channel: GroupChannel,\n message: SendableMessageType,\n): boolean => (\n getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ\n);\n// TODO: Remove channel from the params, it seems unnecessary\nexport const isFailedMessage = (\n message: SendableMessageType,\n): boolean => (message?.sendingStatus === 'failed');\nexport const isPendingMessage = (\n message: SendableMessageType,\n): boolean => (message?.sendingStatus === 'pending');\nexport const isSentStatus = (state: string): boolean => (\n state === OutgoingMessageStates.SENT\n || state === OutgoingMessageStates.DELIVERED\n || state === OutgoingMessageStates.READ\n);\n\nexport const isAdminMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isAdminMessage'] && typeof message.isAdminMessage === 'function'\n ? message.isAdminMessage()\n : message?.messageType === 'admin'\n )\n);\nexport const isUserMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isUserMessage'] && typeof message.isUserMessage === 'function'\n ? message.isUserMessage()\n : message?.messageType === 'user'\n )\n);\nexport const isFileMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isFileMessage'] && typeof message.isFileMessage === 'function'\n ? message.isFileMessage()\n : message?.messageType === 'file'\n )\n);\nexport const isMultipleFilesMessage = (\n message: CoreMessageType,\n): boolean => (\n message && (\n message['isMultipleFilesMessage'] && typeof message.isMultipleFilesMessage === 'function'\n ? message.isMultipleFilesMessage()\n : (\n message.messageType === 'file'\n && Object.prototype.hasOwnProperty.call(message, 'fileInfoList')\n )\n )\n);\nexport const isParentMessage = (message: CoreMessageType): boolean => (\n !message.parentMessageId && !message.parentMessage && (message.threadInfo?.replyCount ?? 0) > 0\n);\nexport const isThreadMessage = (message: CoreMessageType): boolean => (\n !!message.parentMessageId && !!message.parentMessage\n);\nexport const isOGMessage = (message: SendableMessageType): boolean => !!(\n message && isUserMessage(message) && message?.ogMetaData && (\n message.ogMetaData?.url\n || message.ogMetaData?.title\n || message.ogMetaData?.description\n || message.ogMetaData?.defaultImage\n )\n);\nexport const isTextMessage = (message: SendableMessageType): boolean => (\n isUserMessage(message)\n);\nexport const isThumbnailMessage = (message: SendableMessageType): boolean => (\n message && isFileMessage(message) && isSupportedFileView((message as FileMessage).type)\n);\nexport const isImageMessage = (message: FileMessage): boolean => message && isThumbnailMessage(message) && isImage(message.type);\nexport const isImageFileInfo = (fileInfo: UploadedFileInfo): boolean => fileInfo\n && (isImage(fileInfo.mimeType) || isGif(fileInfo.mimeType));\nexport const isVideoMessage = (message: SendableMessageType): boolean => (\n message && isThumbnailMessage(message) && isVideo((message as FileMessage).type)\n);\nexport const isGifMessage = (message: SendableMessageType): boolean => (\n message && isThumbnailMessage(message) && isGif((message as FileMessage).type)\n);\nexport const isAudioMessage = (message: FileMessage): boolean => message && isFileMessage(message) && isAudio(message.type);\nexport const isAudioMessageMimeType = (type: string): boolean => (/^audio\\//.test(type));\nexport const isVoiceMessageMimeType = (type: string): boolean => (/^voice\\//.test(type));\nexport const isVoiceMessage = (message: Nullable<SendableMessageType>): boolean => {\n // ex) audio/m4a OR audio/m4a;sbu_type=voice\n if (!(message && isFileMessage(message)) || !(message as FileMessage).type) {\n return false;\n }\n const [mimeType, typeParameter] = (message as FileMessage).type.split(';');\n\n if (!isAudioMessageMimeType(mimeType)) {\n return false;\n }\n\n if (typeParameter) {\n const [key, value] = typeParameter.split('=');\n return key === 'sbu_type' && value === 'voice';\n }\n // ex) message.metaArrays = [{ key: 'KEY_INTERNAL_MESSAGE_TYPE', value: ['voice/m4a'] }]\n return isVoiceMessageMimeType(message?.metaArrays?.find((metaArray) => metaArray.key === 'KEY_INTERNAL_MESSAGE_TYPE')?.value?.[0] ?? '');\n};\n\nexport const isEditedMessage = (\n message: CoreMessageType,\n): boolean => isUserMessage(message) && (message?.updatedAt > 0);\nexport const isEnabledOGMessage = (message: UserMessage): boolean => (\n (!message || !message.ogMetaData || !message.ogMetaData.url) ? false : true\n);\n\nexport const getUIKitMessageTypes = (): UIKitMessageTypes => ({ ...UIKitMessageTypes });\n\n/**\n * Do not use this for MultipleFilesMessage. Use isMultipleFilesMessage() instead.\n */\nexport const getUIKitMessageType = (\n message: CoreMessageType,\n): string => {\n if (isAdminMessage(message as AdminMessage)) return UIKitMessageTypes.ADMIN;\n if (isUserMessage(message as UserMessage)) {\n return isOGMessage(message as UserMessage) ? UIKitMessageTypes.OG : UIKitMessageTypes.TEXT;\n }\n // This is only a safeguard to not return UNKNOWN for MFM.\n if (isMultipleFilesMessage(message as FileMessage)) {\n return UIKitMessageTypes.MULTIPLE_FILES;\n }\n if (isFileMessage(message as FileMessage)) {\n if (isThumbnailMessage(message as FileMessage)) {\n return UIKitMessageTypes.THUMBNAIL;\n }\n if (isVoiceMessage(message as FileMessage)) {\n return UIKitFileTypes.VOICE;\n }\n return UIKitMessageTypes.FILE;\n }\n return UIKitMessageTypes.UNKNOWN;\n};\n/**\n * @deprecated use SendingStatus of @sendbird/chat instead\n * */\nexport const getSendingMessageStatus = (): SendingMessageStatus => ({ ...SendingMessageStatus });\n\nconst reducer = (accumulator: Array<string>, currentValue: string | Array<string>): Array<any> => {\n if (Array.isArray(currentValue)) {\n return [...accumulator, ...currentValue];\n } else {\n accumulator.push(currentValue);\n return accumulator;\n }\n};\nexport const getClassName = (classNames: string | Array<string | Array<string>>): string => (\n Array.isArray(classNames)\n ? classNames.reduce(reducer, []).join(' ')\n : classNames\n);\nexport const isReactedBy = (userId: string, reaction: Reaction): boolean => (\n reaction.userIds.some((reactorUserId: string): boolean => reactorUserId === userId)\n);\ninterface StringSet {\n TOOLTIP__YOU: string;\n TOOLTIP__AND_YOU: string;\n TOOLTIP__UNKNOWN_USER: string;\n}\nexport const getEmojiTooltipString = (reaction: Reaction, userId: string, memberNicknamesMap: Map<string, string>, stringSet: StringSet): string => {\n let you = '';\n if (isReactedBy(userId, reaction)) {\n you = reaction.userIds.length === 1 ? stringSet.TOOLTIP__YOU : stringSet.TOOLTIP__AND_YOU;\n }\n return (`${reaction.userIds\n .filter((reactorUserId: string) => reactorUserId !== userId)\n .map((reactorUserId: string) => (memberNicknamesMap.get(reactorUserId) || stringSet.TOOLTIP__UNKNOWN_USER))\n .join(', ')}${you}`);\n};\n\n// TODO: Use the interface after language tranlsatation of Sendbird.js\ninterface UIKitStore {\n stores: {\n sdkStore: {\n sdk: SendbirdChat | SendbirdOpenChat | SendbirdGroupChat,\n },\n userStore: {\n user: User,\n },\n },\n config: {\n isReactionEnabled: boolean,\n }\n}\nexport const getCurrentUserId = (store: UIKitStore): string => (store?.stores?.userStore?.user?.userId);\nexport const getUseReaction = (store: UIKitStore, channel: GroupChannel | OpenChannel): boolean => {\n if (!store?.config?.isReactionEnabled)\n return false;\n if (!store?.stores?.sdkStore?.sdk?.appInfo?.useReaction)\n return false;\n if (channel?.isGroupChannel())\n return !((channel as GroupChannel).isBroadcast || (channel as GroupChannel).isSuper);\n return store?.config?.isReactionEnabled;\n};\n\nexport const isMessageSentByMe = (\n userId: string,\n message: SendableMessageType,\n): boolean => (\n !!(userId && message?.sender?.userId && userId === message.sender.userId)\n);\n\nconst URL_REG = /^((http|https):\\/\\/)?([a-z\\d]+\\.)+[a-z]{2,6}(\\:[0-9]{1,5})?(\\/[-a-zA-Z\\d%_.~+&=]*)*(\\?[;&a-zA-Z\\d%_.~+=-]*)?(\\#[-a-zA-Z\\d_]*)?$/;\nexport const isUrl = (text: string): boolean => URL_REG.test(text);\n\nconst MENTION_TAG_REG = /\\@\\{.*?\\}/i;\nexport const isMentionedText = (text: string): boolean => MENTION_TAG_REG.test(text);\n\nexport const truncateString = (fullStr: string, strLen?: number): string => {\n if (!strLen) strLen = 40;\n if (fullStr === null || fullStr === undefined) return '';\n if (fullStr.length <= strLen) return fullStr;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n\nexport const copyToClipboard = (text: string): boolean => {\n // @ts-ignore: Unreachable code error\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n // @ts-ignore: Unreachable code error\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport const getEmojiListAll = (emojiContainer: EmojiContainer): Array<Emoji> => (\n emojiContainer?.emojiCategories?.map((emojiCategory: EmojiCategory) => emojiCategory.emojis)\n .reduce((prevArr: Array<Emoji>, currArr: Array<Emoji>) => prevArr.concat(currArr), [])\n);\nexport const getEmojiMapAll = (emojiContainer: EmojiContainer): Map<string, Emoji> => {\n const emojiMap = new Map();\n emojiContainer?.emojiCategories?.forEach((category: EmojiCategory) => {\n category?.emojis?.forEach((emoji: Emoji): void => {\n if (emoji && emoji.key) {\n emojiMap.set(emoji.key, emoji);\n }\n });\n });\n return emojiMap;\n};\nconst findEmojiUrl = (targetKey: string) => ({ key }) => key === targetKey;\nexport const getEmojiUrl = (emojiContainer?: EmojiContainer, emojiKey?: string): string => {\n const isFindingKey = findEmojiUrl(emojiKey ?? '');\n return emojiContainer?.emojiCategories\n .find((category) => category.emojis.some(isFindingKey))?.emojis\n .find(isFindingKey)\n ?.url || '';\n};\n\nexport const getUserName = (user: User): string => (user?.friendName || user?.nickname || user?.userId);\nexport const getSenderName = (message: SendableMessageType): string => (\n message?.sender && getUserName(message?.sender)\n);\n\nexport const hasSameMembers = <T>(a: T[], b: T[]): boolean => {\n if (a === b) {\n return true;\n }\n if (a == null || b == null) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n\n const sortedA = [...a].sort();\n const sortedB = [...b].sort();\n\n for (let i = 0; i < sortedA.length; ++i) {\n if (sortedA[i] !== sortedB[i]) {\n return false;\n }\n }\n return true;\n};\nexport const isFriend = (user: Nullable<User>): boolean => {\n if (!user) return false;\n return !!(user.friendDiscoveryKey || user.friendName);\n};\n\nexport const filterMessageListParams = (\n params: MessageListParams,\n message: SendableMessageType,\n): boolean => {\n const { customTypesFilter = [] } = params;\n // @ts-ignore\n if (params?.messageTypeFilter && params.messageTypeFilter !== message.messageType) {\n return false;\n }\n if (customTypesFilter?.length > 0) {\n const customTypes = customTypesFilter.filter((item) => item !== '*');\n // Because Chat SDK inserts '*' when customTypes is empty\n if (customTypes.length > 0 && !customTypes.includes(message.customType)) {\n return false;\n }\n }\n if (params?.senderUserIdsFilter && params?.senderUserIdsFilter?.length > 0) {\n if (message?.isUserMessage?.() || message?.isFileMessage?.()) {\n const messageSender = (message as SendableMessageType).sender || message['_sender'];\n if (!params?.senderUserIdsFilter?.includes(messageSender?.userId)) {\n return false;\n }\n } else {\n return false;\n }\n }\n if (!params?.includeParentMessageInfo && (message?.parentMessageId || message?.parentMessage)) {\n return false;\n }\n return true;\n};\n\nexport const filterChannelListParams = (params: GroupChannelListQuery, channel: GroupChannel, currentUserId: string): boolean => {\n const {\n includeEmpty,\n includeFrozen,\n searchFilter,\n userIdsFilter,\n customTypesFilter,\n channelUrlsFilter,\n customTypeStartsWithFilter,\n channelNameContainsFilter,\n nicknameContainsFilter,\n myMemberStateFilter,\n hiddenChannelFilter,\n unreadChannelFilter,\n publicChannelFilter,\n superChannelFilter,\n metadataKey = '',\n metadataValues = ['a', 'b'],\n metadataValueStartsWith,\n } = params;\n\n if (!includeEmpty && channel?.lastMessage === null) {\n return false;\n }\n if (searchFilter?.query && (searchFilter?.fields?.length ?? 0) > 0) {\n const searchQuery = searchFilter.query;\n const searchFields = searchFilter.fields;\n if (searchQuery && searchFields && searchFields.length > 0) {\n if (!searchFields.some((searchField) => {\n switch (searchField) {\n case 'channel_name': {\n return channel?.name?.toLowerCase().includes(searchQuery.toLowerCase());\n }\n case 'member_nickname': {\n return channel?.members?.some((member: Member) => member.nickname.toLowerCase().includes(searchQuery.toLowerCase()));\n }\n default: {\n return true;\n }\n }\n })) {\n return false;\n }\n }\n }\n if (userIdsFilter?.userIds?.length > 0) {\n const { includeMode, queryType } = userIdsFilter;\n const userIds: Array<string> = userIdsFilter.userIds;\n const memberIds = channel?.members?.map((member: Member) => member.userId);\n if (!includeMode) { // exact match\n if (!userIds.includes(currentUserId)) {\n userIds.push(currentUserId); // add the caller's userId if not added already.\n }\n if (channel?.members?.length > userIds.length) {\n return false; // userIds may contain one or more non-member(s).\n }\n if (!hasSameMembers(userIds, memberIds)) {\n return false;\n }\n } else if (userIds.length > 0) { // inclusive\n switch (queryType) {\n case 'AND': {\n if (userIds.some((userId: string) => !memberIds.includes(userId))) {\n return false;\n }\n break;\n }\n case 'OR': {\n if (userIds.every((userId: string) => !memberIds.includes(userId))) {\n return false;\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n }\n if (includeEmpty === false && channel?.lastMessage === null) {\n return false;\n }\n if (includeFrozen === false && channel?.isFrozen === true) {\n return false;\n }\n if (customTypesFilter && !customTypesFilter.includes(channel?.customType)) {\n return false;\n }\n if (customTypeStartsWithFilter && !new RegExp(`^${customTypeStartsWithFilter}`).test(channel?.customType)) {\n return false;\n }\n if (channelNameContainsFilter && !channel?.name?.toLowerCase().includes(channelNameContainsFilter.toLowerCase())) {\n return false;\n }\n if (nicknameContainsFilter) {\n const lowerCasedSubString = nicknameContainsFilter.toLowerCase();\n if (channel?.members?.every((member: Member) => !member.nickname.toLowerCase().includes(lowerCasedSubString))) {\n return false;\n }\n }\n if (channelUrlsFilter && !channelUrlsFilter.includes(channel?.url)) {\n return false;\n }\n if (myMemberStateFilter) {\n switch (myMemberStateFilter) {\n case 'joined_only':\n if (channel?.myMemberState !== 'joined') {\n return false;\n }\n break;\n case 'invited_only':\n if (channel?.myMemberState !== 'invited') {\n return false;\n }\n break;\n case 'invited_by_friend':\n if (channel?.myMemberState !== 'invited' || !isFriend(channel?.inviter)) {\n return false;\n }\n break;\n case 'invited_by_non_friend':\n if (channel?.myMemberState !== 'invited' || isFriend(channel?.inviter)) {\n return false;\n }\n break;\n }\n }\n if (hiddenChannelFilter) {\n switch (hiddenChannelFilter) {\n case 'unhidden_only':\n if (channel?.isHidden || channel?.hiddenState !== 'unhidden') {\n return false;\n }\n break;\n case 'hidden_only':\n if (!channel?.isHidden) {\n return false;\n }\n break;\n case 'hidden_allow_auto_unhide':\n if (!channel?.isHidden || channel?.hiddenState !== 'hidden_allow_auto_unhide') {\n return false;\n }\n break;\n case 'hidden_prevent_auto_unhide':\n if (!channel?.isHidden || channel?.hiddenState !== 'hidden_prevent_auto_unhide') {\n return false;\n }\n break;\n }\n }\n if (unreadChannelFilter) {\n switch (unreadChannelFilter) {\n case 'unread_message':\n if (channel?.unreadMessageCount === 0) {\n return false;\n }\n break;\n }\n }\n if (publicChannelFilter) {\n switch (publicChannelFilter) {\n case 'public':\n if (!channel?.isPublic) {\n return false;\n }\n break;\n case 'private':\n if (channel?.isPublic) {\n return false;\n }\n break;\n }\n }\n if (superChannelFilter) {\n switch (superChannelFilter) {\n case 'super':\n if (!channel?.isSuper) {\n return false;\n }\n break;\n case 'nonsuper':\n if (channel?.isSuper) {\n return false;\n }\n break;\n }\n }\n const { cachedMetaData = {} } = channel;\n if (metadataKey && (metadataValues || metadataValueStartsWith)) {\n const metadataValue: string = cachedMetaData[metadataKey];\n if (!metadataValue) {\n return false;\n }\n if (metadataValues && !metadataValues.every(value => metadataValue.includes(value))) {\n return false;\n }\n if (metadataValueStartsWith && !metadataValue.startsWith(metadataValueStartsWith)) {\n return false;\n }\n }\n return true;\n};\n\nexport const binarySearch = (list: Array<number>, number: number): number => { // [100, 99, 98, 97, ...]\n const pivot = Math.floor(list.length / 2);\n if (list[pivot] === number) {\n return pivot;\n }\n const leftList = list.slice(0, pivot);\n const rightList = list.slice(pivot + 1, list.length);\n if (list[pivot] > number) {\n return pivot + 1 + (rightList.length === 0 ? 0 : binarySearch(rightList, number));\n } else {\n return (leftList.length === 0) ? pivot : binarySearch(leftList, number);\n }\n};\n// This is required when channel is displayed on channel list by filter\nexport const getChannelsWithUpsertedChannel = (channels: Array<GroupChannel>, channel: GroupChannel): Array<GroupChannel> => {\n if (channels.some((ch: GroupChannel) => ch.url === channel?.url)) {\n return channels.map((ch: GroupChannel) => (ch.url === channel?.url ? channel : ch));\n }\n const targetIndex = binarySearch(\n channels.map((channel: GroupChannel) => channel?.lastMessage?.createdAt || channel?.createdAt),\n channel?.lastMessage?.createdAt || channel?.createdAt,\n );\n return [...channels.slice(0, targetIndex), channel, ...channels.slice(targetIndex, channels.length)];\n};\n\nexport const getMatchedUserIds = (word: string, users: Array<User>, _template?: string): boolean => {\n const template = _template || '@'; // Use global variable\n // const matchedUserIds = [];\n // users.map((user) => user?.userId).forEach((userId) => {\n // if (word.indexOf(`${template}{${userId}}`) > -1) {\n // matchedUserIds.push(userId);\n // }\n // });\n // return matchedUserIds;\n return users.map((user) => user?.userId).some((userId) => word.indexOf(`${template}{${userId}}`) > -1);\n};\n\nexport enum StringObjType {\n normal = 'normal',\n mention = 'mention',\n url = 'url',\n}\nexport interface StringObj {\n type: StringObjType;\n value: string;\n userId?: string;\n}\n\n/**\n * @deprecated\n * use modules/message/utils/tokenize instead\n */\nexport const convertWordToStringObj = (word: string, _users: Array<User>, _template?: string): Array<StringObj> => {\n const users = _users || [];\n const template = _template || '@'; // Use global variable\n const resultArray: Array<StringObj> = [];\n const regex = RegExp(`${template}{(${users.map((user) => user?.userId).join('|')})}`, 'g');\n let excutionResult;\n let lastIndex = 0;\n while ((excutionResult = regex.exec(word)) !== null) {\n const [template, userId] = excutionResult;\n const endIndex = regex.lastIndex;\n const startIndex = endIndex - template.length;\n // Normal text\n const normalText = word.slice(lastIndex, startIndex);\n resultArray.push({\n type: isUrl(normalText) ? StringObjType.url : StringObjType.normal,\n value: normalText,\n });\n // Mention template\n const mentionedUser = users.find((user) => user?.userId === userId);\n if (!mentionedUser) {\n resultArray.push({\n type: StringObjType.normal,\n value: template, // because template is the origin text\n });\n } else {\n resultArray.push({\n type: StringObjType.mention,\n value: mentionedUser?.nickname || '(No name)',\n userId: userId,\n });\n }\n lastIndex = endIndex;\n }\n if (lastIndex < word.length) {\n // Normal text\n const normalText = word.slice(lastIndex);\n resultArray.push({\n type: isUrl(normalText) ? StringObjType.url : StringObjType.normal,\n value: normalText,\n });\n }\n return resultArray;\n};\n\nexport const arrayEqual = (array1: Array<unknown>, array2: Array<unknown>): boolean => {\n if (Array.isArray(array1) && Array.isArray(array2) && array1.length === array2.length) {\n for (let i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n\nexport const isSendableMessage = (message?: BaseMessage | null): message is SendableMessageType => {\n return Boolean(message) && 'sender' in message;\n};\n"],"names":["SUPPORTED_MIMES","IMAGE","VIDEO","AUDIO","DOCUMENT","APPLICATION","getMimeTypesUIKitAccepts","acceptableMimeTypes","Array","isArray","length","reduce","accumulator","acceptableMimeType","concat","match","with","otherwise","join","Object","values","mimeTypes","UIKitMessageTypes","ADMIN","TEXT","FILE","MULTIPLE_FILES","THUMBNAIL","OG","UNKNOWN","UIKitFileTypes","GIF","VOICE","OTHERS","isTextuallyNull","text","isImage","type","indexOf","isVideo","isGif","isSupportedFileView","isAudio","getUIKitFileTypes","__assign","getUIKitFileType","isSentMessage","message","sendingStatus","isReadMessage","channel","getOutgoingMessageState","OutgoingMessageStates","READ","isFailedMessage","isPendingMessage","isSentStatus","state","SENT","DELIVERED","isAdminMessage","messageType","isUserMessage","isFileMessage","isMultipleFilesMessage","prototype","hasOwnProperty","call","isThreadMessage","parentMessageId","parentMessage","isOGMessage","ogMetaData","_a","url","_b","title","_c","description","_d","defaultImage","isTextMessage","isThumbnailMessage","isImageMessage","isImageFileInfo","fileInfo","mimeType","isVideoMessage","isGifMessage","isAudioMessage","isAudioMessageMimeType","test","isVoiceMessageMimeType","isVoiceMessage","_e","split","typeParameter","_f","key","value","metaArrays","find","metaArray","isEditedMessage","updatedAt","getUIKitMessageTypes","getUIKitMessageType","reducer","currentValue","__spreadArray","push","getClassName","classNames","isReactedBy","userId","reaction","userIds","some","reactorUserId","getEmojiTooltipString","memberNicknamesMap","stringSet","you","TOOLTIP__YOU","TOOLTIP__AND_YOU","filter","map","get","TOOLTIP__UNKNOWN_USER","URL_REG","isUrl","truncateString","fullStr","strLen","undefined","separator","sepLen","charsToShow","frontChars","Math","ceil","backChars","floor","substr","copyToClipboard","window","clipboardData","setData","document","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","getEmojiListAll","emojiContainer","emojiCategories","emojiCategory","emojis","prevArr","currArr","getEmojiMapAll","emojiMap","Map","forEach","category","emoji","set","findEmojiUrl","targetKey","getEmojiUrl","emojiKey","isFindingKey","getUserName","user","friendName","nickname","getSenderName","sender","hasSameMembers","a","b","sortedA","sort","sortedB","i","isFriend","friendDiscoveryKey","filterMessageListParams","params","customTypesFilter","messageTypeFilter","customTypes","item","includes","customType","senderUserIdsFilter","messageSender","includeParentMessageInfo","filterChannelListParams","currentUserId","includeEmpty","includeFrozen","searchFilter","userIdsFilter","channelUrlsFilter","customTypeStartsWithFilter","channelNameContainsFilter","nicknameContainsFilter","myMemberStateFilter","hiddenChannelFilter","unreadChannelFilter","publicChannelFilter","superChannelFilter","_h","metadataKey","_j","metadataValues","metadataValueStartsWith","lastMessage","query","fields","searchQuery_1","searchFields","searchField","name","toLowerCase","members","member","includeMode","queryType","memberIds_1","every","isFrozen","RegExp","lowerCasedSubString_1","_g","myMemberState","inviter","isHidden","hiddenState","unreadMessageCount","isPublic","isSuper","_k","cachedMetaData","metadataValue_1","startsWith","binarySearch","list","number","pivot","leftList","slice","rightList","getChannelsWithUpsertedChannel","channels","ch","targetIndex","createdAt","StringObjType","convertWordToStringObj","word","_users","_template","users","template","resultArray","regex","excutionResult","lastIndex","template_1","endIndex","startIndex","normalText","normal","mentionedUser","mention","exec","arrayEqual","array1","array2","isSendableMessage","Boolean"],"mappings":"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"}
|
|
@@ -2,28 +2,27 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var DOMPurify = require('dompurify');
|
|
5
|
-
var
|
|
6
|
-
var consts
|
|
7
|
-
var consts$
|
|
5
|
+
var tslib_es6 = require('./tslib.es6-2f2b0bca.js');
|
|
6
|
+
var consts = require('./consts-54f5c12d.js');
|
|
7
|
+
var consts$2 = require('./consts-a3b7ae99.js');
|
|
8
|
+
var consts$1 = require('./consts-85cd42fa.js');
|
|
8
9
|
|
|
9
10
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
11
|
|
|
11
12
|
var DOMPurify__default = /*#__PURE__*/_interopDefaultLegacy(DOMPurify);
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
userId,
|
|
17
|
-
nickname
|
|
18
|
-
} = _ref;
|
|
14
|
+
function renderToString(_a) {
|
|
15
|
+
var userId = _a.userId,
|
|
16
|
+
nickname = _a.nickname;
|
|
19
17
|
// donot change this template, it wont work
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
var el = "<span data-userid=\"".concat(userId, "\" data-sb-mention=\"true\" class=\"").concat(consts.MENTION_USER_LABEL_CLASSNAME, "\">").concat(nickname, "</span>");
|
|
19
|
+
var purifier = DOMPurify__default["default"](window);
|
|
20
|
+
var sanitized_ = purifier.sanitize(el);
|
|
21
|
+
var token = sanitized_.split(' ');
|
|
22
|
+
var spanTag = token[0],
|
|
23
|
+
rest = token.slice(1);
|
|
25
24
|
// we do this because DOMPurify removes the contenteditable attribute
|
|
26
|
-
|
|
25
|
+
var sanitized = tslib_es6.__spreadArray([spanTag, 'contenteditable="false"'], rest, true).join(' ');
|
|
27
26
|
return sanitized;
|
|
28
27
|
}
|
|
29
28
|
|
|
@@ -46,18 +45,16 @@ const nodeListToArray = childNodes => {
|
|
|
46
45
|
};
|
|
47
46
|
function isChannelTypeSupportsMultipleFilesMessage(channel) {
|
|
48
47
|
var _channel$isGroupChann;
|
|
49
|
-
return channel && (channel === null || channel === void 0
|
|
48
|
+
return channel && (channel === null || channel === void 0 || (_channel$isGroupChann = channel.isGroupChannel) === null || _channel$isGroupChann === void 0 ? void 0 : _channel$isGroupChann.call(channel)) && !channel.isBroadcast && !channel.isSuper;
|
|
50
49
|
}
|
|
51
50
|
|
|
52
51
|
function inserTemplateToDOM(templateList) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
userId
|
|
57
|
-
} = template;
|
|
52
|
+
var nodes = templateList.map(function (template) {
|
|
53
|
+
var text = template.text,
|
|
54
|
+
userId = template.userId;
|
|
58
55
|
if (userId) {
|
|
59
56
|
return renderToString({
|
|
60
|
-
userId,
|
|
57
|
+
userId: userId,
|
|
61
58
|
nickname: text
|
|
62
59
|
});
|
|
63
60
|
}
|
|
@@ -68,53 +65,53 @@ function inserTemplateToDOM(templateList) {
|
|
|
68
65
|
document.execCommand('insertHTML', false, nodes);
|
|
69
66
|
}
|
|
70
67
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
68
|
+
var PASTE_NODE = 'sendbird-uikit__paste-node';
|
|
69
|
+
var TEXT_MESSAGE_CLASS = 'sendbird-word';
|
|
70
|
+
var MENTION_CLASS = 'sendbird-word__mention';
|
|
71
|
+
var MENTION_CLASS_IN_INPUT = 'sendbird-mention-user-label';
|
|
72
|
+
var MENTION_CLASS_COMBINED_QUERY = ".".concat(MENTION_CLASS, ", .").concat(MENTION_CLASS_IN_INPUT);
|
|
76
73
|
|
|
77
74
|
function querySelectorIncludingSelf(master, selector) {
|
|
78
|
-
|
|
75
|
+
var result = tslib_es6.__spreadArray([master], Array.from(master.querySelectorAll(selector)), true).find(function (el) {
|
|
76
|
+
return el.matches(selector);
|
|
77
|
+
});
|
|
79
78
|
return result;
|
|
80
79
|
}
|
|
81
|
-
|
|
82
80
|
// Pasted dom node can be OG_MESSAGE or partial message or full message
|
|
83
81
|
// full messsage would have TEXT_MESSAGE_BODY_CLASSNAME and have childNodes
|
|
84
82
|
// partial message would not have TEXT_MESSAGE_BODY_CLASSNAME
|
|
85
83
|
function getLeafNodes(master) {
|
|
86
84
|
// og message
|
|
87
|
-
|
|
85
|
+
var ogMessage = querySelectorIncludingSelf(master, ".".concat(consts$1.OG_MESSAGE_BODY_CLASSNAME));
|
|
88
86
|
if (ogMessage) {
|
|
89
87
|
return nodeListToArray(ogMessage.childNodes);
|
|
90
88
|
}
|
|
91
|
-
|
|
89
|
+
var textMessageBody = querySelectorIncludingSelf(master, ".".concat(consts$2.TEXT_MESSAGE_BODY_CLASSNAME));
|
|
92
90
|
if (textMessageBody) {
|
|
93
91
|
return nodeListToArray(textMessageBody.childNodes);
|
|
94
92
|
}
|
|
95
93
|
return nodeListToArray(master.childNodes);
|
|
96
94
|
}
|
|
97
95
|
function createPasteNode() {
|
|
98
|
-
|
|
96
|
+
var pasteNode = document.body.querySelector("#".concat(PASTE_NODE));
|
|
99
97
|
// remove existing paste node
|
|
100
98
|
if (pasteNode) {
|
|
101
99
|
pasteNode === null || pasteNode === void 0 ? void 0 : pasteNode.remove();
|
|
102
100
|
}
|
|
103
|
-
|
|
104
101
|
// create new paste node and return
|
|
105
|
-
|
|
102
|
+
var node = document.createElement('div');
|
|
106
103
|
node.id = PASTE_NODE;
|
|
107
104
|
node.style.display = 'none';
|
|
108
105
|
return node;
|
|
109
106
|
}
|
|
110
107
|
function hasMention(parent) {
|
|
111
|
-
return parent
|
|
108
|
+
return (parent === null || parent === void 0 ? void 0 : parent.querySelector(MENTION_CLASS_COMBINED_QUERY)) ? true : false;
|
|
112
109
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
nodes.forEach(node
|
|
110
|
+
var extractTextFromNodes = function (nodes) {
|
|
111
|
+
var text = '';
|
|
112
|
+
nodes.forEach(function (node) {
|
|
116
113
|
// to preserve space between words
|
|
117
|
-
|
|
114
|
+
var textNodes = node.querySelectorAll(".".concat(TEXT_MESSAGE_CLASS));
|
|
118
115
|
if (textNodes.length > 0) {
|
|
119
116
|
text += extractTextFromNodes(Array.from(textNodes)) + ' ';
|
|
120
117
|
}
|
|
@@ -123,12 +120,12 @@ const extractTextFromNodes = nodes => {
|
|
|
123
120
|
return text;
|
|
124
121
|
};
|
|
125
122
|
function domToMessageTemplate(nodeArray) {
|
|
126
|
-
|
|
123
|
+
var templates = nodeArray === null || nodeArray === void 0 ? void 0 : nodeArray.reduce(function (accumulator, currentValue) {
|
|
124
|
+
var _a;
|
|
127
125
|
// currentValue can be node(from messageBody or messageInput) or text
|
|
128
|
-
|
|
126
|
+
var mentionNode;
|
|
129
127
|
// this looks awkward, but it is a fallback to set default text
|
|
130
|
-
|
|
131
|
-
|
|
128
|
+
var text = currentValue === null || currentValue === void 0 ? void 0 : currentValue.innerText;
|
|
132
129
|
// if text node, set text
|
|
133
130
|
if (currentValue instanceof Text) {
|
|
134
131
|
mentionNode = false;
|
|
@@ -137,29 +134,29 @@ function domToMessageTemplate(nodeArray) {
|
|
|
137
134
|
if (currentValue instanceof HTMLElement) {
|
|
138
135
|
mentionNode = currentValue.classList.contains(MENTION_CLASS) || currentValue.classList.contains(MENTION_CLASS_IN_INPUT) ? currentValue : currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY);
|
|
139
136
|
}
|
|
140
|
-
|
|
141
137
|
// if mentionNode is not null, it is a mention
|
|
142
138
|
if (mentionNode) {
|
|
143
|
-
var
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}];
|
|
139
|
+
var text_1 = currentValue === null || currentValue === void 0 ? void 0 : currentValue.innerText;
|
|
140
|
+
var userId = (_a = mentionNode.dataset) === null || _a === void 0 ? void 0 : _a.userid;
|
|
141
|
+
return tslib_es6.__spreadArray(tslib_es6.__spreadArray([], accumulator, true), [{
|
|
142
|
+
text: text_1,
|
|
143
|
+
userId: userId
|
|
144
|
+
}], false);
|
|
150
145
|
}
|
|
151
|
-
return [
|
|
152
|
-
text
|
|
153
|
-
}];
|
|
146
|
+
return tslib_es6.__spreadArray(tslib_es6.__spreadArray([], accumulator, true), [{
|
|
147
|
+
text: text
|
|
148
|
+
}], false);
|
|
154
149
|
}, []);
|
|
155
150
|
return templates;
|
|
156
151
|
}
|
|
157
152
|
function getUsersFromWords(templates, channel) {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
templates.forEach(template
|
|
153
|
+
var userMap = {};
|
|
154
|
+
var users = channel.members;
|
|
155
|
+
templates.forEach(function (template) {
|
|
161
156
|
if (template.userId) {
|
|
162
|
-
|
|
157
|
+
var mentionedMember = users.find(function (user) {
|
|
158
|
+
return user.userId === template.userId;
|
|
159
|
+
});
|
|
163
160
|
// Object.values would return array-> [undefined] if the user is not in the channel
|
|
164
161
|
if (mentionedMember) {
|
|
165
162
|
userMap[template.userId] = mentionedMember;
|
|
@@ -177,47 +174,42 @@ function getUsersFromWords(templates, channel) {
|
|
|
177
174
|
// 4. paste text with mention and text and paste again before and after
|
|
178
175
|
// 5. copy message with mention(only one mention, no other text) and paste
|
|
179
176
|
// 6. copy message with mention from input and paste(before and after)
|
|
180
|
-
function usePaste(
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
} = _ref;
|
|
188
|
-
return React.useCallback(e => {
|
|
177
|
+
function usePaste(_a) {
|
|
178
|
+
var ref = _a.ref,
|
|
179
|
+
setIsInput = _a.setIsInput,
|
|
180
|
+
setHeight = _a.setHeight,
|
|
181
|
+
channel = _a.channel,
|
|
182
|
+
setMentionedUsers = _a.setMentionedUsers;
|
|
183
|
+
return React.useCallback(function (e) {
|
|
189
184
|
e.preventDefault();
|
|
190
|
-
|
|
185
|
+
var html = e === null || e === void 0 ? void 0 : e.clipboardData.getData('text/html');
|
|
191
186
|
// simple text, continue as normal
|
|
192
187
|
if (!html) {
|
|
193
|
-
|
|
188
|
+
var text = e === null || e === void 0 ? void 0 : e.clipboardData.getData('text');
|
|
194
189
|
document.execCommand('insertHTML', false, sanitizeString(text));
|
|
195
190
|
setIsInput(true);
|
|
196
191
|
setHeight();
|
|
197
192
|
return;
|
|
198
193
|
}
|
|
199
|
-
|
|
200
194
|
// has html, check if there are mentions, sanitize and insert
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
195
|
+
var purifier = DOMPurify__default["default"](window);
|
|
196
|
+
var clean = purifier.sanitize(html);
|
|
197
|
+
var pasteNode = createPasteNode();
|
|
204
198
|
pasteNode.innerHTML = clean;
|
|
205
199
|
// does not have mention, continue as normal
|
|
206
200
|
if (!hasMention(pasteNode)) {
|
|
207
201
|
// to preserve space between words
|
|
208
|
-
|
|
202
|
+
var text = extractTextFromNodes(Array.from(pasteNode.children));
|
|
209
203
|
document.execCommand('insertHTML', false, sanitizeString(text));
|
|
210
204
|
pasteNode.remove();
|
|
211
205
|
setIsInput(true);
|
|
212
206
|
setHeight();
|
|
213
207
|
return;
|
|
214
208
|
}
|
|
215
|
-
|
|
216
209
|
// has mention, collect leaf nodes and parse words
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
210
|
+
var leafNodes = getLeafNodes(pasteNode);
|
|
211
|
+
var words = domToMessageTemplate(leafNodes);
|
|
212
|
+
var mentionedUsers = getUsersFromWords(words, channel);
|
|
221
213
|
// side effects
|
|
222
214
|
setMentionedUsers(mentionedUsers);
|
|
223
215
|
inserTemplateToDOM(words);
|
|
@@ -232,4 +224,4 @@ exports.nodeListToArray = nodeListToArray;
|
|
|
232
224
|
exports.renderToString = renderToString;
|
|
233
225
|
exports.sanitizeString = sanitizeString;
|
|
234
226
|
exports.usePaste = usePaste;
|
|
235
|
-
//# sourceMappingURL=index-
|
|
227
|
+
//# sourceMappingURL=index-bdf7089c.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-759f2a26.js","sources":["../../src/ui/MentionUserLabel/renderToString.ts","../../src/ui/MessageInput/utils.js","../../src/ui/MessageInput/hooks/usePaste/insertTemplate.ts","../../src/ui/MessageInput/hooks/usePaste/consts.ts","../../src/ui/MessageInput/hooks/usePaste/utils.ts","../../src/ui/MessageInput/hooks/usePaste/index.ts"],"sourcesContent":["// cretes a sanitized string from a mention user label\nimport DOMPurify from 'dompurify';\nimport { MENTION_USER_LABEL_CLASSNAME } from './consts';\n\ntype renderToStringParams = {\n userId: string;\n nickname: string;\n};\n\nexport default function renderToString({ userId, nickname }: renderToStringParams): string {\n // donot change this template, it wont work\n const el = `<span data-userid=\"${userId}\" data-sb-mention=\"true\" class=\"${MENTION_USER_LABEL_CLASSNAME}\">${nickname}</span>`;\n const purifier = DOMPurify(window);\n const sanitized_ = purifier.sanitize(el);\n const token = sanitized_.split(' ');\n const [spanTag, ...rest] = token;\n // we do this because DOMPurify removes the contenteditable attribute\n const sanitized = [spanTag, 'contenteditable=\"false\"', ...rest].join(' ');\n return sanitized;\n}\n","// https://davidwalsh.name/javascript-debounce-function\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate) {\n let timeout;\n return function _debounce() {\n const context = this;\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\n// Sanitize that special characters of HTML tags cause XSS issue\nexport const sanitizeString = (str) => (\n str?.replace(/[\\u00A0-\\u9999<>]/gim, (i) => ''.concat('&#', i.charCodeAt(0), ';'))\n);\n\n/**\n * NodeList cannot be used with Array methods\n * @param {childNodes} NodeList\n * @returns Array of child nodes\n */\nexport const nodeListToArray = (childNodes) => {\n try {\n return Array.from(childNodes);\n } catch (error) {\n return [];\n }\n};\n\nexport function isChannelTypeSupportsMultipleFilesMessage(channel) {\n return channel\n && channel?.isGroupChannel?.()\n && !channel.isBroadcast\n && !channel.isSuper;\n}\n","import { Word } from './types';\nimport { sanitizeString } from '../../utils';\nimport renderMentionLabelToString from '../../../MentionUserLabel/renderToString';\n\nexport function inserTemplateToDOM(templateList: Word[]): void {\n const nodes = templateList.map((template) => {\n const { text, userId } = template;\n if (userId) {\n return renderMentionLabelToString({ userId, nickname: text });\n }\n return sanitizeString(text);\n })\n .join(' ')\n // add a space at the end of the mention, else cursor/caret wont work\n .concat(' ');\n document.execCommand('insertHTML', false, nodes);\n}\n","export const PASTE_NODE = 'sendbird-uikit__paste-node';\nexport const TEXT_MESSAGE_CLASS = 'sendbird-word';\nexport const MENTION_CLASS = 'sendbird-word__mention';\nexport const MENTION_CLASS_IN_INPUT = 'sendbird-mention-user-label';\nexport const MENTION_CLASS_COMBINED_QUERY = `.${MENTION_CLASS}, .${MENTION_CLASS_IN_INPUT}`;\n","import { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { User } from '@sendbird/chat';\n\nimport {\n PASTE_NODE,\n MENTION_CLASS,\n TEXT_MESSAGE_CLASS,\n MENTION_CLASS_COMBINED_QUERY,\n MENTION_CLASS_IN_INPUT,\n} from './consts';\nimport { Word } from './types';\nimport { TEXT_MESSAGE_BODY_CLASSNAME } from '../../../TextMessageItemBody/consts';\nimport { OG_MESSAGE_BODY_CLASSNAME } from '../../../OGMessageItemBody/consts';\nimport { nodeListToArray } from '../../utils';\n\nexport function querySelectorIncludingSelf(\n master: HTMLElement,\n selector: string,\n): HTMLElement | null {\n const result = [\n master,\n ...Array.from(master.querySelectorAll(selector)),\n ].find((el) => el.matches(selector)) as HTMLElement | null;\n return result;\n}\n\n// Pasted dom node can be OG_MESSAGE or partial message or full message\n// full messsage would have TEXT_MESSAGE_BODY_CLASSNAME and have childNodes\n// partial message would not have TEXT_MESSAGE_BODY_CLASSNAME\nexport function getLeafNodes(master: HTMLElement): ChildNode[] {\n // og message\n const ogMessage = querySelectorIncludingSelf(master, `.${OG_MESSAGE_BODY_CLASSNAME}`);\n if (ogMessage) {\n return nodeListToArray(ogMessage.childNodes);\n }\n\n const textMessageBody = querySelectorIncludingSelf(master, `.${TEXT_MESSAGE_BODY_CLASSNAME}`);\n if (textMessageBody) {\n return nodeListToArray(textMessageBody.childNodes);\n }\n\n return nodeListToArray(master.childNodes);\n}\n\nexport function createPasteNode(): HTMLDivElement | null {\n const pasteNode = document.body.querySelector(`#${PASTE_NODE}`);\n // remove existing paste node\n if (pasteNode) {\n pasteNode?.remove();\n }\n\n // create new paste node and return\n const node = document.createElement('div');\n node.id = PASTE_NODE;\n node.style.display = 'none';\n return node;\n}\n\nexport function hasMention(parent: HTMLDivElement): boolean {\n return parent?.querySelector(MENTION_CLASS_COMBINED_QUERY) ? true : false;\n}\n\nexport const extractTextFromNodes = (nodes: HTMLSpanElement[]): string => {\n let text = '';\n nodes.forEach((node) => {\n // to preserve space between words\n const textNodes = node.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`);\n if (textNodes.length > 0) {\n text += ((extractTextFromNodes(Array.from(textNodes) as HTMLSpanElement[])) + ' ');\n }\n text += (node.innerText + ' ');\n });\n return text;\n};\n\nexport function domToMessageTemplate(nodeArray: ChildNode[]): Word[] {\n const templates: Word[] = nodeArray?.reduce((accumulator, currentValue) => {\n // currentValue can be node(from messageBody or messageInput) or text\n let mentionNode;\n // this looks awkward, but it is a fallback to set default text\n let text = (currentValue as HTMLSpanElement)?.innerText;\n\n // if text node, set text\n if (currentValue instanceof Text) {\n mentionNode = false;\n text = currentValue.textContent;\n }\n\n if (currentValue instanceof HTMLElement) {\n mentionNode = (currentValue.classList.contains(MENTION_CLASS) || currentValue.classList.contains(MENTION_CLASS_IN_INPUT))\n ? currentValue\n : currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY);\n }\n\n // if mentionNode is not null, it is a mention\n if (mentionNode) {\n const text = (currentValue as HTMLSpanElement)?.innerText;\n const userId = mentionNode.dataset?.userid;\n return [\n ...accumulator,\n {\n text,\n userId,\n },\n ];\n }\n\n return [\n ...accumulator,\n {\n text,\n },\n ];\n }, [] as Word[]);\n return templates;\n}\n\nexport function getUsersFromWords(templates: Word[], channel: GroupChannel): User[] {\n const userMap = {};\n const users = channel.members;\n templates.forEach((template) => {\n if (template.userId) {\n const mentionedMember = users.find((user) => user.userId === template.userId);\n // Object.values would return array-> [undefined] if the user is not in the channel\n if (mentionedMember) {\n userMap[template.userId] = mentionedMember;\n }\n }\n });\n return Object.values(userMap);\n}\n","import { useCallback } from 'react';\nimport DOMPurify from 'dompurify';\n\nimport { inserTemplateToDOM } from './insertTemplate';\nimport { sanitizeString } from '../../utils';\nimport { DynamicProps } from './types';\nimport {\n createPasteNode,\n hasMention,\n domToMessageTemplate,\n getUsersFromWords,\n extractTextFromNodes,\n getLeafNodes,\n} from './utils';\n\n// exported, should be backward compatible\n// conditions to test:\n// 1. paste simple text\n// 2. paste text with mention\n// 3. paste text with mention and text\n// 4. paste text with mention and text and paste again before and after\n// 5. copy message with mention(only one mention, no other text) and paste\n// 6. copy message with mention from input and paste(before and after)\nexport function usePaste({\n ref,\n setIsInput,\n setHeight,\n channel,\n setMentionedUsers,\n}: DynamicProps): (e: React.ClipboardEvent<HTMLDivElement>) => void {\n return useCallback((e) => {\n e.preventDefault();\n const html = e?.clipboardData.getData('text/html');\n // simple text, continue as normal\n if (!html) {\n const text = e?.clipboardData.getData('text');\n document.execCommand('insertHTML', false, sanitizeString(text));\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has html, check if there are mentions, sanitize and insert\n const purifier = DOMPurify(window);\n const clean = purifier.sanitize(html);\n const pasteNode = createPasteNode();\n pasteNode.innerHTML = clean;\n // does not have mention, continue as normal\n if (!hasMention(pasteNode)) {\n // to preserve space between words\n const text = extractTextFromNodes(Array.from(pasteNode.children) as HTMLSpanElement[]);\n document.execCommand('insertHTML', false, sanitizeString(text));\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has mention, collect leaf nodes and parse words\n const leafNodes = getLeafNodes(pasteNode);\n const words = domToMessageTemplate(leafNodes);\n const mentionedUsers = getUsersFromWords(words, channel);\n\n // side effects\n setMentionedUsers(mentionedUsers);\n inserTemplateToDOM(words);\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n }, [ref, setIsInput, setHeight, channel, setMentionedUsers]);\n}\n\n// to do -> In the future donot export default\nexport default usePaste;\n"],"names":["renderToString","_ref","userId","nickname","el","MENTION_USER_LABEL_CLASSNAME","purifier","DOMPurify","window","sanitized_","sanitize","token","split","spanTag","rest","sanitized","join","sanitizeString","str","replace","i","concat","charCodeAt","nodeListToArray","childNodes","Array","from","error","isChannelTypeSupportsMultipleFilesMessage","channel","_channel$isGroupChann","isGroupChannel","call","isBroadcast","isSuper","inserTemplateToDOM","templateList","nodes","map","template","text","renderMentionLabelToString","document","execCommand","PASTE_NODE","TEXT_MESSAGE_CLASS","MENTION_CLASS","MENTION_CLASS_IN_INPUT","MENTION_CLASS_COMBINED_QUERY","querySelectorIncludingSelf","master","selector","result","querySelectorAll","find","matches","getLeafNodes","ogMessage","OG_MESSAGE_BODY_CLASSNAME","textMessageBody","TEXT_MESSAGE_BODY_CLASSNAME","createPasteNode","pasteNode","body","querySelector","remove","node","createElement","id","style","display","hasMention","parent","extractTextFromNodes","forEach","textNodes","length","innerText","domToMessageTemplate","nodeArray","templates","reduce","accumulator","currentValue","mentionNode","Text","textContent","HTMLElement","classList","contains","_mentionNode$dataset","dataset","userid","getUsersFromWords","userMap","users","members","mentionedMember","user","Object","values","usePaste","ref","setIsInput","setHeight","setMentionedUsers","useCallback","e","preventDefault","html","clipboardData","getData","clean","innerHTML","children","leafNodes","words","mentionedUsers"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-bdf7089c.js","sources":["../../src/ui/MentionUserLabel/renderToString.ts","../../src/ui/MessageInput/utils.js","../../src/ui/MessageInput/hooks/usePaste/insertTemplate.ts","../../src/ui/MessageInput/hooks/usePaste/consts.ts","../../src/ui/MessageInput/hooks/usePaste/utils.ts","../../src/ui/MessageInput/hooks/usePaste/index.ts"],"sourcesContent":["// cretes a sanitized string from a mention user label\nimport DOMPurify from 'dompurify';\nimport { MENTION_USER_LABEL_CLASSNAME } from './consts';\n\ntype renderToStringParams = {\n userId: string;\n nickname: string;\n};\n\nexport default function renderToString({ userId, nickname }: renderToStringParams): string {\n // donot change this template, it wont work\n const el = `<span data-userid=\"${userId}\" data-sb-mention=\"true\" class=\"${MENTION_USER_LABEL_CLASSNAME}\">${nickname}</span>`;\n const purifier = DOMPurify(window);\n const sanitized_ = purifier.sanitize(el);\n const token = sanitized_.split(' ');\n const [spanTag, ...rest] = token;\n // we do this because DOMPurify removes the contenteditable attribute\n const sanitized = [spanTag, 'contenteditable=\"false\"', ...rest].join(' ');\n return sanitized;\n}\n","// https://davidwalsh.name/javascript-debounce-function\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate) {\n let timeout;\n return function _debounce() {\n const context = this;\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\n// Sanitize that special characters of HTML tags cause XSS issue\nexport const sanitizeString = (str) => (\n str?.replace(/[\\u00A0-\\u9999<>]/gim, (i) => ''.concat('&#', i.charCodeAt(0), ';'))\n);\n\n/**\n * NodeList cannot be used with Array methods\n * @param {childNodes} NodeList\n * @returns Array of child nodes\n */\nexport const nodeListToArray = (childNodes) => {\n try {\n return Array.from(childNodes);\n } catch (error) {\n return [];\n }\n};\n\nexport function isChannelTypeSupportsMultipleFilesMessage(channel) {\n return channel\n && channel?.isGroupChannel?.()\n && !channel.isBroadcast\n && !channel.isSuper;\n}\n","import { Word } from './types';\nimport { sanitizeString } from '../../utils';\nimport renderMentionLabelToString from '../../../MentionUserLabel/renderToString';\n\nexport function inserTemplateToDOM(templateList: Word[]): void {\n const nodes = templateList.map((template) => {\n const { text, userId } = template;\n if (userId) {\n return renderMentionLabelToString({ userId, nickname: text });\n }\n return sanitizeString(text);\n })\n .join(' ')\n // add a space at the end of the mention, else cursor/caret wont work\n .concat(' ');\n document.execCommand('insertHTML', false, nodes);\n}\n","export const PASTE_NODE = 'sendbird-uikit__paste-node';\nexport const TEXT_MESSAGE_CLASS = 'sendbird-word';\nexport const MENTION_CLASS = 'sendbird-word__mention';\nexport const MENTION_CLASS_IN_INPUT = 'sendbird-mention-user-label';\nexport const MENTION_CLASS_COMBINED_QUERY = `.${MENTION_CLASS}, .${MENTION_CLASS_IN_INPUT}`;\n","import { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { User } from '@sendbird/chat';\n\nimport {\n PASTE_NODE,\n MENTION_CLASS,\n TEXT_MESSAGE_CLASS,\n MENTION_CLASS_COMBINED_QUERY,\n MENTION_CLASS_IN_INPUT,\n} from './consts';\nimport { Word } from './types';\nimport { TEXT_MESSAGE_BODY_CLASSNAME } from '../../../TextMessageItemBody/consts';\nimport { OG_MESSAGE_BODY_CLASSNAME } from '../../../OGMessageItemBody/consts';\nimport { nodeListToArray } from '../../utils';\n\nexport function querySelectorIncludingSelf(\n master: HTMLElement,\n selector: string,\n): HTMLElement | null {\n const result = [\n master,\n ...Array.from(master.querySelectorAll(selector)),\n ].find((el) => el.matches(selector)) as HTMLElement | null;\n return result;\n}\n\n// Pasted dom node can be OG_MESSAGE or partial message or full message\n// full messsage would have TEXT_MESSAGE_BODY_CLASSNAME and have childNodes\n// partial message would not have TEXT_MESSAGE_BODY_CLASSNAME\nexport function getLeafNodes(master: HTMLElement): ChildNode[] {\n // og message\n const ogMessage = querySelectorIncludingSelf(master, `.${OG_MESSAGE_BODY_CLASSNAME}`);\n if (ogMessage) {\n return nodeListToArray(ogMessage.childNodes);\n }\n\n const textMessageBody = querySelectorIncludingSelf(master, `.${TEXT_MESSAGE_BODY_CLASSNAME}`);\n if (textMessageBody) {\n return nodeListToArray(textMessageBody.childNodes);\n }\n\n return nodeListToArray(master.childNodes);\n}\n\nexport function createPasteNode(): HTMLDivElement | null {\n const pasteNode = document.body.querySelector(`#${PASTE_NODE}`);\n // remove existing paste node\n if (pasteNode) {\n pasteNode?.remove();\n }\n\n // create new paste node and return\n const node = document.createElement('div');\n node.id = PASTE_NODE;\n node.style.display = 'none';\n return node;\n}\n\nexport function hasMention(parent: HTMLDivElement): boolean {\n return parent?.querySelector(MENTION_CLASS_COMBINED_QUERY) ? true : false;\n}\n\nexport const extractTextFromNodes = (nodes: HTMLSpanElement[]): string => {\n let text = '';\n nodes.forEach((node) => {\n // to preserve space between words\n const textNodes = node.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`);\n if (textNodes.length > 0) {\n text += ((extractTextFromNodes(Array.from(textNodes) as HTMLSpanElement[])) + ' ');\n }\n text += (node.innerText + ' ');\n });\n return text;\n};\n\nexport function domToMessageTemplate(nodeArray: ChildNode[]): Word[] {\n const templates: Word[] = nodeArray?.reduce((accumulator, currentValue) => {\n // currentValue can be node(from messageBody or messageInput) or text\n let mentionNode;\n // this looks awkward, but it is a fallback to set default text\n let text = (currentValue as HTMLSpanElement)?.innerText;\n\n // if text node, set text\n if (currentValue instanceof Text) {\n mentionNode = false;\n text = currentValue.textContent;\n }\n\n if (currentValue instanceof HTMLElement) {\n mentionNode = (currentValue.classList.contains(MENTION_CLASS) || currentValue.classList.contains(MENTION_CLASS_IN_INPUT))\n ? currentValue\n : currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY);\n }\n\n // if mentionNode is not null, it is a mention\n if (mentionNode) {\n const text = (currentValue as HTMLSpanElement)?.innerText;\n const userId = mentionNode.dataset?.userid;\n return [\n ...accumulator,\n {\n text,\n userId,\n },\n ];\n }\n\n return [\n ...accumulator,\n {\n text,\n },\n ];\n }, [] as Word[]);\n return templates;\n}\n\nexport function getUsersFromWords(templates: Word[], channel: GroupChannel): User[] {\n const userMap = {};\n const users = channel.members;\n templates.forEach((template) => {\n if (template.userId) {\n const mentionedMember = users.find((user) => user.userId === template.userId);\n // Object.values would return array-> [undefined] if the user is not in the channel\n if (mentionedMember) {\n userMap[template.userId] = mentionedMember;\n }\n }\n });\n return Object.values(userMap);\n}\n","import { useCallback } from 'react';\nimport DOMPurify from 'dompurify';\n\nimport { inserTemplateToDOM } from './insertTemplate';\nimport { sanitizeString } from '../../utils';\nimport { DynamicProps } from './types';\nimport {\n createPasteNode,\n hasMention,\n domToMessageTemplate,\n getUsersFromWords,\n extractTextFromNodes,\n getLeafNodes,\n} from './utils';\n\n// exported, should be backward compatible\n// conditions to test:\n// 1. paste simple text\n// 2. paste text with mention\n// 3. paste text with mention and text\n// 4. paste text with mention and text and paste again before and after\n// 5. copy message with mention(only one mention, no other text) and paste\n// 6. copy message with mention from input and paste(before and after)\nexport function usePaste({\n ref,\n setIsInput,\n setHeight,\n channel,\n setMentionedUsers,\n}: DynamicProps): (e: React.ClipboardEvent<HTMLDivElement>) => void {\n return useCallback((e) => {\n e.preventDefault();\n const html = e?.clipboardData.getData('text/html');\n // simple text, continue as normal\n if (!html) {\n const text = e?.clipboardData.getData('text');\n document.execCommand('insertHTML', false, sanitizeString(text));\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has html, check if there are mentions, sanitize and insert\n const purifier = DOMPurify(window);\n const clean = purifier.sanitize(html);\n const pasteNode = createPasteNode();\n pasteNode.innerHTML = clean;\n // does not have mention, continue as normal\n if (!hasMention(pasteNode)) {\n // to preserve space between words\n const text = extractTextFromNodes(Array.from(pasteNode.children) as HTMLSpanElement[]);\n document.execCommand('insertHTML', false, sanitizeString(text));\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has mention, collect leaf nodes and parse words\n const leafNodes = getLeafNodes(pasteNode);\n const words = domToMessageTemplate(leafNodes);\n const mentionedUsers = getUsersFromWords(words, channel);\n\n // side effects\n setMentionedUsers(mentionedUsers);\n inserTemplateToDOM(words);\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n }, [ref, setIsInput, setHeight, channel, setMentionedUsers]);\n}\n\n// to do -> In the future donot export default\nexport default usePaste;\n"],"names":["renderToString","_a","userId","nickname","el","concat","MENTION_USER_LABEL_CLASSNAME","purifier","DOMPurify","window","sanitized_","sanitize","token","split","spanTag","rest","slice","sanitized","__spreadArray","join","sanitizeString","str","replace","i","charCodeAt","nodeListToArray","childNodes","Array","from","error","isChannelTypeSupportsMultipleFilesMessage","channel","_channel$isGroupChann","isGroupChannel","call","isBroadcast","isSuper","inserTemplateToDOM","templateList","nodes","map","template","text","renderMentionLabelToString","document","execCommand","PASTE_NODE","TEXT_MESSAGE_CLASS","MENTION_CLASS","MENTION_CLASS_IN_INPUT","MENTION_CLASS_COMBINED_QUERY","querySelectorIncludingSelf","master","selector","result","querySelectorAll","find","matches","getLeafNodes","ogMessage","OG_MESSAGE_BODY_CLASSNAME","textMessageBody","TEXT_MESSAGE_BODY_CLASSNAME","createPasteNode","pasteNode","body","querySelector","remove","node","createElement","id","style","display","hasMention","parent","extractTextFromNodes","forEach","textNodes","length","innerText","domToMessageTemplate","nodeArray","templates","reduce","accumulator","currentValue","mentionNode","Text","textContent","HTMLElement","classList","contains","text_1","dataset","userid","getUsersFromWords","userMap","users","members","mentionedMember","user","Object","values","usePaste","ref","setIsInput","setHeight","setMentionedUsers","useCallback","e","preventDefault","html","clipboardData","getData","clean","innerHTML","children","leafNodes","words","mentionedUsers"],"mappings":"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"}
|