@sendbird/uikit-react 3.3.7 → 3.4.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/App.js +60 -34
- package/App.js.map +1 -1
- package/CHANGELOG.md +150 -0
- package/Channel/components/ChannelHeader.js +20 -18
- package/Channel/components/ChannelHeader.js.map +1 -1
- package/Channel/components/ChannelUI.js +48 -29
- package/Channel/components/ChannelUI.js.map +1 -1
- package/Channel/components/FileViewer.js +15 -14
- package/Channel/components/FileViewer.js.map +1 -1
- package/Channel/components/FrozenNotification.js +4 -4
- package/Channel/components/Message.js +33 -24
- package/Channel/components/Message.js.map +1 -1
- package/Channel/components/MessageInput.js +62 -20
- package/Channel/components/MessageInput.js.map +1 -1
- package/Channel/components/MessageList.js +36 -27
- package/Channel/components/MessageList.js.map +1 -1
- package/Channel/components/RemoveMessageModal.js +21 -17
- package/Channel/components/RemoveMessageModal.js.map +1 -1
- package/Channel/components/SuggestedMentionList.js +17 -16
- package/Channel/components/SuggestedMentionList.js.map +1 -1
- package/Channel/components/TypingIndicator.js +15 -14
- package/Channel/components/TypingIndicator.js.map +1 -1
- package/Channel/components/UnreadCount.js +4 -4
- package/Channel/context.js +14 -13
- package/Channel/context.js.map +1 -1
- package/Channel.js +43 -28
- package/Channel.js.map +1 -1
- package/ChannelList/components/AddChannel.js +15 -15
- package/ChannelList/components/ChannelListHeader.js +7 -7
- package/ChannelList/components/ChannelListUI.js +29 -28
- package/ChannelList/components/ChannelListUI.js.map +1 -1
- package/ChannelList/components/ChannelPreview.js +26 -25
- package/ChannelList/components/ChannelPreview.js.map +1 -1
- package/ChannelList/components/ChannelPreviewAction.js +14 -14
- package/ChannelList/context.js +8 -8
- package/ChannelList.js +29 -28
- package/ChannelList.js.map +1 -1
- package/{ChannelListProvider-eb4708a3.js → ChannelListProvider-3c78429f.js} +8 -8
- package/{ChannelListProvider-eb4708a3.js.map → ChannelListProvider-3c78429f.js.map} +1 -1
- package/{ChannelProvider-1e540c0e.js → ChannelProvider-1d70b8a0.js} +88 -13
- package/ChannelProvider-1d70b8a0.js.map +1 -0
- package/ChannelSettings/components/ChannelProfile.js +12 -12
- package/ChannelSettings/components/ChannelSettingsUI.js +18 -18
- package/ChannelSettings/components/EditDetailsModal.js +12 -12
- 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 +18 -15
- package/ChannelSettings/components/UserPanel.js.map +1 -1
- 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/SelectChannelType.js +11 -11
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +14 -14
- package/{CreateChannelProvider-ed2e3cb4.js → CreateChannelProvider-946fb371.js} +1 -1
- package/{CreateChannelProvider-ed2e3cb4.js.map → CreateChannelProvider-946fb371.js.map} +1 -1
- package/CreateOpenChannel/components/CreateOpenChannelUI.js +10 -10
- package/CreateOpenChannel/context.js +1 -1
- package/CreateOpenChannel.js +10 -10
- package/EditUserProfile/components/EditUserProfileUI.js +13 -13
- package/EditUserProfile.js +13 -13
- package/{LocalizationContext-4c2faa9a.js → LocalizationContext-539093a9.js} +3 -3
- package/{LocalizationContext-4c2faa9a.js.map → LocalizationContext-539093a9.js.map} +1 -1
- package/{MediaQueryContext-97a21b7e.js → MediaQueryContext-79c8ad08.js} +1 -1
- package/{MediaQueryContext-97a21b7e.js.map → MediaQueryContext-79c8ad08.js.map} +1 -1
- package/{MemberList-6483a7db.js → MemberList-1350e670.js} +10 -7
- package/MemberList-1350e670.js.map +1 -0
- package/MessageSearch/components/MessageSearchUI.js +13 -11
- package/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/MessageSearch/context.js +2 -2
- package/MessageSearch.js +13 -11
- package/MessageSearch.js.map +1 -1
- package/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/OpenChannel/components/OpenChannelHeader.js +13 -13
- package/OpenChannel/components/OpenChannelInput.js +16 -15
- package/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessage.js +22 -22
- package/OpenChannel/components/OpenChannelMessageList.js +24 -24
- package/OpenChannel/components/OpenChannelUI.js +24 -24
- package/OpenChannel/context.js +9 -9
- package/OpenChannel.js +24 -24
- package/OpenChannelList/components/OpenChannelListUI.js +13 -13
- package/OpenChannelList/components/OpenChannelPreview.js +4 -4
- package/OpenChannelList/context.js +4 -4
- package/OpenChannelList.js +13 -13
- package/{OpenChannelListProvider-95808e48.js → OpenChannelListProvider-64e2ca27.js} +3 -3
- package/{OpenChannelListProvider-95808e48.js.map → OpenChannelListProvider-64e2ca27.js.map} +1 -1
- package/{OpenChannelProvider-e3137432.js → OpenChannelProvider-5a54a791.js} +7 -7
- package/{OpenChannelProvider-e3137432.js.map → OpenChannelProvider-5a54a791.js.map} +1 -1
- package/OpenChannelSettings/components/EditDetailsModal.js +13 -13
- package/OpenChannelSettings/components/OpenChannelProfile.js +13 -13
- 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/README.md +8 -0
- package/{RemoveMessageModal-0baf3553.js → RemoveMessageModal-cd536405.js} +3 -3
- package/{RemoveMessageModal-0baf3553.js.map → RemoveMessageModal-cd536405.js.map} +1 -1
- package/SendbirdProvider.js +29 -11
- package/SendbirdProvider.js.map +1 -1
- package/Thread/components/ParentMessageInfo.js +32 -22
- package/Thread/components/ParentMessageInfo.js.map +1 -1
- package/Thread/components/ParentMessageInfoItem.js +33 -16
- package/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/Thread/components/ThreadHeader.js +6 -6
- package/Thread/components/ThreadList.js +33 -24
- package/Thread/components/ThreadList.js.map +1 -1
- package/Thread/components/ThreadListItem.js +40 -25
- package/Thread/components/ThreadListItem.js.map +1 -1
- package/Thread/components/ThreadMessageInput.js +71 -21
- package/Thread/components/ThreadMessageInput.js.map +1 -1
- package/Thread/components/ThreadUI.js +49 -31
- package/Thread/components/ThreadUI.js.map +1 -1
- package/Thread/context.js +9 -8
- package/Thread/context.js.map +1 -1
- package/Thread.js +47 -29
- package/Thread.js.map +1 -1
- package/{ThreadProvider-a1413f01.js → ThreadProvider-9f8652df.js} +91 -11
- package/ThreadProvider-9f8652df.js.map +1 -0
- package/{UserProfileContext-e5d90f15.js → UserProfileContext-bd8525b7.js} +1 -1
- package/{UserProfileContext-e5d90f15.js.map → UserProfileContext-bd8525b7.js.map} +1 -1
- package/VoiceMessageInputWrapper-b149ff89.js +173 -0
- package/VoiceMessageInputWrapper-b149ff89.js.map +1 -0
- package/VoicePlayer/context.js +5 -0
- package/VoicePlayer/context.js.map +1 -0
- package/VoicePlayer/useVoicePlayer.js +87 -0
- package/VoicePlayer/useVoicePlayer.js.map +1 -0
- package/VoiceRecorder/context.js +243 -0
- package/VoiceRecorder/context.js.map +1 -0
- package/VoiceRecorder/useVoiceRecorder.js +117 -0
- package/VoiceRecorder/useVoiceRecorder.js.map +1 -0
- package/{_rollupPluginBabelHelpers-b45d3824.js → _rollupPluginBabelHelpers-09618dc3.js} +1 -1
- package/_rollupPluginBabelHelpers-09618dc3.js.map +1 -0
- package/{actionTypes-c69daac1.js → actionTypes-0dd0c34b.js} +1 -1
- package/{actionTypes-c69daac1.js.map → actionTypes-0dd0c34b.js.map} +1 -1
- package/cjs/App.js +60 -34
- package/cjs/App.js.map +1 -1
- package/cjs/Channel/components/ChannelHeader.js +20 -18
- package/cjs/Channel/components/ChannelHeader.js.map +1 -1
- package/cjs/Channel/components/ChannelUI.js +48 -29
- package/cjs/Channel/components/ChannelUI.js.map +1 -1
- package/cjs/Channel/components/FileViewer.js +15 -14
- package/cjs/Channel/components/FileViewer.js.map +1 -1
- package/cjs/Channel/components/FrozenNotification.js +4 -4
- package/cjs/Channel/components/Message.js +33 -24
- package/cjs/Channel/components/Message.js.map +1 -1
- package/cjs/Channel/components/MessageInput.js +62 -20
- package/cjs/Channel/components/MessageInput.js.map +1 -1
- package/cjs/Channel/components/MessageList.js +36 -27
- package/cjs/Channel/components/MessageList.js.map +1 -1
- package/cjs/Channel/components/RemoveMessageModal.js +21 -17
- package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
- package/cjs/Channel/components/SuggestedMentionList.js +17 -16
- package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
- package/cjs/Channel/components/TypingIndicator.js +15 -14
- package/cjs/Channel/components/TypingIndicator.js.map +1 -1
- package/cjs/Channel/components/UnreadCount.js +4 -4
- package/cjs/Channel/context.js +14 -13
- package/cjs/Channel/context.js.map +1 -1
- package/cjs/Channel.js +43 -28
- package/cjs/Channel.js.map +1 -1
- package/cjs/ChannelList/components/AddChannel.js +15 -15
- package/cjs/ChannelList/components/ChannelListHeader.js +7 -7
- package/cjs/ChannelList/components/ChannelListUI.js +29 -28
- package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreview.js +26 -25
- package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreviewAction.js +14 -14
- package/cjs/ChannelList/context.js +8 -8
- package/cjs/ChannelList.js +29 -28
- package/cjs/ChannelList.js.map +1 -1
- package/cjs/{ChannelListProvider-94df9f01.js → ChannelListProvider-7df03e2a.js} +8 -8
- package/cjs/{ChannelListProvider-94df9f01.js.map → ChannelListProvider-7df03e2a.js.map} +1 -1
- package/cjs/{ChannelProvider-3fbf7c5e.js → ChannelProvider-56b10dd6.js} +87 -12
- package/cjs/ChannelProvider-56b10dd6.js.map +1 -0
- package/cjs/ChannelSettings/components/ChannelProfile.js +12 -12
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +18 -18
- package/cjs/ChannelSettings/components/EditDetailsModal.js +12 -12
- 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 +18 -15
- package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
- 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/SelectChannelType.js +11 -11
- package/cjs/CreateChannel/context.js +4 -4
- package/cjs/CreateChannel.js +14 -14
- package/cjs/{CreateChannelProvider-70422add.js → CreateChannelProvider-359f35d1.js} +1 -1
- package/cjs/{CreateChannelProvider-70422add.js.map → CreateChannelProvider-359f35d1.js.map} +1 -1
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +10 -10
- package/cjs/CreateOpenChannel/context.js +1 -1
- package/cjs/CreateOpenChannel.js +10 -10
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +13 -13
- package/cjs/EditUserProfile.js +13 -13
- package/cjs/{LocalizationContext-a0f833e9.js → LocalizationContext-7d2c13ee.js} +3 -3
- package/cjs/{LocalizationContext-a0f833e9.js.map → LocalizationContext-7d2c13ee.js.map} +1 -1
- package/cjs/{MediaQueryContext-770ae8bc.js → MediaQueryContext-36855cf6.js} +1 -1
- package/cjs/{MediaQueryContext-770ae8bc.js.map → MediaQueryContext-36855cf6.js.map} +1 -1
- package/cjs/{MemberList-4a0910dd.js → MemberList-cf4488bc.js} +10 -7
- package/cjs/MemberList-cf4488bc.js.map +1 -0
- package/cjs/MessageSearch/components/MessageSearchUI.js +13 -11
- package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/cjs/MessageSearch/context.js +2 -2
- package/cjs/MessageSearch.js +13 -11
- package/cjs/MessageSearch.js.map +1 -1
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/cjs/OpenChannel/components/OpenChannelHeader.js +13 -13
- package/cjs/OpenChannel/components/OpenChannelInput.js +16 -15
- package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessage.js +22 -22
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +24 -24
- package/cjs/OpenChannel/components/OpenChannelUI.js +24 -24
- package/cjs/OpenChannel/context.js +9 -9
- package/cjs/OpenChannel.js +24 -24
- package/cjs/OpenChannelList/components/OpenChannelListUI.js +13 -13
- package/cjs/OpenChannelList/components/OpenChannelPreview.js +4 -4
- package/cjs/OpenChannelList/context.js +4 -4
- package/cjs/OpenChannelList.js +13 -13
- package/cjs/{OpenChannelListProvider-e97c8ed9.js → OpenChannelListProvider-d0e494e8.js} +3 -3
- package/cjs/{OpenChannelListProvider-e97c8ed9.js.map → OpenChannelListProvider-d0e494e8.js.map} +1 -1
- package/cjs/{OpenChannelProvider-9b453ac0.js → OpenChannelProvider-84d45a52.js} +7 -7
- package/cjs/{OpenChannelProvider-9b453ac0.js.map → OpenChannelProvider-84d45a52.js.map} +1 -1
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +13 -13
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +13 -13
- 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-7bde69be.js → RemoveMessageModal-44018509.js} +3 -3
- package/cjs/{RemoveMessageModal-7bde69be.js.map → RemoveMessageModal-44018509.js.map} +1 -1
- package/cjs/SendbirdProvider.js +29 -11
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfo.js +34 -24
- package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfoItem.js +33 -16
- package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/cjs/Thread/components/ThreadHeader.js +6 -6
- package/cjs/Thread/components/ThreadList.js +33 -24
- package/cjs/Thread/components/ThreadList.js.map +1 -1
- package/cjs/Thread/components/ThreadListItem.js +41 -26
- package/cjs/Thread/components/ThreadListItem.js.map +1 -1
- package/cjs/Thread/components/ThreadMessageInput.js +73 -23
- package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
- package/cjs/Thread/components/ThreadUI.js +49 -31
- package/cjs/Thread/components/ThreadUI.js.map +1 -1
- package/cjs/Thread/context.js +9 -8
- package/cjs/Thread/context.js.map +1 -1
- package/cjs/Thread.js +47 -29
- package/cjs/Thread.js.map +1 -1
- package/cjs/{ThreadProvider-71441c16.js → ThreadProvider-e8591a61.js} +90 -10
- package/cjs/ThreadProvider-e8591a61.js.map +1 -0
- package/cjs/{UserProfileContext-74e6409b.js → UserProfileContext-89b8a98d.js} +1 -1
- package/cjs/{UserProfileContext-74e6409b.js.map → UserProfileContext-89b8a98d.js.map} +1 -1
- package/cjs/VoiceMessageInputWrapper-6d309e8c.js +179 -0
- package/cjs/VoiceMessageInputWrapper-6d309e8c.js.map +1 -0
- package/cjs/VoicePlayer/context.js +14 -0
- package/cjs/VoicePlayer/context.js.map +1 -0
- package/cjs/VoicePlayer/useVoicePlayer.js +91 -0
- package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -0
- package/cjs/VoiceRecorder/context.js +253 -0
- package/cjs/VoiceRecorder/context.js.map +1 -0
- package/cjs/VoiceRecorder/useVoiceRecorder.js +122 -0
- package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -0
- package/cjs/{_rollupPluginBabelHelpers-25763ef8.js → _rollupPluginBabelHelpers-9807f0cb.js} +1 -1
- package/cjs/_rollupPluginBabelHelpers-9807f0cb.js.map +1 -0
- package/cjs/{actionTypes-85a652e4.js → actionTypes-64f969d0.js} +1 -1
- package/cjs/{actionTypes-85a652e4.js.map → actionTypes-64f969d0.js.map} +1 -1
- package/cjs/{color-51fd9a0c.js → color-ae15b40e.js} +1 -1
- package/cjs/{color-51fd9a0c.js.map → color-ae15b40e.js.map} +1 -1
- package/cjs/{compareIds-44844f10.js → compareIds-88a3abee.js} +1 -1
- package/cjs/{compareIds-44844f10.js.map → compareIds-88a3abee.js.map} +1 -1
- package/cjs/{const-4761421a.js → const-6d993a66.js} +1 -1
- package/cjs/{const-4761421a.js.map → const-6d993a66.js.map} +1 -1
- package/cjs/{const-618dd4f4.js → const-98ae036e.js} +1 -1
- package/cjs/{const-618dd4f4.js.map → const-98ae036e.js.map} +1 -1
- package/cjs/consts-7142bdfe.js +36 -0
- package/cjs/consts-7142bdfe.js.map +1 -0
- package/cjs/{context-4b1de73e.js → context-9f945182.js} +2 -2
- package/cjs/{context-4b1de73e.js.map → context-9f945182.js.map} +1 -1
- package/cjs/dist/index.css +413 -16
- package/cjs/dist/index.css.map +1 -1
- package/cjs/{index-32b39be6.js → index-1f2ac00b.js} +5 -5
- package/cjs/{index-32b39be6.js.map → index-1f2ac00b.js.map} +1 -1
- package/cjs/{index-4dc29990.js → index-31135e46.js} +1 -1
- package/cjs/{index-4dc29990.js.map → index-31135e46.js.map} +1 -1
- package/cjs/{index-9f6a474c.js → index-318ca5bb.js} +2 -2
- package/cjs/{index-9f6a474c.js.map → index-318ca5bb.js.map} +1 -1
- package/cjs/{index-0e76934f.js → index-45c199d5.js} +8 -8
- package/cjs/index-45c199d5.js.map +1 -0
- package/cjs/{index-bfe8bdde.js → index-6691da2c.js} +49 -3
- package/cjs/index-6691da2c.js.map +1 -0
- package/cjs/{index-97532335.js → index-80ec94b9.js} +2 -2
- package/cjs/{index-97532335.js.map → index-80ec94b9.js.map} +1 -1
- package/cjs/{index-2c095d94.js → index-86b55059.js} +2 -2
- package/cjs/{index-2c095d94.js.map → index-86b55059.js.map} +1 -1
- package/cjs/{index-c4738d8b.js → index-9d2d5d23.js} +3 -3
- package/cjs/{index-c4738d8b.js.map → index-9d2d5d23.js.map} +1 -1
- package/cjs/{index-756baf20.js → index-9f074bb0.js} +7 -7
- package/cjs/{index-756baf20.js.map → index-9f074bb0.js.map} +1 -1
- package/cjs/{index-4d6f2a4e.js → index-a34a53d3.js} +4 -4
- package/cjs/{index-4d6f2a4e.js.map → index-a34a53d3.js.map} +1 -1
- package/cjs/{index-67134275.js → index-c34f34a2.js} +2 -2
- package/cjs/{index-67134275.js.map → index-c34f34a2.js.map} +1 -1
- package/cjs/index-e0971532.js +280 -0
- package/cjs/index-e0971532.js.map +1 -0
- package/cjs/index-fa531baa.js +175 -0
- package/cjs/index-fa531baa.js.map +1 -0
- package/cjs/{index-7d4e7ad9.js → index-fb42d34c.js} +1 -1
- package/cjs/{index-7d4e7ad9.js.map → index-fb42d34c.js.map} +1 -1
- package/cjs/index.js +51 -39
- package/cjs/index.js.map +1 -1
- package/cjs/lame.all.js +14498 -0
- package/cjs/lame.all.js.map +1 -0
- package/cjs/sendbirdSelectors.js +2 -2
- package/cjs/{stringSet-87e51d08.js → stringSet-d4071e23.js} +5 -1
- package/cjs/stringSet-d4071e23.js.map +1 -0
- package/cjs/{topics-d9091126.js → topics-7108f68f.js} +1 -1
- package/cjs/{topics-d9091126.js.map → topics-7108f68f.js.map} +1 -1
- package/cjs/{tslib.es6-0b4c49f8.js → tslib.es6-23b4ef32.js} +1 -1
- package/cjs/{tslib.es6-0b4c49f8.js.map → tslib.es6-23b4ef32.js.map} +1 -1
- package/cjs/types-8f7bbb00.js +11 -0
- package/cjs/types-8f7bbb00.js.map +1 -0
- package/cjs/ui/Accordion.js +3 -3
- package/cjs/ui/AccordionGroup.js +2 -2
- package/cjs/ui/AdminMessage.js +3 -3
- package/cjs/ui/Avatar.js +2 -2
- package/cjs/ui/Badge.js +5 -5
- package/cjs/ui/BottomSheet.js +1 -1
- package/cjs/ui/Button.js +3 -3
- package/cjs/ui/ChannelAvatar.js +3 -3
- package/cjs/ui/ConnectionStatus.js +4 -4
- package/cjs/ui/ContextMenu.js +5 -5
- package/cjs/ui/DateSeparator.js +4 -4
- package/cjs/ui/EmojiReactions.js +7 -7
- package/cjs/ui/FileMessageItemBody.js +6 -6
- package/cjs/ui/FileViewer.js +8 -8
- package/cjs/ui/Icon.js +354 -314
- package/cjs/ui/Icon.js.map +1 -1
- package/cjs/ui/IconButton.js +1 -1
- package/cjs/ui/ImageRenderer.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/Loader.js +1 -1
- package/cjs/ui/MentionLabel.js +11 -11
- package/cjs/ui/MessageContent.js +35 -20
- package/cjs/ui/MessageContent.js.map +1 -1
- package/cjs/ui/MessageInput.js +35 -16
- package/cjs/ui/MessageInput.js.map +1 -1
- package/cjs/ui/MessageItemMenu.js +9 -8
- package/cjs/ui/MessageItemMenu.js.map +1 -1
- package/cjs/ui/MessageItemReactionMenu.js +5 -5
- package/cjs/ui/MessageSearchFileItem.js +17 -14
- package/cjs/ui/MessageSearchFileItem.js.map +1 -1
- package/cjs/ui/MessageSearchItem.js +9 -9
- package/cjs/ui/MessageStatus.js +10 -10
- package/cjs/ui/Modal.js +7 -7
- package/cjs/ui/OGMessageItemBody.js +36 -26
- package/cjs/ui/OGMessageItemBody.js.map +1 -1
- package/cjs/ui/OpenChannelAdminMessage.js +3 -3
- package/cjs/ui/OpenChannelAvatar.js +6 -6
- package/cjs/ui/OpenchannelConversationHeader.js +6 -6
- package/cjs/ui/OpenchannelFileMessage.js +16 -16
- package/cjs/ui/OpenchannelOGMessage.js +16 -16
- package/cjs/ui/OpenchannelThumbnailMessage.js +15 -15
- package/cjs/ui/OpenchannelUserMessage.js +16 -16
- package/cjs/ui/PlaceHolder.js +6 -6
- package/cjs/ui/PlaybackTime.js +36 -0
- package/cjs/ui/PlaybackTime.js.map +1 -0
- package/cjs/ui/ProgressBar.js +41 -0
- package/cjs/ui/ProgressBar.js.map +1 -0
- package/cjs/ui/QuoteMessage.js +14 -8
- package/cjs/ui/QuoteMessage.js.map +1 -1
- package/cjs/ui/QuoteMessageInput.js +12 -11
- package/cjs/ui/QuoteMessageInput.js.map +1 -1
- package/cjs/ui/ReactionBadge.js +3 -3
- package/cjs/ui/ReactionButton.js +1 -1
- package/cjs/ui/SortByRow.js +2 -2
- package/cjs/ui/TextButton.js +2 -2
- package/cjs/ui/TextMessageItemBody.js +11 -11
- package/cjs/ui/ThreadReplies.js +6 -6
- package/cjs/ui/ThumbnailMessageItemBody.js +2 -2
- package/cjs/ui/Tooltip.js +3 -3
- package/cjs/ui/TooltipWrapper.js +1 -1
- package/cjs/ui/UnknownMessageItemBody.js +6 -6
- package/cjs/ui/UserListItem.js +11 -11
- package/cjs/ui/UserProfile.js +10 -10
- package/cjs/ui/VoiceMessageItemBody.js +119 -0
- package/cjs/ui/VoiceMessageItemBody.js.map +1 -0
- package/cjs/ui/VoiceMessgeInput.js +23 -0
- package/cjs/ui/VoiceMessgeInput.js.map +1 -0
- package/cjs/ui/Word.js +11 -11
- package/cjs/{useLongPress-ff6353a1.js → useLongPress-62a89444.js} +3 -3
- package/cjs/{useLongPress-ff6353a1.js.map → useLongPress-62a89444.js.map} +1 -1
- package/cjs/useSendbirdStateContext.js +1 -1
- package/cjs/utils/message/isVoiceMessage.js +10 -0
- package/cjs/utils/message/isVoiceMessage.js.map +1 -0
- package/cjs/{utils-aa1597cc.js → utils-178ccede.js} +1 -1
- package/cjs/{utils-aa1597cc.js.map → utils-178ccede.js.map} +1 -1
- package/cjs/{utils-edb40a10.js → utils-41fef560.js} +2 -2
- package/cjs/{utils-edb40a10.js.map → utils-41fef560.js.map} +1 -1
- package/cjs/{utils-c948ddfe.js → utils-7bec6eaa.js} +1 -1
- package/cjs/{utils-c948ddfe.js.map → utils-7bec6eaa.js.map} +1 -1
- package/cjs/{utils-72ab488f.js → utils-b691a058.js} +1 -1
- package/cjs/{utils-72ab488f.js.map → utils-b691a058.js.map} +1 -1
- package/cjs/{uuid-0b5f4e5e.js → uuid-42040a5c.js} +1 -1
- package/cjs/{uuid-0b5f4e5e.js.map → uuid-42040a5c.js.map} +1 -1
- package/cjs/withSendbird.js +1 -1
- package/{color-1b42e49d.js → color-f2370c85.js} +1 -1
- package/{color-1b42e49d.js.map → color-f2370c85.js.map} +1 -1
- package/{compareIds-df760ae2.js → compareIds-a4557492.js} +1 -1
- package/{compareIds-df760ae2.js.map → compareIds-a4557492.js.map} +1 -1
- package/{const-c269fd32.js → const-593595f5.js} +1 -1
- package/{const-c269fd32.js.map → const-593595f5.js.map} +1 -1
- package/{const-11ae0dd9.js → const-ce447fcf.js} +1 -1
- package/{const-11ae0dd9.js.map → const-ce447fcf.js.map} +1 -1
- package/consts-d2d25dac.js +23 -0
- package/consts-d2d25dac.js.map +1 -0
- package/{context-2c35a852.js → context-95839b09.js} +2 -2
- package/{context-2c35a852.js.map → context-95839b09.js.map} +1 -1
- package/dist/index.css +413 -16
- package/dist/index.css.map +1 -1
- package/{index-6a8be188.js → index-2aaa784a.js} +7 -7
- package/{index-6a8be188.js.map → index-2aaa784a.js.map} +1 -1
- package/{index-e2994193.js → index-4a977e7d.js} +2 -2
- package/{index-e2994193.js.map → index-4a977e7d.js.map} +1 -1
- package/{index-6491c190.js → index-4b51e7af.js} +5 -5
- package/{index-6491c190.js.map → index-4b51e7af.js.map} +1 -1
- package/{index-30726ee1.js → index-4c6a2064.js} +2 -2
- package/{index-30726ee1.js.map → index-4c6a2064.js.map} +1 -1
- package/index-60d3992b.js +271 -0
- package/index-60d3992b.js.map +1 -0
- package/{index-8c38f9d0.js → index-620331eb.js} +2 -2
- package/{index-8c38f9d0.js.map → index-620331eb.js.map} +1 -1
- package/index-7b5efb26.js +168 -0
- package/index-7b5efb26.js.map +1 -0
- package/{index-a53d78b6.js → index-999fdb64.js} +1 -1
- package/{index-a53d78b6.js.map → index-999fdb64.js.map} +1 -1
- package/{index-1f0b91f3.js → index-9c2d0ccd.js} +2 -2
- package/{index-1f0b91f3.js.map → index-9c2d0ccd.js.map} +1 -1
- package/{index-fd5a03a3.js → index-b8e990b4.js} +1 -1
- package/{index-fd5a03a3.js.map → index-b8e990b4.js.map} +1 -1
- package/{index-425e5f17.js → index-bbab31f0.js} +48 -4
- package/index-bbab31f0.js.map +1 -0
- package/{index-aa4edbe2.js → index-daccde5e.js} +8 -8
- package/index-daccde5e.js.map +1 -0
- package/{index-6d541758.js → index-ed1f765b.js} +3 -3
- package/{index-6d541758.js.map → index-ed1f765b.js.map} +1 -1
- package/{index-aecdd02c.js → index-eefaf935.js} +4 -4
- package/{index-aecdd02c.js.map → index-eefaf935.js.map} +1 -1
- package/index.d.ts +16 -1
- package/index.js +51 -39
- package/index.js.map +1 -1
- package/lame.all.js +14492 -0
- package/lame.all.js.map +1 -0
- package/package.json +1 -1
- package/sendbirdSelectors.js +2 -2
- package/{stringSet-c2443946.js → stringSet-f9763488.js} +5 -1
- package/stringSet-f9763488.js.map +1 -0
- package/{topics-0ba43ee8.js → topics-1ec669f0.js} +1 -1
- package/{topics-0ba43ee8.js.map → topics-1ec669f0.js.map} +1 -1
- package/{tslib.es6-13412863.js → tslib.es6-fc4a2658.js} +1 -1
- package/{tslib.es6-13412863.js.map → tslib.es6-fc4a2658.js.map} +1 -1
- package/types-e86f9fca.js +9 -0
- package/types-e86f9fca.js.map +1 -0
- package/ui/Accordion.js +3 -3
- package/ui/AccordionGroup.js +2 -2
- package/ui/AdminMessage.js +3 -3
- package/ui/Avatar.js +2 -2
- package/ui/Badge.js +5 -5
- package/ui/BottomSheet.js +1 -1
- package/ui/Button.js +3 -3
- package/ui/ChannelAvatar.js +3 -3
- package/ui/ConnectionStatus.js +4 -4
- package/ui/ContextMenu.js +5 -5
- package/ui/DateSeparator.js +4 -4
- package/ui/EmojiReactions.js +7 -7
- package/ui/FileMessageItemBody.js +6 -6
- package/ui/FileViewer.js +8 -8
- package/ui/Icon.js +341 -299
- package/ui/Icon.js.map +1 -1
- package/ui/IconButton.js +1 -1
- package/ui/ImageRenderer.js +1 -1
- package/ui/Input.js +2 -2
- package/ui/Label.js +2 -2
- package/ui/LinkLabel.js +2 -2
- package/ui/Loader.js +1 -1
- package/ui/MentionLabel.js +11 -11
- package/ui/MessageContent.js +35 -20
- package/ui/MessageContent.js.map +1 -1
- package/ui/MessageInput.js +35 -16
- package/ui/MessageInput.js.map +1 -1
- package/ui/MessageItemMenu.js +9 -8
- package/ui/MessageItemMenu.js.map +1 -1
- package/ui/MessageItemReactionMenu.js +5 -5
- package/ui/MessageSearchFileItem.js +17 -14
- package/ui/MessageSearchFileItem.js.map +1 -1
- package/ui/MessageSearchItem.js +9 -9
- package/ui/MessageStatus.js +10 -10
- package/ui/Modal.js +7 -7
- package/ui/OGMessageItemBody.js +37 -27
- package/ui/OGMessageItemBody.js.map +1 -1
- package/ui/OpenChannelAdminMessage.js +3 -3
- package/ui/OpenChannelAvatar.js +6 -6
- package/ui/OpenchannelConversationHeader.js +6 -6
- package/ui/OpenchannelFileMessage.js +16 -16
- package/ui/OpenchannelOGMessage.js +16 -16
- package/ui/OpenchannelThumbnailMessage.js +15 -15
- package/ui/OpenchannelUserMessage.js +16 -16
- package/ui/PlaceHolder.js +6 -6
- package/ui/PlaybackTime.js +27 -0
- package/ui/PlaybackTime.js.map +1 -0
- package/ui/ProgressBar.js +31 -0
- package/ui/ProgressBar.js.map +1 -0
- package/ui/QuoteMessage.js +14 -8
- package/ui/QuoteMessage.js.map +1 -1
- package/ui/QuoteMessageInput.js +12 -11
- package/ui/QuoteMessageInput.js.map +1 -1
- package/ui/ReactionBadge.js +3 -3
- package/ui/ReactionButton.js +1 -1
- package/ui/SortByRow.js +2 -2
- package/ui/TextButton.js +2 -2
- package/ui/TextMessageItemBody.js +11 -11
- package/ui/ThreadReplies.js +6 -6
- package/ui/ThumbnailMessageItemBody.js +2 -2
- package/ui/Tooltip.js +3 -3
- package/ui/TooltipWrapper.js +1 -1
- package/ui/UnknownMessageItemBody.js +6 -6
- package/ui/UserListItem.js +11 -11
- package/ui/UserProfile.js +10 -10
- package/ui/VoiceMessageItemBody.js +110 -0
- package/ui/VoiceMessageItemBody.js.map +1 -0
- package/ui/VoiceMessgeInput.js +15 -0
- package/ui/VoiceMessgeInput.js.map +1 -0
- package/ui/Word.js +11 -11
- package/{useLongPress-fbe83e54.js → useLongPress-6fc8312a.js} +3 -3
- package/{useLongPress-fbe83e54.js.map → useLongPress-6fc8312a.js.map} +1 -1
- package/useSendbirdStateContext.js +1 -1
- package/utils/message/isVoiceMessage.js +7 -0
- package/utils/message/isVoiceMessage.js.map +1 -0
- package/{utils-87d19647.js → utils-2570c397.js} +1 -1
- package/{utils-87d19647.js.map → utils-2570c397.js.map} +1 -1
- package/{utils-dd13f89e.js → utils-6c7dd397.js} +1 -1
- package/{utils-dd13f89e.js.map → utils-6c7dd397.js.map} +1 -1
- package/{utils-9c95a786.js → utils-8c242c8c.js} +2 -2
- package/{utils-9c95a786.js.map → utils-8c242c8c.js.map} +1 -1
- package/{utils-87dce5dd.js → utils-c1d219fa.js} +1 -1
- package/{utils-87dce5dd.js.map → utils-c1d219fa.js.map} +1 -1
- package/{uuid-7a5e68ed.js → uuid-6ca64623.js} +1 -1
- package/{uuid-7a5e68ed.js.map → uuid-6ca64623.js.map} +1 -1
- package/withSendbird.js +1 -1
- package/ChannelProvider-1e540c0e.js.map +0 -1
- package/MemberList-6483a7db.js.map +0 -1
- package/ThreadProvider-a1413f01.js.map +0 -1
- package/_rollupPluginBabelHelpers-b45d3824.js.map +0 -1
- package/cjs/ChannelProvider-3fbf7c5e.js.map +0 -1
- package/cjs/MemberList-4a0910dd.js.map +0 -1
- package/cjs/ThreadProvider-71441c16.js.map +0 -1
- package/cjs/_rollupPluginBabelHelpers-25763ef8.js.map +0 -1
- package/cjs/index-0e76934f.js.map +0 -1
- package/cjs/index-bfe8bdde.js.map +0 -1
- package/cjs/stringSet-87e51d08.js.map +0 -1
- package/index-425e5f17.js.map +0 -1
- package/index-aa4edbe2.js.map +0 -1
- package/stringSet-c2443946.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageInput.js","sources":["../../../src/ui/MessageInput/utils.js","../../../src/ui/MessageInput/index.jsx"],"sourcesContent":["// 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\nexport default debounce;\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\n useContext,\n} from 'react';\nimport { renderToString } from 'react-dom/server';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { MessageInputKeys, NodeNames, NodeTypes } from './const';\n\nimport { USER_MENTION_TEMP_CHAR } from '../../smart-components/Channel/context/const';\nimport IconButton from '../IconButton';\nimport Button, { ButtonTypes, ButtonSizes } from '../Button';\nimport MentionUserLabel from '../MentionUserLabel';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { sanitizeString } from './utils';\nimport {\n arrayEqual,\n getClassName,\n StringObjType,\n convertWordToStringObj,\n} from '../../utils';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst displayCaret = (element, position) => {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(element.childNodes[0], position);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n element.focus();\n}\n\nconst resetInput = (ref) => {\n try {\n ref.current.innerHTML = '';\n } catch {\n //\n }\n}\n\nconst initialTargetStringInfo = {\n targetString: '',\n startNodeIndex: null,\n startOffsetIndex: null,\n endNodeIndex: null,\n endOffsetIndex: null,\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n className,\n messageFieldId,\n isEdit,\n isMentionEnabled,\n disabled,\n message,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onUpdateMessage,\n onCancelEdit,\n onStartTyping,\n channelUrl,\n mentionSelectedUser,\n onUserMentioned,\n onMentionStringChange,\n onMentionedUserIdsUpdated,\n onKeyUp,\n onKeyDown,\n } = props;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [isInput, setIsInput] = useState(false);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [targetStringInfo, setTargetStringInfo] = useState({ ...initialTargetStringInfo });\n const setHeight = useMemo(() => (\n () => {\n try {\n const elem = ref?.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem && elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n } catch (error) {\n // error\n }\n }\n ), []);\n\n // #Edit mode\n // for easilly initialize input value from outside, but\n // useEffect(_, [channelUrl]) erase it\n const initialValue = props?.value;\n useEffect(() => {\n const textField = ref?.current;\n try {\n textField.innerHTML = initialValue;\n displayCaret(textField, initialValue?.length);\n } catch { }\n setMentionedUserIds([]);\n setIsInput(textField?.innerText?.length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention & #Edit | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n textField.innerHTML = message?.mentionedMessageTemplate?.split(' ').map((word) => (\n convertWordToStringObj(word, mentionedUsers).map((stringObj) => {\n const { type, value, userId } = stringObj;\n if (type === StringObjType.mention && mentionedUsers.some((user) => user?.userId === userId)) {\n return renderToString(\n <MentionUserLabel userId={userId}>\n {\n `${USER_MENTION_TEMP_CHAR}${mentionedUsers.find((user) => user?.userId === userId)?.nickname\n || value\n || stringSet.MENTION_NAME__NO_NAME\n }`\n }\n </MentionUserLabel>,\n );\n }\n return sanitizeString(value);\n }).join('')\n )).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = sanitizeString(message?.message);\n } catch { }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.innerText?.length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.innerText.length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = [...textField?.childNodes];\n const frontTextNode = document?.createTextNode(\n childNodes[startNodeIndex]?.textContent.slice(0, startOffsetIndex),\n );\n const backTextNode = document?.createTextNode(\n `\\u00A0${childNodes[endNodeIndex]?.textContent.slice(endOffsetIndex)}`,\n );\n const mentionLabel = renderToString(\n <MentionUserLabel userId={mentionSelectedUser?.userId}>\n {`${USER_MENTION_TEMP_CHAR}${mentionSelectedUser?.nickname || stringSet.MENTION_NAME__NO_NAME}`}\n </MentionUserLabel>,\n );\n const div = document.createElement('div');\n div.innerHTML = mentionLabel;\n const newNodes = [\n ...childNodes.slice(0, startNodeIndex),\n frontTextNode,\n div.childNodes[0],\n backTextNode,\n ...childNodes.slice(endNodeIndex + 1),\n ];\n textField.innerHTML = '';\n newNodes.forEach((newNode) => {\n textField.appendChild(newNode);\n });\n onUserMentioned(mentionSelectedUser);\n if (window.getSelection || document.getSelection) {\n // set caret postion\n const selection = window.getSelection() || document.getSelection();\n selection.removeAllRanges();\n const range = new Range();\n range.selectNodeContents(textField);\n range.setStart(textField.childNodes[startNodeIndex + 2], 1);\n range.setEnd(textField.childNodes[startNodeIndex + 2], 1);\n range.collapse(false);\n selection.addRange(range);\n textField.focus();\n }\n setTargetStringInfo({ ...initialTargetStringInfo });\n setHeight();\n useMentionedLabelDetection();\n }\n }\n }, [mentionSelectedUser, isMentionEnabled]);\n\n // #Mention | Detect mentioning user nickname\n const useMentionInputDetection = useCallback(() => {\n const selection = window?.getSelection?.() || document?.getSelection?.();\n const textField = ref?.current;\n if (selection.anchorNode === textField) {\n onMentionStringChange('');\n }\n if (isMentionEnabled && selection\n && selection.anchorNode === selection.focusNode\n && selection.anchorOffset === selection.focusOffset\n ) {\n let textStack = '';\n let startNodeIndex = null;\n let startOffsetIndex = null;\n for (let index = 0; index < textField.childNodes.length; index += 1) {\n const currentNode = textField.childNodes[index];\n if (currentNode.nodeType === NodeTypes.TextNode) {\n /* text node */\n const textContent = (currentNode === selection.anchorNode)\n ? currentNode?.textContent.slice(0, selection.anchorOffset) || ''\n : currentNode?.textContent || '';\n if (textStack.length > 0) {\n textStack += textContent;\n } else {\n let charLastIndex = textContent.lastIndexOf(USER_MENTION_TEMP_CHAR);\n for (let i = charLastIndex - 1; i > -1; i -= 1) {\n if (textContent[i] === USER_MENTION_TEMP_CHAR) {\n charLastIndex = i;\n } else {\n break;\n }\n }\n if (charLastIndex > -1) {\n textStack = textContent;\n startNodeIndex = index;\n startOffsetIndex = charLastIndex;\n }\n }\n } else {\n /* other nodes */\n textStack = '';\n startNodeIndex = null;\n startOffsetIndex = null;\n }\n if (currentNode === selection.anchorNode) {\n /**\n * targetString could be ''\n * startNodeIndex and startOffsetIndex could be null\n */\n const targetString = textStack ? textStack.slice(startOffsetIndex) : '';// include template character\n setTargetStringInfo({\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex: index,\n endOffsetIndex: selection.anchorOffset,\n });\n onMentionStringChange(targetString);\n return;\n }\n }\n }\n }, [isMentionEnabled]);\n\n const sendMessage = () => {\n const textField = ref?.current;\n if (!isEdit && textField?.innerText) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Br) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { message: messageText, mentionTemplate };\n onSendMessage(params);\n resetInput(ref);\n setIsInput(false);\n setHeight();\n }\n };\n const isEditDisabled = !(ref?.current?.innerText?.trim());\n const editMessage = () => {\n const textField = ref?.current;\n const messageId = message?.messageId;\n if (isEdit && messageId) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { messageId, message: messageText, mentionTemplate };\n onUpdateMessage(params);\n resetInput(ref);\n }\n };\n\n return (\n <form\n className={getClassName([\n className,\n isEdit ? 'sendbird-message-input__edit' : '',\n disabled ? 'sendbird-message-input-form__disabled' : '',\n ])}\n >\n <div\n className={getClassName([\n 'sendbird-message-input',\n disabled ? 'sendbird-message-input__disabled' : '',\n ])}\n >\n <div\n id={`${textFieldId}${isEdit ? message?.messageId : ''}`}\n className={`sendbird-message-input--textarea ${textFieldId}`}\n contentEditable={!disabled}\n role=\"textbox\"\n aria-label=\"Text Input\"\n disabled={disabled}\n ref={ref}\n maxLength={maxLength}\n onKeyDown={(e) => {\n const preventEvent = onKeyDown(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n if (!e.shiftKey && e.key === MessageInputKeys.Enter && e?.nativeEvent?.isComposing !== true) {\n e.preventDefault();\n sendMessage();\n }\n if (e.key === MessageInputKeys.Backspace\n && ref?.current?.childNodes?.length === 2\n && !ref?.current?.childNodes?.[0]?.textContent\n && ref?.current.childNodes?.[1]?.nodeType === NodeTypes.ElementNode\n ) {\n ref?.current.removeChild(ref?.current.childNodes[1]);\n }\n }\n }}\n onKeyUp={(e) => {\n const preventEvent = onKeyUp(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n useMentionInputDetection();\n }\n }}\n onClick={() => {\n useMentionInputDetection();\n }}\n onInput={() => {\n setHeight();\n onStartTyping();\n setIsInput(ref?.current?.innerText?.length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={(e) => {\n e.preventDefault();\n document.execCommand(\"insertHTML\", false, sanitizeString(e?.clipboardData.getData('text')));\n }}\n />\n {/* placeholder */}\n {!isInput && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n <Icon type={IconTypes.SEND} fillColor={IconColors.PRIMARY} width=\"20px\" height=\"20px\" />\n </IconButton>\n )\n }\n {/* upload icon */}\n {\n (!isEdit && !isInput) && (\n <IconButton\n className=\"sendbird-message-input--attach\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n // todo: clear previous input\n fileInputRef?.current?.click?.();\n }}\n >\n <Icon\n type={IconTypes.ATTACH}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n <input\n className=\"sendbird-message-input--attach-input\"\n type=\"file\"\n ref={fileInputRef}\n onChange={handleUploadFile(onFileUpload)}\n />\n </IconButton>\n )\n }\n </div>\n {/* Edit */}\n {\n isEdit && (\n <div className=\"sendbird-message-input--edit-action\">\n <Button\n className=\"sendbird-message-input--edit-action__cancel\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={onCancelEdit}\n >\n {stringSet.BUTTON__CANCEL}\n </Button>\n <Button\n className=\"sendbird-message-input--edit-action__save\"\n type={ButtonTypes.PRIMARY}\n size={ButtonSizes.SMALL}\n disabled={isEditDisabled}\n onClick={() => editMessage()}\n >\n {stringSet.BUTTON__SAVE}\n </Button>\n </div>\n )\n }\n </form>\n );\n});\n\nMessageInput.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n messageFieldId: PropTypes.string,\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n value: PropTypes.string,\n isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n message: PropTypes.shape({\n messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n message: PropTypes.string,\n mentionedMessageTemplate: PropTypes.string,\n mentionedUsers: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onUpdateMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n channelUrl: PropTypes.string,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n className: '',\n messageFieldId: '',\n channelUrl: '',\n onSendMessage: noop,\n onUpdateMessage: noop,\n value: null,\n message: null,\n isEdit: false,\n isMentionEnabled: false,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n mentionSelectedUser: null,\n onUserMentioned: noop,\n onMentionStringChange: noop,\n onMentionedUserIdsUpdated: noop,\n onKeyUp: noop,\n onKeyDown: noop,\n};\n\nexport default MessageInput;\n"],"names":["sanitizeString","str","replace","i","concat","charCodeAt","TEXT_FIELD_ID","LINE_HEIGHT","noop","handleUploadFile","callback","event","target","files","value","displayCaret","element","position","range","document","createRange","sel","window","getSelection","setStart","childNodes","collapse","removeAllRanges","addRange","focus","resetInput","ref","current","innerHTML","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","className","messageFieldId","isEdit","isMentionEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onKeyUp","onKeyDown","textFieldId","stringSet","useContext","LocalizationContext","fileInputRef","useRef","isInput","setIsInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","setHeight","useMemo","elem","MAX_HEIGHT","body","offsetHeight","scrollHeight","style","height","error","initialValue","useEffect","textField","length","innerText","messageId","mentionedUsers","mentionedMessageTemplate","split","map","word","convertWordToStringObj","stringObj","type","userId","StringObjType","mention","some","user","renderToString","MentionUserLabel","USER_MENTION_TEMP_CHAR","find","nickname","MENTION_NAME__NO_NAME","join","useMentionedLabelDetection","useCallback","newMentionedUserIds","getElementsByClassName","node","dataset","userid","arrayEqual","frontTextNode","createTextNode","textContent","slice","backTextNode","mentionLabel","div","createElement","newNodes","forEach","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","sendMessage","messageText","mentionTemplate","ElementNode","nodeName","NodeNames","Span","Br","params","isEditDisabled","trim","editMessage","getClassName","e","preventEvent","preventDefault","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","execCommand","clipboardData","getData","Label","LabelTypography","BODY_1","LabelColors","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconButton","Icon","IconTypes","SEND","IconColors","PRIMARY","click","ATTACH","CONTENT_INVERSE","Button","ButtonTypes","SECONDARY","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","shape","number","func","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessageInput.js","sources":["../../../src/ui/MessageInput/utils.js","../../../src/ui/MessageInput/index.jsx"],"sourcesContent":["// 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\nexport default debounce;\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\n useContext,\n} from 'react';\nimport { renderToString } from 'react-dom/server';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { MessageInputKeys, NodeNames, NodeTypes } from './const';\n\nimport { USER_MENTION_TEMP_CHAR } from '../../smart-components/Channel/context/const';\nimport IconButton from '../IconButton';\nimport Button, { ButtonTypes, ButtonSizes } from '../Button';\nimport MentionUserLabel from '../MentionUserLabel';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { sanitizeString } from './utils';\nimport {\n arrayEqual,\n getClassName,\n StringObjType,\n convertWordToStringObj,\n} from '../../utils';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst displayCaret = (element, position) => {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(element.childNodes[0], position);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n element.focus();\n}\n\nconst resetInput = (ref) => {\n try {\n ref.current.innerHTML = '';\n } catch {\n //\n }\n}\n\nconst initialTargetStringInfo = {\n targetString: '',\n startNodeIndex: null,\n startOffsetIndex: null,\n endNodeIndex: null,\n endOffsetIndex: null,\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n className,\n messageFieldId,\n isEdit,\n isMentionEnabled,\n isVoiceMessageEnabled,\n disabled,\n message,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onUpdateMessage,\n onCancelEdit,\n onStartTyping,\n channelUrl,\n mentionSelectedUser,\n onUserMentioned,\n onMentionStringChange,\n onMentionedUserIdsUpdated,\n onVoiceMessageIconClick,\n onKeyUp,\n onKeyDown,\n renderFileUploadIcon,\n renderVoiceMessageIcon,\n renderSendMessageIcon,\n } = props;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [isInput, setIsInput] = useState(false);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [targetStringInfo, setTargetStringInfo] = useState({ ...initialTargetStringInfo });\n const setHeight = useMemo(() => (\n () => {\n try {\n const elem = ref?.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem && elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n } catch (error) {\n // error\n }\n }\n ), []);\n\n // #Edit mode\n // for easilly initialize input value from outside, but\n // useEffect(_, [channelUrl]) erase it\n const initialValue = props?.value;\n useEffect(() => {\n const textField = ref?.current;\n try {\n textField.innerHTML = initialValue;\n displayCaret(textField, initialValue?.length);\n } catch { }\n setMentionedUserIds([]);\n setIsInput(textField?.innerText?.length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention & #Edit | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n textField.innerHTML = message?.mentionedMessageTemplate?.split(' ').map((word) => (\n convertWordToStringObj(word, mentionedUsers).map((stringObj) => {\n const { type, value, userId } = stringObj;\n if (type === StringObjType.mention && mentionedUsers.some((user) => user?.userId === userId)) {\n return renderToString(\n <MentionUserLabel userId={userId}>\n {\n `${USER_MENTION_TEMP_CHAR}${mentionedUsers.find((user) => user?.userId === userId)?.nickname\n || value\n || stringSet.MENTION_NAME__NO_NAME\n }`\n }\n </MentionUserLabel>,\n );\n }\n return sanitizeString(value);\n }).join('')\n )).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = sanitizeString(message?.message);\n } catch { }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.innerText?.length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.innerText.length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = [...textField?.childNodes];\n const frontTextNode = document?.createTextNode(\n childNodes[startNodeIndex]?.textContent.slice(0, startOffsetIndex),\n );\n const backTextNode = document?.createTextNode(\n `\\u00A0${childNodes[endNodeIndex]?.textContent.slice(endOffsetIndex)}`,\n );\n const mentionLabel = renderToString(\n <MentionUserLabel userId={mentionSelectedUser?.userId}>\n {`${USER_MENTION_TEMP_CHAR}${mentionSelectedUser?.nickname || stringSet.MENTION_NAME__NO_NAME}`}\n </MentionUserLabel>,\n );\n const div = document.createElement('div');\n div.innerHTML = mentionLabel;\n const newNodes = [\n ...childNodes.slice(0, startNodeIndex),\n frontTextNode,\n div.childNodes[0],\n backTextNode,\n ...childNodes.slice(endNodeIndex + 1),\n ];\n textField.innerHTML = '';\n newNodes.forEach((newNode) => {\n textField.appendChild(newNode);\n });\n onUserMentioned(mentionSelectedUser);\n if (window.getSelection || document.getSelection) {\n // set caret postion\n const selection = window.getSelection() || document.getSelection();\n selection.removeAllRanges();\n const range = new Range();\n range.selectNodeContents(textField);\n range.setStart(textField.childNodes[startNodeIndex + 2], 1);\n range.setEnd(textField.childNodes[startNodeIndex + 2], 1);\n range.collapse(false);\n selection.addRange(range);\n textField.focus();\n }\n setTargetStringInfo({ ...initialTargetStringInfo });\n setHeight();\n useMentionedLabelDetection();\n }\n }\n }, [mentionSelectedUser, isMentionEnabled]);\n\n // #Mention | Detect mentioning user nickname\n const useMentionInputDetection = useCallback(() => {\n const selection = window?.getSelection?.() || document?.getSelection?.();\n const textField = ref?.current;\n if (selection.anchorNode === textField) {\n onMentionStringChange('');\n }\n if (isMentionEnabled && selection\n && selection.anchorNode === selection.focusNode\n && selection.anchorOffset === selection.focusOffset\n ) {\n let textStack = '';\n let startNodeIndex = null;\n let startOffsetIndex = null;\n for (let index = 0; index < textField.childNodes.length; index += 1) {\n const currentNode = textField.childNodes[index];\n if (currentNode.nodeType === NodeTypes.TextNode) {\n /* text node */\n const textContent = (currentNode === selection.anchorNode)\n ? currentNode?.textContent.slice(0, selection.anchorOffset) || ''\n : currentNode?.textContent || '';\n if (textStack.length > 0) {\n textStack += textContent;\n } else {\n let charLastIndex = textContent.lastIndexOf(USER_MENTION_TEMP_CHAR);\n for (let i = charLastIndex - 1; i > -1; i -= 1) {\n if (textContent[i] === USER_MENTION_TEMP_CHAR) {\n charLastIndex = i;\n } else {\n break;\n }\n }\n if (charLastIndex > -1) {\n textStack = textContent;\n startNodeIndex = index;\n startOffsetIndex = charLastIndex;\n }\n }\n } else {\n /* other nodes */\n textStack = '';\n startNodeIndex = null;\n startOffsetIndex = null;\n }\n if (currentNode === selection.anchorNode) {\n /**\n * targetString could be ''\n * startNodeIndex and startOffsetIndex could be null\n */\n const targetString = textStack ? textStack.slice(startOffsetIndex) : '';// include template character\n setTargetStringInfo({\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex: index,\n endOffsetIndex: selection.anchorOffset,\n });\n onMentionStringChange(targetString);\n return;\n }\n }\n }\n }, [isMentionEnabled]);\n\n const sendMessage = () => {\n const textField = ref?.current;\n if (!isEdit && textField?.innerText) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Br) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { message: messageText, mentionTemplate };\n onSendMessage(params);\n resetInput(ref);\n setIsInput(false);\n setHeight();\n }\n };\n const isEditDisabled = !(ref?.current?.innerText?.trim());\n const editMessage = () => {\n const textField = ref?.current;\n const messageId = message?.messageId;\n if (isEdit && messageId) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { messageId, message: messageText, mentionTemplate };\n onUpdateMessage(params);\n resetInput(ref);\n }\n };\n\n return (\n <form\n className={getClassName([\n className,\n isEdit ? 'sendbird-message-input__edit' : '',\n disabled ? 'sendbird-message-input-form__disabled' : '',\n ])}\n >\n <div\n className={getClassName([\n 'sendbird-message-input',\n disabled ? 'sendbird-message-input__disabled' : '',\n ])}\n >\n <div\n id={`${textFieldId}${isEdit ? message?.messageId : ''}`}\n className={`sendbird-message-input--textarea ${textFieldId}`}\n contentEditable={!disabled}\n role=\"textbox\"\n aria-label=\"Text Input\"\n disabled={disabled}\n ref={ref}\n maxLength={maxLength}\n onKeyDown={(e) => {\n const preventEvent = onKeyDown(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n if (!e.shiftKey && e.key === MessageInputKeys.Enter && e?.nativeEvent?.isComposing !== true) {\n e.preventDefault();\n sendMessage();\n }\n if (e.key === MessageInputKeys.Backspace\n && ref?.current?.childNodes?.length === 2\n && !ref?.current?.childNodes?.[0]?.textContent\n && ref?.current.childNodes?.[1]?.nodeType === NodeTypes.ElementNode\n ) {\n ref?.current.removeChild(ref?.current.childNodes[1]);\n }\n }\n }}\n onKeyUp={(e) => {\n const preventEvent = onKeyUp(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n useMentionInputDetection();\n }\n }}\n onClick={() => {\n useMentionInputDetection();\n }}\n onInput={() => {\n setHeight();\n onStartTyping();\n setIsInput(ref?.current?.innerText?.length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={(e) => {\n e.preventDefault();\n document.execCommand(\"insertHTML\", false, sanitizeString(e?.clipboardData.getData('text')));\n }}\n />\n {/* placeholder */}\n {!isInput && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={disabled? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n {\n renderSendMessageIcon?.() || (\n <Icon\n type={IconTypes.SEND}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )\n }\n {/* file upload icon */}\n {\n (!isEdit && !isInput) && (\n (renderFileUploadIcon?.() || (\n <IconButton\n className={`sendbird-message-input--attach ${isVoiceMessageEnabled ? 'is-voice-message-enabled' : ''}`}\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n // todo: clear previous input\n fileInputRef?.current?.click?.();\n }}\n >\n <Icon\n type={IconTypes.ATTACH}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n <input\n className=\"sendbird-message-input--attach-input\"\n type=\"file\"\n ref={fileInputRef}\n onChange={handleUploadFile(onFileUpload)}\n />\n </IconButton>\n ))\n )\n }\n {/* voice message input trigger */}\n {(isVoiceMessageEnabled && !isEdit && !isInput) && (\n <IconButton\n className=\"sendbird-message-input--voice-message\"\n width=\"32px\"\n height=\"32px\"\n onClick={onVoiceMessageIconClick}\n >\n {\n renderVoiceMessageIcon?.() || (\n <Icon\n type={IconTypes.AUDIO_ON_LINED}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )}\n </div>\n {/* Edit */}\n {\n isEdit && (\n <div className=\"sendbird-message-input--edit-action\">\n <Button\n className=\"sendbird-message-input--edit-action__cancel\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={onCancelEdit}\n >\n {stringSet.BUTTON__CANCEL}\n </Button>\n <Button\n className=\"sendbird-message-input--edit-action__save\"\n type={ButtonTypes.PRIMARY}\n size={ButtonSizes.SMALL}\n disabled={isEditDisabled}\n onClick={() => editMessage()}\n >\n {stringSet.BUTTON__SAVE}\n </Button>\n </div>\n )\n }\n </form>\n );\n});\n\nMessageInput.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n messageFieldId: PropTypes.string,\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n value: PropTypes.string,\n isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n onVoiceMessageIconClick: PropTypes.func,\n message: PropTypes.shape({\n messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n message: PropTypes.string,\n mentionedMessageTemplate: PropTypes.string,\n mentionedUsers: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onUpdateMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n channelUrl: PropTypes.string,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n className: '',\n messageFieldId: '',\n channelUrl: '',\n onSendMessage: noop,\n onUpdateMessage: noop,\n value: null,\n message: null,\n isEdit: false,\n isMentionEnabled: false,\n isVoiceMessageEnabled: true,\n onVoiceMessageIconClick: noop,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n mentionSelectedUser: null,\n onUserMentioned: noop,\n onMentionStringChange: noop,\n onMentionedUserIdsUpdated: noop,\n onKeyUp: noop,\n onKeyDown: noop,\n};\n\nexport default MessageInput;\n"],"names":["sanitizeString","str","replace","i","concat","charCodeAt","TEXT_FIELD_ID","LINE_HEIGHT","noop","handleUploadFile","callback","event","target","files","value","displayCaret","element","position","range","document","createRange","sel","window","getSelection","setStart","childNodes","collapse","removeAllRanges","addRange","focus","resetInput","ref","current","innerHTML","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","className","messageFieldId","isEdit","isMentionEnabled","isVoiceMessageEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onVoiceMessageIconClick","onKeyUp","onKeyDown","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","textFieldId","stringSet","useContext","LocalizationContext","fileInputRef","useRef","isInput","setIsInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","setHeight","useMemo","elem","MAX_HEIGHT","body","offsetHeight","scrollHeight","style","height","error","initialValue","useEffect","textField","length","innerText","messageId","mentionedUsers","mentionedMessageTemplate","split","map","word","convertWordToStringObj","stringObj","type","userId","StringObjType","mention","some","user","renderToString","MentionUserLabel","USER_MENTION_TEMP_CHAR","find","nickname","MENTION_NAME__NO_NAME","join","useMentionedLabelDetection","useCallback","newMentionedUserIds","getElementsByClassName","node","dataset","userid","arrayEqual","frontTextNode","createTextNode","textContent","slice","backTextNode","mentionLabel","div","createElement","newNodes","forEach","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","sendMessage","messageText","mentionTemplate","ElementNode","nodeName","NodeNames","Span","Br","params","isEditDisabled","trim","editMessage","getClassName","e","preventEvent","preventDefault","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","execCommand","clipboardData","getData","Label","LabelTypography","BODY_1","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconButton","Icon","IconTypes","SEND","IconColors","ON_BACKGROUND_4","PRIMARY","click","ATTACH","CONTENT_INVERSE","AUDIO_ON_LINED","Button","ButtonTypes","SECONDARY","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","func","shape","number","defaultProps"],"mappings":"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"}
|
|
@@ -4,17 +4,18 @@ var React = require('react');
|
|
|
4
4
|
var ui_ContextMenu = require('./ContextMenu.js');
|
|
5
5
|
var ui_Icon = require('./Icon.js');
|
|
6
6
|
var ui_IconButton = require('./IconButton.js');
|
|
7
|
-
var index = require('../index-
|
|
8
|
-
var LocalizationContext = require('../LocalizationContext-
|
|
9
|
-
require('../
|
|
7
|
+
var index = require('../index-6691da2c.js');
|
|
8
|
+
var LocalizationContext = require('../LocalizationContext-7d2c13ee.js');
|
|
9
|
+
var types = require('../types-8f7bbb00.js');
|
|
10
|
+
require('../tslib.es6-23b4ef32.js');
|
|
10
11
|
require('react-dom');
|
|
11
12
|
require('./SortByRow.js');
|
|
12
|
-
require('../uuid-
|
|
13
|
-
require('../index-
|
|
13
|
+
require('../uuid-42040a5c.js');
|
|
14
|
+
require('../index-86b55059.js');
|
|
14
15
|
require('prop-types');
|
|
15
|
-
require('../stringSet-
|
|
16
|
+
require('../stringSet-d4071e23.js');
|
|
16
17
|
require('../utils/message/getOutgoingMessageState.js');
|
|
17
|
-
require('../index-
|
|
18
|
+
require('../index-31135e46.js');
|
|
18
19
|
|
|
19
20
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
20
21
|
|
|
@@ -54,7 +55,7 @@ function MessageItemMenu(_a) {
|
|
|
54
55
|
* User delete pending message -> Sending message success
|
|
55
56
|
*/
|
|
56
57
|
|
|
57
|
-
var isReplyTypeEnabled = !index.isFailedMessage(message) && !index.isPendingMessage(message) && ((_b = channel === null || channel === void 0 ? void 0 : channel.isGroupChannel) === null || _b === void 0 ? void 0 : _b.call(channel)) && !(channel === null || channel === void 0 ? void 0 : channel.isBroadcast);
|
|
58
|
+
var isReplyTypeEnabled = !index.isFailedMessage(message) && !index.isPendingMessage(message) && ((_b = channel === null || channel === void 0 ? void 0 : channel.isGroupChannel) === null || _b === void 0 ? void 0 : _b.call(channel)) && ((channel === null || channel === void 0 ? void 0 : channel.isBroadcast) && (channel === null || channel === void 0 ? void 0 : channel.myRole) === types.Role.OPERATOR || !(channel === null || channel === void 0 ? void 0 : channel.isBroadcast));
|
|
58
59
|
var showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';
|
|
59
60
|
var showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !(message === null || message === void 0 ? void 0 : message.parentMessageId) && onReplyInThread;
|
|
60
61
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageItemMenu.js","sources":["../../../src/ui/MessageItemMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useContext, useRef } from 'react';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport {\n getClassName,\n copyToClipboard,\n isUserMessage,\n isSentMessage,\n isFailedMessage,\n isPendingMessage,\n} from '../../utils/index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { ReplyType } from '../../index';\n\ninterface Props {\n className?: string | Array<string>;\n message: UserMessage | FileMessage;\n channel: GroupChannel | OpenChannel;\n isByMe?: boolean;\n disabled?: boolean;\n replyType?: ReplyType;\n disableDeleteMessage?: boolean;\n showEdit?: (bool: boolean) => void;\n showRemove?: (bool: boolean) => void;\n resendMessage?: (message: UserMessage | FileMessage) => void;\n setQuoteMessage?: (message: UserMessage | FileMessage) => void;\n setSupposedHover?: (bool: boolean) => void;\n onReplyInThread?: (props: { message: UserMessage | FileMessage }) => void;\n onMoveToParentMessage?: () => void;\n}\n\nexport default function MessageItemMenu({\n className,\n message,\n channel,\n isByMe = false,\n disabled = false,\n replyType,\n disableDeleteMessage = null,\n showEdit,\n showRemove,\n resendMessage,\n setQuoteMessage,\n setSupposedHover,\n onReplyInThread,\n onMoveToParentMessage = null,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n const showMenuItemDelete: boolean = !isPendingMessage(message) && isByMe;\n const showMenuItemOpenInChannel: boolean = onMoveToParentMessage !== null;\n /**\n * TODO: Manage timing issue\n * User delete pending message -> Sending message success\n */\n const isReplyTypeEnabled = !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel?.()\n && !(channel as GroupChannel)?.isBroadcast);\n const showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';\n const showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !message?.parentMessageId && onReplyInThread;\n\n if (!(showMenuItemCopy\n || showMenuItemReply\n || showMenuItemThread\n || showMenuItemOpenInChannel\n || showMenuItemEdit\n || showMenuItemResend\n || showMenuItemDelete\n )) {\n return null;\n }\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-menu__trigger__icon\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <MenuItems\n className=\"sendbird-message-item-menu__list\"\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n openLeft={isByMe}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-copy\"\n onClick={() => {\n copyToClipboard((message as UserMessage)?.message);\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__COPY}\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-reply\"\n onClick={() => {\n setQuoteMessage(message);\n closeDropdown();\n }}\n disable={message?.parentMessageId > 0}\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-thread\"\n onClick={() => {\n onReplyInThread?.({ message });\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </MenuItem>\n )}\n {showMenuItemOpenInChannel && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-open-channel\"\n onClick={() => {\n onMoveToParentMessage?.();\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__OPEN_IN_CHANNEL}\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-edit\"\n onClick={() => {\n if (!disabled) {\n showEdit(true);\n closeDropdown();\n }\n }}\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-resend\"\n onClick={() => {\n if (!disabled) {\n resendMessage(message);\n closeDropdown();\n }\n }}\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </MenuItem>\n )}\n {showMenuItemDelete && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-delete\"\n onClick={() => {\n if (!disabled) {\n showRemove(true);\n closeDropdown();\n }\n }}\n disable={\n typeof disableDeleteMessage === 'boolean'\n ? disableDeleteMessage\n : message?.threadInfo?.replyCount > 0\n }\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </MenuItem>\n )}\n </MenuItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemMenu","_a","className","message","channel","_c","isByMe","_d","disabled","replyType","_e","disableDeleteMessage","showEdit","showRemove","resendMessage","setQuoteMessage","setSupposedHover","onReplyInThread","_f","onMoveToParentMessage","stringSet","useContext","LocalizationContext","triggerRef","useRef","containerRef","showMenuItemCopy","isUserMessage","showMenuItemEdit","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemOpenInChannel","isReplyTypeEnabled","isGroupChannel","_b","call","isBroadcast","showMenuItemReply","showMenuItemThread","parentMessageId","React","getClassName","ContextMenu","toggleDropdown","IconButton","Icon","IconTypes","MORE","IconColors","CONTENT_INVERSE","close","closeDropdown","MenuItems","MenuItem","copyToClipboard","MESSAGE_MENU__COPY","MESSAGE_MENU__REPLY","MESSAGE_MENU__THREAD","MESSAGE_MENU__OPEN_IN_CHANNEL","MESSAGE_MENU__EDIT","MESSAGE_MENU__RESEND","threadInfo","replyCount","MESSAGE_MENU__DELETE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAqCwB,SAAAA,eAAA,CAAgBC,EAAhB,EAehB;;;MAdNC,SAAS,GAAAD,EAAA,CAAAC;MACTC,OAAO,GAAAF,EAAA,CAAAE;MACPC,OAAO,GAAAH,EAAA,CAAAG;MACPC,EAAc,GAAAJ,EAAA,CAAAK;MAAdA,MAAM,GAAAD,EAAA,KAAA,KAAA,CAAA,GAAG,KAAH,GAAQA;MACdE,EAAgB,GAAAN,EAAA,CAAAO;MAAhBA,QAAQ,GAAAD,EAAA,KAAA,KAAA,CAAA,GAAG,KAAH,GAAQA;MAChBE,SAAS,GAAAR,EAAA,CAAAQ;MACTC,EAA2B,GAAAT,EAAA,CAAAU;MAA3BA,oBAAoB,GAAGD,EAAA,KAAA,KAAA,CAAA,GAAA,IAAA,GAAIA;MAC3BE,QAAQ,GAAAX,EAAA,CAAAW;MACRC,UAAU,GAAAZ,EAAA,CAAAY;MACVC,aAAa,GAAAb,EAAA,CAAAa;MACbC,eAAe;MACfC,gBAAgB,GAAAf,EAAA,CAAAe;MAChBC,eAAe,GAAAhB,EAAA,CAAAgB;MACfC,EAAA,GAAAjB,EAAA,CAAAkB;MAAAA,qBAAqB,GAAGD,EAAA,KAAA,KAAA,CAAA,GAAA,IAAA,GAAIA;AAEpB,EAAA,IAAAE,SAAS,GAAKC,gBAAU,CAACC,uCAAD,CAAV,UAAd,CAAA;AACR,EAAA,IAAMC,UAAU,GAAGC,YAAM,CAAC,IAAD,CAAzB,CAAA;AACA,EAAA,IAAMC,YAAY,GAAGD,YAAM,CAAC,IAAD,CAA3B,CAAA;AAEA,EAAA,IAAME,gBAAgB,GAAYC,mBAAa,CAACxB,OAAD,CAA/C,CAAA;AACA,EAAA,IAAMyB,gBAAgB,GAAaD,mBAAa,CAACxB,OAAD,CAAb,IAAyC0B,mBAAa,CAAC1B,OAAD,CAAtD,IAAmEG,MAAtG,CAAA;EACA,IAAMwB,kBAAkB,GAAaC,qBAAe,CAAC5B,OAAD,CAAf,KAA4BA,OAAO,SAAP,IAAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAAA,OAAO,CAAE6B,YAArC,CAAA,IAAqD1B,MAA1F,CAAA;EACA,IAAM2B,kBAAkB,GAAY,CAACC,sBAAgB,CAAC/B,OAAD,CAAjB,IAA8BG,MAAlE,CAAA;AACA,EAAA,IAAM6B,yBAAyB,GAAYhB,qBAAqB,KAAK,IAArE,CAAA;AACA;;;AAGG;;AACH,EAAA,IAAMiB,kBAAkB,GAAG,CAACL,qBAAe,CAAC5B,OAAD,CAAhB,IACtB,CAAC+B,sBAAgB,CAAC/B,OAAD,CADK,KAErB,MAAAC,OAAO,KAAA,IAAP,IAAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,OAAO,CAAEiC,cAAT,MAA2B,IAA3B,IAA2BC,EAAA,KAAA,KAAA,CAA3B,GAA2B,KAAA,CAA3B,GAA2BA,EAAA,CAAAC,IAAA,CAAAnC,OAAA,CAA3B,CAAA,IACC,EAAEA,OAAwB,KAAA,IAAxB,IAAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAAA,OAAO,CAAmBoC,WAA5B,CAHP,CAAA;AAIA,EAAA,IAAMC,iBAAiB,GAAGL,kBAAkB,IAAI3B,SAAS,KAAK,aAA9D,CAAA;EACA,IAAMiC,kBAAkB,GAAGN,kBAAkB,IAAI3B,SAAS,KAAK,QAApC,IAAgD,EAACN,OAAO,KAAP,IAAA,IAAAA,OAAO,WAAP,SAAA,GAAAA,OAAO,CAAEwC,eAAV,CAAhD,IAA6E1B,eAAxG,CAAA;;AAEA,EAAA,IAAI,EAAES,gBAAgB,IACjBe,iBADC,IAEDC,kBAFC,IAGDP,yBAHC,IAIDP,gBAJC,IAKDE,kBALC,IAMDG,kBAND,CAAJ,EAOG;AACD,IAAA,OAAO,IAAP,CAAA;AACD,GAAA;;EACD,oBACEW,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;IACE,SAAS,EAAEC,kBAAY,CAAC,CAAC3C,SAAD,EAAY,4BAAZ,CAAD,CADzB;AAEE,IAAA,GAAG,EAAEuB,YAAAA;AAFP,GAAA,eAIEmB,wCAACE,yBAAD,EAAA;IACE,WAAW,EAAE,UAACC,cAAD,EAA8C;AAAA,MAAA,oBACzDH,wCAACI,aAAD,EAAA;AACE,QAAA,SAAS,EAAC,qCADZ;AAEE,QAAA,GAAG,EAAEzB,UAFP;AAGE,QAAA,KAAK,EAAC,MAHR;AAIE,QAAA,MAAM,EAAC,MAJT;AAKE,QAAA,OAAO,EAAE,YAAA;UACPwB,cAAc,EAAA,CAAA;UACd/B,gBAAgB,CAAC,IAAD,CAAhB,CAAA;SAPJ;AASE,QAAA,MAAM,EAAE,YAAA;UACNA,gBAAgB,CAAC,KAAD,CAAhB,CAAA;AACD,SAAA;AAXH,OAAA,eAaE4B,wCAACK,kBAAD,EAAA;AACE,QAAA,SAAS,EAAC,2CADZ;QAEE,IAAI,EAAEC,iBAAS,CAACC,IAFlB;QAGE,SAAS,EAAEC,kBAAU,CAACC,eAHxB;AAIE,QAAA,KAAK,EAAC,MAJR;AAKE,QAAA,MAAM,EAAC,MAAA;AALT,OAAA,CAbF,CADyD,CAAA;KAD7D;IAwBE,SAAS,EAAE,UAACC,KAAD,EAAkB;;;MAC3B,IAAMC,aAAa,GAAG,YAAA;QACpBD,KAAK,EAAA,CAAA;QACLtC,gBAAgB,CAAC,KAAD,CAAhB,CAAA;OAFF,CAAA;;AAIA,MAAA,oBACE4B,wCAACY,wBAAD,EAAA;AACE,QAAA,SAAS,EAAC,kCADZ;AAEE,QAAA,SAAS,EAAEjC,UAFb;AAGE,QAAA,gBAAgB,EAAEE,YAHpB;AAIE,QAAA,aAAa,EAAE8B,aAJjB;AAKE,QAAA,QAAQ,EAAEjD,MAAAA;OAEToB,EAAAA,gBAAgB,iBACfkB,yBAAA,CAAA,aAAA,CAACa,uBAAD,EAAA;AACE,QAAA,SAAS,EAAC,4DADZ;AAEE,QAAA,OAAO,EAAE,YAAA;AACPC,UAAAA,qBAAe,CAAEvD,OAAuB,KAAvB,IAAA,IAAAA,OAAO,WAAP,SAAA,GAAAA,OAAO,CAAkBA,OAA3B,CAAf,CAAA;UACAoD,aAAa,EAAA,CAAA;AACd,SAAA;OAEAnC,EAAAA,SAAS,CAACuC,kBAPb,CARJ,EAkBGlB,iBAAiB,iBAChBG,wCAACa,uBAAD,EAAA;AACE,QAAA,SAAS,EAAC,6DADZ;AAEE,QAAA,OAAO,EAAE,YAAA;UACP1C,eAAe,CAACZ,OAAD,CAAf,CAAA;UACAoD,aAAa,EAAA,CAAA;SAJjB;AAME,QAAA,OAAO,EAAE,CAAApD,OAAO,KAAA,IAAP,IAAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAAA,OAAO,CAAEwC,eAAT,IAA2B,CAAA;OAEnCvB,EAAAA,SAAS,CAACwC,mBARb,CAnBJ,EA8BGlB,kBAAkB,iBACjBE,wCAACa,uBAAD,EAAA;AACE,QAAA,SAAS,EAAC,8DADZ;AAEE,QAAA,OAAO,EAAE,YAAA;AACPxC,UAAAA,eAAe,KAAA,IAAf,IAAAA,eAAe,KAAA,KAAA,CAAf,GAAe,KAAA,CAAf,GAAAA,eAAe,CAAG;AAAEd,YAAAA,OAAO,EAAAA,OAAAA;AAAT,WAAH,CAAf,CAAA;UACAoD,aAAa,EAAA,CAAA;AACd,SAAA;OAEAnC,EAAAA,SAAS,CAACyC,oBAPb,CA/BJ,EAyCG1B,yBAAyB,iBACxBS,wCAACa,uBAAD,EAAA;AACE,QAAA,SAAS,EAAC,oEADZ;AAEE,QAAA,OAAO,EAAE,YAAA;AACPtC,UAAAA,qBAAqB,KAArB,IAAA,IAAAA,qBAAqB,KAArB,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,qBAAqB,EAArB,CAAA;UACAoC,aAAa,EAAA,CAAA;AACd,SAAA;OAEAnC,EAAAA,SAAS,CAAC0C,6BAPb,CA1CJ,EAoDGlC,gBAAgB,iBACfgB,wCAACa,uBAAD,EAAA;AACE,QAAA,SAAS,EAAC,4DADZ;AAEE,QAAA,OAAO,EAAE,YAAA;UACP,IAAI,CAACjD,QAAL,EAAe;YACbI,QAAQ,CAAC,IAAD,CAAR,CAAA;YACA2C,aAAa,EAAA,CAAA;AACd,WAAA;AACF,SAAA;OAEAnC,EAAAA,SAAS,CAAC2C,kBATb,CArDJ,EAiEGjC,kBAAkB,iBACjBc,wCAACa,uBAAD,EAAA;AACE,QAAA,SAAS,EAAC,8DADZ;AAEE,QAAA,OAAO,EAAE,YAAA;UACP,IAAI,CAACjD,QAAL,EAAe;YACbM,aAAa,CAACX,OAAD,CAAb,CAAA;YACAoD,aAAa,EAAA,CAAA;AACd,WAAA;AACF,SAAA;OAEAnC,EAAAA,SAAS,CAAC4C,oBATb,CAlEJ,EA8EG/B,kBAAkB,iBACjBW,wCAACa,uBAAD,EAAA;AACE,QAAA,SAAS,EAAC,8DADZ;AAEE,QAAA,OAAO,EAAE,YAAA;UACP,IAAI,CAACjD,QAAL,EAAe;YACbK,UAAU,CAAC,IAAD,CAAV,CAAA;YACA0C,aAAa,EAAA,CAAA;AACd,WAAA;SANL;AAQE,QAAA,OAAO,EACL,OAAO5C,oBAAP,KAAgC,SAAhC,GACEA,oBADF,GAEE,CAAA,CAAAV,EAAA,GAAAE,OAAO,SAAP,IAAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAAA,OAAO,CAAE8D,UAAT,MAAqB,IAArB,IAAqBhE,EAAA,KAAA,KAAA,CAArB,GAAqB,KAAA,CAArB,GAAqBA,EAAA,CAAAiE,UAArB,IAAkC,CAAA;AAXxC,OAAA,EAcG9C,SAAS,CAAC+C,oBAdb,CA/EJ,CADF,CAAA;AAmGD,KAAA;AAhIH,GAAA,CAJF,CADF,CAAA;AAyID;;;;"}
|
|
1
|
+
{"version":3,"file":"MessageItemMenu.js","sources":["../../../src/ui/MessageItemMenu/index.tsx"],"sourcesContent":["import './index.scss';\nimport React, { ReactElement, useContext, useRef } from 'react';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\n\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport {\n getClassName,\n copyToClipboard,\n isUserMessage,\n isSentMessage,\n isFailedMessage,\n isPendingMessage,\n} from '../../utils/index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { ReplyType } from '../../index';\nimport { Role } from '../../lib/types';\n\ninterface Props {\n className?: string | Array<string>;\n message: UserMessage | FileMessage;\n channel: GroupChannel | OpenChannel;\n isByMe?: boolean;\n disabled?: boolean;\n replyType?: ReplyType;\n disableDeleteMessage?: boolean;\n showEdit?: (bool: boolean) => void;\n showRemove?: (bool: boolean) => void;\n resendMessage?: (message: UserMessage | FileMessage) => void;\n setQuoteMessage?: (message: UserMessage | FileMessage) => void;\n setSupposedHover?: (bool: boolean) => void;\n onReplyInThread?: (props: { message: UserMessage | FileMessage }) => void;\n onMoveToParentMessage?: () => void;\n}\n\nexport default function MessageItemMenu({\n className,\n message,\n channel,\n isByMe = false,\n disabled = false,\n replyType,\n disableDeleteMessage = null,\n showEdit,\n showRemove,\n resendMessage,\n setQuoteMessage,\n setSupposedHover,\n onReplyInThread,\n onMoveToParentMessage = null,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const triggerRef = useRef(null);\n const containerRef = useRef(null);\n\n const showMenuItemCopy: boolean = isUserMessage(message as UserMessage);\n const showMenuItemEdit: boolean = (isUserMessage(message as UserMessage) && isSentMessage(message) && isByMe);\n const showMenuItemResend: boolean = (isFailedMessage(message) && message?.isResendable && isByMe);\n const showMenuItemDelete: boolean = !isPendingMessage(message) && isByMe;\n const showMenuItemOpenInChannel: boolean = onMoveToParentMessage !== null;\n /**\n * TODO: Manage timing issue\n * User delete pending message -> Sending message success\n */\n const isReplyTypeEnabled = !isFailedMessage(message)\n && !isPendingMessage(message)\n && (channel?.isGroupChannel?.()\n && (\n ((channel as GroupChannel)?.isBroadcast && channel?.myRole === Role.OPERATOR)\n || !(channel as GroupChannel)?.isBroadcast\n ));\n const showMenuItemReply = isReplyTypeEnabled && replyType === 'QUOTE_REPLY';\n const showMenuItemThread = isReplyTypeEnabled && replyType === 'THREAD' && !message?.parentMessageId && onReplyInThread;\n\n if (!(showMenuItemCopy\n || showMenuItemReply\n || showMenuItemThread\n || showMenuItemOpenInChannel\n || showMenuItemEdit\n || showMenuItemResend\n || showMenuItemDelete\n )) {\n return null;\n }\n return (\n <div\n className={getClassName([className, 'sendbird-message-item-menu'])}\n ref={containerRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown: () => void): ReactElement => (\n <IconButton\n className=\"sendbird-message-item-menu__trigger\"\n ref={triggerRef}\n width=\"32px\"\n height=\"32px\"\n onClick={(): void => {\n toggleDropdown();\n setSupposedHover(true);\n }}\n onBlur={(): void => {\n setSupposedHover(false);\n }}\n >\n <Icon\n className=\"sendbird-message-item-menu__trigger__icon\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(close: () => void): ReactElement => {\n const closeDropdown = (): void => {\n close();\n setSupposedHover(false);\n };\n return (\n <MenuItems\n className=\"sendbird-message-item-menu__list\"\n parentRef={triggerRef}\n parentContainRef={containerRef}\n closeDropdown={closeDropdown}\n openLeft={isByMe}\n >\n {showMenuItemCopy && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-copy\"\n onClick={() => {\n copyToClipboard((message as UserMessage)?.message);\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__COPY}\n </MenuItem>\n )}\n {showMenuItemReply && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-reply\"\n onClick={() => {\n setQuoteMessage(message);\n closeDropdown();\n }}\n disable={message?.parentMessageId > 0}\n >\n {stringSet.MESSAGE_MENU__REPLY}\n </MenuItem>\n )}\n {showMenuItemThread && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-thread\"\n onClick={() => {\n onReplyInThread?.({ message });\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__THREAD}\n </MenuItem>\n )}\n {showMenuItemOpenInChannel && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-open-channel\"\n onClick={() => {\n onMoveToParentMessage?.();\n closeDropdown();\n }}\n >\n {stringSet.MESSAGE_MENU__OPEN_IN_CHANNEL}\n </MenuItem>\n )}\n {showMenuItemEdit && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-edit\"\n onClick={() => {\n if (!disabled) {\n showEdit(true);\n closeDropdown();\n }\n }}\n >\n {stringSet.MESSAGE_MENU__EDIT}\n </MenuItem>\n )}\n {showMenuItemResend && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-resend\"\n onClick={() => {\n if (!disabled) {\n resendMessage(message);\n closeDropdown();\n }\n }}\n >\n {stringSet.MESSAGE_MENU__RESEND}\n </MenuItem>\n )}\n {showMenuItemDelete && (\n <MenuItem\n className=\"sendbird-message-item-menu__list__menu-item menu-item-delete\"\n onClick={() => {\n if (!disabled) {\n showRemove(true);\n closeDropdown();\n }\n }}\n disable={\n typeof disableDeleteMessage === 'boolean'\n ? disableDeleteMessage\n : message?.threadInfo?.replyCount > 0\n }\n >\n {stringSet.MESSAGE_MENU__DELETE}\n </MenuItem>\n )}\n </MenuItems>\n );\n }}\n />\n </div>\n );\n}\n"],"names":["MessageItemMenu","_a","className","message","channel","_c","isByMe","_d","disabled","replyType","_e","disableDeleteMessage","showEdit","showRemove","resendMessage","setQuoteMessage","setSupposedHover","onReplyInThread","_f","onMoveToParentMessage","stringSet","useContext","LocalizationContext","triggerRef","useRef","containerRef","showMenuItemCopy","isUserMessage","showMenuItemEdit","isSentMessage","showMenuItemResend","isFailedMessage","isResendable","showMenuItemDelete","isPendingMessage","showMenuItemOpenInChannel","isReplyTypeEnabled","isGroupChannel","_b","call","isBroadcast","myRole","Role","OPERATOR","showMenuItemReply","showMenuItemThread","parentMessageId","React","getClassName","ContextMenu","toggleDropdown","IconButton","Icon","IconTypes","MORE","IconColors","CONTENT_INVERSE","close","closeDropdown","MenuItems","MenuItem","copyToClipboard","MESSAGE_MENU__COPY","MESSAGE_MENU__REPLY","MESSAGE_MENU__THREAD","MESSAGE_MENU__OPEN_IN_CHANNEL","MESSAGE_MENU__EDIT","MESSAGE_MENU__RESEND","threadInfo","replyCount","MESSAGE_MENU__DELETE"],"mappings":"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"}
|
|
@@ -6,14 +6,14 @@ var ui_Icon = require('./Icon.js');
|
|
|
6
6
|
var ui_IconButton = require('./IconButton.js');
|
|
7
7
|
var ui_ImageRenderer = require('./ImageRenderer.js');
|
|
8
8
|
var ui_ReactionButton = require('./ReactionButton.js');
|
|
9
|
-
var index = require('../index-
|
|
10
|
-
require('../tslib.es6-
|
|
9
|
+
var index = require('../index-6691da2c.js');
|
|
10
|
+
require('../tslib.es6-23b4ef32.js');
|
|
11
11
|
require('react-dom');
|
|
12
12
|
require('./SortByRow.js');
|
|
13
|
-
require('../uuid-
|
|
14
|
-
require('../index-
|
|
13
|
+
require('../uuid-42040a5c.js');
|
|
14
|
+
require('../index-86b55059.js');
|
|
15
15
|
require('prop-types');
|
|
16
|
-
require('../stringSet-
|
|
16
|
+
require('../stringSet-d4071e23.js');
|
|
17
17
|
require('../utils/message/getOutgoingMessageState.js');
|
|
18
18
|
|
|
19
19
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tslib_es6 = require('../tslib.es6-
|
|
3
|
+
var tslib_es6 = require('../tslib.es6-23b4ef32.js');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var ui_Avatar = require('./Avatar.js');
|
|
6
6
|
var ui_Icon = require('./Icon.js');
|
|
7
|
-
var ui_Label = require('../index-
|
|
8
|
-
var LocalizationContext = require('../LocalizationContext-
|
|
9
|
-
var index$1 = require('../index-
|
|
10
|
-
var index = require('../index-
|
|
7
|
+
var ui_Label = require('../index-86b55059.js');
|
|
8
|
+
var LocalizationContext = require('../LocalizationContext-7d2c13ee.js');
|
|
9
|
+
var index$1 = require('../index-c34f34a2.js');
|
|
10
|
+
var index = require('../index-9d2d5d23.js');
|
|
11
|
+
var index$2 = require('../index-6691da2c.js');
|
|
11
12
|
require('./ImageRenderer.js');
|
|
12
|
-
require('../uuid-
|
|
13
|
+
require('../uuid-42040a5c.js');
|
|
13
14
|
require('prop-types');
|
|
14
|
-
require('../stringSet-
|
|
15
|
-
require('../index-
|
|
16
|
-
require('../index-
|
|
15
|
+
require('../stringSet-d4071e23.js');
|
|
16
|
+
require('../index-31135e46.js');
|
|
17
|
+
require('../index-80ec94b9.js');
|
|
18
|
+
require('../utils/message/getOutgoingMessageState.js');
|
|
17
19
|
|
|
18
20
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
19
21
|
|
|
@@ -52,7 +54,7 @@ function getIconOfFileType(message) {
|
|
|
52
54
|
|
|
53
55
|
if (/(jpg|jpeg|png)$/i.test(fileExtension)) {
|
|
54
56
|
return ui_Icon.IconTypes.PHOTO;
|
|
55
|
-
} else if (/mp4$/i.test(fileExtension)) {
|
|
57
|
+
} else if (/mp4$/i.test(fileExtension) || index$2.isVoiceMessage(message)) {
|
|
56
58
|
return ui_Icon.IconTypes.PLAY;
|
|
57
59
|
} else if (/mp3/i.test(fileExtension)) {
|
|
58
60
|
return ui_Icon.IconTypes.FILE_AUDIO;
|
|
@@ -70,8 +72,7 @@ function MessageSearchFileItem(props) {
|
|
|
70
72
|
onClick = props.onClick;
|
|
71
73
|
var createdAt = message.createdAt,
|
|
72
74
|
url = message.url,
|
|
73
|
-
name = message.name;
|
|
74
|
-
var fileMessageUrl = url; // @ts-ignore
|
|
75
|
+
name = message.name; // @ts-ignore
|
|
75
76
|
|
|
76
77
|
var sender = message.sender || message._sender;
|
|
77
78
|
var profileUrl = sender.profileUrl,
|
|
@@ -81,6 +82,8 @@ function MessageSearchFileItem(props) {
|
|
|
81
82
|
stringSet = _a.stringSet,
|
|
82
83
|
dateLocale = _a.dateLocale;
|
|
83
84
|
|
|
85
|
+
var isVoiceMsg = index$2.isVoiceMessage(message);
|
|
86
|
+
var prettyFilename = isVoiceMsg ? stringSet.VOICE_MESSAGE : name || url;
|
|
84
87
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
85
88
|
className: tslib_es6.__spreadArray(tslib_es6.__spreadArray([], Array.isArray(className) ? className : [className], true), ['sendbird-message-search-file-item', selected ? 'sendbird-message-search-file-item--selected' : ''], false).join(' '),
|
|
86
89
|
onClick: function (e) {
|
|
@@ -103,7 +106,7 @@ function MessageSearchFileItem(props) {
|
|
|
103
106
|
color: ui_Label.LabelColors.ONBACKGROUND_1
|
|
104
107
|
}, nickname || stringSet.NO_NAME), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
105
108
|
className: "sendbird-message-search-file-item__right__content"
|
|
106
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
109
|
+
}, !isVoiceMsg && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
107
110
|
className: "sendbird-message-search-file-item__right__content__type-icon"
|
|
108
111
|
}, /*#__PURE__*/React__default["default"].createElement(ui_Icon["default"], {
|
|
109
112
|
type: getIconOfFileType(message),
|
|
@@ -114,7 +117,7 @@ function MessageSearchFileItem(props) {
|
|
|
114
117
|
className: "sendbird-message-search-file-item__right__content__url",
|
|
115
118
|
type: ui_Label.LabelTypography.BODY_2,
|
|
116
119
|
color: ui_Label.LabelColors.ONBACKGROUND_1
|
|
117
|
-
},
|
|
120
|
+
}, prettyFilename))), /*#__PURE__*/React__default["default"].createElement(ui_Label.Label, {
|
|
118
121
|
className: "sendbird-message-search-file-item__message-created-at",
|
|
119
122
|
type: ui_Label.LabelTypography.CAPTION_3,
|
|
120
123
|
color: ui_Label.LabelColors.ONBACKGROUND_2
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageSearchFileItem.js","sources":["../../../src/ui/MessageSearchFileItem/utils.ts","../../../src/ui/MessageSearchFileItem/index.tsx"],"sourcesContent":["import type { FileMessage } from '@sendbird/chat/message';\nimport type { Locale } from 'date-fns';\nimport format from 'date-fns/format';\nimport isToday from 'date-fns/isToday';\nimport isThisYear from 'date-fns/isThisYear';\nimport isYesterday from 'date-fns/isYesterday';\nimport { IconTypes } from '../Icon';\n\nexport interface GetCreatedAtProps {\n createdAt: number;\n locale?: Locale;\n stringSet?: Record<string, string>;\n}\n\nexport function getCreatedAt({ createdAt, locale, stringSet }: GetCreatedAtProps): string {\n const optionalParam = locale ? { locale } : null;\n if (!createdAt) {\n return '';\n }\n if (isToday(createdAt)) {\n return format(createdAt, 'p', optionalParam);\n }\n if (isYesterday(createdAt)) {\n return stringSet?.MESSAGE_STATUS__YESTERDAY || 'Yesterday';\n }\n if (isThisYear(createdAt)) {\n return format(createdAt, 'MMM d', optionalParam);\n }\n return format(createdAt, 'yyyy/M/d', optionalParam);\n}\n\nexport function getIconOfFileType(message: FileMessage): string {\n const { url } = message;\n const fileMessageUrl = url;\n const fileExtension = (fileMessageUrl.match(/\\.([^.]*?)(?=\\?|#|$)/))[1];\n\n if (/(jpg|jpeg|png)$/i.test(fileExtension)) {\n return IconTypes.PHOTO;\n } else if (/mp4$/i.test(fileExtension)) {\n return IconTypes.PLAY;\n } else if (/mp3/i.test(fileExtension)) {\n return IconTypes.FILE_AUDIO;\n } else if (/gif/i.test(fileExtension)) {\n return IconTypes.GIF;\n } else {\n return IconTypes.FILE_DOCUMENT;\n }\n}\n\nexport function truncate(fullText: string, textLimit: number): string {\n if (fullText.length <= textLimit) return fullText;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = textLimit - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullText.substr(0, frontChars) + separator + fullText.substr(fullText.length - backChars);\n}\n","import './index.scss';\nimport React, { ReactElement } from 'react';\nimport type { FileMessage } from '@sendbird/chat/message';\n\nimport Avatar from '../Avatar';\nimport Icon, { IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport { getCreatedAt, getIconOfFileType } from './utils';\n\ninterface Props {\n className?: string | Array<string>;\n message: FileMessage;\n selected?: boolean;\n onClick?: (message: FileMessage) => void;\n}\n\nexport default function MessageSearchFileItem(props: Props): ReactElement {\n const {\n className,\n message,\n selected,\n onClick,\n } = props;\n const { createdAt, url, name } = message;\n const fileMessageUrl = url;\n // @ts-ignore\n const sender = message.sender || message._sender;\n const { profileUrl, nickname } = sender;\n const { stringSet, dateLocale } = useLocalization();\n\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-message-search-file-item',\n selected ? 'sendbird-message-search-file-item--selected' : '',\n ].join(' ')}\n onClick={(e) => {\n e.stopPropagation();\n onClick(message);\n }}\n >\n <div className=\"sendbird-message-search-file-item__left\">\n <Avatar\n className=\"sendbird-message-search-file-item__left__sender-avatar\"\n src={profileUrl}\n alt=\"profile image\"\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n <div className=\"sendbird-message-search-file-item__right\">\n <Label\n className=\"sendbird-message-search-file-item__right__sender-name\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {nickname || stringSet.NO_NAME}\n </Label>\n <div className=\"sendbird-message-search-file-item__right__content\">\n <div className=\"sendbird-message-search-file-item__right__content__type-icon\">\n <Icon\n type={getIconOfFileType(message)}\n fillColor={IconColors.PRIMARY}\n width=\"18px\"\n height=\"18px\"\n />\n </div>\n <Label\n className=\"sendbird-message-search-file-item__right__content__url\"\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {name || fileMessageUrl}\n </Label>\n </div>\n </div>\n <Label\n className=\"sendbird-message-search-file-item__message-created-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getCreatedAt({ createdAt, locale: dateLocale, stringSet})}\n </Label>\n <div className=\"sendbird-message-search-file-item__right-footer\" />\n </div>\n );\n}\n"],"names":["getCreatedAt","_a","createdAt","locale","stringSet","optionalParam","isToday","format","isYesterday","MESSAGE_STATUS__YESTERDAY","isThisYear","getIconOfFileType","message","url","fileMessageUrl","fileExtension","match","test","IconTypes","PHOTO","PLAY","FILE_AUDIO","GIF","FILE_DOCUMENT","MessageSearchFileItem","props","className","selected","onClick","name","sender","_sender","profileUrl","nickname","useLocalization","dateLocale","React","__spreadArray","Array","isArray","join","e","stopPropagation","Avatar","Label","LabelTypography","SUBTITLE_2","LabelColors","ONBACKGROUND_1","NO_NAME","Icon","IconColors","PRIMARY","BODY_2","CAPTION_3","ONBACKGROUND_2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessageSearchFileItem.js","sources":["../../../src/ui/MessageSearchFileItem/utils.ts","../../../src/ui/MessageSearchFileItem/index.tsx"],"sourcesContent":["import type { FileMessage } from '@sendbird/chat/message';\nimport type { Locale } from 'date-fns';\nimport format from 'date-fns/format';\nimport isToday from 'date-fns/isToday';\nimport isThisYear from 'date-fns/isThisYear';\nimport isYesterday from 'date-fns/isYesterday';\nimport { IconTypes } from '../Icon';\nimport { isVoiceMessage } from '../../utils';\n\nexport interface GetCreatedAtProps {\n createdAt: number;\n locale?: Locale;\n stringSet?: Record<string, string>;\n}\n\nexport function getCreatedAt({ createdAt, locale, stringSet }: GetCreatedAtProps): string {\n const optionalParam = locale ? { locale } : null;\n if (!createdAt) {\n return '';\n }\n if (isToday(createdAt)) {\n return format(createdAt, 'p', optionalParam);\n }\n if (isYesterday(createdAt)) {\n return stringSet?.MESSAGE_STATUS__YESTERDAY || 'Yesterday';\n }\n if (isThisYear(createdAt)) {\n return format(createdAt, 'MMM d', optionalParam);\n }\n return format(createdAt, 'yyyy/M/d', optionalParam);\n}\n\nexport function getIconOfFileType(message: FileMessage): string {\n const { url } = message;\n const fileMessageUrl = url;\n const fileExtension = (fileMessageUrl.match(/\\.([^.]*?)(?=\\?|#|$)/))[1];\n\n if (/(jpg|jpeg|png)$/i.test(fileExtension)) {\n return IconTypes.PHOTO;\n } else if (/mp4$/i.test(fileExtension) || isVoiceMessage(message)) {\n return IconTypes.PLAY;\n } else if (/mp3/i.test(fileExtension)) {\n return IconTypes.FILE_AUDIO;\n } else if (/gif/i.test(fileExtension)) {\n return IconTypes.GIF;\n } else {\n return IconTypes.FILE_DOCUMENT;\n }\n}\n\nexport function truncate(fullText: string, textLimit: number): string {\n if (fullText.length <= textLimit) return fullText;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = textLimit - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullText.substr(0, frontChars) + separator + fullText.substr(fullText.length - backChars);\n}\n","import './index.scss';\nimport React, { ReactElement } from 'react';\nimport type { FileMessage } from '@sendbird/chat/message';\n\nimport Avatar from '../Avatar';\nimport Icon, { IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport { getCreatedAt, getIconOfFileType } from './utils';\nimport { isVoiceMessage } from '../../utils';\n\ninterface Props {\n className?: string | Array<string>;\n message: FileMessage;\n selected?: boolean;\n onClick?: (message: FileMessage) => void;\n}\n\nexport default function MessageSearchFileItem(props: Props): ReactElement {\n const {\n className,\n message,\n selected,\n onClick,\n } = props;\n const { createdAt, url, name } = message;\n // @ts-ignore\n const sender = message.sender || message._sender;\n const { profileUrl, nickname } = sender;\n const { stringSet, dateLocale } = useLocalization();\n const isVoiceMsg = isVoiceMessage(message);\n const prettyFilename = isVoiceMsg ? stringSet.VOICE_MESSAGE : (name || url);\n\n return (\n <div\n className={[\n ...(Array.isArray(className) ? className : [className]),\n 'sendbird-message-search-file-item',\n selected ? 'sendbird-message-search-file-item--selected' : '',\n ].join(' ')}\n onClick={(e) => {\n e.stopPropagation();\n onClick(message);\n }}\n >\n <div className=\"sendbird-message-search-file-item__left\">\n <Avatar\n className=\"sendbird-message-search-file-item__left__sender-avatar\"\n src={profileUrl}\n alt=\"profile image\"\n width=\"56px\"\n height=\"56px\"\n />\n </div>\n <div className=\"sendbird-message-search-file-item__right\">\n <Label\n className=\"sendbird-message-search-file-item__right__sender-name\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {nickname || stringSet.NO_NAME}\n </Label>\n <div className=\"sendbird-message-search-file-item__right__content\">\n {!isVoiceMsg && (\n <div className={`sendbird-message-search-file-item__right__content__type-icon`}>\n <Icon\n type={getIconOfFileType(message)}\n fillColor={IconColors.PRIMARY}\n width=\"18px\"\n height=\"18px\"\n />\n </div>\n )}\n <Label\n className=\"sendbird-message-search-file-item__right__content__url\"\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {prettyFilename}\n </Label>\n </div>\n </div>\n <Label\n className=\"sendbird-message-search-file-item__message-created-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getCreatedAt({ createdAt, locale: dateLocale, stringSet })}\n </Label>\n <div className=\"sendbird-message-search-file-item__right-footer\" />\n </div>\n );\n}\n"],"names":["getCreatedAt","_a","createdAt","locale","stringSet","optionalParam","isToday","format","isYesterday","MESSAGE_STATUS__YESTERDAY","isThisYear","getIconOfFileType","message","url","fileMessageUrl","fileExtension","match","test","IconTypes","PHOTO","isVoiceMessage","PLAY","FILE_AUDIO","GIF","FILE_DOCUMENT","MessageSearchFileItem","props","className","selected","onClick","name","sender","_sender","profileUrl","nickname","useLocalization","dateLocale","isVoiceMsg","prettyFilename","VOICE_MESSAGE","React","__spreadArray","Array","isArray","join","e","stopPropagation","Avatar","Label","LabelTypography","SUBTITLE_2","LabelColors","ONBACKGROUND_1","NO_NAME","Icon","IconColors","PRIMARY","BODY_2","CAPTION_3","ONBACKGROUND_2"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAeM,SAAUA,YAAV,CAAuBC,EAAvB,EAA0E;AAAjD,EAAA,IAAAC,SAAS,eAAT;AAAA,MAAWC,MAAM,GAAAF,EAAA,CAAAE,MAAjB;AAAA,MAAmBC,SAAS,GAAAH,EAAA,CAAAG,SAA5B,CAAA;EAC7B,IAAMC,aAAa,GAAGF,MAAM,GAAG;AAAEA,IAAAA,MAAM,EAAAA,MAAAA;AAAR,GAAH,GAAgB,IAA5C,CAAA;;EACA,IAAI,CAACD,SAAL,EAAgB;AACd,IAAA,OAAO,EAAP,CAAA;AACD,GAAA;;AACD,EAAA,IAAII,aAAO,CAACJ,SAAD,CAAX,EAAwB;AACtB,IAAA,OAAOK,cAAM,CAACL,SAAD,EAAY,GAAZ,EAAiBG,aAAjB,CAAb,CAAA;AACD,GAAA;;AACD,EAAA,IAAIG,iBAAW,CAACN,SAAD,CAAf,EAA4B;AAC1B,IAAA,OAAO,CAAAE,SAAS,KAAA,IAAT,IAAAA,SAAS,KAAA,KAAA,CAAT,GAAS,KAAA,CAAT,GAAAA,SAAS,CAAEK,yBAAX,KAAwC,WAA/C,CAAA;AACD,GAAA;;AACD,EAAA,IAAIC,gBAAU,CAACR,SAAD,CAAd,EAA2B;AACzB,IAAA,OAAOK,cAAM,CAACL,SAAD,EAAY,OAAZ,EAAqBG,aAArB,CAAb,CAAA;AACD,GAAA;;AACD,EAAA,OAAOE,cAAM,CAACL,SAAD,EAAY,UAAZ,EAAwBG,aAAxB,CAAb,CAAA;AACD,CAAA;AAEK,SAAUM,iBAAV,CAA4BC,OAA5B,EAAgD;AAC5C,EAAA,IAAAC,GAAG,GAAKD,OAAO,CAAAC,GAAf,CAAA;EACR,IAAMC,cAAc,GAAGD,GAAvB,CAAA;EACA,IAAME,aAAa,GAAID,cAAc,CAACE,KAAf,CAAqB,sBAArB,CAAD,CAA+C,CAA/C,CAAtB,CAAA;;AAEA,EAAA,IAAI,kBAAmBC,CAAAA,IAAnB,CAAwBF,aAAxB,CAAJ,EAA4C;IAC1C,OAAOG,iBAAS,CAACC,KAAjB,CAAA;GADF,MAEO,IAAI,OAAA,CAAQF,IAAR,CAAaF,aAAb,CAAA,IAA+BK,sBAAc,CAACR,OAAD,CAAjD,EAA4D;IACjE,OAAOM,iBAAS,CAACG,IAAjB,CAAA;AACD,GAFM,MAEA,IAAI,MAAA,CAAOJ,IAAP,CAAYF,aAAZ,CAAJ,EAAgC;IACrC,OAAOG,iBAAS,CAACI,UAAjB,CAAA;AACD,GAFM,MAEA,IAAI,MAAA,CAAOL,IAAP,CAAYF,aAAZ,CAAJ,EAAgC;IACrC,OAAOG,iBAAS,CAACK,GAAjB,CAAA;AACD,GAFM,MAEA;IACL,OAAOL,iBAAS,CAACM,aAAjB,CAAA;AACD,GAAA;AACF;;AC9BuB,SAAAC,qBAAA,CAAsBC,KAAtB,EAAkC;AAEtD,EAAA,IAAAC,SAAS,GAIPD,KAAK,UAJP;AAAA,MACAd,OAAO,GAGLc,KAAK,CAAAd,OAJP;AAAA,MAEAgB,QAAQ,GAENF,KAAK,CAFCE,QAFR;AAAA,MAGAC,OAAO,GACLH,KAAK,QAJP,CAAA;AAKM,EAAA,IAAAxB,SAAS,GAAgBU,OAAO,CAAAV,SAAhC;AAAA,MAAWW,GAAG,GAAWD,OAAO,CAAAC,GAAhC;AAAA,MAAgBiB,IAAI,GAAKlB,OAAO,KAAhC,CAPgD;;EASxD,IAAMmB,MAAM,GAAGnB,OAAO,CAACmB,MAAR,IAAkBnB,OAAO,CAACoB,OAAzC,CAAA;AACQ,EAAA,IAAAC,UAAU,GAAeF,MAAM,CAAAE,UAA/B;AAAA,MAAYC,QAAQ,GAAKH,MAAM,CAAAG,QAA/B,CAAA;;EACF,IAAAjC,EAAA,GAA4BkC,mCAAe,EAA3C;AAAA,MAAE/B,SAAS,GAAAH,EAAA,CAAAG,SAAX;AAAA,MAAagC,UAAU,GAAAnC,EAAA,CAAAmC,UAAvB,CAAA;;AACN,EAAA,IAAMC,UAAU,GAAGjB,sBAAc,CAACR,OAAD,CAAjC,CAAA;EACA,IAAM0B,cAAc,GAAGD,UAAU,GAAGjC,SAAS,CAACmC,aAAb,GAA8BT,IAAI,IAAIjB,GAAvE,CAAA;EAEA,oBACE2B,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AACE,IAAA,SAAS,EAAEC,uBAAA,CAAAA,uBAAA,CAAA,EAAA,EACLC,KAAK,CAACC,OAAN,CAAchB,SAAd,CAAA,GAA2BA,SAA3B,GAAuC,CAACA,SAAD,CADlC,EAC8C,IAD9C,CAAA,EAC8C,CACvD,mCADuD,EAEvDC,QAAQ,GAAG,6CAAH,GAAmD,EAFJ,CAD9C,OAAA,CAAA,CAITgB,IAJS,CAIJ,GAJI,CADb;IAME,OAAO,EAAE,UAACC,CAAD,EAAE;AACTA,MAAAA,CAAC,CAACC,eAAF,EAAA,CAAA;MACAjB,OAAO,CAACjB,OAAD,CAAP,CAAA;AACD,KAAA;GAED,eAAA4B,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAC,yCAAA;AAAf,GAAA,eACEA,wCAACO,oBAAD,EAAA;AACE,IAAA,SAAS,EAAC,wDADZ;AAEE,IAAA,GAAG,EAAEd,UAFP;AAGE,IAAA,GAAG,EAAC,eAHN;AAIE,IAAA,KAAK,EAAC,MAJR;AAKE,IAAA,MAAM,EAAC,MAAA;AALT,GAAA,CADF,CAXF,eAoBEO,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAC,0CAAA;AAAf,GAAA,eACEA,wCAACQ,cAAD,EAAA;AACE,IAAA,SAAS,EAAC,uDADZ;IAEE,IAAI,EAAEC,wBAAe,CAACC,UAFxB;IAGE,KAAK,EAAEC,oBAAW,CAACC,cAAAA;AAHrB,GAAA,EAKGlB,QAAQ,IAAI9B,SAAS,CAACiD,OALzB,CADF,eAQEb,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAC,mDAAA;GACZ,EAAA,CAACH,UAAD,iBACCG,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAE,8DAAA;AAAhB,GAAA,eACEA,wCAACc,kBAAD,EAAA;AACE,IAAA,IAAI,EAAE3C,iBAAiB,CAACC,OAAD,CADzB;IAEE,SAAS,EAAE2C,kBAAU,CAACC,OAFxB;AAGE,IAAA,KAAK,EAAC,MAHR;AAIE,IAAA,MAAM,EAAC,MAAA;GALX,CAAA,CAFJ,eAWEhB,yBAAA,CAAA,aAAA,CAACQ,cAAD,EAAA;AACE,IAAA,SAAS,EAAC,wDADZ;IAEE,IAAI,EAAEC,wBAAe,CAACQ,MAFxB;IAGE,KAAK,EAAEN,oBAAW,CAACC,cAAAA;AAHrB,GAAA,EAKGd,cALH,CAXF,CARF,CApBF,eAgDEE,wCAACQ,cAAD,EAAA;AACE,IAAA,SAAS,EAAC,uDADZ;IAEE,IAAI,EAAEC,wBAAe,CAACS,SAFxB;IAGE,KAAK,EAAEP,oBAAW,CAACQ,cAAAA;AAHrB,GAAA,EAKG3D,YAAY,CAAC;AAAEE,IAAAA,SAAS,WAAX;AAAaC,IAAAA,MAAM,EAAEiC,UAArB;AAAiChC,IAAAA,SAAS,EAAAA,SAAAA;GAA3C,CALf,CAhDF,eAuDEoC,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAC,iDAAA;AAAf,GAAA,CAvDF,CADF,CAAA;AA2DD;;;;"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tslib_es6 = require('../tslib.es6-
|
|
3
|
+
var tslib_es6 = require('../tslib.es6-23b4ef32.js');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var index$1 = require('../index-
|
|
6
|
-
var index = require('../index-
|
|
5
|
+
var index$1 = require('../index-c34f34a2.js');
|
|
6
|
+
var index = require('../index-9d2d5d23.js');
|
|
7
7
|
var ui_Avatar = require('./Avatar.js');
|
|
8
|
-
var ui_Label = require('../index-
|
|
9
|
-
var LocalizationContext = require('../LocalizationContext-
|
|
10
|
-
require('../index-
|
|
11
|
-
require('../index-
|
|
8
|
+
var ui_Label = require('../index-86b55059.js');
|
|
9
|
+
var LocalizationContext = require('../LocalizationContext-7d2c13ee.js');
|
|
10
|
+
require('../index-31135e46.js');
|
|
11
|
+
require('../index-80ec94b9.js');
|
|
12
12
|
require('./ImageRenderer.js');
|
|
13
13
|
require('./Icon.js');
|
|
14
14
|
require('prop-types');
|
|
15
|
-
require('../uuid-
|
|
16
|
-
require('../stringSet-
|
|
15
|
+
require('../uuid-42040a5c.js');
|
|
16
|
+
require('../stringSet-d4071e23.js');
|
|
17
17
|
|
|
18
18
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
19
19
|
|
package/cjs/ui/MessageStatus.js
CHANGED
|
@@ -2,21 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
require('../tslib.es6-
|
|
5
|
+
require('../tslib.es6-23b4ef32.js');
|
|
6
6
|
require('react');
|
|
7
|
-
require('../index-
|
|
7
|
+
require('../index-c34f34a2.js');
|
|
8
8
|
require('./Icon.js');
|
|
9
|
-
require('../index-
|
|
9
|
+
require('../index-86b55059.js');
|
|
10
10
|
require('./Loader.js');
|
|
11
|
-
require('../index-
|
|
11
|
+
require('../index-6691da2c.js');
|
|
12
12
|
require('../utils/message/getOutgoingMessageState.js');
|
|
13
|
-
var ui_MessageStatus = require('../index-
|
|
14
|
-
require('../LocalizationContext-
|
|
15
|
-
require('../index-
|
|
13
|
+
var ui_MessageStatus = require('../index-45c199d5.js');
|
|
14
|
+
require('../LocalizationContext-7d2c13ee.js');
|
|
15
|
+
require('../index-31135e46.js');
|
|
16
16
|
require('prop-types');
|
|
17
|
-
require('../stringSet-
|
|
18
|
-
require('../index-
|
|
19
|
-
require('../index-
|
|
17
|
+
require('../stringSet-d4071e23.js');
|
|
18
|
+
require('../index-9d2d5d23.js');
|
|
19
|
+
require('../index-80ec94b9.js');
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
|
package/cjs/ui/Modal.js
CHANGED
|
@@ -4,16 +4,16 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var reactDom = require('react-dom');
|
|
7
|
-
var index = require('../index-
|
|
8
|
-
var LocalizationContext = require('../LocalizationContext-
|
|
7
|
+
var index = require('../index-fb42d34c.js');
|
|
8
|
+
var LocalizationContext = require('../LocalizationContext-7d2c13ee.js');
|
|
9
9
|
var ui_Button = require('./Button.js');
|
|
10
10
|
var ui_Icon = require('./Icon.js');
|
|
11
11
|
var ui_IconButton = require('./IconButton.js');
|
|
12
|
-
var ui_Label = require('../index-
|
|
13
|
-
var MediaQueryContext = require('../MediaQueryContext-
|
|
14
|
-
require('../stringSet-
|
|
15
|
-
require('../index-
|
|
16
|
-
require('../tslib.es6-
|
|
12
|
+
var ui_Label = require('../index-86b55059.js');
|
|
13
|
+
var MediaQueryContext = require('../MediaQueryContext-36855cf6.js');
|
|
14
|
+
require('../stringSet-d4071e23.js');
|
|
15
|
+
require('../index-31135e46.js');
|
|
16
|
+
require('../tslib.es6-23b4ef32.js');
|
|
17
17
|
require('prop-types');
|
|
18
18
|
|
|
19
19
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|