@sendbird/uikit-react 3.0.0-rc.1 → 3.0.1
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 +40 -33
- package/App.js.map +1 -1
- package/CHANGELOG.md +17 -2
- package/Channel/components/ChannelHeader.js +17 -17
- package/Channel/components/ChannelUI.js +24 -25
- package/Channel/components/ChannelUI.js.map +1 -1
- package/Channel/components/FileViewer.js +16 -16
- package/Channel/components/FrozenNotification.js +5 -5
- package/Channel/components/Message.js +21 -22
- package/Channel/components/Message.js.map +1 -1
- package/Channel/components/MessageInput.js +18 -19
- package/Channel/components/MessageInput.js.map +1 -1
- package/Channel/components/MessageList.js +23 -24
- package/Channel/components/MessageList.js.map +1 -1
- package/Channel/components/RemoveMessageModal.js +19 -19
- package/Channel/components/SuggestedMentionList.js +17 -17
- package/Channel/components/TypingIndicator.js +19 -17
- package/Channel/components/TypingIndicator.js.map +1 -1
- package/Channel/components/UnreadCount.js +5 -5
- package/Channel/context.js +15 -15
- package/Channel.js +24 -25
- 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 +28 -28
- package/ChannelList/components/ChannelPreview.js +21 -21
- package/ChannelList/components/ChannelPreviewAction.js +16 -16
- package/ChannelList/context.js +10 -10
- package/ChannelList.js +28 -28
- package/ChannelList.js.map +1 -1
- package/{ChannelListProvider-c3810392.js → ChannelListProvider-471abb8f.js} +9 -9
- package/{ChannelListProvider-c3810392.js.map → ChannelListProvider-471abb8f.js.map} +1 -1
- package/{ChannelProvider-03ec9238.js → ChannelProvider-01a680e0.js} +11 -11
- package/{ChannelProvider-03ec9238.js.map → ChannelProvider-01a680e0.js.map} +1 -1
- 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/ModerationPanel.js +15 -15
- package/ChannelSettings/components/UserListItem.js +12 -12
- package/ChannelSettings/components/UserPanel.js +14 -14
- package/ChannelSettings/context.js +3 -3
- package/ChannelSettings/context.js.map +1 -1
- package/ChannelSettings.js +18 -18
- package/CreateChannel/components/CreateChannelUI.js +21 -17
- package/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/CreateChannel/components/InviteUsers.js +17 -16
- package/CreateChannel/components/InviteUsers.js.map +1 -1
- package/CreateChannel/components/SelectChannelType.js +10 -10
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +14 -14
- package/{CreateChannelProvider-adb7afa8.js → CreateChannelProvider-efa959ed.js} +1 -1
- package/CreateChannelProvider-efa959ed.js.map +1 -0
- package/EditUserProfile/components/EditUserProfileUI.js +13 -13
- package/EditUserProfile.js +13 -13
- package/LICENSE +21 -0
- package/{LocalizationContext-0293a3fd.js → LocalizationContext-7f115178.js} +3 -3
- package/{LocalizationContext-0293a3fd.js.map → LocalizationContext-7f115178.js.map} +1 -1
- package/{MemberList-4e057ef8.js → MemberList-9863866e.js} +17 -16
- package/MemberList-9863866e.js.map +1 -0
- 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 +14 -14
- package/OpenChannel/components/OpenChannelInput.js +18 -19
- package/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessage.js +23 -24
- package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessageList.js +25 -26
- package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/OpenChannel/components/OpenChannelUI.js +25 -26
- package/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/OpenChannel/context.js +11 -11
- package/OpenChannel.js +25 -26
- package/OpenChannel.js.map +1 -1
- package/{OpenChannelProvider-0572862e.js → OpenChannelProvider-d11382d9.js} +9 -9
- package/{OpenChannelProvider-0572862e.js.map → OpenChannelProvider-d11382d9.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 +1 -1
- package/SendbirdProvider.js +25 -13
- package/SendbirdProvider.js.map +1 -1
- package/{UserProfileContext-bcfe2804.js → UserProfileContext-eccdbd50.js} +1 -1
- package/{UserProfileContext-bcfe2804.js.map → UserProfileContext-eccdbd50.js.map} +1 -1
- package/{__bundle-7dfccc8c-a0cba188.js → __bundle-7dfccc8c-62bd23b5.js} +1 -1
- package/{__bundle-7dfccc8c-a0cba188.js.map → __bundle-7dfccc8c-62bd23b5.js.map} +1 -1
- package/{_rollupPluginBabelHelpers-38569358.js → _rollupPluginBabelHelpers-2a8797d8.js} +1 -1
- package/{_rollupPluginBabelHelpers-38569358.js.map → _rollupPluginBabelHelpers-2a8797d8.js.map} +1 -1
- package/{actionTypes-c12e9c30.js → actionTypes-a992088f.js} +1 -1
- package/{actionTypes-c12e9c30.js.map → actionTypes-a992088f.js.map} +1 -1
- package/cjs/App.js +40 -33
- package/cjs/App.js.map +1 -1
- package/cjs/Channel/components/ChannelHeader.js +17 -17
- package/cjs/Channel/components/ChannelUI.js +24 -25
- package/cjs/Channel/components/ChannelUI.js.map +1 -1
- package/cjs/Channel/components/FileViewer.js +16 -16
- package/cjs/Channel/components/FrozenNotification.js +5 -5
- package/cjs/Channel/components/Message.js +21 -22
- package/cjs/Channel/components/Message.js.map +1 -1
- package/cjs/Channel/components/MessageInput.js +18 -19
- package/cjs/Channel/components/MessageInput.js.map +1 -1
- package/cjs/Channel/components/MessageList.js +23 -24
- package/cjs/Channel/components/MessageList.js.map +1 -1
- package/cjs/Channel/components/RemoveMessageModal.js +19 -19
- package/cjs/Channel/components/SuggestedMentionList.js +17 -17
- package/cjs/Channel/components/TypingIndicator.js +19 -17
- package/cjs/Channel/components/TypingIndicator.js.map +1 -1
- package/cjs/Channel/components/UnreadCount.js +5 -5
- package/cjs/Channel/context.js +15 -15
- package/cjs/Channel.js +24 -25
- 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 +28 -28
- package/cjs/ChannelList/components/ChannelPreview.js +21 -21
- package/cjs/ChannelList/components/ChannelPreviewAction.js +16 -16
- package/cjs/ChannelList/context.js +10 -10
- package/cjs/ChannelList.js +28 -28
- package/cjs/ChannelList.js.map +1 -1
- package/cjs/{ChannelListProvider-8f421c0d.js → ChannelListProvider-8632f526.js} +9 -9
- package/cjs/{ChannelListProvider-8f421c0d.js.map → ChannelListProvider-8632f526.js.map} +1 -1
- package/cjs/{ChannelProvider-397c5f03.js → ChannelProvider-5e683eb1.js} +11 -11
- package/cjs/{ChannelProvider-397c5f03.js.map → ChannelProvider-5e683eb1.js.map} +1 -1
- 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/ModerationPanel.js +15 -15
- package/cjs/ChannelSettings/components/UserListItem.js +12 -12
- package/cjs/ChannelSettings/components/UserPanel.js +14 -14
- package/cjs/ChannelSettings/context.js +3 -3
- package/cjs/ChannelSettings/context.js.map +1 -1
- package/cjs/ChannelSettings.js +18 -18
- package/cjs/CreateChannel/components/CreateChannelUI.js +21 -17
- package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/cjs/CreateChannel/components/InviteUsers.js +17 -16
- package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
- package/cjs/CreateChannel/components/SelectChannelType.js +10 -10
- package/cjs/CreateChannel/context.js +4 -4
- package/cjs/CreateChannel.js +14 -14
- package/cjs/{CreateChannelProvider-adb49afd.js → CreateChannelProvider-7f6cf793.js} +1 -1
- package/cjs/CreateChannelProvider-7f6cf793.js.map +1 -0
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +13 -13
- package/cjs/EditUserProfile.js +13 -13
- package/cjs/{LocalizationContext-af3a239a.js → LocalizationContext-0537da22.js} +3 -3
- package/cjs/{LocalizationContext-af3a239a.js.map → LocalizationContext-0537da22.js.map} +1 -1
- package/cjs/{MemberList-a507429a.js → MemberList-4efb8994.js} +17 -16
- package/cjs/MemberList-4efb8994.js.map +1 -0
- 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 +14 -14
- package/cjs/OpenChannel/components/OpenChannelInput.js +18 -19
- package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessage.js +23 -24
- package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +25 -26
- package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelUI.js +25 -26
- package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/cjs/OpenChannel/context.js +11 -11
- package/cjs/OpenChannel.js +25 -26
- package/cjs/OpenChannel.js.map +1 -1
- package/cjs/{OpenChannelProvider-e0ff3593.js → OpenChannelProvider-7969a8c0.js} +9 -9
- package/cjs/{OpenChannelProvider-e0ff3593.js.map → OpenChannelProvider-7969a8c0.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 +25 -13
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/{UserProfileContext-1a32d7da.js → UserProfileContext-e13859c2.js} +1 -1
- package/cjs/{UserProfileContext-1a32d7da.js.map → UserProfileContext-e13859c2.js.map} +1 -1
- package/cjs/{__bundle-7dfccc8c-3aa3a536.js → __bundle-7dfccc8c-d812ccd2.js} +1 -1
- package/cjs/{__bundle-7dfccc8c-3aa3a536.js.map → __bundle-7dfccc8c-d812ccd2.js.map} +1 -1
- package/cjs/{_rollupPluginBabelHelpers-1be0417a.js → _rollupPluginBabelHelpers-116d792d.js} +1 -1
- package/cjs/{_rollupPluginBabelHelpers-1be0417a.js.map → _rollupPluginBabelHelpers-116d792d.js.map} +1 -1
- package/cjs/{actionTypes-9635e2a1.js → actionTypes-ce9861e1.js} +1 -1
- package/cjs/{actionTypes-9635e2a1.js.map → actionTypes-ce9861e1.js.map} +1 -1
- package/cjs/{color-79441155.js → color-76e3ed0d.js} +1 -1
- package/cjs/{color-79441155.js.map → color-76e3ed0d.js.map} +1 -1
- package/cjs/{compareIds-9e929882.js → compareIds-d11fdea7.js} +1 -1
- package/cjs/{compareIds-9e929882.js.map → compareIds-d11fdea7.js.map} +1 -1
- package/cjs/{const-c45b3772.js → const-2da24989.js} +1 -1
- package/cjs/{const-c45b3772.js.map → const-2da24989.js.map} +1 -1
- package/cjs/{const-3ec42b99.js → const-a6cfa3dc.js} +1 -1
- package/cjs/{const-3ec42b99.js.map → const-a6cfa3dc.js.map} +1 -1
- package/cjs/{context-7f20c4fc.js → context-7d13e92d.js} +2 -2
- package/cjs/{context-7f20c4fc.js.map → context-7d13e92d.js.map} +1 -1
- package/cjs/dist/index.css +44 -44
- package/cjs/dist/index.css.map +1 -1
- package/cjs/{groupChannel-57828c97.js → groupChannel-3f4aaa32.js} +2 -2
- package/cjs/{groupChannel-57828c97.js.map → groupChannel-3f4aaa32.js.map} +1 -1
- package/cjs/{index-82b738a4.js → index-0207af7d.js} +4 -4
- package/cjs/{index-82b738a4.js.map → index-0207af7d.js.map} +1 -1
- package/cjs/{index-fddacd70.js → index-2596c9f9.js} +2 -2
- package/cjs/{index-fddacd70.js.map → index-2596c9f9.js.map} +1 -1
- package/cjs/{index-f3cc1992.js → index-2be8b3df.js} +2 -2
- package/cjs/{index-f3cc1992.js.map → index-2be8b3df.js.map} +1 -1
- package/cjs/{index-c3d974a8.js → index-41b5e18c.js} +1 -1
- package/cjs/{index-c3d974a8.js.map → index-41b5e18c.js.map} +1 -1
- package/cjs/{index-f21d728f.js → index-62b2f3b4.js} +2 -2
- package/cjs/{index-f21d728f.js.map → index-62b2f3b4.js.map} +1 -1
- package/cjs/{index-7b1f120b.js → index-691debed.js} +1 -1
- package/cjs/{index-7b1f120b.js.map → index-691debed.js.map} +1 -1
- package/cjs/{index-ebb83a37.js → index-86f7e77d.js} +3 -3
- package/cjs/{index-ebb83a37.js.map → index-86f7e77d.js.map} +1 -1
- package/cjs/{index-101e25b6.js → index-8e975b91.js} +3 -3
- package/cjs/{index-101e25b6.js.map → index-8e975b91.js.map} +1 -1
- package/cjs/{index-c4440bd2.js → index-a6cd696f.js} +4 -4
- package/cjs/{index-c4440bd2.js.map → index-a6cd696f.js.map} +1 -1
- package/cjs/{index-c42f8ea9.js → index-eb6344e9.js} +6 -6
- package/cjs/{index-c42f8ea9.js.map → index-eb6344e9.js.map} +1 -1
- package/cjs/index.js +35 -36
- package/cjs/index.js.map +1 -1
- package/cjs/{openChannel-19ee9ebe.js → openChannel-7272b85b.js} +2 -2
- package/cjs/{openChannel-19ee9ebe.js.map → openChannel-7272b85b.js.map} +1 -1
- package/cjs/{openChannelUtils-d4258320.js → openChannelUtils-cede8a88.js} +1 -1
- package/cjs/{openChannelUtils-d4258320.js.map → openChannelUtils-cede8a88.js.map} +1 -1
- package/cjs/sendbirdSelectors.js +2 -2
- package/cjs/{stringSet-ed353b6e.js → stringSet-2b4edf07.js} +1 -1
- package/cjs/{stringSet-ed353b6e.js.map → stringSet-2b4edf07.js.map} +1 -1
- package/cjs/{topics-1e190fcd.js → topics-b910c620.js} +1 -1
- package/cjs/{topics-1e190fcd.js.map → topics-b910c620.js.map} +1 -1
- package/cjs/{tslib.es6-4b07fef2.js → tslib.es6-9a5d5697.js} +1 -1
- package/cjs/{tslib.es6-4b07fef2.js.map → tslib.es6-9a5d5697.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/MentionLabel.js +11 -11
- package/cjs/ui/MessageContent.js +14 -14
- package/cjs/ui/MessageInput.js +5341 -14
- 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 +8 -8
- package/cjs/ui/Modal.js +8 -8
- package/cjs/ui/MutedAvatarOverlay.js +1 -1
- package/cjs/ui/OGMessageItemBody.js +11 -11
- 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 +15 -15
- package/cjs/ui/OpenchannelOGMessage.js +15 -15
- package/cjs/ui/OpenchannelThumbnailMessage.js +14 -14
- package/cjs/ui/OpenchannelUserMessage.js +15 -15
- package/cjs/ui/PlaceHolder.js +6 -6
- package/cjs/ui/QuoteMessage.js +7 -7
- package/cjs/ui/QuoteMessageInput.js +7 -7
- 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 +11 -11
- 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 +12 -12
- package/cjs/ui/UserProfile.js +10 -10
- package/cjs/ui/Word.js +45 -11
- package/cjs/ui/Word.js.map +1 -1
- package/cjs/useSendbirdStateContext.js +1 -1
- package/cjs/{utils-6ff87257.js → utils-15274d9b.js} +1 -1
- package/cjs/{utils-6ff87257.js.map → utils-15274d9b.js.map} +1 -1
- package/cjs/{utils-88672f3d.js → utils-4fadd220.js} +1 -1
- package/cjs/{utils-88672f3d.js.map → utils-4fadd220.js.map} +1 -1
- package/cjs/{utils-c15722aa.js → utils-b6bcd345.js} +1 -1
- package/cjs/{utils-c15722aa.js.map → utils-b6bcd345.js.map} +1 -1
- package/cjs/{uuid-c63c6c5a.js → uuid-de92c01b.js} +1 -1
- package/cjs/{uuid-c63c6c5a.js.map → uuid-de92c01b.js.map} +1 -1
- package/cjs/withSendbird.js +1 -1
- package/{color-8ef428b9.js → color-1727a3fb.js} +1 -1
- package/{color-8ef428b9.js.map → color-1727a3fb.js.map} +1 -1
- package/{compareIds-d0f57b59.js → compareIds-ccf594a3.js} +1 -1
- package/{compareIds-d0f57b59.js.map → compareIds-ccf594a3.js.map} +1 -1
- package/{const-da7e79d6.js → const-4674ec61.js} +1 -1
- package/{const-da7e79d6.js.map → const-4674ec61.js.map} +1 -1
- package/{const-c751cfe7.js → const-d3d5e7fc.js} +1 -1
- package/{const-c751cfe7.js.map → const-d3d5e7fc.js.map} +1 -1
- package/{context-64a89b1b.js → context-5db053f0.js} +2 -2
- package/{context-64a89b1b.js.map → context-5db053f0.js.map} +1 -1
- package/dist/index.css +44 -44
- package/dist/index.css.map +1 -1
- package/{groupChannel-45ccdf2b.js → groupChannel-9bc7ca19.js} +2 -2
- package/{groupChannel-45ccdf2b.js.map → groupChannel-9bc7ca19.js.map} +1 -1
- package/{index-03332d0e.js → index-04458193.js} +4 -4
- package/{index-03332d0e.js.map → index-04458193.js.map} +1 -1
- package/{index-f6405407.js → index-201c73a9.js} +1 -1
- package/{index-f6405407.js.map → index-201c73a9.js.map} +1 -1
- package/{index-b9a1f38d.js → index-33a103e9.js} +3 -3
- package/{index-b9a1f38d.js.map → index-33a103e9.js.map} +1 -1
- package/{index-e0ff03bb.js → index-4e2ac873.js} +2 -2
- package/{index-e0ff03bb.js.map → index-4e2ac873.js.map} +1 -1
- package/{index-244760b9.js → index-64b4e22e.js} +4 -4
- package/{index-244760b9.js.map → index-64b4e22e.js.map} +1 -1
- package/{index-6924378b.js → index-9570e69e.js} +1 -1
- package/{index-6924378b.js.map → index-9570e69e.js.map} +1 -1
- package/{index-f1c7b834.js → index-a355e1d8.js} +2 -2
- package/{index-f1c7b834.js.map → index-a355e1d8.js.map} +1 -1
- package/{index-87a997c3.js → index-b188a276.js} +6 -6
- package/{index-87a997c3.js.map → index-b188a276.js.map} +1 -1
- package/{index-c3d16dc1.js → index-e15303b6.js} +2 -2
- package/{index-c3d16dc1.js.map → index-e15303b6.js.map} +1 -1
- package/{index-5729e2f0.js → index-eeac3879.js} +3 -3
- package/{index-5729e2f0.js.map → index-eeac3879.js.map} +1 -1
- package/index.d.ts +10 -4
- package/index.js +35 -36
- package/index.js.map +1 -1
- package/{openChannel-a604a724.js → openChannel-a5d4b5d4.js} +2 -2
- package/{openChannel-a604a724.js.map → openChannel-a5d4b5d4.js.map} +1 -1
- package/{openChannelUtils-d9f15020.js → openChannelUtils-0ffa52be.js} +1 -1
- package/{openChannelUtils-d9f15020.js.map → openChannelUtils-0ffa52be.js.map} +1 -1
- package/package-lock.json +26318 -0
- package/package.json +1 -1
- package/sendbirdSelectors.js +2 -2
- package/{stringSet-6bcac8f5.js → stringSet-a6858154.js} +1 -1
- package/{stringSet-6bcac8f5.js.map → stringSet-a6858154.js.map} +1 -1
- package/{topics-997dc2ef.js → topics-58103dff.js} +1 -1
- package/{topics-997dc2ef.js.map → topics-58103dff.js.map} +1 -1
- package/{tslib.es6-528d1472.js → tslib.es6-28c0bd97.js} +1 -1
- package/{tslib.es6-528d1472.js.map → tslib.es6-28c0bd97.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/MentionLabel.js +11 -11
- package/ui/MessageContent.js +14 -14
- package/ui/MessageInput.js +5339 -11
- 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 +8 -8
- package/ui/Modal.js +8 -8
- package/ui/MutedAvatarOverlay.js +1 -1
- package/ui/OGMessageItemBody.js +11 -11
- package/ui/OpenChannelAdminMessage.js +4 -4
- package/ui/OpenChannelAvatar.js +7 -7
- package/ui/OpenchannelConversationHeader.js +7 -7
- package/ui/OpenchannelFileMessage.js +15 -15
- package/ui/OpenchannelOGMessage.js +15 -15
- package/ui/OpenchannelThumbnailMessage.js +14 -14
- package/ui/OpenchannelUserMessage.js +15 -15
- package/ui/PlaceHolder.js +6 -6
- package/ui/QuoteMessage.js +7 -7
- package/ui/QuoteMessageInput.js +7 -7
- 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 +11 -11
- 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 +12 -12
- package/ui/UserProfile.js +10 -10
- package/ui/Word.js +45 -11
- package/ui/Word.js.map +1 -1
- package/useSendbirdStateContext.js +1 -1
- package/{utils-d0e53d6f.js → utils-5477ddbc.js} +1 -1
- package/{utils-d0e53d6f.js.map → utils-5477ddbc.js.map} +1 -1
- package/{utils-91321bf8.js → utils-5fe76946.js} +1 -1
- package/{utils-91321bf8.js.map → utils-5fe76946.js.map} +1 -1
- package/{utils-77d4fd35.js → utils-e2f16b69.js} +1 -1
- package/{utils-77d4fd35.js.map → utils-e2f16b69.js.map} +1 -1
- package/{uuid-ae0ebd46.js → uuid-38ace415.js} +1 -1
- package/{uuid-ae0ebd46.js.map → uuid-38ace415.js.map} +1 -1
- package/withSendbird.js +1 -1
- package/CreateChannelProvider-adb7afa8.js.map +0 -1
- package/MemberList-4e057ef8.js.map +0 -1
- package/cjs/CreateChannelProvider-adb49afd.js.map +0 -1
- package/cjs/MemberList-a507429a.js.map +0 -1
- package/index.d.ts_bkup +0 -1883
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.js","sources":["../../../../src/smart-components/Channel/components/Message/index.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useLayoutEffect,\n} from 'react';\nimport type { FileMessage } from '@sendbird/chat/message';\nimport format from 'date-fns/format';\n\nimport SuggestedMentionList from '../SuggestedMentionList';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport { getClassName } from '../../../../utils';\nimport { isDisabledBecauseFrozen, isDisabledBecauseMuted } from '../../context/utils';\nimport { MAX_USER_MENTION_COUNT, MAX_USER_SUGGESTION_COUNT } from '../../context/const';\n\nimport DateSeparator from '../../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport MessageInput from '../../../../ui/MessageInput';\nimport MessageContent from '../../../../ui/MessageContent';\nimport FileViewer from '../FileViewer';\nimport RemoveMessageModal from '../RemoveMessageModal';\nimport { MessageInputKeys } from '../../../../ui/MessageInput/const';\nimport { EveryMessage, RenderMessageProps } from '../../../../types';\nimport { useLocalization } from '../../../../lib/LocalizationContext';\n\ntype MessageUIProps = {\n message: EveryMessage;\n hasSeparator?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n handleScroll: () => void;\n // for extending\n renderMessage?: (props: RenderMessageProps) => React.ReactElement;\n renderCustomSeparator?: () => React.ReactElement;\n renderEditInput?: () => React.ReactElement;\n renderMessageContent?: () => React.ReactElement;\n};\n\nconst Message = (props: MessageUIProps): React.FC<MessageUIProps> | React.ReactElement => {\n const {\n message,\n hasSeparator,\n chainTop,\n chainBottom,\n handleScroll,\n renderCustomSeparator,\n renderEditInput,\n renderMessage,\n renderMessageContent,\n } = props;\n\n const { dateLocale } = useLocalization();\n const globalStore = useSendbirdStateContext();\n const {\n userId,\n isOnline,\n isMentionEnabled,\n userMention,\n } = globalStore?.config;\n const maxUserMentionCount = userMention?.maxMentionCount || MAX_USER_MENTION_COUNT;\n const maxUserSuggestionCount = userMention?.maxSuggestionCount || MAX_USER_SUGGESTION_COUNT;\n\n const {\n initialized,\n currentGroupChannel,\n highLightedMessageId,\n setHighLightedMessageId,\n animatedMessageId,\n setAnimatedMessageId,\n updateMessage,\n scrollToMessage,\n replyType,\n isReactionEnabled,\n toggleReaction,\n emojiContainer,\n nicknamesMap,\n setQuoteMessage,\n resendMessage,\n renderUserMentionItem,\n } = useChannelContext();\n\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const [isAnimated, setIsAnimated] = useState(false);\n const [isHighlighted, setIsHighlighted] = useState(false);\n const [mentionNickname, setMentionNickname] = useState('');\n const [mentionedUsers, setMentionedUsers] = useState([]);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [messageInputEvent, setMessageInputEvent] = useState(null);\n const [selectedUser, setSelectedUser] = useState(null);\n const [mentionSuggestedUsers, setMentionSuggestedUsers] = useState([]);\n const [ableMention, setAbleMention] = useState(true);\n const editMessageInputRef = useRef(null);\n const useMessageScrollRef = useRef(null);\n const displaySuggestedMentionList = isOnline\n && isMentionEnabled\n && mentionNickname.length > 0\n && !isDisabledBecauseFrozen(currentGroupChannel)\n && !isDisabledBecauseMuted(currentGroupChannel);\n const disabled = !initialized\n || isDisabledBecauseFrozen(currentGroupChannel)\n || isDisabledBecauseMuted(currentGroupChannel)\n || !isOnline;\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 useLayoutEffect(() => {\n handleScroll?.();\n }, [showEdit, message?.reactions?.length]);\n\n useLayoutEffect(() => {\n if (highLightedMessageId === message.messageId) {\n if (useMessageScrollRef && useMessageScrollRef.current) {\n useMessageScrollRef.current.scrollIntoView({ block: 'center', inline: 'center' });\n setIsAnimated(false);\n setTimeout(() => {\n setIsHighlighted(true);\n }, 500);\n setTimeout(() => {\n setHighLightedMessageId(0);\n }, 1600);\n }\n } else {\n setIsHighlighted(false);\n }\n }, [highLightedMessageId, useMessageScrollRef.current, message.messageId]);\n\n useLayoutEffect(() => {\n if (animatedMessageId === message.messageId) {\n if (useMessageScrollRef && useMessageScrollRef.current) {\n useMessageScrollRef.current.scrollIntoView({ block: 'center', inline: 'center' });\n setIsHighlighted(false);\n setTimeout(() => {\n setIsAnimated(true);\n }, 500);\n setTimeout(() => {\n setAnimatedMessageId(0);\n }, 1600);\n }\n } else {\n setIsAnimated(false);\n }\n }, [animatedMessageId, useMessageScrollRef.current, message.messageId]);\n const renderedMessage = useMemo(() => {\n return renderMessage?.({\n message,\n chainTop,\n chainBottom,\n });\n }, [message, renderMessage]);\n const renderedCustomSeparator = useMemo(() => {\n if (renderCustomSeparator) {\n return renderCustomSeparator?.();\n }\n return null;\n }, [message, renderCustomSeparator]);\n\n if (renderedMessage) {\n return (\n <div\n ref={useMessageScrollRef}\n className={getClassName([\n 'sendbird-msg-hoc sendbird-msg--scroll-ref',\n isAnimated ? 'sendbird-msg-hoc__animated' : '',\n isHighlighted ? 'sendbird-msg-hoc__highlighted' : '',\n ])}\n >\n {/* date-separator */}\n {\n // TODO: Add message instance as a function parameter\n hasSeparator && (renderedCustomSeparator || (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy', {\n locale: dateLocale,\n })}\n </Label>\n </DateSeparator>\n ))\n }\n {renderedMessage}\n </div>\n );\n }\n\n if (showEdit && message.isUserMessage()) {\n return renderEditInput?.() || (\n <>\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 <MessageInput\n isEdit\n disabled={disabled}\n ref={editMessageInputRef}\n mentionSelectedUser={selectedUser}\n isMentionEnabled={isMentionEnabled}\n message={message}\n onUpdateMessage={({ messageId, message, mentionTemplate }) => {\n updateMessage({\n messageId,\n message,\n mentionedUsers,\n mentionTemplate,\n });\n setShowEdit(false);\n }}\n onCancelEdit={() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setMentionSuggestedUsers([])\n setShowEdit(false);\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 </>\n );\n }\n\n return (\n <div\n className={getClassName([\n 'sendbird-msg-hoc sendbird-msg--scroll-ref',\n isAnimated ? 'sendbird-msg-hoc__animated' : '',\n isHighlighted ? 'sendbird-msg-hoc__highlighted' : '',\n ])}\n style={{ marginBottom: '2px' }}\n ref={useMessageScrollRef}\n >\n {/* date-separator */}\n {\n hasSeparator && (renderedCustomSeparator || (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy', {\n locale: dateLocale,\n })}\n </Label>\n </DateSeparator>\n ))\n }\n {/* Message */}\n {\n renderMessageContent?.() || (\n <MessageContent\n className=\"sendbird-message-hoc__message-content\"\n userId={userId}\n scrollToMessage={scrollToMessage}\n channel={currentGroupChannel}\n message={message}\n disabled={!isOnline}\n chainTop={chainTop}\n chainBottom={chainBottom}\n isReactionEnabled={isReactionEnabled}\n replyType={replyType}\n nicknamesMap={nicknamesMap}\n emojiContainer={emojiContainer}\n showEdit={setShowEdit}\n showRemove={setShowRemove}\n showFileViewer={setShowFileViewer}\n resendMessage={resendMessage}\n toggleReaction={toggleReaction}\n setQuoteMessage={setQuoteMessage}\n />\n )\n }\n {/* Modal */}\n {\n showRemove && (\n <RemoveMessageModal\n message={message}\n onCancel={() => setShowRemove(false)}\n />\n )\n }\n {\n showFileViewer && (\n <FileViewer\n message={message as FileMessage}\n onCancel={() => setShowFileViewer(false)}\n />\n )\n }\n </div>\n );\n};\n\nexport default Message;\n"],"names":["Message","props","message","hasSeparator","chainTop","chainBottom","handleScroll","renderCustomSeparator","renderEditInput","renderMessage","renderMessageContent","dateLocale","useLocalization","globalStore","useSendbirdStateContext","_b","config","userId","isOnline","isMentionEnabled","userMention","maxUserMentionCount","maxMentionCount","MAX_USER_MENTION_COUNT","maxUserSuggestionCount","maxSuggestionCount","MAX_USER_SUGGESTION_COUNT","_c","useChannelContext","initialized","currentGroupChannel","highLightedMessageId","setHighLightedMessageId","animatedMessageId","setAnimatedMessageId","updateMessage","scrollToMessage","replyType","isReactionEnabled","toggleReaction","emojiContainer","nicknamesMap","setQuoteMessage","resendMessage","renderUserMentionItem","_d","useState","showEdit","setShowEdit","_e","showRemove","setShowRemove","_f","showFileViewer","setShowFileViewer","_g","isAnimated","setIsAnimated","_h","isHighlighted","setIsHighlighted","_j","mentionNickname","setMentionNickname","_k","mentionedUsers","setMentionedUsers","_l","mentionedUserIds","setMentionedUserIds","_m","messageInputEvent","setMessageInputEvent","_o","selectedUser","setSelectedUser","_p","mentionSuggestedUsers","setMentionSuggestedUsers","_q","ableMention","setAbleMention","editMessageInputRef","useRef","useMessageScrollRef","displaySuggestedMentionList","length","isDisabledBecauseFrozen","isDisabledBecauseMuted","disabled","useEffect","filter","_a","i","indexOf","splice","useLayoutEffect","reactions","messageId","current","scrollIntoView","block","inline","setTimeout","renderedMessage","useMemo","renderedCustomSeparator","React","getClassName","DateSeparator","Label","LabelTypography","CAPTION_2","LabelColors","ONBACKGROUND_2","format","createdAt","locale","isUserMessage","SuggestedMentionList","user","users","MessageInput","mentionTemplate","mentionText","userIds","e","key","MessageInputKeys","Enter","ArrowUp","ArrowDown","marginBottom","MessageContent","RemoveMessageModal","FileViewer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Message.js","sources":["../../../../src/smart-components/Channel/components/Message/index.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useLayoutEffect,\n} from 'react';\nimport type { FileMessage } from '@sendbird/chat/message';\nimport format from 'date-fns/format';\n\nimport SuggestedMentionList from '../SuggestedMentionList';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { useChannelContext } from '../../context/ChannelProvider';\nimport { getClassName } from '../../../../utils';\nimport { isDisabledBecauseFrozen, isDisabledBecauseMuted } from '../../context/utils';\nimport { MAX_USER_MENTION_COUNT, MAX_USER_SUGGESTION_COUNT } from '../../context/const';\n\nimport DateSeparator from '../../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport MessageInput from '../../../../ui/MessageInput';\nimport MessageContent from '../../../../ui/MessageContent';\nimport FileViewer from '../FileViewer';\nimport RemoveMessageModal from '../RemoveMessageModal';\nimport { MessageInputKeys } from '../../../../ui/MessageInput/const';\nimport { EveryMessage, RenderMessageProps } from '../../../../types';\nimport { useLocalization } from '../../../../lib/LocalizationContext';\n\ntype MessageUIProps = {\n message: EveryMessage;\n hasSeparator?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n handleScroll: () => void;\n // for extending\n renderMessage?: (props: RenderMessageProps) => React.ReactElement;\n renderCustomSeparator?: () => React.ReactElement;\n renderEditInput?: () => React.ReactElement;\n renderMessageContent?: () => React.ReactElement;\n};\n\nconst Message = (props: MessageUIProps): React.FC<MessageUIProps> | React.ReactElement => {\n const {\n message,\n hasSeparator,\n chainTop,\n chainBottom,\n handleScroll,\n renderCustomSeparator,\n renderEditInput,\n renderMessage,\n renderMessageContent,\n } = props;\n\n const { dateLocale } = useLocalization();\n const globalStore = useSendbirdStateContext();\n const {\n userId,\n isOnline,\n isMentionEnabled,\n userMention,\n } = globalStore?.config;\n const maxUserMentionCount = userMention?.maxMentionCount || MAX_USER_MENTION_COUNT;\n const maxUserSuggestionCount = userMention?.maxSuggestionCount || MAX_USER_SUGGESTION_COUNT;\n\n const {\n initialized,\n currentGroupChannel,\n highLightedMessageId,\n setHighLightedMessageId,\n animatedMessageId,\n setAnimatedMessageId,\n updateMessage,\n scrollToMessage,\n replyType,\n isReactionEnabled,\n toggleReaction,\n emojiContainer,\n nicknamesMap,\n setQuoteMessage,\n resendMessage,\n renderUserMentionItem,\n } = useChannelContext();\n\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const [isAnimated, setIsAnimated] = useState(false);\n const [isHighlighted, setIsHighlighted] = useState(false);\n const [mentionNickname, setMentionNickname] = useState('');\n const [mentionedUsers, setMentionedUsers] = useState([]);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [messageInputEvent, setMessageInputEvent] = useState(null);\n const [selectedUser, setSelectedUser] = useState(null);\n const [mentionSuggestedUsers, setMentionSuggestedUsers] = useState([]);\n const [ableMention, setAbleMention] = useState(true);\n const editMessageInputRef = useRef(null);\n const useMessageScrollRef = useRef(null);\n const displaySuggestedMentionList = isOnline\n && isMentionEnabled\n && mentionNickname.length > 0\n && !isDisabledBecauseFrozen(currentGroupChannel)\n && !isDisabledBecauseMuted(currentGroupChannel);\n const disabled = !initialized\n || isDisabledBecauseFrozen(currentGroupChannel)\n || isDisabledBecauseMuted(currentGroupChannel)\n || !isOnline;\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 useLayoutEffect(() => {\n handleScroll?.();\n }, [showEdit, message?.reactions?.length]);\n\n useLayoutEffect(() => {\n if (highLightedMessageId === message.messageId) {\n if (useMessageScrollRef && useMessageScrollRef.current) {\n useMessageScrollRef.current.scrollIntoView({ block: 'center', inline: 'center' });\n setIsAnimated(false);\n setTimeout(() => {\n setIsHighlighted(true);\n }, 500);\n setTimeout(() => {\n setHighLightedMessageId(0);\n }, 1600);\n }\n } else {\n setIsHighlighted(false);\n }\n }, [highLightedMessageId, useMessageScrollRef.current, message.messageId]);\n\n useLayoutEffect(() => {\n if (animatedMessageId === message.messageId) {\n if (useMessageScrollRef && useMessageScrollRef.current) {\n useMessageScrollRef.current.scrollIntoView({ block: 'center', inline: 'center' });\n setIsHighlighted(false);\n setTimeout(() => {\n setIsAnimated(true);\n }, 500);\n setTimeout(() => {\n setAnimatedMessageId(0);\n }, 1600);\n }\n } else {\n setIsAnimated(false);\n }\n }, [animatedMessageId, useMessageScrollRef.current, message.messageId]);\n const renderedMessage = useMemo(() => {\n return renderMessage?.({\n message,\n chainTop,\n chainBottom,\n });\n }, [message, renderMessage]);\n const renderedCustomSeparator = useMemo(() => {\n if (renderCustomSeparator) {\n return renderCustomSeparator?.();\n }\n return null;\n }, [message, renderCustomSeparator]);\n\n if (renderedMessage) {\n return (\n <div\n ref={useMessageScrollRef}\n className={getClassName([\n 'sendbird-msg-hoc sendbird-msg--scroll-ref',\n isAnimated ? 'sendbird-msg-hoc__animated' : '',\n isHighlighted ? 'sendbird-msg-hoc__highlighted' : '',\n ])}\n >\n {/* date-separator */}\n {\n // TODO: Add message instance as a function parameter\n hasSeparator && (renderedCustomSeparator || (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy', {\n locale: dateLocale,\n })}\n </Label>\n </DateSeparator>\n ))\n }\n {renderedMessage}\n </div>\n );\n }\n\n if (showEdit && message.isUserMessage()) {\n return renderEditInput?.() || (\n <>\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 <MessageInput\n isEdit\n disabled={disabled}\n ref={editMessageInputRef}\n mentionSelectedUser={selectedUser}\n isMentionEnabled={isMentionEnabled}\n message={message}\n onUpdateMessage={({ messageId, message, mentionTemplate }) => {\n updateMessage({\n messageId,\n message,\n mentionedUsers,\n mentionTemplate,\n });\n setShowEdit(false);\n }}\n onCancelEdit={() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setMentionSuggestedUsers([])\n setShowEdit(false);\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 </>\n );\n }\n\n return (\n <div\n className={getClassName([\n 'sendbird-msg-hoc sendbird-msg--scroll-ref',\n isAnimated ? 'sendbird-msg-hoc__animated' : '',\n isHighlighted ? 'sendbird-msg-hoc__highlighted' : '',\n ])}\n style={{ marginBottom: '2px' }}\n ref={useMessageScrollRef}\n >\n {/* date-separator */}\n {\n hasSeparator && (renderedCustomSeparator || (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy', {\n locale: dateLocale,\n })}\n </Label>\n </DateSeparator>\n ))\n }\n {/* Message */}\n {\n renderMessageContent?.() || (\n <MessageContent\n className=\"sendbird-message-hoc__message-content\"\n userId={userId}\n scrollToMessage={scrollToMessage}\n channel={currentGroupChannel}\n message={message}\n disabled={!isOnline}\n chainTop={chainTop}\n chainBottom={chainBottom}\n isReactionEnabled={isReactionEnabled}\n replyType={replyType}\n nicknamesMap={nicknamesMap}\n emojiContainer={emojiContainer}\n showEdit={setShowEdit}\n showRemove={setShowRemove}\n showFileViewer={setShowFileViewer}\n resendMessage={resendMessage}\n toggleReaction={toggleReaction}\n setQuoteMessage={setQuoteMessage}\n />\n )\n }\n {/* Modal */}\n {\n showRemove && (\n <RemoveMessageModal\n message={message}\n onCancel={() => setShowRemove(false)}\n />\n )\n }\n {\n showFileViewer && (\n <FileViewer\n message={message as FileMessage}\n onCancel={() => setShowFileViewer(false)}\n />\n )\n }\n </div>\n );\n};\n\nexport default Message;\n"],"names":["Message","props","message","hasSeparator","chainTop","chainBottom","handleScroll","renderCustomSeparator","renderEditInput","renderMessage","renderMessageContent","dateLocale","useLocalization","globalStore","useSendbirdStateContext","_b","config","userId","isOnline","isMentionEnabled","userMention","maxUserMentionCount","maxMentionCount","MAX_USER_MENTION_COUNT","maxUserSuggestionCount","maxSuggestionCount","MAX_USER_SUGGESTION_COUNT","_c","useChannelContext","initialized","currentGroupChannel","highLightedMessageId","setHighLightedMessageId","animatedMessageId","setAnimatedMessageId","updateMessage","scrollToMessage","replyType","isReactionEnabled","toggleReaction","emojiContainer","nicknamesMap","setQuoteMessage","resendMessage","renderUserMentionItem","_d","useState","showEdit","setShowEdit","_e","showRemove","setShowRemove","_f","showFileViewer","setShowFileViewer","_g","isAnimated","setIsAnimated","_h","isHighlighted","setIsHighlighted","_j","mentionNickname","setMentionNickname","_k","mentionedUsers","setMentionedUsers","_l","mentionedUserIds","setMentionedUserIds","_m","messageInputEvent","setMessageInputEvent","_o","selectedUser","setSelectedUser","_p","mentionSuggestedUsers","setMentionSuggestedUsers","_q","ableMention","setAbleMention","editMessageInputRef","useRef","useMessageScrollRef","displaySuggestedMentionList","length","isDisabledBecauseFrozen","isDisabledBecauseMuted","disabled","useEffect","filter","_a","i","indexOf","splice","useLayoutEffect","reactions","messageId","current","scrollIntoView","block","inline","setTimeout","renderedMessage","useMemo","renderedCustomSeparator","React","getClassName","DateSeparator","Label","LabelTypography","CAPTION_2","LabelColors","ONBACKGROUND_2","format","createdAt","locale","isUserMessage","SuggestedMentionList","user","users","MessageInput","mentionTemplate","mentionText","userIds","e","key","MessageInputKeys","Enter","ArrowUp","ArrowDown","marginBottom","MessageContent","RemoveMessageModal","FileViewer"],"mappings":"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"}
|
|
@@ -1,37 +1,36 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tslib_es6 = require('../../tslib.es6-
|
|
3
|
+
var tslib_es6 = require('../../tslib.es6-9a5d5697.js');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var Channel_context = require('../../ChannelProvider-
|
|
5
|
+
var Channel_context = require('../../ChannelProvider-5e683eb1.js');
|
|
6
6
|
var ui_MessageInput = require('../../ui/MessageInput.js');
|
|
7
7
|
var ui_QuoteMessageInput = require('../../ui/QuoteMessageInput.js');
|
|
8
|
-
var LocalizationContext = require('../../LocalizationContext-
|
|
8
|
+
var LocalizationContext = require('../../LocalizationContext-0537da22.js');
|
|
9
9
|
var useSendbirdStateContext = require('../../useSendbirdStateContext.js');
|
|
10
10
|
var Channel_components_SuggestedMentionList = require('./SuggestedMentionList.js');
|
|
11
|
-
var _const = require('../../const-
|
|
12
|
-
require('../../UserProfileContext-
|
|
11
|
+
var _const = require('../../const-a6cfa3dc.js');
|
|
12
|
+
require('../../UserProfileContext-e13859c2.js');
|
|
13
13
|
require('prop-types');
|
|
14
|
-
require('../../_rollupPluginBabelHelpers-
|
|
15
|
-
require('../../index-
|
|
16
|
-
require('../../index-
|
|
17
|
-
require('../../topics-
|
|
18
|
-
require('../../index-
|
|
19
|
-
require('../../compareIds-
|
|
20
|
-
require('../../const-
|
|
21
|
-
require('../../groupChannel-
|
|
22
|
-
require('../../__bundle-7dfccc8c-
|
|
23
|
-
require('../../uuid-
|
|
14
|
+
require('../../_rollupPluginBabelHelpers-116d792d.js');
|
|
15
|
+
require('../../index-62b2f3b4.js');
|
|
16
|
+
require('../../index-41b5e18c.js');
|
|
17
|
+
require('../../topics-b910c620.js');
|
|
18
|
+
require('../../index-2be8b3df.js');
|
|
19
|
+
require('../../compareIds-d11fdea7.js');
|
|
20
|
+
require('../../const-2da24989.js');
|
|
21
|
+
require('../../groupChannel-3f4aaa32.js');
|
|
22
|
+
require('../../__bundle-7dfccc8c-d812ccd2.js');
|
|
23
|
+
require('../../uuid-de92c01b.js');
|
|
24
24
|
require('../../ui/ContextMenu.js');
|
|
25
|
-
require('../../index-
|
|
26
|
-
require('../../stringSet-
|
|
25
|
+
require('../../index-8e975b91.js');
|
|
26
|
+
require('../../stringSet-2b4edf07.js');
|
|
27
27
|
require('react-dom');
|
|
28
28
|
require('../../ui/SortByRow.js');
|
|
29
29
|
require('../../ui/ReactionButton.js');
|
|
30
30
|
require('../../ui/ImageRenderer.js');
|
|
31
31
|
require('../../ui/Icon.js');
|
|
32
|
-
require('stream');
|
|
33
32
|
require('../../ui/IconButton.js');
|
|
34
|
-
require('../../index-
|
|
33
|
+
require('../../index-86f7e77d.js');
|
|
35
34
|
require('../../ui/MentionUserLabel.js');
|
|
36
35
|
require('../../withSendbird.js');
|
|
37
36
|
require('../../ui/Avatar.js');
|
|
@@ -1 +1 @@
|
|
|
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 { useChannelContext } 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 } = useChannelContext();\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?.isBroadcast;\n\n const displaySuggestedMentionList = isOnline\n && isMentionEnabled\n && mentionNickname.length > 0\n && !utils.isDisabledBecauseFrozen(channel)\n && !utils.isDisabledBecauseMuted(channel);\n\n // Reset when channel changes\n useEffect(() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setSelectedUser(null);\n setMentionSuggestedUsers([]);\n setAbleMention(true);\n setMessageInputEvent(null);\n }, [channel?.url]);\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","useChannelContext","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","url","filter","userId","i","indexOf","splice","React","SuggestedMentionList","user","users","QuoteMessageInput","MessageInput","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
|
+
{"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 { useChannelContext } 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 } = useChannelContext();\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?.isBroadcast;\n\n const displaySuggestedMentionList = isOnline\n && isMentionEnabled\n && mentionNickname.length > 0\n && !utils.isDisabledBecauseFrozen(channel)\n && !utils.isDisabledBecauseMuted(channel);\n\n // Reset when channel changes\n useEffect(() => {\n setMentionNickname('');\n setMentionedUsers([]);\n setMentionedUserIds([]);\n setSelectedUser(null);\n setMentionSuggestedUsers([]);\n setAbleMention(true);\n setMessageInputEvent(null);\n }, [channel?.url]);\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","useChannelContext","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","url","filter","userId","i","indexOf","splice","React","SuggestedMentionList","user","users","QuoteMessageInput","MessageInput","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,49 +1,48 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
-
var index = require('../../index-
|
|
5
|
-
var Channel_context = require('../../ChannelProvider-
|
|
6
|
-
var ui_PlaceHolder = require('../../index-
|
|
4
|
+
var index = require('../../index-2596c9f9.js');
|
|
5
|
+
var Channel_context = require('../../ChannelProvider-5e683eb1.js');
|
|
6
|
+
var ui_PlaceHolder = require('../../index-a6cd696f.js');
|
|
7
7
|
var ui_Icon = require('../../ui/Icon.js');
|
|
8
8
|
var Channel_components_Message = require('./Message.js');
|
|
9
|
-
var uuid = require('../../uuid-
|
|
10
|
-
require('../../index-
|
|
11
|
-
require('../../index-
|
|
12
|
-
require('../../UserProfileContext-
|
|
9
|
+
var uuid = require('../../uuid-de92c01b.js');
|
|
10
|
+
require('../../index-62b2f3b4.js');
|
|
11
|
+
require('../../index-41b5e18c.js');
|
|
12
|
+
require('../../UserProfileContext-e13859c2.js');
|
|
13
13
|
require('prop-types');
|
|
14
14
|
require('../../useSendbirdStateContext.js');
|
|
15
15
|
require('../../withSendbird.js');
|
|
16
|
-
require('../../_rollupPluginBabelHelpers-
|
|
17
|
-
require('../../topics-
|
|
18
|
-
require('../../index-
|
|
19
|
-
require('../../tslib.es6-
|
|
20
|
-
require('../../compareIds-
|
|
21
|
-
require('../../const-
|
|
22
|
-
require('../../groupChannel-
|
|
23
|
-
require('../../__bundle-7dfccc8c-
|
|
16
|
+
require('../../_rollupPluginBabelHelpers-116d792d.js');
|
|
17
|
+
require('../../topics-b910c620.js');
|
|
18
|
+
require('../../index-2be8b3df.js');
|
|
19
|
+
require('../../tslib.es6-9a5d5697.js');
|
|
20
|
+
require('../../compareIds-d11fdea7.js');
|
|
21
|
+
require('../../const-2da24989.js');
|
|
22
|
+
require('../../groupChannel-3f4aaa32.js');
|
|
23
|
+
require('../../__bundle-7dfccc8c-d812ccd2.js');
|
|
24
24
|
require('../../ui/ContextMenu.js');
|
|
25
|
-
require('../../index-
|
|
26
|
-
require('../../stringSet-
|
|
25
|
+
require('../../index-8e975b91.js');
|
|
26
|
+
require('../../stringSet-2b4edf07.js');
|
|
27
27
|
require('react-dom');
|
|
28
28
|
require('../../ui/SortByRow.js');
|
|
29
29
|
require('../../ui/ReactionButton.js');
|
|
30
30
|
require('../../ui/ImageRenderer.js');
|
|
31
31
|
require('../../ui/Loader.js');
|
|
32
|
-
require('../../LocalizationContext-
|
|
32
|
+
require('../../LocalizationContext-0537da22.js');
|
|
33
33
|
require('./SuggestedMentionList.js');
|
|
34
34
|
require('../../ui/Avatar.js');
|
|
35
|
-
require('../../const-
|
|
35
|
+
require('../../const-a6cfa3dc.js');
|
|
36
36
|
require('../../ui/DateSeparator.js');
|
|
37
|
-
require('../../color-
|
|
37
|
+
require('../../color-76e3ed0d.js');
|
|
38
38
|
require('../../ui/MessageInput.js');
|
|
39
|
-
require('stream');
|
|
40
39
|
require('../../ui/IconButton.js');
|
|
41
|
-
require('../../index-
|
|
40
|
+
require('../../index-86f7e77d.js');
|
|
42
41
|
require('../../ui/MentionUserLabel.js');
|
|
43
42
|
require('../../ui/MessageContent.js');
|
|
44
43
|
require('../../ui/UserProfile.js');
|
|
45
44
|
require('../../sendbirdSelectors.js');
|
|
46
|
-
require('../../utils-
|
|
45
|
+
require('../../utils-15274d9b.js');
|
|
47
46
|
require('../../ui/MessageStatus.js');
|
|
48
47
|
require('../../ui/MessageItemMenu.js');
|
|
49
48
|
require('../../ui/MessageItemReactionMenu.js');
|
|
@@ -63,7 +62,7 @@ require('../../ui/OGMessageItemBody.js');
|
|
|
63
62
|
require('../../ui/UnknownMessageItemBody.js');
|
|
64
63
|
require('../../ui/QuoteMessage.js');
|
|
65
64
|
require('./FileViewer.js');
|
|
66
|
-
require('../../index-
|
|
65
|
+
require('../../index-691debed.js');
|
|
67
66
|
require('./RemoveMessageModal.js');
|
|
68
67
|
require('../../ui/Modal.js');
|
|
69
68
|
|
|
@@ -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, useMemo } from 'react';\nimport isSameDay from 'date-fns/isSameDay';\n\nimport { useChannelContext } 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.ReactElement;\n renderPlaceholderEmpty?: () => React.ReactElement;\n renderCustomSeparator?: () => React.ReactElement;\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 renderCustomSeparator,\n } = props;\n const {\n allMessages,\n hasMorePrev,\n setInitialTimeStamp,\n setAnimatedMessageId,\n setHighLightedMessageId,\n isMessageGroupingEnabled,\n scrollRef,\n onScrollCallback,\n onScrollDownCallback,\n messagesDispatcher,\n messageActionTypes,\n currentGroupChannel,\n } = useChannelContext();\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 > -1) {\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] = isMessageGroupingEnabled\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 renderCustomSeparator={renderCustomSeparator}\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","renderCustomSeparator","_a","useChannelContext","allMessages","hasMorePrev","setInitialTimeStamp","setAnimatedMessageId","setHighLightedMessageId","isMessageGroupingEnabled","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","Message","messageId","uuidv4","length","PlaceHolder","PlaceHolderTypes","NO_MESSAGES","Icon","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 { useChannelContext } 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.ReactElement;\n renderPlaceholderEmpty?: () => React.ReactElement;\n renderCustomSeparator?: () => React.ReactElement;\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 renderCustomSeparator,\n } = props;\n const {\n allMessages,\n hasMorePrev,\n setInitialTimeStamp,\n setAnimatedMessageId,\n setHighLightedMessageId,\n isMessageGroupingEnabled,\n scrollRef,\n onScrollCallback,\n onScrollDownCallback,\n messagesDispatcher,\n messageActionTypes,\n currentGroupChannel,\n } = useChannelContext();\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 > -1) {\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] = isMessageGroupingEnabled\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 renderCustomSeparator={renderCustomSeparator}\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","renderCustomSeparator","_a","useChannelContext","allMessages","hasMorePrev","setInitialTimeStamp","setAnimatedMessageId","setHighLightedMessageId","isMessageGroupingEnabled","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","Message","messageId","uuidv4","length","PlaceHolder","PlaceHolderTypes","NO_MESSAGES","Icon","IconTypes","CHEVRON_DOWN","IconColors","PRIMARY"],"mappings":"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"}
|
|
@@ -2,31 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var ui_Modal = require('../../ui/Modal.js');
|
|
5
|
-
var ui_Button = require('../../index-
|
|
6
|
-
var LocalizationContext = require('../../LocalizationContext-
|
|
7
|
-
var Channel_context = require('../../ChannelProvider-
|
|
5
|
+
var ui_Button = require('../../index-86f7e77d.js');
|
|
6
|
+
var LocalizationContext = require('../../LocalizationContext-0537da22.js');
|
|
7
|
+
var Channel_context = require('../../ChannelProvider-5e683eb1.js');
|
|
8
8
|
require('prop-types');
|
|
9
9
|
require('react-dom');
|
|
10
|
-
require('../../index-
|
|
10
|
+
require('../../index-691debed.js');
|
|
11
11
|
require('../../ui/IconButton.js');
|
|
12
|
-
require('../../_rollupPluginBabelHelpers-
|
|
12
|
+
require('../../_rollupPluginBabelHelpers-116d792d.js');
|
|
13
13
|
require('../../ui/Icon.js');
|
|
14
|
-
require('../../index-
|
|
15
|
-
require('../../stringSet-
|
|
16
|
-
require('../../utils-
|
|
17
|
-
require('../../index-
|
|
18
|
-
require('../../UserProfileContext-
|
|
14
|
+
require('../../index-8e975b91.js');
|
|
15
|
+
require('../../stringSet-2b4edf07.js');
|
|
16
|
+
require('../../utils-15274d9b.js');
|
|
17
|
+
require('../../index-41b5e18c.js');
|
|
18
|
+
require('../../UserProfileContext-e13859c2.js');
|
|
19
19
|
require('../../useSendbirdStateContext.js');
|
|
20
20
|
require('../../withSendbird.js');
|
|
21
|
-
require('../../index-
|
|
22
|
-
require('../../topics-
|
|
23
|
-
require('../../index-
|
|
24
|
-
require('../../tslib.es6-
|
|
25
|
-
require('../../compareIds-
|
|
26
|
-
require('../../const-
|
|
27
|
-
require('../../groupChannel-
|
|
28
|
-
require('../../__bundle-7dfccc8c-
|
|
29
|
-
require('../../uuid-
|
|
21
|
+
require('../../index-62b2f3b4.js');
|
|
22
|
+
require('../../topics-b910c620.js');
|
|
23
|
+
require('../../index-2be8b3df.js');
|
|
24
|
+
require('../../tslib.es6-9a5d5697.js');
|
|
25
|
+
require('../../compareIds-d11fdea7.js');
|
|
26
|
+
require('../../const-2da24989.js');
|
|
27
|
+
require('../../groupChannel-3f4aaa32.js');
|
|
28
|
+
require('../../__bundle-7dfccc8c-d812ccd2.js');
|
|
29
|
+
require('../../uuid-de92c01b.js');
|
|
30
30
|
require('../../ui/ContextMenu.js');
|
|
31
31
|
require('../../ui/SortByRow.js');
|
|
32
32
|
require('../../ui/ReactionButton.js');
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
-
var ui_Label = require('../../index-
|
|
4
|
+
var ui_Label = require('../../index-8e975b91.js');
|
|
5
5
|
var ui_Icon = require('../../ui/Icon.js');
|
|
6
6
|
var ui_Avatar = require('../../ui/Avatar.js');
|
|
7
|
-
var LocalizationContext = require('../../LocalizationContext-
|
|
8
|
-
var uuid = require('../../uuid-
|
|
9
|
-
var Channel_context = require('../../ChannelProvider-
|
|
7
|
+
var LocalizationContext = require('../../LocalizationContext-0537da22.js');
|
|
8
|
+
var uuid = require('../../uuid-de92c01b.js');
|
|
9
|
+
var Channel_context = require('../../ChannelProvider-5e683eb1.js');
|
|
10
10
|
var useSendbirdStateContext = require('../../useSendbirdStateContext.js');
|
|
11
|
-
var _const$1 = require('../../const-
|
|
12
|
-
var _const = require('../../const-
|
|
13
|
-
require('../../_rollupPluginBabelHelpers-
|
|
11
|
+
var _const$1 = require('../../const-2da24989.js');
|
|
12
|
+
var _const = require('../../const-a6cfa3dc.js');
|
|
13
|
+
require('../../_rollupPluginBabelHelpers-116d792d.js');
|
|
14
14
|
require('prop-types');
|
|
15
|
-
require('../../stringSet-
|
|
16
|
-
require('../../tslib.es6-
|
|
15
|
+
require('../../stringSet-2b4edf07.js');
|
|
16
|
+
require('../../tslib.es6-9a5d5697.js');
|
|
17
17
|
require('../../ui/ImageRenderer.js');
|
|
18
|
-
require('../../index-
|
|
19
|
-
require('../../UserProfileContext-
|
|
20
|
-
require('../../index-
|
|
21
|
-
require('../../topics-
|
|
22
|
-
require('../../index-
|
|
23
|
-
require('../../compareIds-
|
|
24
|
-
require('../../groupChannel-
|
|
25
|
-
require('../../__bundle-7dfccc8c-
|
|
18
|
+
require('../../index-41b5e18c.js');
|
|
19
|
+
require('../../UserProfileContext-e13859c2.js');
|
|
20
|
+
require('../../index-62b2f3b4.js');
|
|
21
|
+
require('../../topics-b910c620.js');
|
|
22
|
+
require('../../index-2be8b3df.js');
|
|
23
|
+
require('../../compareIds-d11fdea7.js');
|
|
24
|
+
require('../../groupChannel-3f4aaa32.js');
|
|
25
|
+
require('../../__bundle-7dfccc8c-d812ccd2.js');
|
|
26
26
|
require('../../ui/ContextMenu.js');
|
|
27
27
|
require('react-dom');
|
|
28
28
|
require('../../ui/SortByRow.js');
|
|
@@ -3,24 +3,24 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
|
-
var groupChannel = require('../../groupChannel-
|
|
7
|
-
var LocalizationContext = require('../../LocalizationContext-
|
|
8
|
-
var uuid = require('../../uuid-
|
|
9
|
-
var ui_Label = require('../../index-
|
|
10
|
-
var Channel_context = require('../../ChannelProvider-
|
|
6
|
+
var groupChannel = require('../../groupChannel-3f4aaa32.js');
|
|
7
|
+
var LocalizationContext = require('../../LocalizationContext-0537da22.js');
|
|
8
|
+
var uuid = require('../../uuid-de92c01b.js');
|
|
9
|
+
var ui_Label = require('../../index-8e975b91.js');
|
|
10
|
+
var Channel_context = require('../../ChannelProvider-5e683eb1.js');
|
|
11
11
|
var useSendbirdStateContext = require('../../useSendbirdStateContext.js');
|
|
12
|
-
require('../../__bundle-7dfccc8c-
|
|
13
|
-
require('../../stringSet-
|
|
14
|
-
require('../../index-
|
|
15
|
-
require('../../_rollupPluginBabelHelpers-
|
|
12
|
+
require('../../__bundle-7dfccc8c-d812ccd2.js');
|
|
13
|
+
require('../../stringSet-2b4edf07.js');
|
|
14
|
+
require('../../index-41b5e18c.js');
|
|
15
|
+
require('../../_rollupPluginBabelHelpers-116d792d.js');
|
|
16
16
|
require('prop-types');
|
|
17
|
-
require('../../UserProfileContext-
|
|
18
|
-
require('../../index-
|
|
19
|
-
require('../../topics-
|
|
20
|
-
require('../../index-
|
|
21
|
-
require('../../tslib.es6-
|
|
22
|
-
require('../../compareIds-
|
|
23
|
-
require('../../const-
|
|
17
|
+
require('../../UserProfileContext-e13859c2.js');
|
|
18
|
+
require('../../index-62b2f3b4.js');
|
|
19
|
+
require('../../topics-b910c620.js');
|
|
20
|
+
require('../../index-2be8b3df.js');
|
|
21
|
+
require('../../tslib.es6-9a5d5697.js');
|
|
22
|
+
require('../../compareIds-d11fdea7.js');
|
|
23
|
+
require('../../const-2da24989.js');
|
|
24
24
|
require('../../ui/ContextMenu.js');
|
|
25
25
|
require('react-dom');
|
|
26
26
|
require('../../ui/SortByRow.js');
|
|
@@ -90,9 +90,11 @@ var TypingIndicator = function TypingIndicator() {
|
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
return function () {
|
|
93
|
+
var _a;
|
|
94
|
+
|
|
93
95
|
setTypingMembers([]);
|
|
94
96
|
|
|
95
|
-
if (sb) {
|
|
97
|
+
if ((_a = sb === null || sb === void 0 ? void 0 : sb.groupChannel) === null || _a === void 0 ? void 0 : _a.removeGroupChannelHandler) {
|
|
96
98
|
sb.groupChannel.removeGroupChannelHandler(handlerId);
|
|
97
99
|
}
|
|
98
100
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypingIndicator.js","sources":["../../../../src/smart-components/Channel/components/TypingIndicator.tsx"],"sourcesContent":["import React, { useEffect, useState, useContext } from 'react';\nimport {\n GroupChannelHandler,\n Member,\n SendbirdGroupChat,\n} from '@sendbird/chat/groupChannel';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { uuidv4 } from '../../../utils/uuid';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport { useChannelContext } from '../context/ChannelProvider';\nimport useSendbirdStateContext from '../../../hooks/useSendbirdStateContext';\n\nexport interface TypingIndicatorTextProps {\n members: Member[];\n}\n\nexport const TypingIndicatorText: React.FC<TypingIndicatorTextProps> = ({ members }: TypingIndicatorTextProps) => {\n const { stringSet } = useContext(LocalizationContext);\n if (!members || members.length === 0) {\n return '';\n }\n\n if (members && members.length === 1) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__IS_TYPING}`;\n }\n\n if (members && members.length === 2) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__AND} ${members[1].nickname} ${stringSet.TYPING_INDICATOR__ARE_TYPING}`;\n }\n\n return stringSet.TYPING_INDICATOR__MULTIPLE_TYPING;\n};\n\nconst TypingIndicator: React.FC = () => {\n const { channelUrl } = useChannelContext();\n const globalStore = useSendbirdStateContext();\n const sb = globalStore?.stores?.sdkStore?.sdk as SendbirdGroupChat;\n const logger = globalStore?.config?.logger;\n const [handlerId, setHandlerId] = useState(uuidv4());\n const [typingMembers, setTypingMembers] = useState<Member[]>([]);\n\n useEffect(() => {\n if (sb?.groupChannel?.addGroupChannelHandler) {\n sb.groupChannel.removeGroupChannelHandler(handlerId);\n const newHandlerId = uuidv4();\n const handler = new GroupChannelHandler({\n onTypingStatusUpdated: (groupChannel) => {\n // there is a possible warning in here - setState called after unmount\n logger.info('Channel > Typing Indicator: onTypingStatusUpdated', groupChannel);\n if (groupChannel.url === channelUrl) {\n const members = groupChannel.getTypingUsers();\n setTypingMembers(members);\n }\n }\n });\n sb.groupChannel.addGroupChannelHandler(newHandlerId, handler);\n setHandlerId(newHandlerId);\n }\n\n return () => {\n setTypingMembers([]);\n if (sb) {\n sb.groupChannel.removeGroupChannelHandler(handlerId);\n }\n };\n }, [channelUrl]);\n\n return (\n <Label\n className=\"sendbird-conversation__footer__typing-indicator__text\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n <TypingIndicatorText members={typingMembers} />\n </Label>\n );\n}\n\nexport default TypingIndicator;\n"],"names":["TypingIndicatorText","_a","members","stringSet","useContext","LocalizationContext","length","nickname","TYPING_INDICATOR__IS_TYPING","TYPING_INDICATOR__AND","TYPING_INDICATOR__ARE_TYPING","TYPING_INDICATOR__MULTIPLE_TYPING","TypingIndicator","channelUrl","useChannelContext","globalStore","useSendbirdStateContext","sb","stores","sdkStore","sdk","logger","config","_d","useState","uuidv4","handlerId","setHandlerId","_e","typingMembers","setTypingMembers","useEffect","groupChannel","addGroupChannelHandler","removeGroupChannelHandler","newHandlerId","handler","GroupChannelHandler","onTypingStatusUpdated","info","url","getTypingUsers","React","Label","LabelTypography","CAPTION_2","LabelColors","ONBACKGROUND_2"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiBaA,mBAAmB,GAAuC,SAA1DA,mBAA0D,CAACC,EAAD;MAAGC,OAAO;AACvE,MAAAC,SAAS,GAAKC,gBAAU,CAACC,uCAAD,CAAV,UAAd;;AACR,MAAI,CAACH,OAAD,IAAYA,OAAO,CAACI,MAAR,KAAmB,CAAnC,EAAsC;AACpC,WAAO,EAAP;AACD;;AAED,MAAIJ,OAAO,IAAIA,OAAO,CAACI,MAAR,KAAmB,CAAlC,EAAqC;AACnC,WAAO,SAAA,CAAGJ,OAAO,CAAC,CAAD,CAAP,CAAWK,QAAd,KAAA,QAAA,CAA0BJ,SAAS,CAACK,2BAApC,CAAP;AACD;;AAED,MAAIN,OAAO,IAAIA,OAAO,CAACI,MAAR,KAAmB,CAAlC,EAAqC;AACnC,WAAO,SAAA,CAAGJ,OAAO,CAAC,CAAD,CAAP,CAAWK,QAAd,KAAA,QAAA,CAA0BJ,SAAS,CAACM,qBAApC,KAAA,QAAA,CAA6DP,OAAO,CAAC,CAAD,CAAP,CAAWK,QAAxE,KAAA,QAAA,CAAoFJ,SAAS,CAACO,4BAA9F,CAAP;AACD;;AAED,SAAOP,SAAS,CAACQ,iCAAjB;AACD;;IAEKC,eAAe,GAAa,SAA5BA,eAA4B;;;AACxB,MAAAC,UAAU,GAAKC,iCAAiB,aAAhC;AACR,MAAMC,WAAW,GAAGC,uBAAuB,EAA3C;AACA,MAAMC,EAAE,GAAG,MAAA,MAAAF,WAAW,SAAX,IAAAA,WAAW,WAAX,SAAA,GAAAA,WAAW,CAAEG,MAAb,UAAA,iBAAA,SAAA,MAAqBC,QAArB,UAAA,iBAAA,SAAA,MAA+BC,GAA1C;AACA,MAAMC,MAAM,GAAG,MAAAN,WAAW,SAAX,IAAAA,WAAW,WAAX,SAAA,GAAAA,WAAW,CAAEO,MAAb,UAAA,iBAAA,SAAA,MAAqBD,MAApC;;AACM,MAAAE,KAA4BC,cAAQ,CAACC,WAAM,EAAP,CAApC;AAAA,MAACC,SAAS,QAAV;AAAA,MAAYC,YAAY,QAAxB;;AACA,MAAAC,KAAoCJ,cAAQ,CAAW,EAAX,CAA5C;AAAA,MAACK,aAAa,QAAd;AAAA,MAAgBC,gBAAgB,QAAhC;;AAENC,EAAAA,eAAS,CAAC;;;AACR,QAAI,MAAAd,EAAE,SAAF,IAAAA,EAAE,WAAF,SAAA,GAAAA,EAAE,CAAEe,YAAJ,UAAA,iBAAA,SAAA,MAAkBC,sBAAtB,EAA8C;AAC5ChB,MAAAA,EAAE,CAACe,YAAH,CAAgBE,yBAAhB,CAA0CR,SAA1C;AACA,UAAMS,YAAY,GAAGV,WAAM,EAA3B;AACA,UAAMW,OAAO,GAAG,IAAIC,eAAJ,CAAwB;AACtCC,QAAAA,qBAAqB,EAAE,+BAACN,YAAD;AACrB;AACAX,UAAAA,MAAM,CAACkB,IAAP,CAAY,mDAAZ,EAAiEP,YAAjE;;AACA,cAAIA,YAAY,CAACQ,GAAb,KAAqB3B,UAAzB,EAAqC;AACnC,gBAAMX,OAAO,GAAG8B,YAAY,CAACS,cAAb,EAAhB;AACAX,YAAAA,gBAAgB,CAAC5B,OAAD,CAAhB;AACD;AACF;AARqC,OAAxB,CAAhB;AAUAe,MAAAA,EAAE,CAACe,YAAH,CAAgBC,sBAAhB,CAAuCE,YAAvC,EAAqDC,OAArD;AACAT,MAAAA,YAAY,CAACQ,YAAD,CAAZ;AACD;;AAED,WAAO
|
|
1
|
+
{"version":3,"file":"TypingIndicator.js","sources":["../../../../src/smart-components/Channel/components/TypingIndicator.tsx"],"sourcesContent":["import React, { useEffect, useState, useContext } from 'react';\nimport {\n GroupChannelHandler,\n Member,\n SendbirdGroupChat,\n} from '@sendbird/chat/groupChannel';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { uuidv4 } from '../../../utils/uuid';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport { useChannelContext } from '../context/ChannelProvider';\nimport useSendbirdStateContext from '../../../hooks/useSendbirdStateContext';\n\nexport interface TypingIndicatorTextProps {\n members: Member[];\n}\n\nexport const TypingIndicatorText: React.FC<TypingIndicatorTextProps> = ({ members }: TypingIndicatorTextProps) => {\n const { stringSet } = useContext(LocalizationContext);\n if (!members || members.length === 0) {\n return '';\n }\n\n if (members && members.length === 1) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__IS_TYPING}`;\n }\n\n if (members && members.length === 2) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__AND} ${members[1].nickname} ${stringSet.TYPING_INDICATOR__ARE_TYPING}`;\n }\n\n return stringSet.TYPING_INDICATOR__MULTIPLE_TYPING;\n};\n\nconst TypingIndicator: React.FC = () => {\n const { channelUrl } = useChannelContext();\n const globalStore = useSendbirdStateContext();\n const sb = globalStore?.stores?.sdkStore?.sdk as SendbirdGroupChat;\n const logger = globalStore?.config?.logger;\n const [handlerId, setHandlerId] = useState(uuidv4());\n const [typingMembers, setTypingMembers] = useState<Member[]>([]);\n\n useEffect(() => {\n if (sb?.groupChannel?.addGroupChannelHandler) {\n sb.groupChannel.removeGroupChannelHandler(handlerId);\n const newHandlerId = uuidv4();\n const handler = new GroupChannelHandler({\n onTypingStatusUpdated: (groupChannel) => {\n // there is a possible warning in here - setState called after unmount\n logger.info('Channel > Typing Indicator: onTypingStatusUpdated', groupChannel);\n if (groupChannel.url === channelUrl) {\n const members = groupChannel.getTypingUsers();\n setTypingMembers(members);\n }\n }\n });\n sb.groupChannel.addGroupChannelHandler(newHandlerId, handler);\n setHandlerId(newHandlerId);\n }\n\n return () => {\n setTypingMembers([]);\n if (sb?.groupChannel?.removeGroupChannelHandler) {\n sb.groupChannel.removeGroupChannelHandler(handlerId);\n }\n };\n }, [channelUrl]);\n\n return (\n <Label\n className=\"sendbird-conversation__footer__typing-indicator__text\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n <TypingIndicatorText members={typingMembers} />\n </Label>\n );\n}\n\nexport default TypingIndicator;\n"],"names":["TypingIndicatorText","_a","members","stringSet","useContext","LocalizationContext","length","nickname","TYPING_INDICATOR__IS_TYPING","TYPING_INDICATOR__AND","TYPING_INDICATOR__ARE_TYPING","TYPING_INDICATOR__MULTIPLE_TYPING","TypingIndicator","channelUrl","useChannelContext","globalStore","useSendbirdStateContext","sb","stores","sdkStore","sdk","logger","config","_d","useState","uuidv4","handlerId","setHandlerId","_e","typingMembers","setTypingMembers","useEffect","groupChannel","addGroupChannelHandler","removeGroupChannelHandler","newHandlerId","handler","GroupChannelHandler","onTypingStatusUpdated","info","url","getTypingUsers","React","Label","LabelTypography","CAPTION_2","LabelColors","ONBACKGROUND_2"],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
-
var LocalizationContext = require('../../LocalizationContext-
|
|
5
|
-
var ui_Label = require('../../index-
|
|
4
|
+
var LocalizationContext = require('../../LocalizationContext-0537da22.js');
|
|
5
|
+
var ui_Label = require('../../index-8e975b91.js');
|
|
6
6
|
var ui_Icon = require('../../ui/Icon.js');
|
|
7
|
-
require('../../stringSet-
|
|
8
|
-
require('../../index-
|
|
9
|
-
require('../../_rollupPluginBabelHelpers-
|
|
7
|
+
require('../../stringSet-2b4edf07.js');
|
|
8
|
+
require('../../index-41b5e18c.js');
|
|
9
|
+
require('../../_rollupPluginBabelHelpers-116d792d.js');
|
|
10
10
|
require('prop-types');
|
|
11
11
|
|
|
12
12
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|