@sendbird/uikit-react 3.0.0-beta → 3.0.0-beta.2
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 +41 -30
- package/App.js.map +1 -1
- package/CHANGELOG.md +50 -0
- package/Channel/components/ChannelHeader.js +15 -14
- package/Channel/components/ChannelHeader.js.map +1 -1
- package/Channel/components/ChannelUI.js +28 -21
- package/Channel/components/ChannelUI.js.map +1 -1
- package/Channel/components/FileViewer.js +14 -13
- package/Channel/components/FileViewer.js.map +1 -1
- package/Channel/components/FrozenNotification.js +5 -5
- package/Channel/components/Message.js +178 -62
- package/Channel/components/Message.js.map +1 -1
- package/Channel/components/MessageInput.js +145 -30
- package/Channel/components/MessageInput.js.map +1 -1
- package/Channel/components/MessageList.js +71 -59
- package/Channel/components/MessageList.js.map +1 -1
- package/Channel/components/RemoveMessageModal.js +17 -16
- package/Channel/components/RemoveMessageModal.js.map +1 -1
- package/Channel/components/SuggestedMentionList.js +250 -0
- package/Channel/components/SuggestedMentionList.js.map +1 -0
- package/Channel/components/TypingIndicator.js +14 -13
- package/Channel/components/TypingIndicator.js.map +1 -1
- package/Channel/components/UnreadCount.js +5 -5
- package/Channel/context.js +13 -12
- package/Channel/context.js.map +1 -1
- package/Channel.js +28 -21
- package/Channel.js.map +1 -1
- package/ChannelList/components/AddChannel.js +14 -14
- package/ChannelList/components/ChannelListHeader.js +7 -7
- package/ChannelList/components/ChannelListUI.js +24 -23
- package/ChannelList/components/ChannelListUI.js.map +1 -1
- package/ChannelList/components/ChannelPreview.js +23 -19
- package/ChannelList/components/ChannelPreview.js.map +1 -1
- package/ChannelList/components/ChannelPreviewAction.js +14 -14
- package/ChannelList/context.js +8 -8
- package/ChannelList.js +24 -23
- package/ChannelList.js.map +1 -1
- package/{ChannelListProvider-0b0c2c40.js → ChannelListProvider-7c351968.js} +8 -8
- package/{ChannelListProvider-0b0c2c40.js.map → ChannelListProvider-7c351968.js.map} +1 -1
- package/{ChannelProvider-459e463f.js → ChannelProvider-d5126903.js} +72 -41
- package/ChannelProvider-d5126903.js.map +1 -0
- package/ChannelSettings/components/AdminPanel.js +15 -15
- package/ChannelSettings/components/ChannelProfile.js +13 -13
- package/ChannelSettings/components/ChannelSettingsUI.js +18 -18
- package/ChannelSettings/components/EditDetailsModal.js +13 -13
- package/ChannelSettings/components/LeaveChannel.js +10 -10
- package/ChannelSettings/components/UserListItem.js +11 -11
- package/ChannelSettings/components/UserPanel.js +14 -14
- package/ChannelSettings/context.js +3 -3
- package/ChannelSettings.js +18 -18
- package/CreateChannel/components/CreateChannelUI.js +14 -14
- package/CreateChannel/components/InviteMembers.js +14 -14
- package/CreateChannel/components/SelectChannelType.js +10 -10
- package/CreateChannel/context.js +3 -3
- package/CreateChannel.js +14 -14
- package/{CreateChannelProvider-c617a1bb.js → CreateChannelProvider-ddfd92e6.js} +1 -1
- package/{CreateChannelProvider-c617a1bb.js.map → CreateChannelProvider-ddfd92e6.js.map} +1 -1
- package/EditUserProfile/components/EditUserProfileUI.js +13 -13
- package/EditUserProfile.js +13 -13
- package/{LocalizationContext-e4391013.js → LocalizationContext-b021af8f.js} +3 -3
- package/{LocalizationContext-e4391013.js.map → LocalizationContext-b021af8f.js.map} +1 -1
- package/{MemberList-6655cba0.js → MemberList-323e7517.js} +5 -5
- package/{MemberList-6655cba0.js.map → MemberList-323e7517.js.map} +1 -1
- package/MessageSearch/components/MessageSearchUI.js +11 -11
- package/MessageSearch/context.js +2 -2
- package/MessageSearch.js +11 -11
- package/OpenChannel/components/FrozenChannelNotification.js +5 -5
- package/OpenChannel/components/OpenChannelHeader.js +12 -12
- package/OpenChannel/components/OpenChannelInput.js +18 -14
- package/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessage.js +23 -19
- package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessageList.js +25 -21
- package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/OpenChannel/components/OpenChannelUI.js +25 -21
- package/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/OpenChannel/context.js +9 -9
- package/OpenChannel.js +25 -21
- package/OpenChannel.js.map +1 -1
- package/{OpenChannelProvider-a7691eb4.js → OpenChannelProvider-abc4ab98.js} +7 -7
- package/{OpenChannelProvider-a7691eb4.js.map → OpenChannelProvider-abc4ab98.js.map} +1 -1
- package/OpenChannelSettings/components/EditDetailsModal.js +13 -13
- package/OpenChannelSettings/components/OpenChannelProfile.js +13 -13
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
- package/OpenChannelSettings/components/OperatorUI.js +16 -16
- package/OpenChannelSettings/components/ParticipantUI.js +14 -14
- package/OpenChannelSettings/context.js +2 -2
- package/OpenChannelSettings.js +17 -17
- package/README.md +9 -1
- package/SendbirdProvider.js +27 -13
- package/SendbirdProvider.js.map +1 -1
- package/{UserProfileContext-865db5e6.js → UserProfileContext-daa99f9b.js} +1 -1
- package/{UserProfileContext-865db5e6.js.map → UserProfileContext-daa99f9b.js.map} +1 -1
- package/{_rollupPluginBabelHelpers-20904f21.js → _rollupPluginBabelHelpers-8e4fae98.js} +1 -1
- package/{_rollupPluginBabelHelpers-20904f21.js.map → _rollupPluginBabelHelpers-8e4fae98.js.map} +1 -1
- package/{actionTypes-1e3a4074.js → actionTypes-189daf51.js} +1 -1
- package/{actionTypes-1e3a4074.js.map → actionTypes-189daf51.js.map} +1 -1
- package/cjs/App.js +41 -30
- package/cjs/App.js.map +1 -1
- package/cjs/Channel/components/ChannelHeader.js +15 -14
- package/cjs/Channel/components/ChannelHeader.js.map +1 -1
- package/cjs/Channel/components/ChannelUI.js +28 -21
- package/cjs/Channel/components/ChannelUI.js.map +1 -1
- package/cjs/Channel/components/FileViewer.js +14 -13
- package/cjs/Channel/components/FileViewer.js.map +1 -1
- package/cjs/Channel/components/FrozenNotification.js +5 -5
- package/cjs/Channel/components/Message.js +177 -61
- package/cjs/Channel/components/Message.js.map +1 -1
- package/cjs/Channel/components/MessageInput.js +144 -29
- package/cjs/Channel/components/MessageInput.js.map +1 -1
- package/cjs/Channel/components/MessageList.js +70 -58
- package/cjs/Channel/components/MessageList.js.map +1 -1
- package/cjs/Channel/components/RemoveMessageModal.js +17 -16
- package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
- package/cjs/Channel/components/SuggestedMentionList.js +256 -0
- package/cjs/Channel/components/SuggestedMentionList.js.map +1 -0
- package/cjs/Channel/components/TypingIndicator.js +14 -13
- package/cjs/Channel/components/TypingIndicator.js.map +1 -1
- package/cjs/Channel/components/UnreadCount.js +5 -5
- package/cjs/Channel/context.js +13 -12
- package/cjs/Channel/context.js.map +1 -1
- package/cjs/Channel.js +28 -21
- package/cjs/Channel.js.map +1 -1
- package/cjs/ChannelList/components/AddChannel.js +14 -14
- package/cjs/ChannelList/components/ChannelListHeader.js +7 -7
- package/cjs/ChannelList/components/ChannelListUI.js +24 -23
- package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreview.js +23 -19
- 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 +24 -23
- package/cjs/ChannelList.js.map +1 -1
- package/cjs/{ChannelListProvider-5a152618.js → ChannelListProvider-44dde549.js} +8 -8
- package/cjs/{ChannelListProvider-5a152618.js.map → ChannelListProvider-44dde549.js.map} +1 -1
- package/cjs/{ChannelProvider-f1fb0108.js → ChannelProvider-e0aaab26.js} +79 -48
- package/cjs/ChannelProvider-e0aaab26.js.map +1 -0
- package/cjs/ChannelSettings/components/AdminPanel.js +15 -15
- package/cjs/ChannelSettings/components/ChannelProfile.js +13 -13
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +18 -18
- package/cjs/ChannelSettings/components/EditDetailsModal.js +13 -13
- package/cjs/ChannelSettings/components/LeaveChannel.js +10 -10
- package/cjs/ChannelSettings/components/UserListItem.js +11 -11
- package/cjs/ChannelSettings/components/UserPanel.js +14 -14
- package/cjs/ChannelSettings/context.js +3 -3
- package/cjs/ChannelSettings.js +18 -18
- package/cjs/CreateChannel/components/CreateChannelUI.js +14 -14
- package/cjs/CreateChannel/components/InviteMembers.js +14 -14
- package/cjs/CreateChannel/components/SelectChannelType.js +10 -10
- package/cjs/CreateChannel/context.js +3 -3
- package/cjs/CreateChannel.js +14 -14
- package/cjs/{CreateChannelProvider-df42106f.js → CreateChannelProvider-bdf9c39b.js} +1 -1
- package/cjs/{CreateChannelProvider-df42106f.js.map → CreateChannelProvider-bdf9c39b.js.map} +1 -1
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +13 -13
- package/cjs/EditUserProfile.js +13 -13
- package/cjs/{LocalizationContext-68e55e2a.js → LocalizationContext-3b5ce8ae.js} +3 -3
- package/cjs/{LocalizationContext-68e55e2a.js.map → LocalizationContext-3b5ce8ae.js.map} +1 -1
- package/cjs/{MemberList-dc84e303.js → MemberList-ef9e43c3.js} +5 -5
- package/cjs/{MemberList-dc84e303.js.map → MemberList-ef9e43c3.js.map} +1 -1
- package/cjs/MessageSearch/components/MessageSearchUI.js +11 -11
- package/cjs/MessageSearch/context.js +2 -2
- package/cjs/MessageSearch.js +11 -11
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +5 -5
- package/cjs/OpenChannel/components/OpenChannelHeader.js +12 -12
- package/cjs/OpenChannel/components/OpenChannelInput.js +18 -14
- package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessage.js +23 -19
- package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +25 -21
- package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelUI.js +25 -21
- package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/cjs/OpenChannel/context.js +9 -9
- package/cjs/OpenChannel.js +25 -21
- package/cjs/OpenChannel.js.map +1 -1
- package/cjs/{OpenChannelProvider-7a1a996f.js → OpenChannelProvider-9ce7c998.js} +7 -7
- package/cjs/{OpenChannelProvider-7a1a996f.js.map → OpenChannelProvider-9ce7c998.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 +17 -17
- package/cjs/OpenChannelSettings/components/OperatorUI.js +16 -16
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +14 -14
- package/cjs/OpenChannelSettings/context.js +2 -2
- package/cjs/OpenChannelSettings.js +17 -17
- package/cjs/SendbirdProvider.js +27 -13
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/{UserProfileContext-3533547d.js → UserProfileContext-f0bdfbb8.js} +1 -1
- package/cjs/{UserProfileContext-3533547d.js.map → UserProfileContext-f0bdfbb8.js.map} +1 -1
- package/cjs/{_rollupPluginBabelHelpers-fc14118c.js → _rollupPluginBabelHelpers-e54d2387.js} +1 -1
- package/cjs/{_rollupPluginBabelHelpers-fc14118c.js.map → _rollupPluginBabelHelpers-e54d2387.js.map} +1 -1
- package/cjs/{actionTypes-bc47f97a.js → actionTypes-267d4c79.js} +1 -1
- package/cjs/{actionTypes-bc47f97a.js.map → actionTypes-267d4c79.js.map} +1 -1
- package/cjs/{color-4afb15fb.js → color-0f078673.js} +1 -1
- package/cjs/{color-4afb15fb.js.map → color-0f078673.js.map} +1 -1
- package/cjs/{compareIds-01306377.js → compareIds-176a582b.js} +1 -1
- package/cjs/{compareIds-01306377.js.map → compareIds-176a582b.js.map} +1 -1
- package/cjs/const-4bf0e8b4.js +22 -0
- package/cjs/const-4bf0e8b4.js.map +1 -0
- package/cjs/const-ccf192c5.js +14 -0
- package/cjs/const-ccf192c5.js.map +1 -0
- package/cjs/{context-c1f9d650.js → context-0cbe196d.js} +2 -2
- package/cjs/{context-c1f9d650.js.map → context-0cbe196d.js.map} +1 -1
- package/cjs/{index-d4880236.js → index-002a349d.js} +84 -3
- package/cjs/index-002a349d.js.map +1 -0
- package/cjs/{index-905331fa.js → index-0159bc57.js} +2 -2
- package/cjs/{index-905331fa.js.map → index-0159bc57.js.map} +1 -1
- package/cjs/{index-4987c8b2.js → index-081c9614.js} +6 -6
- package/cjs/{index-4987c8b2.js.map → index-081c9614.js.map} +1 -1
- package/cjs/{index-1468d245.js → index-21f31180.js} +3 -3
- package/cjs/{index-1468d245.js.map → index-21f31180.js.map} +1 -1
- package/cjs/{index-1044f1ed.js → index-22f07209.js} +3 -3
- package/cjs/{index-1044f1ed.js.map → index-22f07209.js.map} +1 -1
- package/cjs/{index-8becccd8.js → index-46522cf0.js} +4 -4
- package/cjs/{index-8becccd8.js.map → index-46522cf0.js.map} +1 -1
- package/cjs/index-723733db.js +54 -0
- package/cjs/index-723733db.js.map +1 -0
- package/cjs/{index-9dc3863f.js → index-c0693be4.js} +2 -2
- package/cjs/{index-9dc3863f.js.map → index-c0693be4.js.map} +1 -1
- package/cjs/{index-659c9ca5.js → index-d4f42e73.js} +4 -4
- package/cjs/{index-659c9ca5.js.map → index-d4f42e73.js.map} +1 -1
- package/cjs/{index-e2bb862c.js → index-d9439e95.js} +1 -1
- package/cjs/{index-e2bb862c.js.map → index-d9439e95.js.map} +1 -1
- package/cjs/{index-aecc8d24.js → index-ed053e45.js} +1 -1
- package/cjs/{index-aecc8d24.js.map → index-ed053e45.js.map} +1 -1
- package/cjs/index.css +165 -59
- package/cjs/index.css.map +1 -1
- package/cjs/index.js +38 -31
- package/cjs/index.js.map +1 -1
- package/cjs/{openChannelUtils-37919a36.js → openChannelUtils-cecaf987.js} +1 -1
- package/cjs/{openChannelUtils-37919a36.js.map → openChannelUtils-cecaf987.js.map} +1 -1
- package/cjs/sendBirdSelectors.js +1 -1
- package/cjs/{stringSet-aa544ce5.js → stringSet-f4da182b.js} +4 -2
- package/cjs/stringSet-f4da182b.js.map +1 -0
- package/cjs/{topics-8314d425.js → topics-c2c30f09.js} +1 -1
- package/cjs/{topics-8314d425.js.map → topics-c2c30f09.js.map} +1 -1
- package/cjs/{tslib.es6-4a281a05.js → tslib.es6-d7d0a427.js} +1 -1
- package/cjs/{tslib.es6-4a281a05.js.map → tslib.es6-d7d0a427.js.map} +1 -1
- package/cjs/ui/Accordion.js +4 -4
- package/cjs/ui/AccordionGroup.js +2 -2
- package/cjs/ui/AdminMessage.js +3 -3
- package/cjs/ui/Avatar.js +3 -3
- package/cjs/ui/Badge.js +5 -5
- package/cjs/ui/Button.js +4 -4
- package/cjs/ui/ChannelAvatar.js +4 -4
- package/cjs/ui/ChannelPreview.js +12 -12
- package/cjs/ui/ChatHeader.js +8 -8
- package/cjs/ui/Checkbox.js +1 -1
- package/cjs/ui/ConnectionStatus.js +5 -5
- package/cjs/ui/ContextMenu.js +5 -5
- package/cjs/ui/DateSeparator.js +4 -4
- package/cjs/ui/Dropdown.js +3 -3
- package/cjs/ui/EmojiReactions.js +7 -7
- package/cjs/ui/FileMessageItemBody.js +6 -6
- package/cjs/ui/FileViewer.js +7 -7
- package/cjs/ui/Icon.js +1 -1
- package/cjs/ui/IconButton.js +1 -1
- package/cjs/ui/ImageRenderer.js +1 -1
- package/cjs/ui/Input.js +3 -3
- package/cjs/ui/Label.js +3 -3
- package/cjs/ui/LinkLabel.js +3 -3
- package/cjs/ui/Loader.js +1 -1
- package/cjs/ui/MentionUserLabel.js +25 -0
- package/cjs/ui/MentionUserLabel.js.map +1 -0
- package/cjs/ui/MessageContent.js +25 -62
- package/cjs/ui/MessageContent.js.map +1 -1
- package/cjs/ui/MessageInput.js +4900 -84
- package/cjs/ui/MessageInput.js.map +1 -1
- package/cjs/ui/MessageItemMenu.js +7 -7
- package/cjs/ui/MessageItemReactionMenu.js +5 -5
- package/cjs/ui/MessageSearchFileItem.js +10 -10
- package/cjs/ui/MessageSearchItem.js +10 -10
- package/cjs/ui/MessageStatus.js +66 -0
- package/cjs/ui/MessageStatus.js.map +1 -0
- package/cjs/ui/Modal.js +8 -8
- package/cjs/ui/MutedAvatarOverlay.js +1 -1
- package/cjs/ui/OGMessageItemBody.js +38 -28
- package/cjs/ui/OGMessageItemBody.js.map +1 -1
- package/cjs/ui/OpenChannelAdminMessage.js +4 -4
- package/cjs/ui/OpenChannelAvatar.js +7 -7
- package/cjs/ui/OpenchannelConversationHeader.js +7 -7
- package/cjs/ui/OpenchannelFileMessage.js +14 -14
- package/cjs/ui/OpenchannelOGMessage.js +14 -14
- package/cjs/ui/OpenchannelThumbnailMessage.js +13 -13
- package/cjs/ui/OpenchannelUserMessage.js +14 -14
- package/cjs/ui/PlaceHolder.js +6 -6
- package/cjs/ui/QuoteMessage.js +7 -7
- package/cjs/ui/QuoteMessageInput.js +7 -7
- 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 +1 -1
- package/cjs/ui/TextButton.js +2 -2
- package/cjs/ui/TextMessageItemBody.js +36 -14
- package/cjs/ui/TextMessageItemBody.js.map +1 -1
- package/cjs/ui/ThumbnailMessageItemBody.js +3 -3
- package/cjs/ui/Tooltip.js +3 -3
- package/cjs/ui/TooltipWrapper.js +1 -1
- package/cjs/ui/UnknownMessageItemBody.js +7 -7
- package/cjs/ui/UserListItem.js +11 -11
- package/cjs/ui/UserProfile.js +9 -9
- package/cjs/useSendbirdStateContext.js +1 -1
- package/cjs/{utils-cbd3ed99.js → utils-3e73a146.js} +1 -1
- package/cjs/{utils-cbd3ed99.js.map → utils-3e73a146.js.map} +1 -1
- package/cjs/{utils-66b3f4ec.js → utils-b95288a8.js} +1 -1
- package/cjs/{utils-66b3f4ec.js.map → utils-b95288a8.js.map} +1 -1
- package/cjs/{utils-3b0815dc.js → utils-c55d20dc.js} +1 -1
- package/cjs/{utils-3b0815dc.js.map → utils-c55d20dc.js.map} +1 -1
- package/cjs/{uuid-1d5ec8b2.js → uuid-ba6cc3c5.js} +1 -1
- package/cjs/{uuid-1d5ec8b2.js.map → uuid-ba6cc3c5.js.map} +1 -1
- package/cjs/withSendBird.js +1 -1
- package/{color-ee3fc5ee.js → color-2863fbbe.js} +1 -1
- package/{color-ee3fc5ee.js.map → color-2863fbbe.js.map} +1 -1
- package/{compareIds-808956f2.js → compareIds-48d87cc5.js} +1 -1
- package/{compareIds-808956f2.js.map → compareIds-48d87cc5.js.map} +1 -1
- package/const-09c22c50.js +18 -0
- package/const-09c22c50.js.map +1 -0
- package/const-3f63e129.js +8 -0
- package/const-3f63e129.js.map +1 -0
- package/{context-98ce535c.js → context-7877e5bb.js} +2 -2
- package/{context-98ce535c.js.map → context-7877e5bb.js.map} +1 -1
- package/dist/index.css +165 -59
- package/dist/index.css.map +1 -1
- package/{index-942c85a6.js → index-1fd114b0.js} +1 -1
- package/{index-942c85a6.js.map → index-1fd114b0.js.map} +1 -1
- package/{index-e818a8a3.js → index-303a3b6e.js} +4 -4
- package/{index-e818a8a3.js.map → index-303a3b6e.js.map} +1 -1
- package/{index-6ebf7894.js → index-353f13f3.js} +1 -1
- package/{index-6ebf7894.js.map → index-353f13f3.js.map} +1 -1
- package/{index-5c2c81bc.js → index-358226c7.js} +6 -6
- package/{index-5c2c81bc.js.map → index-358226c7.js.map} +1 -1
- package/{index-acebc2ff.js → index-41a6f4f2.js} +3 -3
- package/{index-acebc2ff.js.map → index-41a6f4f2.js.map} +1 -1
- package/index-4889e530.js +48 -0
- package/index-4889e530.js.map +1 -0
- package/{index-770d7112.js → index-4a59a866.js} +2 -2
- package/{index-770d7112.js.map → index-4a59a866.js.map} +1 -1
- package/{index-1718324d.js → index-86b0a341.js} +4 -4
- package/{index-1718324d.js.map → index-86b0a341.js.map} +1 -1
- package/{index-7a51bd16.js → index-a611bd38.js} +3 -3
- package/{index-7a51bd16.js.map → index-a611bd38.js.map} +1 -1
- package/{index-8c72a94a.js → index-ad4c9e58.js} +83 -3
- package/index-ad4c9e58.js.map +1 -0
- package/{index-cd21929d.js → index-f119413c.js} +2 -2
- package/{index-cd21929d.js.map → index-f119413c.js.map} +1 -1
- package/index.css +165 -59
- package/index.css.map +1 -1
- package/index.d.ts +237 -209
- package/index.js +38 -31
- package/index.js.map +1 -1
- package/{openChannelUtils-56a372e7.js → openChannelUtils-024b797a.js} +1 -1
- package/{openChannelUtils-56a372e7.js.map → openChannelUtils-024b797a.js.map} +1 -1
- package/package.json +2 -2
- package/sendBirdSelectors.js +1 -1
- package/{stringSet-4f6eaa60.js → stringSet-91746bf1.js} +4 -2
- package/stringSet-91746bf1.js.map +1 -0
- package/{topics-9442035c.js → topics-17d99dd6.js} +1 -1
- package/{topics-9442035c.js.map → topics-17d99dd6.js.map} +1 -1
- package/{tslib.es6-e3c44017.js → tslib.es6-83aa13f5.js} +1 -1
- package/{tslib.es6-e3c44017.js.map → tslib.es6-83aa13f5.js.map} +1 -1
- package/ui/Accordion.js +4 -4
- package/ui/AccordionGroup.js +2 -2
- package/ui/AdminMessage.js +3 -3
- package/ui/Avatar.js +3 -3
- package/ui/Badge.js +5 -5
- package/ui/Button.js +4 -4
- package/ui/ChannelAvatar.js +4 -4
- package/ui/ChannelPreview.js +12 -12
- package/ui/ChatHeader.js +8 -8
- package/ui/Checkbox.js +1 -1
- package/ui/ConnectionStatus.js +5 -5
- package/ui/ContextMenu.js +5 -5
- package/ui/DateSeparator.js +4 -4
- package/ui/Dropdown.js +3 -3
- package/ui/EmojiReactions.js +7 -7
- package/ui/FileMessageItemBody.js +6 -6
- package/ui/FileViewer.js +7 -7
- package/ui/Icon.js +1 -1
- package/ui/IconButton.js +1 -1
- package/ui/ImageRenderer.js +1 -1
- package/ui/Input.js +3 -3
- package/ui/Label.js +3 -3
- package/ui/LinkLabel.js +3 -3
- package/ui/Loader.js +1 -1
- package/ui/MentionUserLabel.js +19 -0
- package/ui/MentionUserLabel.js.map +1 -0
- package/ui/MessageContent.js +25 -62
- package/ui/MessageContent.js.map +1 -1
- package/ui/MessageInput.js +4900 -85
- package/ui/MessageInput.js.map +1 -1
- package/ui/MessageItemMenu.js +7 -7
- package/ui/MessageItemReactionMenu.js +5 -5
- package/ui/MessageSearchFileItem.js +10 -10
- package/ui/MessageSearchItem.js +10 -10
- package/ui/MessageStatus.js +57 -0
- package/ui/MessageStatus.js.map +1 -0
- package/ui/Modal.js +8 -8
- package/ui/MutedAvatarOverlay.js +1 -1
- package/ui/OGMessageItemBody.js +38 -28
- package/ui/OGMessageItemBody.js.map +1 -1
- package/ui/OpenChannelAdminMessage.js +4 -4
- package/ui/OpenChannelAvatar.js +7 -7
- package/ui/OpenchannelConversationHeader.js +7 -7
- package/ui/OpenchannelFileMessage.js +14 -14
- package/ui/OpenchannelOGMessage.js +14 -14
- package/ui/OpenchannelThumbnailMessage.js +13 -13
- package/ui/OpenchannelUserMessage.js +14 -14
- package/ui/PlaceHolder.js +6 -6
- package/ui/QuoteMessage.js +7 -7
- package/ui/QuoteMessageInput.js +7 -7
- package/ui/QuoteMessageInput.js.map +1 -1
- package/ui/ReactionBadge.js +3 -3
- package/ui/ReactionButton.js +1 -1
- package/ui/SortByRow.js +1 -1
- package/ui/TextButton.js +2 -2
- package/ui/TextMessageItemBody.js +37 -15
- package/ui/TextMessageItemBody.js.map +1 -1
- package/ui/ThumbnailMessageItemBody.js +3 -3
- package/ui/Tooltip.js +3 -3
- package/ui/TooltipWrapper.js +1 -1
- package/ui/UnknownMessageItemBody.js +7 -7
- package/ui/UserListItem.js +11 -11
- package/ui/UserProfile.js +9 -9
- package/useSendbirdStateContext.js +1 -1
- package/{utils-af1b9829.js → utils-5395ff17.js} +1 -1
- package/{utils-af1b9829.js.map → utils-5395ff17.js.map} +1 -1
- package/{utils-08c4dbdc.js → utils-7d39b941.js} +1 -1
- package/{utils-08c4dbdc.js.map → utils-7d39b941.js.map} +1 -1
- package/{utils-c393e880.js → utils-9ef11656.js} +1 -1
- package/{utils-c393e880.js.map → utils-9ef11656.js.map} +1 -1
- package/{uuid-b0c93400.js → uuid-6d14d007.js} +1 -1
- package/{uuid-b0c93400.js.map → uuid-6d14d007.js.map} +1 -1
- package/withSendBird.js +1 -1
- package/ChannelProvider-459e463f.js.map +0 -1
- package/cjs/ChannelProvider-f1fb0108.js.map +0 -1
- package/cjs/index-d4880236.js.map +0 -1
- package/cjs/stringSet-aa544ce5.js.map +0 -1
- package/index-8c72a94a.js.map +0 -1
- package/stringSet-4f6eaa60.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageInput.js","sources":["../../../src/smart-components/Channel/components/MessageInput/index.tsx"],"sourcesContent":["import React, { useContext } from 'react';\n\nimport './message-input.scss';\nimport * as utils from '../../context/utils';\n\nimport MessageInput from '../../../../ui/MessageInput';\nimport QuoteMessageInput from '../../../../ui/QuoteMessageInput';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport { useChannel } from '../../context/ChannelProvider';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\n\nconst MessageInputWrapper = (): JSX.Element => {\n const {\n currentGroupChannel,\n initialized,\n quoteMessage,\n sendMessage,\n sendFileMessage,\n setQuoteMessage,\n messageInputRef,\n } = useChannel();\n const globalStore = useSendbirdStateContext();\n const channel = currentGroupChannel;\n\n const isOnline = globalStore?.config?.isOnline;\n\n const { stringSet } = useContext(LocalizationContext);\n const disabled = !initialized\n || utils.isDisabledBecauseFrozen(channel)\n || utils.isDisabledBecauseMuted(channel)\n || !isOnline;\n\n const isOperator = utils.isOperator(channel);\n const { isBroadcast } = channel;\n\n // broadcast channel + not operator\n if (isBroadcast && !isOperator) {\n return null;\n }\n\n // other conditions\n return (\n <div className=\"sendbird-message-input-wrapper\">\n {quoteMessage && (\n <div className=\"sendbird-message-input-wrapper__quote-message-input\">\n <QuoteMessageInput\n replyingMessage={quoteMessage}\n onClose={() => setQuoteMessage(null)}\n />\n </div>\n )}\n <MessageInput\n className=\"sendbird-message-input-wrapper__message-input\"\n channelUrl={channel?.url}\n placeholder={\n (quoteMessage && stringSet.MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER)\n || (utils.isDisabledBecauseFrozen(channel) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__DISABLED)\n || (utils.isDisabledBecauseMuted(channel) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__MUTED)\n }\n ref={messageInputRef}\n disabled={disabled}\n onStartTyping={() => {\n channel?.startTyping();\n }}\n onSendMessage={() => {\n sendMessage(quoteMessage);\n setQuoteMessage(null);\n channel?.endTyping();\n }}\n onFileUpload={(file) => {\n sendFileMessage(file, quoteMessage);\n setQuoteMessage(null);\n }}\n />\n </div>\n );\n}\n\nexport default React.forwardRef(MessageInputWrapper);\n"],"names":["MessageInputWrapper","_b","useChannel","currentGroupChannel","initialized","quoteMessage","sendMessage","sendFileMessage","setQuoteMessage","messageInputRef","globalStore","useSendbirdStateContext","channel","isOnline","config","stringSet","useContext","LocalizationContext","disabled","utils","isOperator","isBroadcast","React","url","MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER","MESSAGE_INPUT__PLACE_HOLDER__DISABLED","MESSAGE_INPUT__PLACE_HOLDER__MUTED","startTyping","endTyping","file","forwardRef"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAsB;;;AACpB,MAAAC,KAQFC,UAAU,EARR;AAAA,MACJC,mBAAmB,yBADf;AAAA,MAEJC,WAAW,iBAFP;AAAA,MAGJC,YAAY,kBAHR;AAAA,MAIJC,WAAW,iBAJP;AAAA,MAKJC,eAAe,qBALX;AAAA,MAMJC,eAAe,qBANX;AAAA,MAOJC,eAAe,qBAPX;;AASN,MAAMC,WAAW,GAAGC,uBAAuB,EAA3C;AACA,MAAMC,OAAO,GAAGT,mBAAhB;AAEA,MAAMU,QAAQ,GAAG,MAAAH,WAAW,SAAX,IAAAA,WAAW,WAAX,SAAA,GAAAA,WAAW,CAAEI,MAAb,UAAA,iBAAA,SAAA,MAAqBD,QAAtC;AAEQ,MAAAE,SAAS,GAAKC,UAAU,CAACC,mBAAD,CAAV,UAAd;AACR,MAAMC,QAAQ,GAAG,CAACd,WAAD,IACZe,uBAAA,CAA8BP,OAA9B,CADY,IAEZO,sBAAA,CAA6BP,OAA7B,CAFY,IAGZ,CAACC,QAHN;AAKA,MAAMO,YAAU,GAAGD,UAAA,CAAiBP,OAAjB,CAAnB;AACQ,MAAAS,WAAW,GAAKT,OAAO,YAAvB;;AAGR,MAAIS,WAAW,IAAI,CAACD,YAApB,EAAgC;AAC9B,WAAO,IAAP;AACD;;;AAGD,sBACEE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGjB,YAAY,iBACXiB;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,iBAAD;AACE,IAAA,eAAe,EAAEjB,YADnB;AAEE,IAAA,OAAO,EAAE;AAAM,aAAAG,eAAe,CAAC,IAAD,CAAf;AAAqB;AAFtC,IADF,CAFJ,eASEc,6BAAC,YAAD;AACE,IAAA,SAAS,EAAC,+CADZ;AAEE,IAAA,UAAU,EAAEV,OAAO,SAAP,IAAAA,OAAO,WAAP,SAAA,GAAAA,OAAO,CAAEW,GAFvB;AAGE,IAAA,WAAW,EACRlB,YAAY,IAAIU,SAAS,CAACS,wCAA3B,IACIL,uBAAA,CAA8BP,OAA9B,KAA0CG,SAAS,CAACU,qCADxD,IAEIN,sBAAA,CAA6BP,OAA7B,KAAyCG,SAAS,CAACW,kCAN3D;AAQE,IAAA,GAAG,EAAEjB,eARP;AASE,IAAA,QAAQ,EAAES,QATZ;AAUE,IAAA,aAAa,EAAE;AACbN,MAAAA,OAAO,SAAP,IAAAA,OAAO,WAAP,SAAA,GAAAA,OAAO,CAAEe,WAAT,EAAA;AACD,KAZH;AAaE,IAAA,aAAa,EAAE;AACbrB,MAAAA,WAAW,CAACD,YAAD,CAAX;AACAG,MAAAA,eAAe,CAAC,IAAD,CAAf;AACAI,MAAAA,OAAO,SAAP,IAAAA,OAAO,WAAP,SAAA,GAAAA,OAAO,CAAEgB,SAAT,EAAA;AACD,KAjBH;AAkBE,IAAA,YAAY,EAAE,sBAACC,IAAD;AACZtB,MAAAA,eAAe,CAACsB,IAAD,EAAOxB,YAAP,CAAf;AACAG,MAAAA,eAAe,CAAC,IAAD,CAAf;AACD;AArBH,IATF,CADF;AAmCD,CAjED;;AAmEA,yCAAec,cAAK,CAACQ,UAAN,CAAiB9B,mBAAjB,CAAf;;;;"}
|
|
1
|
+
{"version":3,"file":"MessageInput.js","sources":["../../../src/smart-components/Channel/components/MessageInput/index.tsx"],"sourcesContent":["import React, { useState, useContext, useEffect } from 'react';\n\nimport './message-input.scss';\nimport * as utils from '../../context/utils';\n\nimport MessageInput from '../../../../ui/MessageInput';\nimport QuoteMessageInput from '../../../../ui/QuoteMessageInput';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport { useChannel } from '../../context/ChannelProvider';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport SuggestedMentionList from '../SuggestedMentionList';\nimport { MessageInputKeys } from '../../../../ui/MessageInput/const';\n\nconst MessageInputWrapper = (): JSX.Element => {\n const {\n currentGroupChannel,\n initialized,\n quoteMessage,\n sendMessage,\n sendFileMessage,\n setQuoteMessage,\n messageInputRef,\n renderUserMentionItem,\n } = useChannel();\n const globalStore = useSendbirdStateContext();\n const channel = currentGroupChannel;\n\n const { isOnline, isMentionEnabled, userMention } = globalStore?.config;\n const maxUserMentionCount = userMention?.maxMentionCount || 10;\n const maxUserSuggestionCount = userMention?.maxSuggestionCount || 15;\n\n const { stringSet } = useContext(LocalizationContext);\n const [mentionNickname, setMentionNickname] = useState('');\n const [mentionedUsers, setMentionedUsers] = useState([]);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [selectedUser, setSelectedUser] = useState(null);\n const [mentionSuggestedUsers, setMentionSuggestedUsers] = useState([]);\n const [ableMention, setAbleMention] = useState(true);\n const [messageInputEvent, setMessageInputEvent] = useState(null);\n const disabled = !initialized\n || utils.isDisabledBecauseFrozen(channel)\n || utils.isDisabledBecauseMuted(channel)\n || !isOnline;\n const isOperator = utils.isOperator(channel);\n const { isBroadcast } = channel;\n\n const displaySuggestedMentionList = (isMentionEnabled && mentionNickname.length > 0);\n\n useEffect(() => {\n if (mentionedUsers?.length >= maxUserMentionCount) {\n setAbleMention(false);\n } else {\n setAbleMention(true);\n }\n }, [mentionedUsers]);\n\n useEffect(() => {\n setMentionedUsers(mentionedUsers.filter(({ userId }) => {\n const i = mentionedUserIds.indexOf(userId);\n if (i < 0) {\n return false;\n } else {\n mentionedUserIds.splice(i, 1);\n return true;\n }\n }));\n }, [mentionedUserIds]);\n\n // broadcast channel + not operator\n if (isBroadcast && !isOperator) {\n return null;\n }\n // other conditions\n return (\n <div className=\"sendbird-message-input-wrapper\">\n {\n displaySuggestedMentionList && (\n <SuggestedMentionList\n targetNickname={mentionNickname}\n inputEvent={messageInputEvent}\n renderUserMentionItem={renderUserMentionItem}\n onUserItemClick={(user) => {\n if (user) {\n setMentionedUsers([...mentionedUsers, user]);\n }\n setMentionNickname('');\n setSelectedUser(user);\n setMessageInputEvent(null);\n }}\n onFocusItemChange={() => {\n setMessageInputEvent(null);\n }}\n onFetchUsers={(users) => {\n setMentionSuggestedUsers(users);\n }}\n ableAddMention={ableMention}\n maxMentionCount={maxUserMentionCount}\n maxSuggestionCount={maxUserSuggestionCount}\n />\n )\n }\n {quoteMessage && (\n <div className=\"sendbird-message-input-wrapper__quote-message-input\">\n <QuoteMessageInput\n replyingMessage={quoteMessage}\n onClose={() => setQuoteMessage(null)}\n />\n </div>\n )}\n <MessageInput\n className=\"sendbird-message-input-wrapper__message-input\"\n channelUrl={channel?.url}\n mentionSelectedUser={selectedUser}\n isMentionEnabled={isMentionEnabled}\n placeholder={\n (quoteMessage && stringSet.MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER)\n || (utils.isDisabledBecauseFrozen(channel) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__DISABLED)\n || (utils.isDisabledBecauseMuted(channel) && stringSet.MESSAGE_INPUT__PLACE_HOLDER__MUTED)\n }\n ref={messageInputRef}\n disabled={disabled}\n onStartTyping={() => {\n channel?.startTyping();\n }}\n onSendMessage={({ message, mentionTemplate }) => {\n sendMessage({\n message,\n quoteMessage,\n mentionedUsers,\n mentionTemplate,\n });\n setMentionNickname('');\n setMentionedUsers([]);\n setQuoteMessage(null);\n channel?.endTyping();\n }}\n onFileUpload={(file) => {\n sendFileMessage(file, quoteMessage);\n setQuoteMessage(null);\n }}\n onUserMentioned={(user) => {\n if (selectedUser?.userId === user?.userId) {\n setSelectedUser(null);\n setMentionNickname('');\n }\n }}\n onMentionStringChange={(mentionText) => {\n setMentionNickname(mentionText);\n }}\n onMentionedUserIdsUpdated={(userIds) => {\n setMentionedUserIds(userIds);\n }}\n onKeyDown={(e) => {\n if (displaySuggestedMentionList && mentionSuggestedUsers?.length > 0\n && ((e.key === MessageInputKeys.Enter && ableMention) || e.key === MessageInputKeys.ArrowUp || e.key === MessageInputKeys.ArrowDown)\n ) {\n setMessageInputEvent(e);\n return true;\n }\n return false;\n }}\n />\n </div>\n );\n}\n\nexport default React.forwardRef(MessageInputWrapper);\n"],"names":["MessageInputWrapper","_a","useChannel","currentGroupChannel","initialized","quoteMessage","sendMessage","sendFileMessage","setQuoteMessage","messageInputRef","renderUserMentionItem","globalStore","useSendbirdStateContext","channel","_b","config","isOnline","isMentionEnabled","userMention","maxUserMentionCount","maxMentionCount","maxUserSuggestionCount","maxSuggestionCount","stringSet","useContext","LocalizationContext","_c","useState","mentionNickname","setMentionNickname","_d","mentionedUsers","setMentionedUsers","_e","mentionedUserIds","setMentionedUserIds","_f","selectedUser","setSelectedUser","_g","mentionSuggestedUsers","setMentionSuggestedUsers","_h","ableMention","setAbleMention","_j","messageInputEvent","setMessageInputEvent","disabled","utils","isOperator","isBroadcast","displaySuggestedMentionList","length","useEffect","filter","userId","i","indexOf","splice","React","user","users","url","MESSAGE_INPUT__QUOTE_REPLY__PLACE_HOLDER","MESSAGE_INPUT__PLACE_HOLDER__DISABLED","MESSAGE_INPUT__PLACE_HOLDER__MUTED","startTyping","message","mentionTemplate","endTyping","file","mentionText","userIds","e","key","MessageInputKeys","Enter","ArrowUp","ArrowDown","forwardRef"],"mappings":"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"}
|
|
@@ -1,39 +1,45 @@
|
|
|
1
|
-
import React__default, { useState } from 'react';
|
|
2
|
-
import { i as isSameDay } from '../../index-
|
|
3
|
-
import { u as useChannel, c as compareMessagesForGrouping, i as isAboutSame } from '../../ChannelProvider-
|
|
4
|
-
import { P as PlaceHolder, a as PlaceHolderTypes } from '../../index-
|
|
1
|
+
import React__default, { useState, useMemo } from 'react';
|
|
2
|
+
import { i as isSameDay } from '../../index-f119413c.js';
|
|
3
|
+
import { u as useChannel, c as compareMessagesForGrouping, i as isAboutSame } from '../../ChannelProvider-d5126903.js';
|
|
4
|
+
import { P as PlaceHolder, a as PlaceHolderTypes } from '../../index-303a3b6e.js';
|
|
5
5
|
import Icon, { IconTypes, IconColors } from '../../ui/Icon.js';
|
|
6
6
|
import Message from './Message.js';
|
|
7
|
-
import { u as uuidv4 } from '../../uuid-
|
|
8
|
-
import '../../index-
|
|
9
|
-
import '../../index-
|
|
10
|
-
import '../../UserProfileContext-
|
|
7
|
+
import { u as uuidv4 } from '../../uuid-6d14d007.js';
|
|
8
|
+
import '../../index-4a59a866.js';
|
|
9
|
+
import '../../index-353f13f3.js';
|
|
10
|
+
import '../../UserProfileContext-daa99f9b.js';
|
|
11
11
|
import 'prop-types';
|
|
12
12
|
import '../../useSendbirdStateContext.js';
|
|
13
13
|
import '../../withSendBird.js';
|
|
14
|
-
import '../../_rollupPluginBabelHelpers-
|
|
15
|
-
import '../../topics-
|
|
16
|
-
import '../../index-
|
|
17
|
-
import '../../tslib.es6-
|
|
18
|
-
import '../../compareIds-
|
|
14
|
+
import '../../_rollupPluginBabelHelpers-8e4fae98.js';
|
|
15
|
+
import '../../topics-17d99dd6.js';
|
|
16
|
+
import '../../index-ad4c9e58.js';
|
|
17
|
+
import '../../tslib.es6-83aa13f5.js';
|
|
18
|
+
import '../../compareIds-48d87cc5.js';
|
|
19
|
+
import '../../const-3f63e129.js';
|
|
19
20
|
import '../../ui/ContextMenu.js';
|
|
20
|
-
import '../../index-
|
|
21
|
-
import '../../stringSet-
|
|
21
|
+
import '../../index-a611bd38.js';
|
|
22
|
+
import '../../stringSet-91746bf1.js';
|
|
22
23
|
import 'react-dom';
|
|
23
24
|
import '../../ui/SortByRow.js';
|
|
24
25
|
import '../../ui/ReactionButton.js';
|
|
25
26
|
import '../../ui/ImageRenderer.js';
|
|
26
27
|
import '../../ui/Loader.js';
|
|
27
|
-
import '../../LocalizationContext-
|
|
28
|
+
import '../../LocalizationContext-b021af8f.js';
|
|
29
|
+
import './SuggestedMentionList.js';
|
|
30
|
+
import '../../ui/Avatar.js';
|
|
31
|
+
import '../../const-09c22c50.js';
|
|
28
32
|
import '../../ui/DateSeparator.js';
|
|
29
|
-
import '../../color-
|
|
33
|
+
import '../../color-2863fbbe.js';
|
|
30
34
|
import '../../ui/MessageInput.js';
|
|
35
|
+
import 'stream';
|
|
31
36
|
import '../../ui/IconButton.js';
|
|
32
|
-
import '../../index-
|
|
37
|
+
import '../../index-41a6f4f2.js';
|
|
38
|
+
import '../../ui/MentionUserLabel.js';
|
|
33
39
|
import '../../ui/MessageContent.js';
|
|
34
|
-
import '../../ui/Avatar.js';
|
|
35
40
|
import '../../ui/UserProfile.js';
|
|
36
41
|
import '../../sendBirdSelectors.js';
|
|
42
|
+
import '../../ui/MessageStatus.js';
|
|
37
43
|
import '../../ui/MessageItemMenu.js';
|
|
38
44
|
import '../../ui/MessageItemReactionMenu.js';
|
|
39
45
|
import '../../ui/EmojiReactions.js';
|
|
@@ -42,18 +48,19 @@ import '../../ui/TooltipWrapper.js';
|
|
|
42
48
|
import '../../ui/ReactionBadge.js';
|
|
43
49
|
import '../../ui/AdminMessage.js';
|
|
44
50
|
import '../../ui/TextMessageItemBody.js';
|
|
51
|
+
import '../../index-4889e530.js';
|
|
52
|
+
import '../../ui/LinkLabel.js';
|
|
45
53
|
import '../../ui/FileMessageItemBody.js';
|
|
46
54
|
import '../../ui/TextButton.js';
|
|
47
55
|
import '../../ui/ThumbnailMessageItemBody.js';
|
|
48
56
|
import '../../ui/OGMessageItemBody.js';
|
|
49
|
-
import '../../ui/LinkLabel.js';
|
|
50
57
|
import '../../ui/UnknownMessageItemBody.js';
|
|
51
58
|
import '../../ui/QuoteMessage.js';
|
|
52
59
|
import './FileViewer.js';
|
|
53
|
-
import '../../index-
|
|
60
|
+
import '../../index-1fd114b0.js';
|
|
54
61
|
import './RemoveMessageModal.js';
|
|
55
62
|
import '../../ui/Modal.js';
|
|
56
|
-
import '../../utils-
|
|
63
|
+
import '../../utils-9ef11656.js';
|
|
57
64
|
|
|
58
65
|
var SCROLL_REF_CLASS_NAME = '.sendbird-msg--scroll-ref';
|
|
59
66
|
|
|
@@ -154,7 +161,47 @@ var MessageList = function MessageList(props) {
|
|
|
154
161
|
if ((_a = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) === null || _a === void 0 ? void 0 : _a.scrollTop) {
|
|
155
162
|
scrollRef.current.scrollTop = ((_b = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) === null || _b === void 0 ? void 0 : _b.scrollHeight) - ((_c = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) === null || _c === void 0 ? void 0 : _c.offsetHeight);
|
|
156
163
|
}
|
|
157
|
-
};
|
|
164
|
+
}; // Because every message components are re-rendered everytime by every scroll events
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
var memoizedAllMessages = useMemo(function () {
|
|
168
|
+
return allMessages.map(function (m, idx) {
|
|
169
|
+
var previousMessage = allMessages[idx - 1];
|
|
170
|
+
var nextMessage = allMessages[idx + 1];
|
|
171
|
+
|
|
172
|
+
var _a = useMessageGrouping ? compareMessagesForGrouping(previousMessage, m, nextMessage) : [false, false],
|
|
173
|
+
chainTop = _a[0],
|
|
174
|
+
chainBottom = _a[1];
|
|
175
|
+
|
|
176
|
+
var previousMessageCreatedAt = previousMessage === null || previousMessage === void 0 ? void 0 : previousMessage.createdAt;
|
|
177
|
+
var currentCreatedAt = m.createdAt; // https://stackoverflow.com/a/41855608
|
|
178
|
+
|
|
179
|
+
var hasSeparator = !(previousMessageCreatedAt && isSameDay(currentCreatedAt, previousMessageCreatedAt));
|
|
180
|
+
|
|
181
|
+
var handleScroll = function handleScroll() {
|
|
182
|
+
var current = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current;
|
|
183
|
+
|
|
184
|
+
if (current) {
|
|
185
|
+
var bottom = current.scrollHeight - current.scrollTop - current.offsetHeight;
|
|
186
|
+
|
|
187
|
+
if (scrollBottom < bottom) {
|
|
188
|
+
current.scrollTop += bottom - scrollBottom;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
return /*#__PURE__*/React__default.createElement(Message, {
|
|
194
|
+
handleScroll: handleScroll,
|
|
195
|
+
renderMessage: renderMessage,
|
|
196
|
+
message: m,
|
|
197
|
+
hasSeparator: hasSeparator,
|
|
198
|
+
chainTop: chainTop,
|
|
199
|
+
chainBottom: chainBottom,
|
|
200
|
+
renderCustomSeperator: renderCustomSeperator,
|
|
201
|
+
key: m.messageId + uuidv4()
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
}, [allMessages]);
|
|
158
205
|
|
|
159
206
|
if (allMessages.length < 1) {
|
|
160
207
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, (renderPlaceholderEmpty === null || renderPlaceholderEmpty === void 0 ? void 0 : renderPlaceholderEmpty()) || /*#__PURE__*/React__default.createElement(PlaceHolder, {
|
|
@@ -173,42 +220,7 @@ var MessageList = function MessageList(props) {
|
|
|
173
220
|
className: "sendbird-conversation__messages-padding",
|
|
174
221
|
ref: scrollRef,
|
|
175
222
|
onScroll: onScroll
|
|
176
|
-
},
|
|
177
|
-
var previousMessage = allMessages[idx - 1];
|
|
178
|
-
var nextMessage = allMessages[idx + 1];
|
|
179
|
-
|
|
180
|
-
var _a = useMessageGrouping ? compareMessagesForGrouping(previousMessage, m, nextMessage) : [false, false],
|
|
181
|
-
chainTop = _a[0],
|
|
182
|
-
chainBottom = _a[1];
|
|
183
|
-
|
|
184
|
-
var previousMessageCreatedAt = previousMessage === null || previousMessage === void 0 ? void 0 : previousMessage.createdAt;
|
|
185
|
-
var currentCreatedAt = m.createdAt; // https://stackoverflow.com/a/41855608
|
|
186
|
-
|
|
187
|
-
var hasSeparator = !(previousMessageCreatedAt && isSameDay(currentCreatedAt, previousMessageCreatedAt));
|
|
188
|
-
|
|
189
|
-
var handleScroll = function handleScroll() {
|
|
190
|
-
var current = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current;
|
|
191
|
-
|
|
192
|
-
if (current) {
|
|
193
|
-
var bottom = current.scrollHeight - current.scrollTop - current.offsetHeight;
|
|
194
|
-
|
|
195
|
-
if (scrollBottom < bottom) {
|
|
196
|
-
current.scrollTop += bottom - scrollBottom;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
return /*#__PURE__*/React__default.createElement(Message, {
|
|
202
|
-
handleScroll: handleScroll,
|
|
203
|
-
renderMessage: renderMessage,
|
|
204
|
-
message: m,
|
|
205
|
-
hasSeparator: hasSeparator,
|
|
206
|
-
chainTop: chainTop,
|
|
207
|
-
chainBottom: chainBottom,
|
|
208
|
-
renderCustomSeperator: renderCustomSeperator,
|
|
209
|
-
key: (m === null || m === void 0 ? void 0 : m.messageId) + uuidv4()
|
|
210
|
-
});
|
|
211
|
-
}))), // This flag is an unmatched variable
|
|
223
|
+
}, memoizedAllMessages)), // This flag is an unmatched variable
|
|
212
224
|
scrollBottom > 1 && /*#__PURE__*/React__default.createElement("div", {
|
|
213
225
|
className: "sendbird-conversation__scroll-bottom-button",
|
|
214
226
|
onClick: onClickScrollBot,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageList.js","sources":["../../../src/smart-components/Channel/components/MessageList/index.tsx"],"sourcesContent":["import './message-list.scss';\n\nimport React, { useState } from 'react';\nimport isSameDay from 'date-fns/isSameDay';\n\nimport { useChannel } from '../../context/ChannelProvider';\nimport PlaceHolder, { PlaceHolderTypes } from '../../../../ui/PlaceHolder';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport { compareMessagesForGrouping } from '../../context/utils';\nimport Message from '../Message';\nimport { RenderMessageProps } from '../../../../types';\nimport { isAboutSame } from '../../context/utils';\nimport uuidv4 from '../../../../utils/uuid';\n\nexport type MessageListProps = {\n renderMessage?: (props: RenderMessageProps) => React.ReactNode;\n renderPlaceholderEmpty?: () => React.ReactNode;\n renderCustomSeperator?: () => React.ReactNode;\n};\n\nconst SCROLL_REF_CLASS_NAME = '.sendbird-msg--scroll-ref';\n\nconst MessageList: React.FC<MessageListProps> = (props: MessageListProps) => {\n const {\n renderMessage,\n renderPlaceholderEmpty,\n renderCustomSeperator,\n } = props;\n const {\n allMessages,\n hasMorePrev,\n setInitialTimeStamp,\n setAnimatedMessageId,\n setHighLightedMessageId,\n useMessageGrouping,\n scrollRef,\n onScrollCallback,\n onScrollDownCallback,\n messagesDispatcher,\n messageActionTypes,\n currentGroupChannel,\n } = useChannel();\n const [scrollBottom, setScrollBottom] = useState(0);\n\n const onScroll = (e) => {\n const element = e.target;\n const {\n scrollTop,\n clientHeight,\n scrollHeight,\n } = element;\n\n if (scrollTop === 0) {\n if (!hasMorePrev) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll(SCROLL_REF_CLASS_NAME);\n const first = nodes && nodes[0];\n onScrollCallback(([messages]) => {\n if (messages) {\n // https://github.com/scabbiaza/react-scroll-position-on-updating-dom\n // Set block to nearest to prevent unexpected scrolling from outer components\n try {\n first.scrollIntoView({ block: \"start\", inline: \"nearest\" });\n } catch (error) {\n //\n }\n }\n });\n }\n\n if (isAboutSame(clientHeight + scrollTop, scrollHeight, 10)) {\n onScrollDownCallback(([messages]) => {\n if (messages) {\n try {\n element.scrollTop = scrollHeight - clientHeight;\n } catch (error) {\n //\n }\n }\n });\n }\n\n // save the lastest scroll bottom value\n if (scrollRef?.current) {\n const current = scrollRef?.current;\n setScrollBottom(current.scrollHeight - current.scrollTop - current.offsetHeight)\n }\n\n // do this later\n setTimeout(() => {\n // mark as read if scroll is at end\n if (clientHeight + scrollTop === scrollHeight) {\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n payload: { channel: currentGroupChannel },\n });\n currentGroupChannel.markAsRead();\n }\n }, 500);\n };\n\n const onClickScrollBot = () => {\n setInitialTimeStamp?.(null);\n setAnimatedMessageId?.(null);\n setHighLightedMessageId?.(null);\n if (scrollRef?.current?.scrollTop) {\n scrollRef.current.scrollTop = scrollRef?.current?.scrollHeight - scrollRef?.current?.offsetHeight;\n }\n };\n\n if (allMessages.length < 1) {\n return (\n <>\n {\n renderPlaceholderEmpty?.() || (\n <PlaceHolder\n className=\"sendbird-conversation__no-messages\"\n type={PlaceHolderTypes.NO_MESSAGES}\n />)\n }\n </>\n );\n }\n return (\n <div className=\"sendbird-conversation__messages\">\n <div className=\"sendbird-conversation__scroll-container\">\n <div className=\"sendbird-conversation__padding\" />\n <div\n className=\"sendbird-conversation__messages-padding\"\n ref={scrollRef}\n onScroll={onScroll}\n >\n {\n allMessages.map(\n (m, idx) => {\n const previousMessage = allMessages[idx - 1];\n const nextMessage = allMessages[idx + 1];\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, m, nextMessage)\n : [false, false];\n const previousMessageCreatedAt = previousMessage?.createdAt;\n const currentCreatedAt = m.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeparator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n\n const handleScroll = () => {\n const current = scrollRef?.current;\n if (current) {\n const bottom = current.scrollHeight - current.scrollTop - current.offsetHeight;\n if (scrollBottom < bottom) {\n current.scrollTop += bottom - scrollBottom;\n }\n }\n }\n\n return (\n <Message\n handleScroll={handleScroll}\n renderMessage={renderMessage}\n message={m}\n hasSeparator={hasSeparator}\n chainTop={chainTop}\n chainBottom={chainBottom}\n renderCustomSeperator={renderCustomSeperator}\n key={m?.messageId + uuidv4()}\n />\n )\n },\n )\n }\n </div>\n </div>\n {\n // This flag is an unmatched variable\n (scrollBottom > 1) && (\n <div\n className=\"sendbird-conversation__scroll-bottom-button\"\n onClick={onClickScrollBot}\n onKeyDown={onClickScrollBot}\n tabIndex={0}\n role=\"button\"\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.CHEVRON_DOWN}\n fillColor={IconColors.PRIMARY}\n />\n </div>\n )\n }\n </div>\n );\n};\n\nexport default MessageList;\n"],"names":["SCROLL_REF_CLASS_NAME","MessageList","props","renderMessage","renderPlaceholderEmpty","renderCustomSeperator","_a","useChannel","allMessages","hasMorePrev","setInitialTimeStamp","setAnimatedMessageId","setHighLightedMessageId","useMessageGrouping","scrollRef","onScrollCallback","onScrollDownCallback","messagesDispatcher","messageActionTypes","currentGroupChannel","_b","useState","scrollBottom","setScrollBottom","onScroll","e","element","target","scrollTop","clientHeight","scrollHeight","nodes","current","querySelectorAll","first_1","messages","scrollIntoView","block","inline","error","isAboutSame","offsetHeight","setTimeout","type","MARK_AS_READ","payload","channel","markAsRead","onClickScrollBot","length","React","PlaceHolderTypes","NO_MESSAGES","map","m","idx","previousMessage","nextMessage","compareMessagesForGrouping","chainTop","chainBottom","previousMessageCreatedAt","createdAt","currentCreatedAt","hasSeparator","isSameDay","handleScroll","bottom","messageId","uuidv4","IconTypes","CHEVRON_DOWN","IconColors","PRIMARY"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessageList.js","sources":["../../../src/smart-components/Channel/components/MessageList/index.tsx"],"sourcesContent":["import './message-list.scss';\n\nimport React, { useState, useMemo } from 'react';\nimport isSameDay from 'date-fns/isSameDay';\n\nimport { useChannel } from '../../context/ChannelProvider';\nimport PlaceHolder, { PlaceHolderTypes } from '../../../../ui/PlaceHolder';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport { compareMessagesForGrouping } from '../../context/utils';\nimport Message from '../Message';\nimport { RenderMessageProps } from '../../../../types';\nimport { isAboutSame } from '../../context/utils';\nimport uuidv4 from '../../../../utils/uuid';\n\nexport type MessageListProps = {\n renderMessage?: (props: RenderMessageProps) => React.ReactNode;\n renderPlaceholderEmpty?: () => React.ReactNode;\n renderCustomSeperator?: () => React.ReactNode;\n};\n\nconst SCROLL_REF_CLASS_NAME = '.sendbird-msg--scroll-ref';\n\nconst MessageList: React.FC<MessageListProps> = (props: MessageListProps) => {\n const {\n renderMessage,\n renderPlaceholderEmpty,\n renderCustomSeperator,\n } = props;\n const {\n allMessages,\n hasMorePrev,\n setInitialTimeStamp,\n setAnimatedMessageId,\n setHighLightedMessageId,\n useMessageGrouping,\n scrollRef,\n onScrollCallback,\n onScrollDownCallback,\n messagesDispatcher,\n messageActionTypes,\n currentGroupChannel,\n } = useChannel();\n const [scrollBottom, setScrollBottom] = useState(0);\n\n const onScroll = (e) => {\n const element = e.target;\n const {\n scrollTop,\n clientHeight,\n scrollHeight,\n } = element;\n\n if (scrollTop === 0) {\n if (!hasMorePrev) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll(SCROLL_REF_CLASS_NAME);\n const first = nodes && nodes[0];\n onScrollCallback(([messages]) => {\n if (messages) {\n // https://github.com/scabbiaza/react-scroll-position-on-updating-dom\n // Set block to nearest to prevent unexpected scrolling from outer components\n try {\n first.scrollIntoView({ block: \"start\", inline: \"nearest\" });\n } catch (error) {\n //\n }\n }\n });\n }\n\n if (isAboutSame(clientHeight + scrollTop, scrollHeight, 10)) {\n onScrollDownCallback(([messages]) => {\n if (messages) {\n try {\n element.scrollTop = scrollHeight - clientHeight;\n } catch (error) {\n //\n }\n }\n });\n }\n\n // save the lastest scroll bottom value\n if (scrollRef?.current) {\n const current = scrollRef?.current;\n setScrollBottom(current.scrollHeight - current.scrollTop - current.offsetHeight)\n }\n\n // do this later\n setTimeout(() => {\n // mark as read if scroll is at end\n if (clientHeight + scrollTop === scrollHeight) {\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n payload: { channel: currentGroupChannel },\n });\n currentGroupChannel.markAsRead();\n }\n }, 500);\n };\n\n const onClickScrollBot = () => {\n setInitialTimeStamp?.(null);\n setAnimatedMessageId?.(null);\n setHighLightedMessageId?.(null);\n if (scrollRef?.current?.scrollTop) {\n scrollRef.current.scrollTop = scrollRef?.current?.scrollHeight - scrollRef?.current?.offsetHeight;\n }\n };\n\n // Because every message components are re-rendered everytime by every scroll events\n const memoizedAllMessages = useMemo(() => {\n return (\n allMessages.map((m, idx) => {\n const previousMessage = allMessages[idx - 1];\n const nextMessage = allMessages[idx + 1];\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, m, nextMessage)\n : [false, false];\n const previousMessageCreatedAt = previousMessage?.createdAt;\n const currentCreatedAt = m.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeparator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n\n const handleScroll = () => {\n const current = scrollRef?.current;\n if (current) {\n const bottom = current.scrollHeight - current.scrollTop - current.offsetHeight;\n if (scrollBottom < bottom) {\n current.scrollTop += bottom - scrollBottom;\n }\n }\n }\n\n return (\n <Message\n handleScroll={handleScroll}\n renderMessage={renderMessage}\n message={m}\n hasSeparator={hasSeparator}\n chainTop={chainTop}\n chainBottom={chainBottom}\n renderCustomSeperator={renderCustomSeperator}\n key={m.messageId + uuidv4()}\n />\n );\n })\n );\n }, [allMessages]);\n\n if (allMessages.length < 1) {\n return (\n <>\n {\n renderPlaceholderEmpty?.() || (\n <PlaceHolder\n className=\"sendbird-conversation__no-messages\"\n type={PlaceHolderTypes.NO_MESSAGES}\n />)\n }\n </>\n );\n }\n return (\n <div className=\"sendbird-conversation__messages\">\n <div className=\"sendbird-conversation__scroll-container\">\n <div className=\"sendbird-conversation__padding\" />\n <div\n className=\"sendbird-conversation__messages-padding\"\n ref={scrollRef}\n onScroll={onScroll}\n >\n {memoizedAllMessages}\n </div>\n </div>\n {\n // This flag is an unmatched variable\n (scrollBottom > 1) && (\n <div\n className=\"sendbird-conversation__scroll-bottom-button\"\n onClick={onClickScrollBot}\n onKeyDown={onClickScrollBot}\n tabIndex={0}\n role=\"button\"\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.CHEVRON_DOWN}\n fillColor={IconColors.PRIMARY}\n />\n </div>\n )\n }\n </div>\n );\n};\n\nexport default MessageList;\n"],"names":["SCROLL_REF_CLASS_NAME","MessageList","props","renderMessage","renderPlaceholderEmpty","renderCustomSeperator","_a","useChannel","allMessages","hasMorePrev","setInitialTimeStamp","setAnimatedMessageId","setHighLightedMessageId","useMessageGrouping","scrollRef","onScrollCallback","onScrollDownCallback","messagesDispatcher","messageActionTypes","currentGroupChannel","_b","useState","scrollBottom","setScrollBottom","onScroll","e","element","target","scrollTop","clientHeight","scrollHeight","nodes","current","querySelectorAll","first_1","messages","scrollIntoView","block","inline","error","isAboutSame","offsetHeight","setTimeout","type","MARK_AS_READ","payload","channel","markAsRead","onClickScrollBot","memoizedAllMessages","useMemo","map","m","idx","previousMessage","nextMessage","compareMessagesForGrouping","chainTop","chainBottom","previousMessageCreatedAt","createdAt","currentCreatedAt","hasSeparator","isSameDay","handleScroll","bottom","React","messageId","uuidv4","length","PlaceHolderTypes","NO_MESSAGES","IconTypes","CHEVRON_DOWN","IconColors","PRIMARY"],"mappings":"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"}
|
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
import React__default, { useContext } from 'react';
|
|
2
2
|
import Modal from '../../ui/Modal.js';
|
|
3
|
-
import { a as ButtonTypes } from '../../index-
|
|
4
|
-
import { a as LocalizationContext } from '../../LocalizationContext-
|
|
5
|
-
import { u as useChannel } from '../../ChannelProvider-
|
|
3
|
+
import { a as ButtonTypes } from '../../index-41a6f4f2.js';
|
|
4
|
+
import { a as LocalizationContext } from '../../LocalizationContext-b021af8f.js';
|
|
5
|
+
import { u as useChannel } from '../../ChannelProvider-d5126903.js';
|
|
6
6
|
import 'prop-types';
|
|
7
7
|
import 'react-dom';
|
|
8
|
-
import '../../index-
|
|
8
|
+
import '../../index-1fd114b0.js';
|
|
9
9
|
import '../../ui/IconButton.js';
|
|
10
|
-
import '../../_rollupPluginBabelHelpers-
|
|
10
|
+
import '../../_rollupPluginBabelHelpers-8e4fae98.js';
|
|
11
11
|
import '../../ui/Icon.js';
|
|
12
|
-
import '../../index-
|
|
13
|
-
import '../../stringSet-
|
|
14
|
-
import '../../utils-
|
|
15
|
-
import '../../index-
|
|
16
|
-
import '../../UserProfileContext-
|
|
12
|
+
import '../../index-a611bd38.js';
|
|
13
|
+
import '../../stringSet-91746bf1.js';
|
|
14
|
+
import '../../utils-9ef11656.js';
|
|
15
|
+
import '../../index-353f13f3.js';
|
|
16
|
+
import '../../UserProfileContext-daa99f9b.js';
|
|
17
17
|
import '../../useSendbirdStateContext.js';
|
|
18
18
|
import '../../withSendBird.js';
|
|
19
|
-
import '../../index-
|
|
20
|
-
import '../../topics-
|
|
21
|
-
import '../../index-
|
|
22
|
-
import '../../tslib.es6-
|
|
23
|
-
import '../../compareIds-
|
|
24
|
-
import '../../
|
|
19
|
+
import '../../index-4a59a866.js';
|
|
20
|
+
import '../../topics-17d99dd6.js';
|
|
21
|
+
import '../../index-ad4c9e58.js';
|
|
22
|
+
import '../../tslib.es6-83aa13f5.js';
|
|
23
|
+
import '../../compareIds-48d87cc5.js';
|
|
24
|
+
import '../../const-3f63e129.js';
|
|
25
|
+
import '../../uuid-6d14d007.js';
|
|
25
26
|
import '../../ui/ContextMenu.js';
|
|
26
27
|
import '../../ui/SortByRow.js';
|
|
27
28
|
import '../../ui/ReactionButton.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoveMessageModal.js","sources":["../../../src/smart-components/Channel/components/RemoveMessageModal.tsx"],"sourcesContent":["import React, { useContext } from 'react';\n\nimport Modal from '../../../ui/Modal';\nimport { ButtonTypes } from '../../../ui/Button';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { useChannel } from '../context/ChannelProvider';\nimport { EveryMessage } from '../../../types';\n\nexport interface RemoveMessageProps {\n onCancel: () => void;\n message: EveryMessage;\n}\n\nconst RemoveMessage: React.FC<RemoveMessageProps> = (props: RemoveMessageProps) => {\n const {\n onCancel,\n message,\n } = props;\n const { stringSet } = useContext(LocalizationContext);\n const {\n deleteMessage,\n } = useChannel();\n return (\n <Modal\n type={ButtonTypes.DANGER}\n disabled={message?.threadInfo?.replyCount > 0}\n onCancel={onCancel}\n onSubmit={() => { deleteMessage(message).then(() => {\n onCancel();\n }) }}\n submitText={stringSet.MESSAGE_MENU__DELETE}\n titleText={stringSet.MODAL__DELETE_MESSAGE__TITLE}\n />\n );\n};\n\nexport default RemoveMessage;\n"],"names":["RemoveMessage","props","onCancel","message","stringSet","useContext","LocalizationContext","deleteMessage","useChannel","React","ButtonTypes","DANGER","threadInfo","replyCount","then","MESSAGE_MENU__DELETE","MODAL__DELETE_MESSAGE__TITLE"],"mappings":"
|
|
1
|
+
{"version":3,"file":"RemoveMessageModal.js","sources":["../../../src/smart-components/Channel/components/RemoveMessageModal.tsx"],"sourcesContent":["import React, { useContext } from 'react';\n\nimport Modal from '../../../ui/Modal';\nimport { ButtonTypes } from '../../../ui/Button';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { useChannel } from '../context/ChannelProvider';\nimport { EveryMessage } from '../../../types';\n\nexport interface RemoveMessageProps {\n onCancel: () => void;\n message: EveryMessage;\n}\n\nconst RemoveMessage: React.FC<RemoveMessageProps> = (props: RemoveMessageProps) => {\n const {\n onCancel,\n message,\n } = props;\n const { stringSet } = useContext(LocalizationContext);\n const {\n deleteMessage,\n } = useChannel();\n return (\n <Modal\n type={ButtonTypes.DANGER}\n disabled={message?.threadInfo?.replyCount > 0}\n onCancel={onCancel}\n onSubmit={() => { deleteMessage(message).then(() => {\n onCancel();\n }) }}\n submitText={stringSet.MESSAGE_MENU__DELETE}\n titleText={stringSet.MODAL__DELETE_MESSAGE__TITLE}\n />\n );\n};\n\nexport default RemoveMessage;\n"],"names":["RemoveMessage","props","onCancel","message","stringSet","useContext","LocalizationContext","deleteMessage","useChannel","React","ButtonTypes","DANGER","threadInfo","replyCount","then","MESSAGE_MENU__DELETE","MODAL__DELETE_MESSAGE__TITLE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAaMA,aAAa,GAAiC,SAA9CA,aAA8C,CAACC,KAAD;;;AAEhD,MAAAC,QAAQ,GAEND,KAAK,SAFP;AAAA,MACAE,OAAO,GACLF,KAAK,QAFP;AAGM,MAAAG,SAAS,GAAKC,UAAU,CAACC,mBAAD,CAAV,UAAd;AAEN,MAAAC,aAAa,GACXC,UAAU,gBADZ;AAEF,sBACEC,6BAAC,KAAD;AACE,IAAA,IAAI,EAAEC,WAAW,CAACC,MADpB;AAEE,IAAA,QAAQ,EAAE,CAAA,MAAAR,OAAO,SAAP,IAAAA,OAAO,WAAP,SAAA,GAAAA,OAAO,CAAES,UAAT,UAAA,iBAAA,SAAA,MAAqBC,UAArB,IAAkC,CAF9C;AAGE,IAAA,QAAQ,EAAEX,QAHZ;AAIE,IAAA,QAAQ,EAAE;AAAQK,MAAAA,aAAa,CAACJ,OAAD,CAAb,CAAuBW,IAAvB,CAA4B;AAC5CZ,QAAAA,QAAQ;AACT,OAFiB;AAEd,KANN;AAOE,IAAA,UAAU,EAAEE,SAAS,CAACW,oBAPxB;AAQE,IAAA,SAAS,EAAEX,SAAS,CAACY;AARvB,IADF;AAYD;;;;"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import React__default, { useRef, useContext, useEffect, useMemo, useState } from 'react';
|
|
2
|
+
import { L as Label, a as LabelTypography, b as LabelColors } from '../../index-a611bd38.js';
|
|
3
|
+
import Icon, { IconTypes, IconColors } from '../../ui/Icon.js';
|
|
4
|
+
import Avatar from '../../ui/Avatar.js';
|
|
5
|
+
import { a as LocalizationContext } from '../../LocalizationContext-b021af8f.js';
|
|
6
|
+
import { u as useChannel } from '../../ChannelProvider-d5126903.js';
|
|
7
|
+
import useSendbirdStateContext from '../../useSendbirdStateContext.js';
|
|
8
|
+
import { U as USER_MENTION_TEMP_CHAR, M as MAX_USER_MENTION_COUNT, a as MAX_USER_SUGGESTION_COUNT } from '../../const-3f63e129.js';
|
|
9
|
+
import { M as MessageInputKeys } from '../../const-09c22c50.js';
|
|
10
|
+
import '../../_rollupPluginBabelHelpers-8e4fae98.js';
|
|
11
|
+
import 'prop-types';
|
|
12
|
+
import '../../stringSet-91746bf1.js';
|
|
13
|
+
import '../../tslib.es6-83aa13f5.js';
|
|
14
|
+
import '../../ui/ImageRenderer.js';
|
|
15
|
+
import '../../uuid-6d14d007.js';
|
|
16
|
+
import '../../index-353f13f3.js';
|
|
17
|
+
import '../../UserProfileContext-daa99f9b.js';
|
|
18
|
+
import '../../index-4a59a866.js';
|
|
19
|
+
import '../../topics-17d99dd6.js';
|
|
20
|
+
import '../../index-ad4c9e58.js';
|
|
21
|
+
import '../../compareIds-48d87cc5.js';
|
|
22
|
+
import '../../ui/ContextMenu.js';
|
|
23
|
+
import 'react-dom';
|
|
24
|
+
import '../../ui/SortByRow.js';
|
|
25
|
+
import '../../ui/ReactionButton.js';
|
|
26
|
+
import '../../withSendBird.js';
|
|
27
|
+
|
|
28
|
+
function SuggestedUserMentionItem(props) {
|
|
29
|
+
var member = props.member,
|
|
30
|
+
_a = props.isFocused,
|
|
31
|
+
isFocused = _a === void 0 ? false : _a,
|
|
32
|
+
onClick = props.onClick,
|
|
33
|
+
onMouseOver = props.onMouseOver,
|
|
34
|
+
renderUserMentionItem = props.renderUserMentionItem;
|
|
35
|
+
var scrollRef = useRef(null);
|
|
36
|
+
var _b = useContext(LocalizationContext).stringSet,
|
|
37
|
+
stringSet = _b === void 0 ? {} : _b;
|
|
38
|
+
useEffect(function () {
|
|
39
|
+
var _a;
|
|
40
|
+
|
|
41
|
+
if (isFocused) {
|
|
42
|
+
(_a = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView({
|
|
43
|
+
block: 'center',
|
|
44
|
+
inline: 'center'
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}, [isFocused]);
|
|
48
|
+
var customMentionItem = useMemo(function () {
|
|
49
|
+
if (renderUserMentionItem) {
|
|
50
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
51
|
+
className: "sendbird-mention-suggest-list__user-item",
|
|
52
|
+
onClick: onClick,
|
|
53
|
+
onMouseOver: onMouseOver,
|
|
54
|
+
key: member.nickname,
|
|
55
|
+
ref: scrollRef
|
|
56
|
+
}, renderUserMentionItem({
|
|
57
|
+
user: member
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
}, [renderUserMentionItem]);
|
|
61
|
+
|
|
62
|
+
if (customMentionItem) {
|
|
63
|
+
return customMentionItem;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
67
|
+
className: "sendbird-mention-suggest-list__user-item " + (isFocused ? 'focused' : ''),
|
|
68
|
+
onClick: onClick,
|
|
69
|
+
onMouseOver: onMouseOver,
|
|
70
|
+
key: member.nickname,
|
|
71
|
+
ref: scrollRef
|
|
72
|
+
}, /*#__PURE__*/React__default.createElement(Avatar, {
|
|
73
|
+
className: "sendbird-mention-suggest-list__user-item__avatar",
|
|
74
|
+
src: member === null || member === void 0 ? void 0 : member.profileUrl,
|
|
75
|
+
alt: "user-profile",
|
|
76
|
+
width: "24px",
|
|
77
|
+
height: "24px"
|
|
78
|
+
}), /*#__PURE__*/React__default.createElement(Label, {
|
|
79
|
+
className: "sendbird-mention-suggest-list__user-item__nickname",
|
|
80
|
+
type: LabelTypography.SUBTITLE_2,
|
|
81
|
+
color: (member === null || member === void 0 ? void 0 : member.nickname) ? LabelColors.ONBACKGROUND_1 : LabelColors.ONBACKGROUND_3
|
|
82
|
+
}, (member === null || member === void 0 ? void 0 : member.nickname) || (stringSet === null || stringSet === void 0 ? void 0 : stringSet.MENTION_NAME__NO_NAME)), /*#__PURE__*/React__default.createElement(Label, {
|
|
83
|
+
className: "sendbird-mention-suggest-list__user-item__user-id",
|
|
84
|
+
type: LabelTypography.SUBTITLE_2,
|
|
85
|
+
color: LabelColors.ONBACKGROUND_2
|
|
86
|
+
}, member === null || member === void 0 ? void 0 : member.userId));
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
var DEBOUNCING_TIME = 300;
|
|
90
|
+
|
|
91
|
+
function SuggestedMentionList(props) {
|
|
92
|
+
var _a, _b, _c;
|
|
93
|
+
|
|
94
|
+
var _d = props.targetNickname,
|
|
95
|
+
targetNickname = _d === void 0 ? '' : _d,
|
|
96
|
+
// memberListQuery,
|
|
97
|
+
onUserItemClick = props.onUserItemClick,
|
|
98
|
+
onFocusItemChange = props.onFocusItemChange,
|
|
99
|
+
onFetchUsers = props.onFetchUsers,
|
|
100
|
+
renderUserMentionItem = props.renderUserMentionItem,
|
|
101
|
+
inputEvent = props.inputEvent,
|
|
102
|
+
_e = props.ableAddMention,
|
|
103
|
+
ableAddMention = _e === void 0 ? true : _e,
|
|
104
|
+
_f = props.maxMentionCount,
|
|
105
|
+
maxMentionCount = _f === void 0 ? MAX_USER_MENTION_COUNT : _f,
|
|
106
|
+
_g = props.maxSuggestionCount,
|
|
107
|
+
maxSuggestionCount = _g === void 0 ? MAX_USER_SUGGESTION_COUNT : _g;
|
|
108
|
+
|
|
109
|
+
var _h = useSendbirdStateContext(),
|
|
110
|
+
config = _h.config,
|
|
111
|
+
stores = _h.stores;
|
|
112
|
+
|
|
113
|
+
var logger = config.logger;
|
|
114
|
+
var currentUserId = ((_c = (_b = (_a = stores === null || stores === void 0 ? void 0 : stores.sdkStore) === null || _a === void 0 ? void 0 : _a.sdk) === null || _b === void 0 ? void 0 : _b.currentUser) === null || _c === void 0 ? void 0 : _c.userId) || '';
|
|
115
|
+
var currentGroupChannel = useChannel().currentGroupChannel;
|
|
116
|
+
var stringSet = useContext(LocalizationContext).stringSet;
|
|
117
|
+
|
|
118
|
+
var _j = useState(null),
|
|
119
|
+
timer = _j[0],
|
|
120
|
+
setTimer = _j[1];
|
|
121
|
+
|
|
122
|
+
var _k = useState(''),
|
|
123
|
+
searchString = _k[0],
|
|
124
|
+
setSearchString = _k[1];
|
|
125
|
+
|
|
126
|
+
var _l = useState(''),
|
|
127
|
+
lastSearchString = _l[0],
|
|
128
|
+
setLastSearchString = _l[1];
|
|
129
|
+
|
|
130
|
+
var _m = useState(null),
|
|
131
|
+
currentUser = _m[0],
|
|
132
|
+
setCurrentUser = _m[1];
|
|
133
|
+
|
|
134
|
+
var _o = useState(null),
|
|
135
|
+
mouseOverUser = _o[0],
|
|
136
|
+
setMouseOverUser = _o[1];
|
|
137
|
+
|
|
138
|
+
var _p = useState([]),
|
|
139
|
+
currentMemberList = _p[0],
|
|
140
|
+
setCurrentMemberList = _p[1];
|
|
141
|
+
|
|
142
|
+
useEffect(function () {
|
|
143
|
+
clearTimeout(timer);
|
|
144
|
+
setTimer(setTimeout(function () {
|
|
145
|
+
setSearchString(targetNickname);
|
|
146
|
+
}, DEBOUNCING_TIME));
|
|
147
|
+
}, [targetNickname]);
|
|
148
|
+
useEffect(function () {
|
|
149
|
+
if ((inputEvent === null || inputEvent === void 0 ? void 0 : inputEvent.key) === MessageInputKeys.Enter) {
|
|
150
|
+
if (currentMemberList.length > 0) {
|
|
151
|
+
onUserItemClick(currentUser);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
if ((inputEvent === null || inputEvent === void 0 ? void 0 : inputEvent.key) === MessageInputKeys.ArrowUp) {
|
|
156
|
+
var currentUserIndex = currentMemberList.findIndex(function (member) {
|
|
157
|
+
return (member === null || member === void 0 ? void 0 : member.userId) === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId);
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
if (0 < currentUserIndex) {
|
|
161
|
+
setCurrentUser(currentMemberList[currentUserIndex - 1]);
|
|
162
|
+
onFocusItemChange(currentMemberList[currentUserIndex - 1]);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
if ((inputEvent === null || inputEvent === void 0 ? void 0 : inputEvent.key) === MessageInputKeys.ArrowDown) {
|
|
167
|
+
var currentUserIndex = currentMemberList.findIndex(function (member) {
|
|
168
|
+
return (member === null || member === void 0 ? void 0 : member.userId) === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId);
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
if (currentUserIndex < currentMemberList.length - 1) {
|
|
172
|
+
setCurrentUser(currentMemberList[currentUserIndex + 1]);
|
|
173
|
+
onFocusItemChange(currentMemberList[currentUserIndex + 1]);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}, [inputEvent]);
|
|
177
|
+
/* Fetch member list */
|
|
178
|
+
|
|
179
|
+
useEffect(function () {
|
|
180
|
+
if (!currentGroupChannel || !currentGroupChannel.createMemberListQuery || !ableAddMention) {
|
|
181
|
+
logger.warning('SuggestedMentionList: Creating member list query failed');
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
if (lastSearchString && searchString.indexOf(lastSearchString) === 0 && currentMemberList.length === 0) {
|
|
186
|
+
// Don't need to request query again
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
var query = currentGroupChannel.createMemberListQuery();
|
|
191
|
+
query.limit = maxSuggestionCount;
|
|
192
|
+
query.nicknameStartsWithFilter = searchString.slice(USER_MENTION_TEMP_CHAR.length); // Add member list query for customization
|
|
193
|
+
|
|
194
|
+
query.next(function (memberList, error) {
|
|
195
|
+
if (error) {
|
|
196
|
+
logger.error('SuggestedMentionList: Fetching member list failed', error);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
if (memberList.length < 1) {
|
|
200
|
+
logger.info('SuggestedMentionList: Fetched member list is empty');
|
|
201
|
+
} else {
|
|
202
|
+
logger.info('SuggestedMentionList: Fetching member list succeeded', {
|
|
203
|
+
memberListQuery: query,
|
|
204
|
+
memberList: memberList
|
|
205
|
+
});
|
|
206
|
+
setCurrentUser(memberList[0]);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
setLastSearchString(searchString);
|
|
210
|
+
onFetchUsers(memberList);
|
|
211
|
+
setCurrentMemberList(memberList.filter(function (member) {
|
|
212
|
+
return currentUserId !== (member === null || member === void 0 ? void 0 : member.userId);
|
|
213
|
+
}));
|
|
214
|
+
});
|
|
215
|
+
}, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url, searchString]);
|
|
216
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
217
|
+
className: "sendbird-mention-suggest-list",
|
|
218
|
+
onMouseLeave: function onMouseLeave() {
|
|
219
|
+
if (mouseOverUser) {
|
|
220
|
+
setCurrentUser(mouseOverUser);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}, ableAddMention && (currentMemberList === null || currentMemberList === void 0 ? void 0 : currentMemberList.map(function (member) {
|
|
224
|
+
return /*#__PURE__*/React__default.createElement(SuggestedUserMentionItem, {
|
|
225
|
+
key: member === null || member === void 0 ? void 0 : member.nickname,
|
|
226
|
+
member: member,
|
|
227
|
+
isFocused: (member === null || member === void 0 ? void 0 : member.userId) === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId),
|
|
228
|
+
onClick: function onClick() {
|
|
229
|
+
onUserItemClick(member);
|
|
230
|
+
},
|
|
231
|
+
onMouseOver: function onMouseOver() {
|
|
232
|
+
setMouseOverUser(member);
|
|
233
|
+
},
|
|
234
|
+
renderUserMentionItem: renderUserMentionItem
|
|
235
|
+
});
|
|
236
|
+
})), !ableAddMention && /*#__PURE__*/React__default.createElement("div", {
|
|
237
|
+
className: "sendbird-mention-suggest-list__notice-item"
|
|
238
|
+
}, /*#__PURE__*/React__default.createElement(Icon, {
|
|
239
|
+
className: "sendbird-mention-suggest-list__notice-item__icon",
|
|
240
|
+
type: IconTypes.INFO,
|
|
241
|
+
fillColor: IconColors.ON_BACKGROUND_2
|
|
242
|
+
}), /*#__PURE__*/React__default.createElement(Label, {
|
|
243
|
+
className: "sendbird-mention-suggest-list__notice-item__text",
|
|
244
|
+
type: LabelTypography.SUBTITLE_2,
|
|
245
|
+
color: LabelColors.ONBACKGROUND_2
|
|
246
|
+
}, stringSet.MENTION_COUNT__OVER_LIMIT.replace('%d', maxMentionCount))));
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
export { SuggestedMentionList as default };
|
|
250
|
+
//# sourceMappingURL=SuggestedMentionList.js.map
|