@sendbird/uikit-react 3.6.9 → 3.6.11-beta.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 +55 -55
- package/CHANGELOG.md +6 -2
- package/Channel/components/ChannelHeader.js +22 -22
- package/Channel/components/ChannelUI.js +48 -48
- package/Channel/components/FileViewer.js +18 -18
- package/Channel/components/FrozenNotification.js +4 -4
- package/Channel/components/Message.js +46 -44
- package/Channel/components/Message.js.map +1 -1
- package/Channel/components/MessageInput.js +34 -34
- package/Channel/components/MessageList.js +75 -46
- package/Channel/components/MessageList.js.map +1 -1
- package/Channel/components/RemoveMessageModal.js +22 -22
- package/Channel/components/SuggestedMentionList.js +20 -20
- package/Channel/components/TypingIndicator.js +18 -18
- package/Channel/components/UnreadCount.js +4 -4
- package/Channel/context.js +15 -15
- package/Channel/utils/compareMessagesForGrouping.js +7 -7
- package/Channel/utils/getMessagePartsInfo.js +8 -8
- package/Channel.js +48 -48
- package/ChannelList/components/AddChannel.js +16 -16
- package/ChannelList/components/ChannelListHeader.js +6 -6
- package/ChannelList/components/ChannelListUI.js +33 -33
- package/ChannelList/components/ChannelPreview.js +29 -29
- package/ChannelList/components/ChannelPreviewAction.js +15 -15
- package/ChannelList/context.js +9 -9
- package/ChannelList.js +33 -33
- package/{ChannelListProvider-ba11ee5f.js → ChannelListProvider-52997aa4.js} +28 -33
- package/ChannelListProvider-52997aa4.js.map +1 -0
- package/{ChannelProvider-7400e8f6.js → ChannelProvider-c675e242.js} +26 -20
- package/ChannelProvider-c675e242.js.map +1 -0
- package/ChannelSettings/components/ChannelProfile.js +13 -13
- package/ChannelSettings/components/ChannelSettingsUI.js +18 -18
- package/ChannelSettings/components/EditDetailsModal.js +13 -13
- package/ChannelSettings/components/LeaveChannel.js +12 -12
- package/ChannelSettings/components/ModerationPanel.js +15 -15
- package/ChannelSettings/components/UserListItem.js +11 -11
- package/ChannelSettings/components/UserPanel.js +14 -14
- package/ChannelSettings/context.js +3 -3
- package/ChannelSettings.js +18 -18
- package/CreateChannel/components/CreateChannelUI.js +14 -14
- package/CreateChannel/components/InviteUsers.js +14 -14
- package/CreateChannel/components/InviteUsers.js.map +1 -1
- package/CreateChannel/components/SelectChannelType.js +11 -11
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +14 -14
- package/{CreateChannelProvider-b2487387.js → CreateChannelProvider-cc40c17f.js} +1 -1
- package/{CreateChannelProvider-b2487387.js.map → CreateChannelProvider-cc40c17f.js.map} +1 -1
- package/CreateOpenChannel/components/CreateOpenChannelUI.js +11 -11
- package/CreateOpenChannel/context.js +1 -1
- package/CreateOpenChannel.js +11 -11
- package/EditUserProfile/components/EditUserProfileUI.js +13 -13
- package/EditUserProfile.js +13 -13
- package/{LocalizationContext-c9b218d4.js → LocalizationContext-1d7d5046.js} +3 -3
- package/{LocalizationContext-c9b218d4.js.map → LocalizationContext-1d7d5046.js.map} +1 -1
- package/{MediaQueryContext-532b0a77.js → MediaQueryContext-a8f216c8.js} +1 -1
- package/{MediaQueryContext-532b0a77.js.map → MediaQueryContext-a8f216c8.js.map} +1 -1
- package/{MemberList-15511dd2.js → MemberList-10f76588.js} +6 -6
- package/{MemberList-15511dd2.js.map → MemberList-10f76588.js.map} +1 -1
- package/MessageSearch/components/MessageSearchUI.js +13 -13
- package/MessageSearch/context.js +1 -1
- package/MessageSearch.js +13 -13
- package/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/OpenChannel/components/OpenChannelHeader.js +12 -12
- package/OpenChannel/components/OpenChannelInput.js +20 -20
- package/OpenChannel/components/OpenChannelMessage.js +31 -31
- package/OpenChannel/components/OpenChannelMessageList.js +34 -34
- package/OpenChannel/components/OpenChannelUI.js +34 -34
- package/OpenChannel/context.js +8 -8
- package/OpenChannel.js +34 -34
- package/OpenChannelList/components/OpenChannelListUI.js +15 -15
- package/OpenChannelList/components/OpenChannelPreview.js +3 -3
- package/OpenChannelList/context.js +3 -3
- package/OpenChannelList.js +15 -15
- package/{OpenChannelListProvider-a79c47d4.js → OpenChannelListProvider-ea45dd27.js} +3 -3
- package/{OpenChannelListProvider-a79c47d4.js.map → OpenChannelListProvider-ea45dd27.js.map} +1 -1
- package/{OpenChannelProvider-4f21a22d.js → OpenChannelProvider-7566d5ba.js} +8 -8
- package/OpenChannelProvider-7566d5ba.js.map +1 -0
- package/OpenChannelSettings/components/EditDetailsModal.js +14 -14
- package/OpenChannelSettings/components/OpenChannelProfile.js +14 -14
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +18 -18
- package/OpenChannelSettings/components/OperatorUI.js +17 -17
- package/OpenChannelSettings/components/ParticipantUI.js +15 -15
- package/OpenChannelSettings/context.js +3 -3
- package/OpenChannelSettings.js +18 -18
- package/{RemoveMessageModal-62276928.js → RemoveMessageModal-052a7531.js} +5 -5
- package/{RemoveMessageModal-62276928.js.map → RemoveMessageModal-052a7531.js.map} +1 -1
- package/SendbirdProvider.js +17 -17
- package/SendbirdProvider.js.map +1 -1
- package/Thread/components/ParentMessageInfo.js +38 -38
- package/Thread/components/ParentMessageInfoItem.js +25 -25
- package/Thread/components/ThreadHeader.js +6 -6
- package/Thread/components/ThreadList.js +42 -42
- package/Thread/components/ThreadListItem.js +42 -42
- package/Thread/components/ThreadMessageInput.js +34 -34
- package/Thread/components/ThreadUI.js +47 -47
- package/Thread/context.js +12 -12
- package/Thread.js +47 -47
- package/{ThreadProvider-593b6c29.js → ThreadProvider-9c3f6dd1.js} +31 -9
- package/ThreadProvider-9c3f6dd1.js.map +1 -0
- package/{UserProfileContext-36e341fd.js → UserProfileContext-050e38d1.js} +1 -1
- package/{UserProfileContext-36e341fd.js.map → UserProfileContext-050e38d1.js.map} +1 -1
- package/VoicePlayer/context.js +3 -3
- package/VoicePlayer/useVoicePlayer.js +11 -11
- package/VoiceRecorder/context.js +11 -11
- package/VoiceRecorder/useVoiceRecorder.js +10 -10
- package/{WebAudioUtils-ca6a01e4.js → WebAudioUtils-feb2f826.js} +2 -2
- package/{WebAudioUtils-ca6a01e4.js.map → WebAudioUtils-feb2f826.js.map} +1 -1
- package/{_rollupPluginBabelHelpers-ea73a031.js → _rollupPluginBabelHelpers-127d506a.js} +1 -1
- package/_rollupPluginBabelHelpers-127d506a.js.map +1 -0
- package/{actionTypes-bd59e881.js → actionTypes-6978f57c.js} +1 -1
- package/{actionTypes-bd59e881.js.map → actionTypes-6978f57c.js.map} +1 -1
- package/cjs/App.js +55 -55
- package/cjs/Channel/components/ChannelHeader.js +22 -22
- package/cjs/Channel/components/ChannelUI.js +48 -48
- package/cjs/Channel/components/FileViewer.js +18 -18
- package/cjs/Channel/components/FrozenNotification.js +4 -4
- package/cjs/Channel/components/Message.js +46 -44
- package/cjs/Channel/components/Message.js.map +1 -1
- package/cjs/Channel/components/MessageInput.js +34 -34
- package/cjs/Channel/components/MessageList.js +75 -46
- package/cjs/Channel/components/MessageList.js.map +1 -1
- package/cjs/Channel/components/RemoveMessageModal.js +22 -22
- package/cjs/Channel/components/SuggestedMentionList.js +20 -20
- package/cjs/Channel/components/TypingIndicator.js +18 -18
- package/cjs/Channel/components/UnreadCount.js +4 -4
- package/cjs/Channel/context.js +15 -15
- package/cjs/Channel/utils/compareMessagesForGrouping.js +7 -7
- package/cjs/Channel/utils/getMessagePartsInfo.js +8 -8
- package/cjs/Channel.js +48 -48
- package/cjs/ChannelList/components/AddChannel.js +16 -16
- package/cjs/ChannelList/components/ChannelListHeader.js +6 -6
- package/cjs/ChannelList/components/ChannelListUI.js +33 -33
- package/cjs/ChannelList/components/ChannelPreview.js +29 -29
- package/cjs/ChannelList/components/ChannelPreviewAction.js +15 -15
- package/cjs/ChannelList/context.js +9 -9
- package/cjs/ChannelList.js +33 -33
- package/cjs/{ChannelListProvider-69db317f.js → ChannelListProvider-50b25757.js} +28 -33
- package/cjs/ChannelListProvider-50b25757.js.map +1 -0
- package/cjs/{ChannelProvider-2ee005bc.js → ChannelProvider-1d47dc41.js} +26 -20
- package/cjs/ChannelProvider-1d47dc41.js.map +1 -0
- package/cjs/ChannelSettings/components/ChannelProfile.js +13 -13
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +18 -18
- package/cjs/ChannelSettings/components/EditDetailsModal.js +13 -13
- package/cjs/ChannelSettings/components/LeaveChannel.js +12 -12
- package/cjs/ChannelSettings/components/ModerationPanel.js +15 -15
- package/cjs/ChannelSettings/components/UserListItem.js +11 -11
- package/cjs/ChannelSettings/components/UserPanel.js +14 -14
- package/cjs/ChannelSettings/context.js +3 -3
- package/cjs/ChannelSettings.js +18 -18
- package/cjs/CreateChannel/components/CreateChannelUI.js +14 -14
- package/cjs/CreateChannel/components/InviteUsers.js +14 -14
- package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
- package/cjs/CreateChannel/components/SelectChannelType.js +11 -11
- package/cjs/CreateChannel/context.js +4 -4
- package/cjs/CreateChannel.js +14 -14
- package/cjs/{CreateChannelProvider-1c4d626c.js → CreateChannelProvider-742f0f71.js} +1 -1
- package/cjs/{CreateChannelProvider-1c4d626c.js.map → CreateChannelProvider-742f0f71.js.map} +1 -1
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +11 -11
- package/cjs/CreateOpenChannel/context.js +1 -1
- package/cjs/CreateOpenChannel.js +11 -11
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +13 -13
- package/cjs/EditUserProfile.js +13 -13
- package/cjs/{LocalizationContext-eb7a59da.js → LocalizationContext-9e45201f.js} +3 -3
- package/cjs/{LocalizationContext-eb7a59da.js.map → LocalizationContext-9e45201f.js.map} +1 -1
- package/cjs/{MediaQueryContext-ca045060.js → MediaQueryContext-0b9f5e79.js} +1 -1
- package/cjs/{MediaQueryContext-ca045060.js.map → MediaQueryContext-0b9f5e79.js.map} +1 -1
- package/cjs/{MemberList-eea5c64b.js → MemberList-dd79130e.js} +6 -6
- package/cjs/{MemberList-eea5c64b.js.map → MemberList-dd79130e.js.map} +1 -1
- package/cjs/MessageSearch/components/MessageSearchUI.js +13 -13
- package/cjs/MessageSearch/context.js +1 -1
- package/cjs/MessageSearch.js +13 -13
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/cjs/OpenChannel/components/OpenChannelHeader.js +12 -12
- package/cjs/OpenChannel/components/OpenChannelInput.js +20 -20
- package/cjs/OpenChannel/components/OpenChannelMessage.js +31 -31
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +34 -34
- package/cjs/OpenChannel/components/OpenChannelUI.js +34 -34
- package/cjs/OpenChannel/context.js +8 -8
- package/cjs/OpenChannel.js +34 -34
- package/cjs/OpenChannelList/components/OpenChannelListUI.js +15 -15
- package/cjs/OpenChannelList/components/OpenChannelPreview.js +3 -3
- package/cjs/OpenChannelList/context.js +3 -3
- package/cjs/OpenChannelList.js +15 -15
- package/cjs/{OpenChannelListProvider-25a0f74d.js → OpenChannelListProvider-0947eaab.js} +3 -3
- package/cjs/{OpenChannelListProvider-25a0f74d.js.map → OpenChannelListProvider-0947eaab.js.map} +1 -1
- package/cjs/{OpenChannelProvider-036e515e.js → OpenChannelProvider-cdb5efab.js} +8 -8
- package/cjs/OpenChannelProvider-cdb5efab.js.map +1 -0
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +14 -14
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +14 -14
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +18 -18
- package/cjs/OpenChannelSettings/components/OperatorUI.js +17 -17
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -15
- package/cjs/OpenChannelSettings/context.js +3 -3
- package/cjs/OpenChannelSettings.js +18 -18
- package/cjs/{RemoveMessageModal-7ed24af4.js → RemoveMessageModal-ff40b635.js} +5 -5
- package/cjs/{RemoveMessageModal-7ed24af4.js.map → RemoveMessageModal-ff40b635.js.map} +1 -1
- package/cjs/SendbirdProvider.js +17 -17
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfo.js +38 -38
- package/cjs/Thread/components/ParentMessageInfoItem.js +25 -25
- package/cjs/Thread/components/ThreadHeader.js +6 -6
- package/cjs/Thread/components/ThreadList.js +42 -42
- package/cjs/Thread/components/ThreadListItem.js +42 -42
- package/cjs/Thread/components/ThreadMessageInput.js +34 -34
- package/cjs/Thread/components/ThreadUI.js +47 -47
- package/cjs/Thread/context.js +12 -12
- package/cjs/Thread.js +47 -47
- package/cjs/{ThreadProvider-4c93de8a.js → ThreadProvider-ecea486a.js} +31 -9
- package/cjs/ThreadProvider-ecea486a.js.map +1 -0
- package/cjs/{UserProfileContext-abe57718.js → UserProfileContext-7e36a6f3.js} +1 -1
- package/cjs/{UserProfileContext-abe57718.js.map → UserProfileContext-7e36a6f3.js.map} +1 -1
- package/cjs/VoicePlayer/context.js +3 -3
- package/cjs/VoicePlayer/useVoicePlayer.js +11 -11
- package/cjs/VoiceRecorder/context.js +11 -11
- package/cjs/VoiceRecorder/useVoiceRecorder.js +10 -10
- package/cjs/{WebAudioUtils-348c38b8.js → WebAudioUtils-15df1d2d.js} +2 -2
- package/cjs/{WebAudioUtils-348c38b8.js.map → WebAudioUtils-15df1d2d.js.map} +1 -1
- package/cjs/{_rollupPluginBabelHelpers-a85bd364.js → _rollupPluginBabelHelpers-32e06a4f.js} +1 -1
- package/cjs/_rollupPluginBabelHelpers-32e06a4f.js.map +1 -0
- package/cjs/{actionTypes-412ca236.js → actionTypes-266f0e4d.js} +1 -1
- package/cjs/{actionTypes-412ca236.js.map → actionTypes-266f0e4d.js.map} +1 -1
- package/cjs/{color-2f1198fc.js → color-da906a8e.js} +1 -1
- package/cjs/{color-2f1198fc.js.map → color-da906a8e.js.map} +1 -1
- package/cjs/{compareIds-89c258a0.js → compareIds-6f4238a7.js} +1 -1
- package/cjs/{compareIds-89c258a0.js.map → compareIds-6f4238a7.js.map} +1 -1
- package/cjs/{const-24d498a6.js → const-81c5b6fd.js} +1 -1
- package/cjs/{const-24d498a6.js.map → const-81c5b6fd.js.map} +1 -1
- package/cjs/{const-95881697.js → const-8a80e7a4.js} +1 -1
- package/cjs/{const-95881697.js.map → const-8a80e7a4.js.map} +1 -1
- package/cjs/{consts-2957b793.js → consts-a9e07b6c.js} +1 -1
- package/cjs/{consts-2957b793.js.map → consts-a9e07b6c.js.map} +1 -1
- package/cjs/{consts-7b830cc5.js → consts-b63bb532.js} +1 -1
- package/cjs/{consts-7b830cc5.js.map → consts-b63bb532.js.map} +1 -1
- package/cjs/{consts-dde4f05d.js → consts-cb188d77.js} +1 -1
- package/cjs/{consts-dde4f05d.js.map → consts-cb188d77.js.map} +1 -1
- package/cjs/{consts-c5d38c32.js → consts-cbf7ddd6.js} +1 -1
- package/cjs/{consts-c5d38c32.js.map → consts-cbf7ddd6.js.map} +1 -1
- package/cjs/{context-b53bf38e.js → context-827c4e18.js} +2 -2
- package/cjs/{context-b53bf38e.js.map → context-827c4e18.js.map} +1 -1
- package/cjs/dist/index.css +0 -1
- package/cjs/dist/index.css.map +1 -1
- package/cjs/{index-0f229ac7.js → index-0972d3a4.js} +4 -4
- package/cjs/{index-0f229ac7.js.map → index-0972d3a4.js.map} +1 -1
- package/cjs/{index-03655429.js → index-14c60240.js} +2 -2
- package/cjs/{index-03655429.js.map → index-14c60240.js.map} +1 -1
- package/cjs/{index-c9a4a555.js → index-159278b7.js} +1 -1
- package/cjs/{index-c9a4a555.js.map → index-159278b7.js.map} +1 -1
- package/cjs/{index-de4da1f2.js → index-1f4a47f9.js} +2 -2
- package/cjs/{index-de4da1f2.js.map → index-1f4a47f9.js.map} +1 -1
- package/cjs/{index-2fd388b9.js → index-2beeddcd.js} +5 -5
- package/cjs/{index-2fd388b9.js.map → index-2beeddcd.js.map} +1 -1
- package/cjs/{index-494b5c25.js → index-2cf76116.js} +3 -3
- package/cjs/{index-494b5c25.js.map → index-2cf76116.js.map} +1 -1
- package/cjs/{index-f40c4cf0.js → index-52a2c7ef.js} +2 -2
- package/cjs/{index-f40c4cf0.js.map → index-52a2c7ef.js.map} +1 -1
- package/cjs/{index-ae51b0df.js → index-5466fdd6.js} +2 -2
- package/cjs/{index-ae51b0df.js.map → index-5466fdd6.js.map} +1 -1
- package/cjs/{index-6e0a495a.js → index-58460943.js} +3 -3
- package/cjs/{index-6e0a495a.js.map → index-58460943.js.map} +1 -1
- package/cjs/{index-910f48df.js → index-6add5824.js} +6 -6
- package/cjs/{index-910f48df.js.map → index-6add5824.js.map} +1 -1
- package/cjs/{index-613acaa0.js → index-6afd0c95.js} +3 -3
- package/cjs/{index-613acaa0.js.map → index-6afd0c95.js.map} +1 -1
- package/cjs/{index-28c0a443.js → index-750b3845.js} +4 -4
- package/cjs/{index-28c0a443.js.map → index-750b3845.js.map} +1 -1
- package/cjs/{index-f0b55959.js → index-859638a8.js} +5 -5
- package/cjs/{index-f0b55959.js.map → index-859638a8.js.map} +1 -1
- package/cjs/{index-9813a2f9.js → index-93e76826.js} +3 -3
- package/cjs/{index-9813a2f9.js.map → index-93e76826.js.map} +1 -1
- package/cjs/{index-2fbc5922.js → index-9f4d38fe.js} +4 -4
- package/cjs/{index-2fbc5922.js.map → index-9f4d38fe.js.map} +1 -1
- package/cjs/{index-0f7049fb.js → index-c6a8de13.js} +7 -7
- package/cjs/{index-0f7049fb.js.map → index-c6a8de13.js.map} +1 -1
- package/cjs/{index-5628e0c0.js → index-cb306d53.js} +1 -1
- package/cjs/{index-5628e0c0.js.map → index-cb306d53.js.map} +1 -1
- package/cjs/{index-4d39de27.js → index-d957a2b4.js} +9 -9
- package/cjs/{index-4d39de27.js.map → index-d957a2b4.js.map} +1 -1
- package/cjs/{index-967cbc91.js → index-f2228baf.js} +2 -2
- package/cjs/index-f2228baf.js.map +1 -0
- package/cjs/{index-7e10ab98.js → index-f6688c5a.js} +9 -4
- package/cjs/{index-7e10ab98.js.map → index-f6688c5a.js.map} +1 -1
- package/cjs/{index-1f796e5a.js → index-fad8e38b.js} +4 -4
- package/cjs/{index-1f796e5a.js.map → index-fad8e38b.js.map} +1 -1
- package/cjs/index.js +59 -59
- package/cjs/{index.module-5c951066.js → index.module-5c934abb.js} +1 -1
- package/cjs/{index.module-5c951066.js.map → index.module-5c934abb.js.map} +1 -1
- package/cjs/package.json +2 -2
- package/cjs/{resolvedReplyType-314fee09.js → resolvedReplyType-dabf3c08.js} +1 -1
- package/cjs/{resolvedReplyType-314fee09.js.map → resolvedReplyType-dabf3c08.js.map} +1 -1
- package/cjs/sendbirdSelectors.js +3 -3
- package/cjs/{stringFormatterUtils-3e53394c.js → stringFormatterUtils-9b35afa3.js} +3 -3
- package/cjs/{stringFormatterUtils-3e53394c.js.map → stringFormatterUtils-9b35afa3.js.map} +1 -1
- package/cjs/{stringSet-b75b75ae.js → stringSet-42559b9c.js} +1 -1
- package/cjs/{stringSet-b75b75ae.js.map → stringSet-42559b9c.js.map} +1 -1
- package/cjs/{tokenize-42536b7a.js → tokenize-f3db7c7b.js} +2 -2
- package/cjs/{tokenize-42536b7a.js.map → tokenize-f3db7c7b.js.map} +1 -1
- package/cjs/{topics-2c35cfd7.js → topics-f8d48fd6.js} +1 -1
- package/cjs/{topics-2c35cfd7.js.map → topics-f8d48fd6.js.map} +1 -1
- package/cjs/{types-382588b3.js → types-08752342.js} +1 -1
- package/cjs/{types-382588b3.js.map → types-08752342.js.map} +1 -1
- package/cjs/ui/Accordion.js +2 -2
- package/cjs/ui/AccordionGroup.js +2 -2
- package/cjs/ui/AdminMessage.js +2 -2
- package/cjs/ui/Avatar.js +1 -1
- package/cjs/ui/Badge.js +4 -4
- package/cjs/ui/BottomSheet.js +4 -4
- package/cjs/ui/Button.js +2 -2
- package/cjs/ui/ChannelAvatar.js +2 -2
- package/cjs/ui/ConnectionStatus.js +4 -4
- package/cjs/ui/ContextMenu.js +6 -6
- package/cjs/ui/DateSeparator.js +3 -3
- package/cjs/ui/EmojiReactions.js +14 -14
- package/cjs/ui/FileMessageItemBody.js +7 -7
- package/cjs/ui/FileViewer.js +12 -12
- package/cjs/ui/IconButton.js +1 -1
- package/cjs/ui/Input.js +2 -2
- package/cjs/ui/Label.js +2 -2
- package/cjs/ui/LinkLabel.js +2 -2
- package/cjs/ui/MentionLabel.js +11 -11
- package/cjs/ui/MentionUserLabel.js +1 -1
- package/cjs/ui/MessageContent.js +31 -31
- package/cjs/ui/MessageInput/hooks/usePaste.js +4 -4
- package/cjs/ui/MessageInput.js +26 -30
- package/cjs/ui/MessageInput.js.map +1 -1
- package/cjs/ui/MessageItemMenu.js +9 -9
- package/cjs/ui/MessageItemReactionMenu.js +9 -9
- package/cjs/ui/MessageSearchFileItem.js +12 -12
- package/cjs/ui/MessageSearchItem.js +8 -8
- package/cjs/ui/MessageStatus.js +11 -11
- package/cjs/ui/Modal.js +9 -9
- package/cjs/ui/OGMessageItemBody.js +14 -14
- package/cjs/ui/OpenChannelAdminMessage.js +2 -2
- package/cjs/ui/OpenChannelAvatar.js +5 -5
- package/cjs/ui/OpenchannelConversationHeader.js +6 -6
- package/cjs/ui/OpenchannelFileMessage.js +16 -16
- package/cjs/ui/OpenchannelOGMessage.js +18 -18
- package/cjs/ui/OpenchannelThumbnailMessage.js +15 -15
- package/cjs/ui/OpenchannelUserMessage.js +16 -16
- package/cjs/ui/PlaceHolder.js +5 -5
- package/cjs/ui/PlaybackTime.js +2 -2
- package/cjs/ui/QuoteMessage.js +8 -8
- package/cjs/ui/QuoteMessageInput.js +8 -8
- package/cjs/ui/ReactionBadge.js +2 -2
- package/cjs/ui/ReactionButton.js +4 -4
- package/cjs/ui/SortByRow.js +1 -1
- package/cjs/ui/TextButton.js +1 -1
- package/cjs/ui/TextMessageItemBody.js +14 -14
- package/cjs/ui/ThreadReplies.js +5 -5
- package/cjs/ui/ThumbnailMessageItemBody.js +7 -7
- package/cjs/ui/Toggle.js +1 -1
- package/cjs/ui/Tooltip.js +2 -2
- package/cjs/ui/UnknownMessageItemBody.js +7 -7
- package/cjs/ui/UserListItem.js +11 -11
- package/cjs/ui/UserProfile.js +9 -9
- package/cjs/ui/VoiceMessageItemBody.js +11 -11
- package/cjs/ui/VoiceMessgeInput.js +7 -7
- package/cjs/ui/Word.js +11 -11
- package/cjs/{useHandleUploadFiles-84bd5a9a.js → useHandleUploadFiles-c411fe73.js} +10 -10
- package/cjs/{useHandleUploadFiles-84bd5a9a.js.map → useHandleUploadFiles-c411fe73.js.map} +1 -1
- package/cjs/{useLongPress-49aa9a49.js → useLongPress-1d936b57.js} +3 -3
- package/cjs/{useLongPress-49aa9a49.js.map → useLongPress-1d936b57.js.map} +1 -1
- package/cjs/{useSendMultipleFilesMessage-c5266ca8.js → useSendMultipleFilesMessage-68cb79a9.js} +4 -4
- package/cjs/{useSendMultipleFilesMessage-c5266ca8.js.map → useSendMultipleFilesMessage-68cb79a9.js.map} +1 -1
- package/cjs/useSendbirdStateContext.js +1 -1
- package/cjs/utils/message/isVoiceMessage.js +3 -3
- package/cjs/{utils-1e9e97b5.js → utils-4446c8a7.js} +11 -6
- package/cjs/utils-4446c8a7.js.map +1 -0
- package/cjs/{utils-4e18a724.js → utils-598f212e.js} +1 -1
- package/cjs/{utils-4e18a724.js.map → utils-598f212e.js.map} +1 -1
- package/cjs/{utils-d6285655.js → utils-86333a85.js} +3 -3
- package/cjs/{utils-d6285655.js.map → utils-86333a85.js.map} +1 -1
- package/cjs/{utils-b3e9e1b8.js → utils-b08188c3.js} +2 -2
- package/cjs/{utils-b3e9e1b8.js.map → utils-b08188c3.js.map} +1 -1
- package/cjs/{utils-8958cb75.js → utils-b5676d3d.js} +1 -1
- package/cjs/{utils-8958cb75.js.map → utils-b5676d3d.js.map} +1 -1
- package/cjs/{utils-d5a929c9.js → utils-de4ebd32.js} +1 -1
- package/cjs/{utils-d5a929c9.js.map → utils-de4ebd32.js.map} +1 -1
- package/cjs/{uuid-34728ced.js → uuid-d0dc3474.js} +1 -1
- package/cjs/{uuid-34728ced.js.map → uuid-d0dc3474.js.map} +1 -1
- package/cjs/withSendbird.js +1 -1
- package/{color-4cef414f.js → color-80ab0797.js} +1 -1
- package/{color-4cef414f.js.map → color-80ab0797.js.map} +1 -1
- package/{compareIds-7e93f2e7.js → compareIds-f24a9d12.js} +1 -1
- package/{compareIds-7e93f2e7.js.map → compareIds-f24a9d12.js.map} +1 -1
- package/{const-6c10846e.js → const-7d3f5989.js} +1 -1
- package/{const-6c10846e.js.map → const-7d3f5989.js.map} +1 -1
- package/{const-48ffde74.js → const-fb4ba209.js} +1 -1
- package/{const-48ffde74.js.map → const-fb4ba209.js.map} +1 -1
- package/{consts-aad4bf65.js → consts-1155d9f8.js} +1 -1
- package/{consts-aad4bf65.js.map → consts-1155d9f8.js.map} +1 -1
- package/{consts-a979689d.js → consts-5230ea9f.js} +1 -1
- package/{consts-a979689d.js.map → consts-5230ea9f.js.map} +1 -1
- package/{consts-439d56b4.js → consts-9cb946fd.js} +1 -1
- package/{consts-439d56b4.js.map → consts-9cb946fd.js.map} +1 -1
- package/{consts-bd684c8d.js → consts-a3d3287a.js} +1 -1
- package/{consts-bd684c8d.js.map → consts-a3d3287a.js.map} +1 -1
- package/{context-9946197c.js → context-b787a386.js} +2 -2
- package/{context-9946197c.js.map → context-b787a386.js.map} +1 -1
- package/dist/index.css +0 -1
- package/dist/index.css.map +1 -1
- package/{index-0a50eba0.js → index-011f0166.js} +6 -6
- package/{index-0a50eba0.js.map → index-011f0166.js.map} +1 -1
- package/{index-373d3069.js → index-0f1ca805.js} +4 -4
- package/{index-373d3069.js.map → index-0f1ca805.js.map} +1 -1
- package/{index-9083293d.js → index-1dc25336.js} +4 -4
- package/{index-9083293d.js.map → index-1dc25336.js.map} +1 -1
- package/{index-320a1756.js → index-30ccc7d1.js} +2 -2
- package/index-30ccc7d1.js.map +1 -0
- package/{index-bae83553.js → index-33ce0e5c.js} +4 -4
- package/{index-bae83553.js.map → index-33ce0e5c.js.map} +1 -1
- package/{index-6bca558b.js → index-4a754b7d.js} +7 -7
- package/{index-6bca558b.js.map → index-4a754b7d.js.map} +1 -1
- package/{index-a0bd5ef9.js → index-4c2e86ae.js} +3 -3
- package/{index-a0bd5ef9.js.map → index-4c2e86ae.js.map} +1 -1
- package/{index-1833cc50.js → index-644f4972.js} +2 -2
- package/{index-1833cc50.js.map → index-644f4972.js.map} +1 -1
- package/{index-d9b66555.js → index-6cc54ebd.js} +5 -5
- package/{index-d9b66555.js.map → index-6cc54ebd.js.map} +1 -1
- package/{index-c5cb0bb2.js → index-7d38c662.js} +4 -4
- package/{index-c5cb0bb2.js.map → index-7d38c662.js.map} +1 -1
- package/{index-825c96d3.js → index-7fdcc106.js} +3 -3
- package/{index-825c96d3.js.map → index-7fdcc106.js.map} +1 -1
- package/{index-516ad99d.js → index-8107de87.js} +1 -1
- package/{index-516ad99d.js.map → index-8107de87.js.map} +1 -1
- package/{index-2d23ff73.js → index-943e51f9.js} +9 -5
- package/{index-2d23ff73.js.map → index-943e51f9.js.map} +1 -1
- package/{index-b346dc02.js → index-b490e8af.js} +9 -9
- package/{index-b346dc02.js.map → index-b490e8af.js.map} +1 -1
- package/{index-e2afa53f.js → index-b6042797.js} +1 -1
- package/{index-e2afa53f.js.map → index-b6042797.js.map} +1 -1
- package/{index-3370a58d.js → index-bc42f0e9.js} +2 -2
- package/{index-3370a58d.js.map → index-bc42f0e9.js.map} +1 -1
- package/{index-fa19fef7.js → index-ca44517a.js} +2 -2
- package/{index-fa19fef7.js.map → index-ca44517a.js.map} +1 -1
- package/{index-44d3dac3.js → index-d32155ad.js} +5 -5
- package/{index-44d3dac3.js.map → index-d32155ad.js.map} +1 -1
- package/{index-6d0ae6a0.js → index-d8c8e716.js} +3 -3
- package/{index-6d0ae6a0.js.map → index-d8c8e716.js.map} +1 -1
- package/{index-c323f04b.js → index-dd767201.js} +3 -3
- package/{index-c323f04b.js.map → index-dd767201.js.map} +1 -1
- package/{index-526cbeea.js → index-fff2d336.js} +2 -2
- package/{index-526cbeea.js.map → index-fff2d336.js.map} +1 -1
- package/index.d.ts +9 -11
- package/index.js +59 -59
- package/{index.module-efef0194.js → index.module-0935752c.js} +1 -1
- package/{index.module-efef0194.js.map → index.module-0935752c.js.map} +1 -1
- package/package.json +2 -2
- package/{resolvedReplyType-84f1270f.js → resolvedReplyType-19c339c2.js} +1 -1
- package/{resolvedReplyType-84f1270f.js.map → resolvedReplyType-19c339c2.js.map} +1 -1
- package/sendbirdSelectors.js +3 -3
- package/{stringFormatterUtils-beea8d82.js → stringFormatterUtils-8cdfbc30.js} +3 -3
- package/{stringFormatterUtils-beea8d82.js.map → stringFormatterUtils-8cdfbc30.js.map} +1 -1
- package/{stringSet-9fe06e0d.js → stringSet-4010aa20.js} +1 -1
- package/{stringSet-9fe06e0d.js.map → stringSet-4010aa20.js.map} +1 -1
- package/{tokenize-d34eb5c6.js → tokenize-5d004ff2.js} +2 -2
- package/{tokenize-d34eb5c6.js.map → tokenize-5d004ff2.js.map} +1 -1
- package/{topics-edd6182d.js → topics-e010c6d3.js} +1 -1
- package/{topics-edd6182d.js.map → topics-e010c6d3.js.map} +1 -1
- package/{types-269fec15.js → types-933c231a.js} +1 -1
- package/{types-269fec15.js.map → types-933c231a.js.map} +1 -1
- package/ui/Accordion.js +2 -2
- package/ui/AccordionGroup.js +2 -2
- package/ui/AdminMessage.js +2 -2
- package/ui/Avatar.js +1 -1
- package/ui/Badge.js +4 -4
- package/ui/BottomSheet.js +4 -4
- package/ui/Button.js +2 -2
- package/ui/ChannelAvatar.js +2 -2
- package/ui/ConnectionStatus.js +4 -4
- package/ui/ContextMenu.js +6 -6
- package/ui/DateSeparator.js +3 -3
- package/ui/EmojiReactions.js +14 -14
- package/ui/FileMessageItemBody.js +7 -7
- package/ui/FileViewer.js +12 -12
- package/ui/IconButton.js +1 -1
- package/ui/Input.js +2 -2
- package/ui/Label.js +2 -2
- package/ui/LinkLabel.js +2 -2
- package/ui/MentionLabel.js +11 -11
- package/ui/MentionUserLabel.js +1 -1
- package/ui/MessageContent.js +31 -31
- package/ui/MessageInput/hooks/usePaste.js +4 -4
- package/ui/MessageInput.js +26 -30
- package/ui/MessageInput.js.map +1 -1
- package/ui/MessageItemMenu.js +9 -9
- package/ui/MessageItemReactionMenu.js +9 -9
- package/ui/MessageSearchFileItem.js +12 -12
- package/ui/MessageSearchItem.js +8 -8
- package/ui/MessageStatus.js +11 -11
- package/ui/Modal.js +9 -9
- package/ui/OGMessageItemBody.js +14 -14
- package/ui/OpenChannelAdminMessage.js +2 -2
- package/ui/OpenChannelAvatar.js +5 -5
- package/ui/OpenchannelConversationHeader.js +6 -6
- package/ui/OpenchannelFileMessage.js +16 -16
- package/ui/OpenchannelOGMessage.js +18 -18
- package/ui/OpenchannelThumbnailMessage.js +15 -15
- package/ui/OpenchannelUserMessage.js +16 -16
- package/ui/PlaceHolder.js +5 -5
- package/ui/PlaybackTime.js +2 -2
- package/ui/QuoteMessage.js +8 -8
- package/ui/QuoteMessageInput.js +8 -8
- package/ui/ReactionBadge.js +2 -2
- package/ui/ReactionButton.js +4 -4
- package/ui/SortByRow.js +1 -1
- package/ui/TextButton.js +1 -1
- package/ui/TextMessageItemBody.js +14 -14
- package/ui/ThreadReplies.js +5 -5
- package/ui/ThumbnailMessageItemBody.js +7 -7
- package/ui/Toggle.js +1 -1
- package/ui/Tooltip.js +2 -2
- package/ui/UnknownMessageItemBody.js +7 -7
- package/ui/UserListItem.js +11 -11
- package/ui/UserProfile.js +9 -9
- package/ui/VoiceMessageItemBody.js +11 -11
- package/ui/VoiceMessgeInput.js +7 -7
- package/ui/Word.js +11 -11
- package/{useHandleUploadFiles-210750cc.js → useHandleUploadFiles-2e10b130.js} +10 -10
- package/{useHandleUploadFiles-210750cc.js.map → useHandleUploadFiles-2e10b130.js.map} +1 -1
- package/{useLongPress-4b698dbb.js → useLongPress-ffee648f.js} +3 -3
- package/{useLongPress-4b698dbb.js.map → useLongPress-ffee648f.js.map} +1 -1
- package/{useSendMultipleFilesMessage-4a45ffbe.js → useSendMultipleFilesMessage-25198999.js} +4 -4
- package/{useSendMultipleFilesMessage-4a45ffbe.js.map → useSendMultipleFilesMessage-25198999.js.map} +1 -1
- package/useSendbirdStateContext.js +1 -1
- package/utils/message/isVoiceMessage.js +3 -3
- package/{utils-55c9df93.js → utils-1467ebd7.js} +1 -1
- package/{utils-55c9df93.js.map → utils-1467ebd7.js.map} +1 -1
- package/{utils-4d948dec.js → utils-3a10580f.js} +2 -2
- package/{utils-4d948dec.js.map → utils-3a10580f.js.map} +1 -1
- package/{utils-a184f6ea.js → utils-648f7f14.js} +1 -1
- package/{utils-a184f6ea.js.map → utils-648f7f14.js.map} +1 -1
- package/{utils-1bfac67e.js → utils-88995afe.js} +1 -1
- package/{utils-1bfac67e.js.map → utils-88995afe.js.map} +1 -1
- package/{utils-73dd35ca.js → utils-dae17f0e.js} +3 -3
- package/{utils-73dd35ca.js.map → utils-dae17f0e.js.map} +1 -1
- package/{utils-ec15538c.js → utils-dd91485e.js} +11 -6
- package/utils-dd91485e.js.map +1 -0
- package/{uuid-9094f15c.js → uuid-2e10561d.js} +1 -1
- package/{uuid-9094f15c.js.map → uuid-2e10561d.js.map} +1 -1
- package/withSendbird.js +1 -1
- package/ChannelListProvider-ba11ee5f.js.map +0 -1
- package/ChannelProvider-7400e8f6.js.map +0 -1
- package/OpenChannelProvider-4f21a22d.js.map +0 -1
- package/ThreadProvider-593b6c29.js.map +0 -1
- package/_rollupPluginBabelHelpers-ea73a031.js.map +0 -1
- package/cjs/ChannelListProvider-69db317f.js.map +0 -1
- package/cjs/ChannelProvider-2ee005bc.js.map +0 -1
- package/cjs/OpenChannelProvider-036e515e.js.map +0 -1
- package/cjs/ThreadProvider-4c93de8a.js.map +0 -1
- package/cjs/_rollupPluginBabelHelpers-a85bd364.js.map +0 -1
- package/cjs/index-967cbc91.js.map +0 -1
- package/cjs/utils-1e9e97b5.js.map +0 -1
- package/index-320a1756.js.map +0 -1
- package/utils-ec15538c.js.map +0 -1
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var DOMPurify = require('dompurify');
|
|
5
|
-
var consts = require('./consts-
|
|
6
|
-
var consts$2 = require('./consts-
|
|
7
|
-
var consts$1 = require('./consts-
|
|
5
|
+
var consts = require('./consts-a9e07b6c.js');
|
|
6
|
+
var consts$2 = require('./consts-cbf7ddd6.js');
|
|
7
|
+
var consts$1 = require('./consts-cb188d77.js');
|
|
8
8
|
|
|
9
9
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
10
|
|
|
@@ -44,6 +44,10 @@ const nodeListToArray = childNodes => {
|
|
|
44
44
|
return [];
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
|
+
function isChannelTypeSupportsMultipleFilesMessage(channel) {
|
|
48
|
+
var _channel$isGroupChann;
|
|
49
|
+
return channel && (channel === null || channel === void 0 ? void 0 : (_channel$isGroupChann = channel.isGroupChannel) === null || _channel$isGroupChann === void 0 ? void 0 : _channel$isGroupChann.call(channel)) && !channel.isBroadcast && !channel.isSuper;
|
|
50
|
+
}
|
|
47
51
|
|
|
48
52
|
function inserTemplateToDOM(templateList) {
|
|
49
53
|
const nodes = templateList.map(template => {
|
|
@@ -223,8 +227,9 @@ function usePaste(_ref) {
|
|
|
223
227
|
}, [ref, setIsInput, setHeight, channel, setMentionedUsers]);
|
|
224
228
|
}
|
|
225
229
|
|
|
230
|
+
exports.isChannelTypeSupportsMultipleFilesMessage = isChannelTypeSupportsMultipleFilesMessage;
|
|
226
231
|
exports.nodeListToArray = nodeListToArray;
|
|
227
232
|
exports.renderToString = renderToString;
|
|
228
233
|
exports.sanitizeString = sanitizeString;
|
|
229
234
|
exports.usePaste = usePaste;
|
|
230
|
-
//# sourceMappingURL=index-
|
|
235
|
+
//# sourceMappingURL=index-f6688c5a.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-7e10ab98.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","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","channel","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-f6688c5a.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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"}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var ui_ContextMenu = require('./ui/ContextMenu.js');
|
|
5
|
-
var index = require('./index-
|
|
6
|
-
var LocalizationContext = require('./LocalizationContext-
|
|
5
|
+
var index = require('./index-6afd0c95.js');
|
|
6
|
+
var LocalizationContext = require('./LocalizationContext-9e45201f.js');
|
|
7
7
|
var ui_Icon = require('./ui/Icon.js');
|
|
8
|
-
var ui_Label = require('./index-
|
|
8
|
+
var ui_Label = require('./index-52a2c7ef.js');
|
|
9
9
|
var ui_BottomSheet = require('./ui/BottomSheet.js');
|
|
10
10
|
var ui_ImageRenderer = require('./ui/ImageRenderer.js');
|
|
11
11
|
var ui_ReactionButton = require('./ui/ReactionButton.js');
|
|
@@ -453,4 +453,4 @@ const MobileMenu = props => {
|
|
|
453
453
|
};
|
|
454
454
|
|
|
455
455
|
exports.MobileMenu = MobileMenu;
|
|
456
|
-
//# sourceMappingURL=index-
|
|
456
|
+
//# sourceMappingURL=index-fad8e38b.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-1f796e5a.js","sources":["../../src/ui/MobileMenu/MobileContextMenu.tsx","../../src/ui/MobileMenu/MobileBottomSheet.tsx","../../src/ui/MobileMenu/index.tsx"],"sourcesContent":["import React from 'react';\nimport type { BaseMenuProps } from './types';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\n\nimport {\n isFailedMessage,\n isPendingMessage,\n isSentMessage,\n isUserMessage,\n copyToClipboard,\n isFileMessage,\n isThreadMessage,\n isVoiceMessage,\n} from '../../utils';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport { GroupChannel } from '@sendbird/chat/groupChannel';\n\nconst MobileContextMenu: React.FunctionComponent<BaseMenuProps> = (props: BaseMenuProps): React.ReactElement => {\n const {\n hideMenu,\n channel,\n message,\n replyType,\n userId,\n resendMessage,\n showEdit,\n showRemove,\n deleteMenuState,\n setQuoteMessage,\n parentRef,\n onReplyInThread,\n isOpenedFromThread = false,\n } = props;\n const isByMe = message?.sender?.userId === userId;\n const { stringSet } = useLocalization();\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n\n const showMenuItemDelete: boolean = !isPendingMessage(message) && isByMe;\n const showMenuItemDeleteByState = isByMe && (deleteMenuState === undefined || deleteMenuState !== 'HIDE');\n const showMenuItemDeleteFinal = showMenuItemDeleteByState && showMenuItemDelete;\n\n const disableDelete = (\n (deleteMenuState !== undefined && deleteMenuState === 'DISABLE')\n || (message?.threadInfo?.replyCount ?? 0) > 0\n );\n\n const showMenuItemDownload: boolean = !isPendingMessage(message) && isFileMessage(message)\n && !(isVoiceMessage(message) && ((channel as GroupChannel)?.isSuper || (channel as GroupChannel)?.isBroadcast));\n const showMenuItemReply: boolean = (replyType === 'QUOTE_REPLY')\n && !isFailedMessage(message)\n && !isPendingMessage(message)\n && channel?.isGroupChannel();\n const showMenuItemThread: boolean = (replyType === 'THREAD') && !isOpenedFromThread\n && !isFailedMessage(message)\n && !isPendingMessage(message)\n && !isThreadMessage(message)\n && channel?.isGroupChannel();\n\n const fileMessage = message as FileMessage;\n return (\n <ContextMenu\n isOpen\n menuItems={() => (\n <MenuItems\n className=\"sendbird-message__mobile-context-menu\"\n parentRef={parentRef}\n parentContainRef={parentRef}\n closeDropdown={hideMenu}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-copy\"\n onClick={() => {\n hideMenu();\n copyToClipboard((message as UserMessage)?.message);\n }}\n dataSbId=\"ui_mobile_message_item_menu_copy\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet?.MESSAGE_MENU__COPY}\n </Label>\n <Icon\n type={IconTypes.COPY}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-reply\"\n onClick={() => {\n hideMenu();\n setQuoteMessage(message);\n }}\n disable={(message?.parentMessageId ?? 0) > 0}\n dataSbId=\"ui_mobile_message_item_menu_reply\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={\n (message?.parentMessageId ?? 0) > 0\n ? LabelColors.ONBACKGROUND_4\n : LabelColors.ONBACKGROUND_1\n }\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </Label>\n <Icon\n type={IconTypes.REPLY}\n fillColor={\n (message?.parentMessageId ?? 0) > 0\n ? IconColors.ON_BACKGROUND_4\n : IconColors.PRIMARY\n }\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-reply\"\n onClick={() => {\n hideMenu();\n onReplyInThread?.({ message });\n }}\n dataSbId=\"ui_mobile_message_item_menu_thread\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </Label>\n <Icon\n type={IconTypes.THREAD}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-edit\"\n onClick={() => {\n hideMenu();\n showEdit(true);\n }}\n dataSbId=\"ui_mobile_message_item_menu_edit\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </Label>\n <Icon\n type={IconTypes.EDIT}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-resend\"\n onClick={() => {\n hideMenu();\n resendMessage(message);\n }}\n dataSbId=\"ui_mobile_message_item_menu_resend\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </Label>\n <Icon\n type={IconTypes.REFRESH}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemDeleteFinal && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-delete\"\n onClick={() => {\n if (!disableDelete) {\n hideMenu();\n showRemove(true);\n }\n }}\n disable={disableDelete}\n dataSbId=\"ui_mobile_message_item_menu_delete\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={\n disableDelete\n ? LabelColors.ONBACKGROUND_4\n : LabelColors.ONBACKGROUND_1\n }\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </Label>\n <Icon\n type={IconTypes.DELETE}\n fillColor={\n disableDelete\n ? IconColors.ON_BACKGROUND_4\n : IconColors.PRIMARY\n }\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemDownload && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-save\"\n onClick={() => {\n hideMenu();\n }}\n dataSbId=\"ui_mobile_message_item_menu_download_file\"\n >\n <a\n className=\"sendbird-message__contextmenu--hyperlink\"\n rel=\"noopener noreferrer\"\n href={fileMessage?.url}\n target=\"_blank\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.MESSAGE_MENU__SAVE}\n </Label>\n <Icon\n type={IconTypes.DOWNLOAD}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </a>\n </MenuItem>\n )}\n </MenuItems>\n )}\n />\n );\n};\n\nexport default MobileContextMenu;\n","import type { Emoji } from '@sendbird/chat';\nimport { FileMessage, Reaction, UserMessage } from '@sendbird/chat/message';\nimport React, { ReactElement, useState } from 'react';\n\nimport type { MobileBottomSheetProps } from './types';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\n\nimport {\n getEmojiListAll,\n isFailedMessage,\n isPendingMessage,\n isSentMessage,\n isUserMessage,\n copyToClipboard,\n isFileMessage,\n isVoiceMessage,\n isThreadMessage,\n} from '../../utils';\nimport BottomSheet from '../BottomSheet';\nimport ImageRenderer from '../ImageRenderer';\nimport ReactionButton from '../ReactionButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\n\nconst EMOJI_SIZE = 38;\n\nconst MobileBottomSheet: React.FunctionComponent<MobileBottomSheetProps> = (props: MobileBottomSheetProps) => {\n const {\n hideMenu,\n channel,\n emojiContainer,\n message,\n replyType,\n userId,\n resendMessage,\n toggleReaction,\n isReactionEnabled,\n showEdit,\n showRemove,\n deleteMenuState,\n setQuoteMessage,\n onReplyInThread,\n isOpenedFromThread = false,\n } = props;\n const isByMe = message?.sender?.userId === userId;\n const { stringSet } = useLocalization();\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n\n const showMenuItemDelete: boolean = !isPendingMessage(message) && isByMe;\n const showMenuItemDeleteByState = isByMe && (deleteMenuState === undefined || deleteMenuState !== 'HIDE');\n const showMenuItemDeleteFinal = showMenuItemDeleteByState && showMenuItemDelete;\n\n const disableDelete = (\n (deleteMenuState !== undefined && deleteMenuState === 'DISABLE')\n || (message?.threadInfo?.replyCount ?? 0) > 0\n );\n\n const showMenuItemDownload: boolean = !isPendingMessage(message) && isFileMessage(message) && !isVoiceMessage(message);\n const showReaction: boolean = !isFailedMessage(message) && !isPendingMessage(message) && isReactionEnabled;\n const showMenuItemReply: boolean = (replyType === 'QUOTE_REPLY')\n && !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel() && !(channel as GroupChannel)?.isBroadcast);\n const showMenuItemThread: boolean = (replyType === 'THREAD') && !isOpenedFromThread\n && !isFailedMessage(message)\n && !isPendingMessage(message)\n && !isThreadMessage(message)\n && (channel?.isGroupChannel() && !(channel as GroupChannel)?.isBroadcast);\n const disableReaction = message?.parentMessageId > 0;\n\n const fileMessage = message as FileMessage;\n const maxEmojisPerRow = Math.floor(window.innerWidth / EMOJI_SIZE) - 1;\n const [showEmojisOnly, setShowEmojisOnly] = useState<boolean>(false);\n const emojis = getEmojiListAll(emojiContainer);\n // calculate max emojis that can be shown in screen\n const visibleEmojis = showEmojisOnly\n ? emojis\n : emojis?.slice(0, maxEmojisPerRow);\n const canShowMoreEmojis = emojis.length > maxEmojisPerRow;\n return (\n <BottomSheet onBackdropClick={hideMenu}>\n <div className='sendbird-message__bottomsheet'>\n {\n showReaction && (\n <div className='sendbird-message__bottomsheet-reactions'>\n <ul\n className=\"sendbird-message__bottomsheet-reaction-bar\"\n >\n <div\n className={`\n sendbird-message__bottomsheet-reaction-bar__row\n ${showEmojisOnly ? 'sendbird-message__bottomsheet-reaction-bar__all' : ''}\n `}\n >\n {visibleEmojis.map((emoji: Emoji): React.ReactElement => {\n const isReacted: boolean = message?.reactions\n ?.filter((reaction: Reaction): boolean => reaction.key === emoji.key)[0]\n ?.userIds\n ?.some((reactorId: string): boolean => reactorId === userId);\n return (\n <ReactionButton\n key={emoji.key}\n width={`${EMOJI_SIZE}px`}\n height={`${EMOJI_SIZE}px`}\n selected={isReacted}\n onClick={(): void => {\n hideMenu();\n toggleReaction(message, emoji.key, isReacted);\n }}\n dataSbId={`ui_mobile_emoji_reactions_menu_${emoji.key}`}\n >\n <ImageRenderer\n url={emoji?.url || ''}\n width=\"28px\"\n height=\"28px\"\n placeHolder={(style: Record<string, unknown>): ReactElement => (\n <div style={style}>\n <Icon\n type={IconTypes.QUESTION}\n fillColor={IconColors.ON_BACKGROUND_3}\n width=\"28px\"\n height=\"28px\"\n />\n </div>\n )}\n />\n </ReactionButton>\n );\n })}\n {\n canShowMoreEmojis && !showEmojisOnly && (\n <ReactionButton\n key=\"emoji_more\"\n width=\"38px\"\n height=\"38px\"\n onClick={(): void => {\n setShowEmojisOnly(true);\n }}\n dataSbId=\"ui_mobile_emoji_reactions_menu_emojiadd\"\n >\n <ImageRenderer\n url={''}\n width=\"28px\"\n height=\"28px\"\n placeHolder={(style: Record<string, unknown>): React.ReactElement => (\n <div style={style}>\n <Icon\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.ON_BACKGROUND_3}\n width=\"28px\"\n height=\"28px\"\n />\n </div>\n )}\n />\n </ReactionButton>\n )\n }\n </div>\n </ul>\n </div>\n )\n }\n {\n !showEmojisOnly && (\n <div className='sendbird-message__bottomsheet--actions'>\n {showMenuItemCopy && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n copyToClipboard((message as UserMessage)?.message);\n }}\n >\n <Icon\n type={IconTypes.COPY}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet?.MESSAGE_MENU__COPY}\n </Label>\n </div>\n )}\n {\n showMenuItemEdit && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n showEdit(true);\n }}\n >\n <Icon\n type={IconTypes.EDIT}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet?.MESSAGE_MENU__EDIT}\n </Label>\n </div>\n )\n }\n {\n showMenuItemResend && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n resendMessage(message);\n }}\n >\n <Icon\n type={IconTypes.REFRESH}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet?.MESSAGE_MENU__RESEND}\n </Label>\n </div>\n )\n }\n {\n showMenuItemReply && (\n <div\n className={`sendbird-message__bottomsheet--action\n ${disableReaction ? 'sendbird-message__bottomsheet--action-disabled' : ''}\n `}\n role=\"menuitem\"\n aria-disabled={disableReaction ? true : false}\n onClick={() => {\n if (!disableReaction) {\n hideMenu();\n setQuoteMessage(message);\n }\n }}\n >\n <Icon\n type={IconTypes.REPLY}\n fillColor={disableReaction\n ? IconColors.ON_BACKGROUND_3\n : IconColors.PRIMARY\n }\n width=\"24px\"\n height=\"24px\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={disableReaction ? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_1}\n >\n {stringSet?.MESSAGE_MENU__REPLY}\n </Label>\n </div>\n )\n }\n {showMenuItemThread && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n onReplyInThread?.({ message });\n }}\n >\n <Icon\n type={IconTypes.THREAD}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet.MESSAGE_MENU__THREAD}\n </Label>\n </div>\n )}\n {\n showMenuItemDeleteFinal && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n if (!disableDelete) {\n hideMenu();\n showRemove?.(true);\n }\n }}\n >\n <Icon\n type={IconTypes.DELETE}\n fillColor={\n disableDelete\n ? IconColors.ON_BACKGROUND_4\n : IconColors.PRIMARY\n }\n width=\"24px\"\n height=\"24px\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={\n disableDelete\n ? LabelColors.ONBACKGROUND_4\n : LabelColors.ONBACKGROUND_1\n }\n >\n {stringSet?.MESSAGE_MENU__DELETE}\n </Label>\n </div>\n )\n }\n {\n showMenuItemDownload && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n }}\n >\n <a\n className=\"sendbird-message__bottomsheet--hyperlink\"\n rel=\"noopener noreferrer\"\n href={fileMessage?.url}\n target=\"_blank\"\n >\n <Icon\n type={IconTypes.DOWNLOAD}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet?.MESSAGE_MENU__SAVE}\n </Label>\n </a>\n </div>\n )\n }\n </div>\n )\n }\n </div>\n </BottomSheet>\n );\n};\n\nexport default MobileBottomSheet;\n","import './mobile-menu.scss';\n\nimport React from 'react';\nimport MobileContextMenu from './MobileContextMenu';\nimport MobileBottomSheet from './MobileBottomSheet';\nimport type { MobileBottomSheetProps } from './types';\n\nconst MobileMenu: React.FC<MobileBottomSheetProps> = (props: MobileBottomSheetProps) => {\n const {\n message,\n hideMenu,\n userId,\n channel,\n isReactionEnabled = false,\n isByMe,\n replyType,\n disabled,\n deleteMenuState,\n showRemove,\n showEdit,\n resendMessage,\n setQuoteMessage,\n emojiContainer,\n toggleReaction,\n parentRef,\n onReplyInThread,\n isOpenedFromThread,\n } = props;\n return (\n <>\n {\n isReactionEnabled\n ? (\n <MobileBottomSheet\n channel={channel}\n message={message}\n hideMenu={hideMenu}\n isByMe={isByMe}\n userId={userId}\n replyType={replyType}\n disabled={disabled}\n showRemove={showRemove}\n showEdit={showEdit}\n deleteMenuState={deleteMenuState}\n resendMessage={resendMessage}\n setQuoteMessage={setQuoteMessage}\n emojiContainer={emojiContainer}\n toggleReaction={toggleReaction}\n isReactionEnabled={isReactionEnabled}\n onReplyInThread={onReplyInThread}\n isOpenedFromThread={isOpenedFromThread}\n />\n ) : (\n <MobileContextMenu\n channel={channel}\n userId={userId}\n message={message}\n hideMenu={hideMenu}\n isByMe={isByMe}\n showEdit={showEdit}\n replyType={replyType}\n disabled={disabled}\n deleteMenuState={deleteMenuState}\n showRemove={showRemove}\n resendMessage={resendMessage}\n setQuoteMessage={setQuoteMessage}\n parentRef={parentRef}\n onReplyInThread={onReplyInThread}\n isOpenedFromThread={isOpenedFromThread}\n />\n )\n }\n </>\n );\n};\n\nexport default MobileMenu;\n"],"names":["MobileContextMenu","props","_message$sender","_message$threadInfo$r","_message$threadInfo","hideMenu","channel","message","replyType","userId","resendMessage","showEdit","showRemove","deleteMenuState","setQuoteMessage","parentRef","onReplyInThread","isOpenedFromThread","isByMe","sender","stringSet","useLocalization","showMenuItemCopy","isUserMessage","showMenuItemEdit","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemDeleteByState","undefined","showMenuItemDeleteFinal","disableDelete","threadInfo","replyCount","showMenuItemDownload","isFileMessage","isVoiceMessage","isSuper","isBroadcast","showMenuItemReply","isGroupChannel","showMenuItemThread","isThreadMessage","fileMessage","React","createElement","ContextMenu","isOpen","menuItems","_message$parentMessag","_message$parentMessag2","_message$parentMessag3","MenuItems","className","parentContainRef","closeDropdown","MenuItem","onClick","copyToClipboard","dataSbId","Label","type","LabelTypography","SUBTITLE_1","color","LabelColors","ONBACKGROUND_1","MESSAGE_MENU__COPY","Icon","IconTypes","COPY","fillColor","IconColors","PRIMARY","width","height","disable","parentMessageId","ONBACKGROUND_4","MESSAGE_MENU__REPLY","REPLY","ON_BACKGROUND_4","MESSAGE_MENU__THREAD","THREAD","MESSAGE_MENU__EDIT","EDIT","MESSAGE_MENU__RESEND","REFRESH","MESSAGE_MENU__DELETE","DELETE","rel","href","url","target","MESSAGE_MENU__SAVE","DOWNLOAD","EMOJI_SIZE","MobileBottomSheet","emojiContainer","toggleReaction","isReactionEnabled","showReaction","disableReaction","maxEmojisPerRow","Math","floor","window","innerWidth","showEmojisOnly","setShowEmojisOnly","useState","emojis","getEmojiListAll","visibleEmojis","slice","canShowMoreEmojis","length","BottomSheet","onBackdropClick","map","emoji","_message$reactions","_message$reactions$fi","_message$reactions$fi2","isReacted","reactions","filter","reaction","key","userIds","some","reactorId","ReactionButton","selected","ImageRenderer","placeHolder","style","QUESTION","ON_BACKGROUND_3","EMOJI_MORE","role","MobileMenu","disabled","Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-fad8e38b.js","sources":["../../src/ui/MobileMenu/MobileContextMenu.tsx","../../src/ui/MobileMenu/MobileBottomSheet.tsx","../../src/ui/MobileMenu/index.tsx"],"sourcesContent":["import React from 'react';\nimport type { BaseMenuProps } from './types';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\n\nimport {\n isFailedMessage,\n isPendingMessage,\n isSentMessage,\n isUserMessage,\n copyToClipboard,\n isFileMessage,\n isThreadMessage,\n isVoiceMessage,\n} from '../../utils';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport { GroupChannel } from '@sendbird/chat/groupChannel';\n\nconst MobileContextMenu: React.FunctionComponent<BaseMenuProps> = (props: BaseMenuProps): React.ReactElement => {\n const {\n hideMenu,\n channel,\n message,\n replyType,\n userId,\n resendMessage,\n showEdit,\n showRemove,\n deleteMenuState,\n setQuoteMessage,\n parentRef,\n onReplyInThread,\n isOpenedFromThread = false,\n } = props;\n const isByMe = message?.sender?.userId === userId;\n const { stringSet } = useLocalization();\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n\n const showMenuItemDelete: boolean = !isPendingMessage(message) && isByMe;\n const showMenuItemDeleteByState = isByMe && (deleteMenuState === undefined || deleteMenuState !== 'HIDE');\n const showMenuItemDeleteFinal = showMenuItemDeleteByState && showMenuItemDelete;\n\n const disableDelete = (\n (deleteMenuState !== undefined && deleteMenuState === 'DISABLE')\n || (message?.threadInfo?.replyCount ?? 0) > 0\n );\n\n const showMenuItemDownload: boolean = !isPendingMessage(message) && isFileMessage(message)\n && !(isVoiceMessage(message) && ((channel as GroupChannel)?.isSuper || (channel as GroupChannel)?.isBroadcast));\n const showMenuItemReply: boolean = (replyType === 'QUOTE_REPLY')\n && !isFailedMessage(message)\n && !isPendingMessage(message)\n && channel?.isGroupChannel();\n const showMenuItemThread: boolean = (replyType === 'THREAD') && !isOpenedFromThread\n && !isFailedMessage(message)\n && !isPendingMessage(message)\n && !isThreadMessage(message)\n && channel?.isGroupChannel();\n\n const fileMessage = message as FileMessage;\n return (\n <ContextMenu\n isOpen\n menuItems={() => (\n <MenuItems\n className=\"sendbird-message__mobile-context-menu\"\n parentRef={parentRef}\n parentContainRef={parentRef}\n closeDropdown={hideMenu}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-copy\"\n onClick={() => {\n hideMenu();\n copyToClipboard((message as UserMessage)?.message);\n }}\n dataSbId=\"ui_mobile_message_item_menu_copy\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet?.MESSAGE_MENU__COPY}\n </Label>\n <Icon\n type={IconTypes.COPY}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-reply\"\n onClick={() => {\n hideMenu();\n setQuoteMessage(message);\n }}\n disable={(message?.parentMessageId ?? 0) > 0}\n dataSbId=\"ui_mobile_message_item_menu_reply\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={\n (message?.parentMessageId ?? 0) > 0\n ? LabelColors.ONBACKGROUND_4\n : LabelColors.ONBACKGROUND_1\n }\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </Label>\n <Icon\n type={IconTypes.REPLY}\n fillColor={\n (message?.parentMessageId ?? 0) > 0\n ? IconColors.ON_BACKGROUND_4\n : IconColors.PRIMARY\n }\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-reply\"\n onClick={() => {\n hideMenu();\n onReplyInThread?.({ message });\n }}\n dataSbId=\"ui_mobile_message_item_menu_thread\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </Label>\n <Icon\n type={IconTypes.THREAD}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-edit\"\n onClick={() => {\n hideMenu();\n showEdit(true);\n }}\n dataSbId=\"ui_mobile_message_item_menu_edit\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </Label>\n <Icon\n type={IconTypes.EDIT}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-resend\"\n onClick={() => {\n hideMenu();\n resendMessage(message);\n }}\n dataSbId=\"ui_mobile_message_item_menu_resend\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </Label>\n <Icon\n type={IconTypes.REFRESH}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemDeleteFinal && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-delete\"\n onClick={() => {\n if (!disableDelete) {\n hideMenu();\n showRemove(true);\n }\n }}\n disable={disableDelete}\n dataSbId=\"ui_mobile_message_item_menu_delete\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={\n disableDelete\n ? LabelColors.ONBACKGROUND_4\n : LabelColors.ONBACKGROUND_1\n }\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </Label>\n <Icon\n type={IconTypes.DELETE}\n fillColor={\n disableDelete\n ? IconColors.ON_BACKGROUND_4\n : IconColors.PRIMARY\n }\n width=\"24px\"\n height=\"24px\"\n />\n </MenuItem>\n )}\n {showMenuItemDownload && (\n <MenuItem\n className=\"sendbird-message__mobile-context-menu-item menu-item-save\"\n onClick={() => {\n hideMenu();\n }}\n dataSbId=\"ui_mobile_message_item_menu_download_file\"\n >\n <a\n className=\"sendbird-message__contextmenu--hyperlink\"\n rel=\"noopener noreferrer\"\n href={fileMessage?.url}\n target=\"_blank\"\n >\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.MESSAGE_MENU__SAVE}\n </Label>\n <Icon\n type={IconTypes.DOWNLOAD}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </a>\n </MenuItem>\n )}\n </MenuItems>\n )}\n />\n );\n};\n\nexport default MobileContextMenu;\n","import type { Emoji } from '@sendbird/chat';\nimport { FileMessage, Reaction, UserMessage } from '@sendbird/chat/message';\nimport React, { ReactElement, useState } from 'react';\n\nimport type { MobileBottomSheetProps } from './types';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\n\nimport {\n getEmojiListAll,\n isFailedMessage,\n isPendingMessage,\n isSentMessage,\n isUserMessage,\n copyToClipboard,\n isFileMessage,\n isVoiceMessage,\n isThreadMessage,\n} from '../../utils';\nimport BottomSheet from '../BottomSheet';\nimport ImageRenderer from '../ImageRenderer';\nimport ReactionButton from '../ReactionButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\n\nconst EMOJI_SIZE = 38;\n\nconst MobileBottomSheet: React.FunctionComponent<MobileBottomSheetProps> = (props: MobileBottomSheetProps) => {\n const {\n hideMenu,\n channel,\n emojiContainer,\n message,\n replyType,\n userId,\n resendMessage,\n toggleReaction,\n isReactionEnabled,\n showEdit,\n showRemove,\n deleteMenuState,\n setQuoteMessage,\n onReplyInThread,\n isOpenedFromThread = false,\n } = props;\n const isByMe = message?.sender?.userId === userId;\n const { stringSet } = useLocalization();\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n\n const showMenuItemDelete: boolean = !isPendingMessage(message) && isByMe;\n const showMenuItemDeleteByState = isByMe && (deleteMenuState === undefined || deleteMenuState !== 'HIDE');\n const showMenuItemDeleteFinal = showMenuItemDeleteByState && showMenuItemDelete;\n\n const disableDelete = (\n (deleteMenuState !== undefined && deleteMenuState === 'DISABLE')\n || (message?.threadInfo?.replyCount ?? 0) > 0\n );\n\n const showMenuItemDownload: boolean = !isPendingMessage(message) && isFileMessage(message) && !isVoiceMessage(message);\n const showReaction: boolean = !isFailedMessage(message) && !isPendingMessage(message) && isReactionEnabled;\n const showMenuItemReply: boolean = (replyType === 'QUOTE_REPLY')\n && !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel() && !(channel as GroupChannel)?.isBroadcast);\n const showMenuItemThread: boolean = (replyType === 'THREAD') && !isOpenedFromThread\n && !isFailedMessage(message)\n && !isPendingMessage(message)\n && !isThreadMessage(message)\n && (channel?.isGroupChannel() && !(channel as GroupChannel)?.isBroadcast);\n const disableReaction = message?.parentMessageId > 0;\n\n const fileMessage = message as FileMessage;\n const maxEmojisPerRow = Math.floor(window.innerWidth / EMOJI_SIZE) - 1;\n const [showEmojisOnly, setShowEmojisOnly] = useState<boolean>(false);\n const emojis = getEmojiListAll(emojiContainer);\n // calculate max emojis that can be shown in screen\n const visibleEmojis = showEmojisOnly\n ? emojis\n : emojis?.slice(0, maxEmojisPerRow);\n const canShowMoreEmojis = emojis.length > maxEmojisPerRow;\n return (\n <BottomSheet onBackdropClick={hideMenu}>\n <div className='sendbird-message__bottomsheet'>\n {\n showReaction && (\n <div className='sendbird-message__bottomsheet-reactions'>\n <ul\n className=\"sendbird-message__bottomsheet-reaction-bar\"\n >\n <div\n className={`\n sendbird-message__bottomsheet-reaction-bar__row\n ${showEmojisOnly ? 'sendbird-message__bottomsheet-reaction-bar__all' : ''}\n `}\n >\n {visibleEmojis.map((emoji: Emoji): React.ReactElement => {\n const isReacted: boolean = message?.reactions\n ?.filter((reaction: Reaction): boolean => reaction.key === emoji.key)[0]\n ?.userIds\n ?.some((reactorId: string): boolean => reactorId === userId);\n return (\n <ReactionButton\n key={emoji.key}\n width={`${EMOJI_SIZE}px`}\n height={`${EMOJI_SIZE}px`}\n selected={isReacted}\n onClick={(): void => {\n hideMenu();\n toggleReaction(message, emoji.key, isReacted);\n }}\n dataSbId={`ui_mobile_emoji_reactions_menu_${emoji.key}`}\n >\n <ImageRenderer\n url={emoji?.url || ''}\n width=\"28px\"\n height=\"28px\"\n placeHolder={(style: Record<string, unknown>): ReactElement => (\n <div style={style}>\n <Icon\n type={IconTypes.QUESTION}\n fillColor={IconColors.ON_BACKGROUND_3}\n width=\"28px\"\n height=\"28px\"\n />\n </div>\n )}\n />\n </ReactionButton>\n );\n })}\n {\n canShowMoreEmojis && !showEmojisOnly && (\n <ReactionButton\n key=\"emoji_more\"\n width=\"38px\"\n height=\"38px\"\n onClick={(): void => {\n setShowEmojisOnly(true);\n }}\n dataSbId=\"ui_mobile_emoji_reactions_menu_emojiadd\"\n >\n <ImageRenderer\n url={''}\n width=\"28px\"\n height=\"28px\"\n placeHolder={(style: Record<string, unknown>): React.ReactElement => (\n <div style={style}>\n <Icon\n type={IconTypes.EMOJI_MORE}\n fillColor={IconColors.ON_BACKGROUND_3}\n width=\"28px\"\n height=\"28px\"\n />\n </div>\n )}\n />\n </ReactionButton>\n )\n }\n </div>\n </ul>\n </div>\n )\n }\n {\n !showEmojisOnly && (\n <div className='sendbird-message__bottomsheet--actions'>\n {showMenuItemCopy && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n copyToClipboard((message as UserMessage)?.message);\n }}\n >\n <Icon\n type={IconTypes.COPY}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet?.MESSAGE_MENU__COPY}\n </Label>\n </div>\n )}\n {\n showMenuItemEdit && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n showEdit(true);\n }}\n >\n <Icon\n type={IconTypes.EDIT}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet?.MESSAGE_MENU__EDIT}\n </Label>\n </div>\n )\n }\n {\n showMenuItemResend && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n resendMessage(message);\n }}\n >\n <Icon\n type={IconTypes.REFRESH}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet?.MESSAGE_MENU__RESEND}\n </Label>\n </div>\n )\n }\n {\n showMenuItemReply && (\n <div\n className={`sendbird-message__bottomsheet--action\n ${disableReaction ? 'sendbird-message__bottomsheet--action-disabled' : ''}\n `}\n role=\"menuitem\"\n aria-disabled={disableReaction ? true : false}\n onClick={() => {\n if (!disableReaction) {\n hideMenu();\n setQuoteMessage(message);\n }\n }}\n >\n <Icon\n type={IconTypes.REPLY}\n fillColor={disableReaction\n ? IconColors.ON_BACKGROUND_3\n : IconColors.PRIMARY\n }\n width=\"24px\"\n height=\"24px\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={disableReaction ? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_1}\n >\n {stringSet?.MESSAGE_MENU__REPLY}\n </Label>\n </div>\n )\n }\n {showMenuItemThread && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n onReplyInThread?.({ message });\n }}\n >\n <Icon\n type={IconTypes.THREAD}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet.MESSAGE_MENU__THREAD}\n </Label>\n </div>\n )}\n {\n showMenuItemDeleteFinal && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n if (!disableDelete) {\n hideMenu();\n showRemove?.(true);\n }\n }}\n >\n <Icon\n type={IconTypes.DELETE}\n fillColor={\n disableDelete\n ? IconColors.ON_BACKGROUND_4\n : IconColors.PRIMARY\n }\n width=\"24px\"\n height=\"24px\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={\n disableDelete\n ? LabelColors.ONBACKGROUND_4\n : LabelColors.ONBACKGROUND_1\n }\n >\n {stringSet?.MESSAGE_MENU__DELETE}\n </Label>\n </div>\n )\n }\n {\n showMenuItemDownload && (\n <div\n className='sendbird-message__bottomsheet--action'\n onClick={() => {\n hideMenu();\n }}\n >\n <a\n className=\"sendbird-message__bottomsheet--hyperlink\"\n rel=\"noopener noreferrer\"\n href={fileMessage?.url}\n target=\"_blank\"\n >\n <Icon\n type={IconTypes.DOWNLOAD}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet?.MESSAGE_MENU__SAVE}\n </Label>\n </a>\n </div>\n )\n }\n </div>\n )\n }\n </div>\n </BottomSheet>\n );\n};\n\nexport default MobileBottomSheet;\n","import './mobile-menu.scss';\n\nimport React from 'react';\nimport MobileContextMenu from './MobileContextMenu';\nimport MobileBottomSheet from './MobileBottomSheet';\nimport type { MobileBottomSheetProps } from './types';\n\nconst MobileMenu: React.FC<MobileBottomSheetProps> = (props: MobileBottomSheetProps) => {\n const {\n message,\n hideMenu,\n userId,\n channel,\n isReactionEnabled = false,\n isByMe,\n replyType,\n disabled,\n deleteMenuState,\n showRemove,\n showEdit,\n resendMessage,\n setQuoteMessage,\n emojiContainer,\n toggleReaction,\n parentRef,\n onReplyInThread,\n isOpenedFromThread,\n } = props;\n return (\n <>\n {\n isReactionEnabled\n ? (\n <MobileBottomSheet\n channel={channel}\n message={message}\n hideMenu={hideMenu}\n isByMe={isByMe}\n userId={userId}\n replyType={replyType}\n disabled={disabled}\n showRemove={showRemove}\n showEdit={showEdit}\n deleteMenuState={deleteMenuState}\n resendMessage={resendMessage}\n setQuoteMessage={setQuoteMessage}\n emojiContainer={emojiContainer}\n toggleReaction={toggleReaction}\n isReactionEnabled={isReactionEnabled}\n onReplyInThread={onReplyInThread}\n isOpenedFromThread={isOpenedFromThread}\n />\n ) : (\n <MobileContextMenu\n channel={channel}\n userId={userId}\n message={message}\n hideMenu={hideMenu}\n isByMe={isByMe}\n showEdit={showEdit}\n replyType={replyType}\n disabled={disabled}\n deleteMenuState={deleteMenuState}\n showRemove={showRemove}\n resendMessage={resendMessage}\n setQuoteMessage={setQuoteMessage}\n parentRef={parentRef}\n onReplyInThread={onReplyInThread}\n isOpenedFromThread={isOpenedFromThread}\n />\n )\n }\n </>\n );\n};\n\nexport default MobileMenu;\n"],"names":["MobileContextMenu","props","_message$sender","_message$threadInfo$r","_message$threadInfo","hideMenu","channel","message","replyType","userId","resendMessage","showEdit","showRemove","deleteMenuState","setQuoteMessage","parentRef","onReplyInThread","isOpenedFromThread","isByMe","sender","stringSet","useLocalization","showMenuItemCopy","isUserMessage","showMenuItemEdit","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemDeleteByState","undefined","showMenuItemDeleteFinal","disableDelete","threadInfo","replyCount","showMenuItemDownload","isFileMessage","isVoiceMessage","isSuper","isBroadcast","showMenuItemReply","isGroupChannel","showMenuItemThread","isThreadMessage","fileMessage","React","createElement","ContextMenu","isOpen","menuItems","_message$parentMessag","_message$parentMessag2","_message$parentMessag3","MenuItems","className","parentContainRef","closeDropdown","MenuItem","onClick","copyToClipboard","dataSbId","Label","type","LabelTypography","SUBTITLE_1","color","LabelColors","ONBACKGROUND_1","MESSAGE_MENU__COPY","Icon","IconTypes","COPY","fillColor","IconColors","PRIMARY","width","height","disable","parentMessageId","ONBACKGROUND_4","MESSAGE_MENU__REPLY","REPLY","ON_BACKGROUND_4","MESSAGE_MENU__THREAD","THREAD","MESSAGE_MENU__EDIT","EDIT","MESSAGE_MENU__RESEND","REFRESH","MESSAGE_MENU__DELETE","DELETE","rel","href","url","target","MESSAGE_MENU__SAVE","DOWNLOAD","EMOJI_SIZE","MobileBottomSheet","emojiContainer","toggleReaction","isReactionEnabled","showReaction","disableReaction","maxEmojisPerRow","Math","floor","window","innerWidth","showEmojisOnly","setShowEmojisOnly","useState","emojis","getEmojiListAll","visibleEmojis","slice","canShowMoreEmojis","length","BottomSheet","onBackdropClick","map","emoji","_message$reactions","_message$reactions$fi","_message$reactions$fi2","isReacted","reactions","filter","reaction","key","userIds","some","reactorId","ReactionButton","selected","ImageRenderer","placeHolder","style","QUESTION","ON_BACKGROUND_3","EMOJI_MORE","role","MobileMenu","disabled","Fragment"],"mappings":"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"}
|