@sendbird/uikit-react 3.0.2-beta.2 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/App.js +32 -32
- package/CHANGELOG.md +11 -1
- package/Channel/components/ChannelHeader.js +17 -17
- package/Channel/components/ChannelUI.js +24 -24
- package/Channel/components/FileViewer.js +16 -16
- package/Channel/components/FrozenNotification.js +5 -5
- package/Channel/components/Message.js +21 -21
- package/Channel/components/MessageInput.js +18 -18
- package/Channel/components/MessageList.js +23 -23
- package/Channel/components/RemoveMessageModal.js +19 -19
- package/Channel/components/SuggestedMentionList.js +17 -17
- package/Channel/components/TypingIndicator.js +16 -16
- package/Channel/components/UnreadCount.js +5 -5
- package/Channel/context.js +15 -15
- package/Channel.js +24 -24
- 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/{ChannelListProvider-ae51690a.js → ChannelListProvider-deca2b46.js} +9 -9
- package/{ChannelListProvider-ae51690a.js.map → ChannelListProvider-deca2b46.js.map} +1 -1
- package/{ChannelProvider-64e9f011.js → ChannelProvider-433ab63d.js} +11 -11
- package/{ChannelProvider-64e9f011.js.map → ChannelProvider-433ab63d.js.map} +1 -1
- package/ChannelSettings/components/ChannelProfile.js +13 -13
- package/ChannelSettings/components/ChannelSettingsUI.js +20 -18
- package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/ChannelSettings/components/EditDetailsModal.js +13 -13
- package/ChannelSettings/components/LeaveChannel.js +10 -10
- package/ChannelSettings/components/ModerationPanel.js +29 -26
- package/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/ChannelSettings/components/UserListItem.js +14 -14
- package/ChannelSettings/components/UserListItem.js.map +1 -1
- package/ChannelSettings/components/UserPanel.js +14 -14
- package/ChannelSettings/context.js +3 -3
- package/ChannelSettings.js +20 -18
- package/ChannelSettings.js.map +1 -1
- package/CreateChannel/components/CreateChannelUI.js +14 -14
- package/CreateChannel/components/InviteUsers.js +14 -14
- package/CreateChannel/components/SelectChannelType.js +10 -10
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +14 -14
- package/{CreateChannelProvider-0e54306e.js → CreateChannelProvider-06a7aea1.js} +1 -1
- package/{CreateChannelProvider-0e54306e.js.map → CreateChannelProvider-06a7aea1.js.map} +1 -1
- package/EditUserProfile/components/EditUserProfileUI.js +13 -13
- package/EditUserProfile.js +13 -13
- package/{LocalizationContext-6e75b56a.js → LocalizationContext-9f3a97d4.js} +3 -3
- package/{LocalizationContext-6e75b56a.js.map → LocalizationContext-9f3a97d4.js.map} +1 -1
- package/{MemberList-1ef0c70c.js → MemberList-f02f2f2c.js} +25 -22
- package/MemberList-f02f2f2c.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 -18
- package/OpenChannel/components/OpenChannelMessage.js +42 -28
- package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessageList.js +26 -26
- package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/OpenChannel/components/OpenChannelUI.js +25 -25
- package/OpenChannel/context.js +11 -11
- package/OpenChannel.js +25 -25
- package/{OpenChannelProvider-a37f23fd.js → OpenChannelProvider-1161d100.js} +42 -15
- package/OpenChannelProvider-1161d100.js.map +1 -0
- package/OpenChannelSettings/components/EditDetailsModal.js +13 -13
- package/OpenChannelSettings/components/OpenChannelProfile.js +13 -13
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +21 -21
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/OpenChannelSettings/components/OperatorUI.js +776 -27
- package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/OpenChannelSettings/components/ParticipantUI.js +28 -139
- package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/OpenChannelSettings/context.js +48 -4
- package/OpenChannelSettings/context.js.map +1 -1
- package/OpenChannelSettings.js +22 -22
- package/SendbirdProvider.js +12 -12
- package/{UserProfileContext-f367c086.js → UserProfileContext-0ab13769.js} +1 -1
- package/{UserProfileContext-f367c086.js.map → UserProfileContext-0ab13769.js.map} +1 -1
- package/__bundle-7dfccc8c-097677fe.js +24 -0
- package/__bundle-7dfccc8c-097677fe.js.map +1 -0
- package/{_rollupPluginBabelHelpers-c97525da.js → _rollupPluginBabelHelpers-e62b6c94.js} +1 -1
- package/{_rollupPluginBabelHelpers-c97525da.js.map → _rollupPluginBabelHelpers-e62b6c94.js.map} +1 -1
- package/{actionTypes-45239968.js → actionTypes-5b38ad2f.js} +1 -1
- package/{actionTypes-45239968.js.map → actionTypes-5b38ad2f.js.map} +1 -1
- package/cjs/App.js +32 -32
- package/cjs/Channel/components/ChannelHeader.js +17 -17
- package/cjs/Channel/components/ChannelUI.js +24 -24
- package/cjs/Channel/components/FileViewer.js +16 -16
- package/cjs/Channel/components/FrozenNotification.js +5 -5
- package/cjs/Channel/components/Message.js +21 -21
- package/cjs/Channel/components/MessageInput.js +18 -18
- package/cjs/Channel/components/MessageList.js +23 -23
- package/cjs/Channel/components/RemoveMessageModal.js +19 -19
- package/cjs/Channel/components/SuggestedMentionList.js +17 -17
- package/cjs/Channel/components/TypingIndicator.js +16 -16
- package/cjs/Channel/components/UnreadCount.js +5 -5
- package/cjs/Channel/context.js +15 -15
- package/cjs/Channel.js +24 -24
- 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/{ChannelListProvider-038ef463.js → ChannelListProvider-adbb04ab.js} +9 -9
- package/cjs/{ChannelListProvider-038ef463.js.map → ChannelListProvider-adbb04ab.js.map} +1 -1
- package/cjs/{ChannelProvider-66622e53.js → ChannelProvider-cec988e8.js} +11 -11
- package/cjs/{ChannelProvider-66622e53.js.map → ChannelProvider-cec988e8.js.map} +1 -1
- package/cjs/ChannelSettings/components/ChannelProfile.js +13 -13
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +20 -18
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/cjs/ChannelSettings/components/EditDetailsModal.js +13 -13
- package/cjs/ChannelSettings/components/LeaveChannel.js +10 -10
- package/cjs/ChannelSettings/components/ModerationPanel.js +28 -25
- package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/cjs/ChannelSettings/components/UserListItem.js +14 -14
- package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
- package/cjs/ChannelSettings/components/UserPanel.js +14 -14
- package/cjs/ChannelSettings/context.js +3 -3
- package/cjs/ChannelSettings.js +20 -18
- package/cjs/ChannelSettings.js.map +1 -1
- package/cjs/CreateChannel/components/CreateChannelUI.js +14 -14
- package/cjs/CreateChannel/components/InviteUsers.js +14 -14
- package/cjs/CreateChannel/components/SelectChannelType.js +10 -10
- package/cjs/CreateChannel/context.js +4 -4
- package/cjs/CreateChannel.js +14 -14
- package/cjs/{CreateChannelProvider-2e94ad28.js → CreateChannelProvider-7e76640c.js} +1 -1
- package/cjs/{CreateChannelProvider-2e94ad28.js.map → CreateChannelProvider-7e76640c.js.map} +1 -1
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +13 -13
- package/cjs/EditUserProfile.js +13 -13
- package/cjs/{LocalizationContext-0bf3e760.js → LocalizationContext-672b9c94.js} +3 -3
- package/cjs/{LocalizationContext-0bf3e760.js.map → LocalizationContext-672b9c94.js.map} +1 -1
- package/cjs/{MemberList-a4c71b6e.js → MemberList-5fdc93f7.js} +24 -21
- package/cjs/MemberList-5fdc93f7.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 -18
- package/cjs/OpenChannel/components/OpenChannelMessage.js +42 -28
- package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +26 -26
- package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelUI.js +25 -25
- package/cjs/OpenChannel/context.js +11 -11
- package/cjs/OpenChannel.js +25 -25
- package/cjs/{OpenChannelProvider-000ca1cf.js → OpenChannelProvider-41c8a190.js} +42 -15
- package/cjs/OpenChannelProvider-41c8a190.js.map +1 -0
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +13 -13
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +13 -13
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +21 -21
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OperatorUI.js +775 -26
- package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +29 -140
- package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/cjs/OpenChannelSettings/context.js +48 -4
- package/cjs/OpenChannelSettings/context.js.map +1 -1
- package/cjs/OpenChannelSettings.js +22 -22
- package/cjs/SendbirdProvider.js +12 -12
- package/cjs/{UserProfileContext-5b432968.js → UserProfileContext-d3290c6a.js} +1 -1
- package/cjs/{UserProfileContext-5b432968.js.map → UserProfileContext-d3290c6a.js.map} +1 -1
- package/cjs/__bundle-7dfccc8c-99e5ac3e.js +151 -0
- package/cjs/__bundle-7dfccc8c-99e5ac3e.js.map +1 -0
- package/cjs/{_rollupPluginBabelHelpers-8b01e58c.js → _rollupPluginBabelHelpers-f02175f2.js} +1 -1
- package/cjs/{_rollupPluginBabelHelpers-8b01e58c.js.map → _rollupPluginBabelHelpers-f02175f2.js.map} +1 -1
- package/cjs/{actionTypes-1798b025.js → actionTypes-80f60d16.js} +1 -1
- package/cjs/{actionTypes-1798b025.js.map → actionTypes-80f60d16.js.map} +1 -1
- package/cjs/{color-1807e249.js → color-478c93f8.js} +1 -1
- package/cjs/{color-1807e249.js.map → color-478c93f8.js.map} +1 -1
- package/cjs/{compareIds-8c7d8980.js → compareIds-26b51402.js} +1 -1
- package/cjs/{compareIds-8c7d8980.js.map → compareIds-26b51402.js.map} +1 -1
- package/cjs/{const-f86a2fb2.js → const-4106b8a9.js} +1 -1
- package/cjs/{const-f86a2fb2.js.map → const-4106b8a9.js.map} +1 -1
- package/cjs/{const-1902a74e.js → const-58d3edce.js} +1 -1
- package/cjs/{const-1902a74e.js.map → const-58d3edce.js.map} +1 -1
- package/cjs/{context-aab9d9b1.js → context-01116a29.js} +2 -2
- package/cjs/{context-aab9d9b1.js.map → context-01116a29.js.map} +1 -1
- package/cjs/dist/index.css +137 -88
- package/cjs/dist/index.css.map +1 -1
- package/cjs/groupChannel-9502b458.js +9 -0
- package/cjs/groupChannel-9502b458.js.map +1 -0
- package/cjs/{index-fd497c7c.js → index-1a2c6bb9.js} +1 -1
- package/cjs/{index-fd497c7c.js.map → index-1a2c6bb9.js.map} +1 -1
- package/cjs/{index-1da71f37.js → index-1d91484a.js} +4 -4
- package/cjs/{index-1da71f37.js.map → index-1d91484a.js.map} +1 -1
- package/cjs/{index-51e49cfe.js → index-24973446.js} +4 -4
- package/cjs/{index-51e49cfe.js.map → index-24973446.js.map} +1 -1
- package/cjs/index-3b747780.js +357 -0
- package/cjs/index-3b747780.js.map +1 -0
- package/cjs/{index-639e3f2f.js → index-3b9eca88.js} +5 -5
- package/cjs/index-3b9eca88.js.map +1 -0
- package/cjs/{index-13bf8604.js → index-52186645.js} +3 -3
- package/cjs/{index-13bf8604.js.map → index-52186645.js.map} +1 -1
- package/cjs/{index-ffc23504.js → index-6b7d2465.js} +3 -3
- package/cjs/{index-ffc23504.js.map → index-6b7d2465.js.map} +1 -1
- package/cjs/{index-7b8fdc11.js → index-84bd6fef.js} +1 -1
- package/cjs/{index-7b8fdc11.js.map → index-84bd6fef.js.map} +1 -1
- package/cjs/{index-cd933bf7.js → index-93b2249a.js} +2 -2
- package/cjs/{index-cd933bf7.js.map → index-93b2249a.js.map} +1 -1
- package/cjs/{index-bcb8a49a.js → index-ce704c05.js} +2 -2
- package/cjs/{index-bcb8a49a.js.map → index-ce704c05.js.map} +1 -1
- package/cjs/{index-8a98fd13.js → index-f240822b.js} +6 -6
- package/cjs/{index-8a98fd13.js.map → index-f240822b.js.map} +1 -1
- package/cjs/index.js +36 -36
- package/cjs/openChannel-f2448196.js +13 -0
- package/cjs/openChannel-f2448196.js.map +1 -0
- package/cjs/{openChannelUtils-08574a70.js → openChannelUtils-b411bbf8.js} +1 -2
- package/cjs/{openChannelUtils-08574a70.js.map → openChannelUtils-b411bbf8.js.map} +1 -1
- package/cjs/sendbirdSelectors.js +2 -2
- package/cjs/{stringSet-9b12d465.js → stringSet-da3df562.js} +28 -3
- package/cjs/stringSet-da3df562.js.map +1 -0
- package/cjs/{topics-b736a640.js → topics-1932f321.js} +1 -1
- package/cjs/{topics-b736a640.js.map → topics-1932f321.js.map} +1 -1
- package/cjs/{tslib.es6-a0ece28e.js → tslib.es6-306f32fb.js} +1 -1
- package/cjs/{tslib.es6-a0ece28e.js.map → tslib.es6-306f32fb.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 +12 -24
- package/cjs/ui/Checkbox.js.map +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 +10 -10
- 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 +12 -9
- package/cjs/ui/Modal.js.map +1 -1
- 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 +17 -17
- package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
- package/cjs/ui/OpenchannelOGMessage.js +17 -17
- package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
- package/cjs/ui/OpenchannelThumbnailMessage.js +16 -16
- package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/cjs/ui/OpenchannelUserMessage.js +17 -17
- package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
- 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 +34 -62
- package/cjs/ui/UserListItem.js.map +1 -1
- package/cjs/ui/UserProfile.js +10 -10
- package/cjs/ui/Word.js +11 -11
- package/cjs/useSendbirdStateContext.js +1 -1
- package/cjs/{utils-80d26c50.js → utils-15fd96e3.js} +1 -1
- package/cjs/{utils-80d26c50.js.map → utils-15fd96e3.js.map} +1 -1
- package/cjs/{utils-2ad4070a.js → utils-59d39f8a.js} +1 -1
- package/cjs/{utils-2ad4070a.js.map → utils-59d39f8a.js.map} +1 -1
- package/cjs/{utils-bc3be007.js → utils-d06dfceb.js} +1 -1
- package/cjs/{utils-bc3be007.js.map → utils-d06dfceb.js.map} +1 -1
- package/cjs/{uuid-198218df.js → uuid-deaf6e4d.js} +1 -1
- package/cjs/{uuid-198218df.js.map → uuid-deaf6e4d.js.map} +1 -1
- package/cjs/withSendbird.js +1 -1
- package/{color-8a34313f.js → color-af7ca71d.js} +1 -1
- package/{color-8a34313f.js.map → color-af7ca71d.js.map} +1 -1
- package/{compareIds-f5c7e9e0.js → compareIds-0374f200.js} +1 -1
- package/{compareIds-f5c7e9e0.js.map → compareIds-0374f200.js.map} +1 -1
- package/{const-3c79b764.js → const-1df70d22.js} +1 -1
- package/{const-3c79b764.js.map → const-1df70d22.js.map} +1 -1
- package/{const-8cce96ac.js → const-e494c46a.js} +1 -1
- package/{const-8cce96ac.js.map → const-e494c46a.js.map} +1 -1
- package/{context-e14a3cd1.js → context-477db28c.js} +2 -2
- package/{context-e14a3cd1.js.map → context-477db28c.js.map} +1 -1
- package/dist/index.css +137 -88
- package/dist/index.css.map +1 -1
- package/{groupChannel-cc9fae2b.js → groupChannel-3295edad.js} +3 -3
- package/groupChannel-3295edad.js.map +1 -0
- package/index-018657f4.js +350 -0
- package/index-018657f4.js.map +1 -0
- package/{index-7324a9d2.js → index-0b5ccb8a.js} +3 -3
- package/{index-7324a9d2.js.map → index-0b5ccb8a.js.map} +1 -1
- package/{index-6f372bb8.js → index-0bca77f6.js} +2 -2
- package/{index-6f372bb8.js.map → index-0bca77f6.js.map} +1 -1
- package/{index-79815d20.js → index-626e0c91.js} +1 -1
- package/{index-79815d20.js.map → index-626e0c91.js.map} +1 -1
- package/{index-3444f2dd.js → index-6d9f27e9.js} +1 -1
- package/{index-3444f2dd.js.map → index-6d9f27e9.js.map} +1 -1
- package/{index-07c1cd2b.js → index-961dd650.js} +4 -4
- package/{index-07c1cd2b.js.map → index-961dd650.js.map} +1 -1
- package/{index-2de5002e.js → index-97340f01.js} +6 -6
- package/{index-2de5002e.js.map → index-97340f01.js.map} +1 -1
- package/{index-2a105a6a.js → index-b75c8b72.js} +5 -5
- package/index-b75c8b72.js.map +1 -0
- package/{index-0b740954.js → index-b9397b82.js} +2 -2
- package/{index-0b740954.js.map → index-b9397b82.js.map} +1 -1
- package/{index-7f7579cb.js → index-be56e57e.js} +3 -3
- package/{index-7f7579cb.js.map → index-be56e57e.js.map} +1 -1
- package/{index-9935530e.js → index-c6d2d378.js} +4 -4
- package/{index-9935530e.js.map → index-c6d2d378.js.map} +1 -1
- package/index.d.ts +2 -2
- package/index.js +36 -36
- package/openChannel-c960d007.js +8 -0
- package/openChannel-c960d007.js.map +1 -0
- package/{openChannelUtils-9b134f08.js → openChannelUtils-eb983c6e.js} +2 -2
- package/{openChannelUtils-9b134f08.js.map → openChannelUtils-eb983c6e.js.map} +1 -1
- package/package.json +1 -1
- package/sendbirdSelectors.js +2 -2
- package/{stringSet-7a28664f.js → stringSet-8471446d.js} +28 -3
- package/stringSet-8471446d.js.map +1 -0
- package/{topics-7ca110dd.js → topics-408562ae.js} +1 -1
- package/{topics-7ca110dd.js.map → topics-408562ae.js.map} +1 -1
- package/{tslib.es6-71164428.js → tslib.es6-bc2713d7.js} +1 -1
- package/{tslib.es6-71164428.js.map → tslib.es6-bc2713d7.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 +12 -23
- package/ui/Checkbox.js.map +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 +10 -10
- 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 +12 -9
- package/ui/Modal.js.map +1 -1
- 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 +17 -17
- package/ui/OpenchannelFileMessage.js.map +1 -1
- package/ui/OpenchannelOGMessage.js +17 -17
- package/ui/OpenchannelOGMessage.js.map +1 -1
- package/ui/OpenchannelThumbnailMessage.js +16 -16
- package/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/ui/OpenchannelUserMessage.js +17 -17
- package/ui/OpenchannelUserMessage.js.map +1 -1
- 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 +34 -61
- package/ui/UserListItem.js.map +1 -1
- package/ui/UserProfile.js +10 -10
- package/ui/Word.js +11 -11
- package/useSendbirdStateContext.js +1 -1
- package/{utils-6c89c101.js → utils-14e75814.js} +1 -1
- package/{utils-6c89c101.js.map → utils-14e75814.js.map} +1 -1
- package/{utils-38a1ad56.js → utils-6f162725.js} +1 -1
- package/{utils-38a1ad56.js.map → utils-6f162725.js.map} +1 -1
- package/{utils-5807b354.js → utils-ed9ea372.js} +1 -1
- package/{utils-5807b354.js.map → utils-ed9ea372.js.map} +1 -1
- package/{uuid-39710dee.js → uuid-b172d222.js} +1 -1
- package/{uuid-39710dee.js.map → uuid-b172d222.js.map} +1 -1
- package/withSendbird.js +1 -1
- package/MemberList-1ef0c70c.js.map +0 -1
- package/OpenChannelProvider-a37f23fd.js.map +0 -1
- package/__bundle-7dfccc8c-a16aed7a.js +0 -4396
- package/__bundle-7dfccc8c-a16aed7a.js.map +0 -1
- package/cjs/MemberList-a4c71b6e.js.map +0 -1
- package/cjs/OpenChannelProvider-000ca1cf.js.map +0 -1
- package/cjs/__bundle-7dfccc8c-ed185b23.js +0 -4523
- package/cjs/__bundle-7dfccc8c-ed185b23.js.map +0 -1
- package/cjs/groupChannel-76c0795e.js +0 -9
- package/cjs/groupChannel-76c0795e.js.map +0 -1
- package/cjs/index-639e3f2f.js.map +0 -1
- package/cjs/openChannel-1e92ad1c.js +0 -5251
- package/cjs/openChannel-1e92ad1c.js.map +0 -1
- package/cjs/stringSet-9b12d465.js.map +0 -1
- package/groupChannel-cc9fae2b.js.map +0 -1
- package/index-2a105a6a.js.map +0 -1
- package/openChannel-15b0616c.js +0 -5246
- package/openChannel-15b0616c.js.map +0 -1
- package/package-lock.json +0 -26318
- package/stringSet-7a28664f.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperatorUI.js","sources":["../../../../src/smart-components/OpenChannelSettings/components/DeleteOpenChannel.tsx","../../../../src/smart-components/OpenChannelSettings/components/OperatorUI/index.tsx"],"sourcesContent":["import React, {\n ReactElement,\n useState,\n useContext,\n} from 'react';\n\nimport Modal from '../../../ui/Modal';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport Icon, { IconTypes } from '../../../ui/Icon';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../../hooks/useSendbirdStateContext';\nimport { useOpenChannelSettingsContext } from '../context/OpenChannelSettingsProvider';\n\nexport default function DeleteChannel(): ReactElement {\n const [showDeleteChannelModal, setShowDeleteChannelModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n const globalState = useSendbirdStateContext();\n const isOnline = globalState?.config?.isOnline;\n const logger = globalState?.config?.logger;\n\n const { channel, onDeleteChannel } = useOpenChannelSettingsContext();\n\n const deleteChannel = () => {\n channel?.delete().then((response) => {\n logger.info('OpenChannelSettings: Delete channel success', response);\n if (onDeleteChannel) {\n onDeleteChannel(channel);\n }\n }).catch((error) => {\n logger.warning('OpenChannelSettings: Delete channel failed', error);\n });\n }\n return (\n <>\n <div\n className={\n `sendbird-openchannel-settings__panel-item\n sendbird-openchannel-settings__delete-channel\n ${!isOnline ? 'sendbird-openchannel-settings__panel-item__disabled' : ''}`\n }\n role=\"button\"\n tabIndex={0}\n onKeyDown={() => {\n if (!isOnline) { return; }\n setShowDeleteChannelModal(true);\n }}\n onClick={() => {\n if (!isOnline) { return; }\n setShowDeleteChannelModal(true);\n }}\n >\n <Icon\n type={IconTypes.DELETE}\n className={[\n 'sendbird-openchannel-settings__panel-icon-left',\n 'sendbird-openchannel-settings__panel-icon__delete',\n ].join(' ')}\n height=\"24px\"\n width=\"24px\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_PANEL}\n </Label>\n </div>\n {\n showDeleteChannelModal && (\n <Modal\n onCancel={() => {\n setShowDeleteChannelModal(false);\n }}\n onSubmit={() => {\n deleteChannel();\n }}\n submitText={stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_SUBMIT}\n titleText={stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_TITLE}\n />\n )\n }\n </>\n )\n}\n","import React, { useContext } from 'react';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\n\nimport Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport Icon, {\n IconTypes,\n IconColors,\n} from '../../../../ui/Icon';\nimport { useOpenChannelSettingsContext } from '../../context/OpenChannelSettingsProvider';\nimport OpenChannelProfile from '../OpenChannelProfile';\nimport DeleteChannel from '../DeleteOpenChannel';\nimport ParticipantsAccordion from '../ParticipantUI';\nimport Accordion, { AccordionGroup } from '../../../../ui/Accordion';\n\nexport const copyToClipboard = (text: string): boolean => {\n // @ts-ignore: Unreachable code error\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n // @ts-ignore: Unreachable code error\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport interface OperatorUIProps {\n renderChannelProfile?: () => React.ReactNode;\n}\n\nexport const OperatorUI: React.FC<OperatorUIProps> = ({\n renderChannelProfile,\n}: OperatorUIProps) => {\n const { stringSet } = useContext(LocalizationContext);\n const {\n onCloseClick,\n channel,\n } = useOpenChannelSettingsContext();\n return (\n <>\n <div className=\"sendbird-openchannel-settings__header\">\n <Label type={LabelTypography.H_2} color={LabelColors.ONBACKGROUND_1}>\n {stringSet.CHANNEL_SETTING__HEADER__TITLE}\n </Label>\n <Icon\n className=\"sendbird-openchannel-settings__close-icon\"\n type={IconTypes.CLOSE}\n height=\"24px\"\n width=\"24px\"\n onClick={() => {\n onCloseClick();\n }}\n />\n </div>\n <div className=\"sendbird-openchannel-settings__profile\">\n {\n renderChannelProfile?.() || (\n <OpenChannelProfile />\n )\n }\n </div>\n <div className=\"sendbird-openchannel-settings__url\">\n <Icon\n className=\"sendbird-openchannel-settings__copy-icon\"\n type={IconTypes.COPY}\n height=\"22px\"\n width=\"22px\"\n onClick={() => {\n copyToClipboard(channel?.url);\n }}\n />\n <Label\n className=\"sendbird-openchannel-settings__url-label\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__OPERATOR_URL}\n </Label>\n <Label\n className=\"sendbird-openchannel-settings__url-value\"\n type={LabelTypography.SUBTITLE_2}\n >\n {channel?.url}\n </Label>\n </div>\n <AccordionGroup>\n <Accordion\n className=\"sendbird-channel-settings__operators-list\"\n id=\"participants\"\n renderTitle={() => (\n <>\n <Icon\n type={IconTypes.MEMBERS}\n fillColor={IconColors.PRIMARY}\n width={24}\n height={24}\n className=\"sendbird-openchannel-settings__operator-accordion-icon\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__PARTICIPANTS_ACCORDION_TITLE}\n </Label>\n </>\n )}\n renderContent={() => (\n <>\n <ParticipantsAccordion />\n </>\n )}\n />\n </AccordionGroup>\n <DeleteChannel />\n </>\n );\n};\n\nexport default OperatorUI;\n"],"names":["DeleteChannel","_c","useState","showDeleteChannelModal","setShowDeleteChannelModal","stringSet","useContext","LocalizationContext","globalState","useSendbirdStateContext","isOnline","config","logger","_d","useOpenChannelSettingsContext","channel","onDeleteChannel","deleteChannel","delete","then","response","info","catch","error","warning","React","Icon","IconTypes","DELETE","join","Label","LabelTypography","SUBTITLE_1","LabelColors","ONBACKGROUND_1","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_PANEL","Modal","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_SUBMIT","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_TITLE","copyToClipboard","text","window","clipboardData","setData","document","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","OperatorUI","_a","renderChannelProfile","_b","onCloseClick","H_2","CHANNEL_SETTING__HEADER__TITLE","CLOSE","OpenChannelProfile","COPY","url","CAPTION_2","ONBACKGROUND_2","OPEN_CHANNEL_SETTINGS__OPERATOR_URL","SUBTITLE_2","AccordionGroup","Accordion","MEMBERS","IconColors","PRIMARY","OPEN_CHANNEL_SETTINGS__PARTICIPANTS_ACCORDION_TITLE","ParticipantsAccordion"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OperatorUI.js","sources":["../../../../src/smart-components/OpenChannelSettings/components/OperatorUI/DeleteOpenChannel.tsx","../../../../src/smart-components/OpenChannelSettings/components/OperatorUI/OperatorsModal.tsx","../../../../src/smart-components/OpenChannelSettings/components/OperatorUI/AddOperatorsModal.tsx","../../../../src/smart-components/OpenChannelSettings/components/OperatorUI/OperatorList.tsx","../../../../src/smart-components/OpenChannelSettings/components/OperatorUI/MutedParticipantsModal.tsx","../../../../src/smart-components/OpenChannelSettings/components/OperatorUI/MutedParticipantList.tsx","../../../../src/smart-components/OpenChannelSettings/components/OperatorUI/BannedUsersModal.tsx","../../../../src/smart-components/OpenChannelSettings/components/OperatorUI/BannedUserList.tsx","../../../../src/smart-components/OpenChannelSettings/components/OperatorUI/index.tsx"],"sourcesContent":["import React, {\n ReactElement,\n useState,\n useContext,\n} from 'react';\n\nimport Modal from '../../../../ui/Modal';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { useOpenChannelSettingsContext } from '../../context/OpenChannelSettingsProvider';\n\nexport default function DeleteChannel(): ReactElement {\n const [showDeleteChannelModal, setShowDeleteChannelModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n const globalState = useSendbirdStateContext();\n const isOnline = globalState?.config?.isOnline;\n const logger = globalState?.config?.logger;\n\n const { channel, onDeleteChannel } = useOpenChannelSettingsContext();\n\n const deleteChannel = () => {\n channel?.delete().then((response) => {\n logger.info('OpenChannelSettings: Delete channel success', response);\n if (onDeleteChannel) {\n onDeleteChannel(channel);\n }\n }).catch((error) => {\n logger.warning('OpenChannelSettings: Delete channel failed', error);\n });\n }\n return (\n <>\n <div\n className={\n `sendbird-openchannel-settings__panel-item\n sendbird-openchannel-settings__delete-channel\n ${!isOnline ? 'sendbird-openchannel-settings__panel-item__disabled' : ''}`\n }\n role=\"button\"\n tabIndex={0}\n onKeyDown={() => {\n if (!isOnline) { return; }\n setShowDeleteChannelModal(true);\n }}\n onClick={() => {\n if (!isOnline) { return; }\n setShowDeleteChannelModal(true);\n }}\n >\n <Icon\n type={IconTypes.DELETE}\n fillColor={IconColors.ERROR}\n className={[\n 'sendbird-openchannel-settings__panel-icon-left',\n 'sendbird-openchannel-settings__panel-icon__delete',\n ].join(' ')}\n height=\"24px\"\n width=\"24px\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_PANEL}\n </Label>\n </div>\n {\n showDeleteChannelModal && (\n <Modal\n onCancel={() => {\n setShowDeleteChannelModal(false);\n }}\n onSubmit={() => {\n deleteChannel();\n }}\n titleText={stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_TITLE}\n submitText={stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_SUBMIT}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_CONTEXT}\n </Modal>\n )\n }\n </>\n )\n}\n","import React, {\n ReactElement,\n useContext,\n useEffect,\n useState,\n} from 'react'\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { useOpenChannelSettingsContext } from '../../context/OpenChannelSettingsProvider';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\n\ninterface Props { onCancel?(): void }\n\nexport default function OperatorListModal({ onCancel }: Props): ReactElement {\n const [users, setUsers] = useState([]);\n const [operatorQuery, setOperatorQuery] = useState(null);\n\n const { channel } = useOpenChannelSettingsContext();\n const state = useSendbirdStateContext();\n const currentUserId = state?.config?.userId;\n const { stringSet } = useContext(LocalizationContext);\n\n useEffect(() => {\n const operatorListQuery = channel?.createOperatorListQuery({\n limit: 20,\n });\n operatorListQuery.next().then((participants) => {\n setUsers(participants);\n });\n setOperatorQuery(operatorListQuery);\n }, [])\n return (\n <div>\n <Modal\n hideFooter\n titleText=\"All operators\"\n onCancel={onCancel}\n >\n <div\n className=\"sendbird-more-users__popup-scroll\"\n onScroll={(e) => {\n const { hasNext } = operatorQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n operatorQuery.next().then((o) => {\n setUsers([\n ...users,\n ...o,\n ])\n });\n }\n }}\n >\n {\n users.map((operator) => (\n <UserListItem\n currentUser={currentUserId}\n user={operator}\n key={operator.userId}\n action={({ parentRef, actionRef }) => (\n currentUserId !== operator?.userId\n ? (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-user-message__more__menu\"\n width=\"32px\"\n height=\"32px\"\n onClick={toggleDropdown}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentContainRef={parentRef}\n parentRef={actionRef}\n closeDropdown={closeDropdown}\n openLeft\n >\n <MenuItem\n onClick={() => {\n channel?.removeOperators([operator.userId]).then(() => {\n setUsers(users.filter(({ userId }) => {\n return userId !== operator.userId;\n }));\n });\n closeDropdown();\n }}\n >\n {stringSet.OPEN_CHANNEL_SETTING__MODERATION__UNREGISTER_OPERATOR}\n </MenuItem>\n </MenuItems>\n )}\n />\n ) : null\n )}\n />\n ))\n }\n </div>\n </Modal>\n </div>\n )\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useContext,\n} from 'react';\n\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport Modal from '../../../../ui/Modal';\nimport Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport { Type as ButtonType } from '../../../../ui/Button/type';\nimport UserListItem from '../../../../ui/UserListItem';\nimport { useOpenChannelSettingsContext } from '../../context/OpenChannelSettingsProvider';\n\ninterface Props {\n onCancel(): void;\n onSubmit(participants: Array<string>): void;\n}\n\nexport default function AddOperatorsModal({\n onCancel,\n onSubmit,\n}: Props): ReactElement {\n const [participants, setParticipants] = useState([]);\n const [selectedUsers, setSelectedUsers] = useState({});\n const [participantQuery, setParticipantQuery] = useState(null);\n const { stringSet } = useContext(LocalizationContext);\n\n const { channel } = useOpenChannelSettingsContext();\n\n useEffect(() => {\n const participantListQuery = channel?.createParticipantListQuery({\n limit: 20,\n });\n participantListQuery.next().then((users) => {\n setParticipants(users);\n });\n setParticipantQuery(participantListQuery);\n }, [])\n\n const selectedCount = Object.keys(selectedUsers).filter((m) => selectedUsers[m]).length;\n return (\n <>\n <Modal\n type={ButtonType.PRIMARY}\n submitText=\"Add\"\n onCancel={onCancel}\n onSubmit={() => {\n const users = Object.keys(selectedUsers).filter((m) => selectedUsers[m]);\n channel?.addOperators(users).then(() => {\n onSubmit(users);\n })\n }}\n titleText=\"Select users\"\n >\n <Label\n color={(selectedCount > 0) ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3}\n type={LabelTypography.CAPTION_1}\n >\n {`${selectedCount} ${stringSet.MODAL__INVITE_MEMBER__SELECTEC}`}\n </Label>\n <div\n className=\"sendbird-more-users__popup-scroll\"\n onScroll={(e) => {\n const { hasNext } = participantQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n if (hasNext && fetchMore) {\n participantQuery.next().then((o) => {\n setParticipants([\n ...participants,\n ...o,\n ])\n });\n }\n }}\n >\n {\n participants.map((participant) => {\n const isOperator = channel?.operators.find((operator) => operator?.userId === participant?.userId) ? true : false;\n return (\n <UserListItem\n checkBox\n checked={selectedUsers[participant.userId] || isOperator}\n disabled={isOperator}\n isOperator={isOperator}\n onChange={\n (event) => {\n const modifiedSelectedUsers = {\n ...selectedUsers,\n [event.target.id]: event.target.checked,\n };\n if (!event.target.checked) {\n delete modifiedSelectedUsers[event.target.id];\n }\n setSelectedUsers(modifiedSelectedUsers);\n }\n }\n user={participant}\n key={participant.userId}\n />\n );\n })\n }\n </div>\n </Modal>\n </>\n );\n}\n","import React, { ReactElement, useContext, useEffect, useState, useCallback } from 'react';\nimport { User } from \"@sendbird/chat\";\n\nimport { UserListItem } from '../ParticipantUI/ParticipantItem';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\n\nimport Button, { ButtonTypes, ButtonSizes } from '../../../../ui/Button';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport IconButton from '../../../../ui/IconButton';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport { useOpenChannelSettingsContext } from '../../context/OpenChannelSettingsProvider';\nimport OperatorListModal from './OperatorsModal';\nimport AddOperatorsModal from './AddOperatorsModal';\n\nconst OperatorList = (): ReactElement => {\n const [operators, setOperators] = useState<Array<User>>([]);\n const [hasNext, setHasNext] = useState<boolean>(false);\n const [showAdd, setShowAdd] = useState<boolean>(false);\n const [showMore, setShowMore] = useState<boolean>(false);\n const state = useSendbirdStateContext();\n const currentUserId = state?.config?.userId;\n const { stringSet } = useContext(LocalizationContext);\n const { channel } = useOpenChannelSettingsContext();\n\n useEffect(() => {\n if (!channel) {\n setOperators([]);\n return;\n }\n\n const operatorListQuery = channel?.createOperatorListQuery({\n limit: 10,\n });\n operatorListQuery.next()\n .then((operators) => {\n setOperators(operators);\n setHasNext(operatorListQuery.hasNext);\n });\n }, [channel]);\n\n const refreshList = useCallback(() => {\n if (!channel) {\n setOperators([]);\n return;\n }\n const operatorListQuery = channel?.createOperatorListQuery({\n limit: 10,\n });\n operatorListQuery.next().then((operators) => {\n setOperators(operators);\n setHasNext(operatorListQuery.hasNext);\n });\n }, [channel]);\n\n return (\n <div>\n {\n operators.map((operator) => (\n <UserListItem\n key={operator.userId}\n user={operator}\n currentUser={currentUserId}\n action={({ actionRef }) => (\n currentUserId !== operator?.userId\n ? (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-openchannel-operator-list__menu\"\n width=\"32px\"\n height=\"32px\"\n onClick={toggleDropdown}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={actionRef}\n closeDropdown={closeDropdown}\n openLeft\n >\n <MenuItem\n onClick={() => {\n channel?.removeOperators([operator.userId]).then(() => {\n setOperators(operators.filter(({ userId }) => (\n userId !== operator.userId\n )));\n });\n closeDropdown();\n }}\n >\n {stringSet.OPEN_CHANNEL_SETTING__MODERATION__UNREGISTER_OPERATOR}\n </MenuItem>\n <MenuItem\n onClick={() => {\n channel?.muteUser(operator).then(() => {\n refreshList();\n closeDropdown();\n });\n }}\n >\n {stringSet.OPEN_CHANNEL_SETTING__MODERATION__MUTE}\n </MenuItem>\n <MenuItem\n onClick={() => {\n channel?.banUser(operator).then(() => {\n refreshList();\n closeDropdown();\n });\n }}\n >\n {stringSet.OPEN_CHANNEL_SETTING__MODERATION__BAN}\n </MenuItem>\n </MenuItems>\n )}\n />\n ) : null\n )}\n />\n ))\n }\n <div className=\"sendbird-openchannel-operator-list__footer\">\n <Button\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={() => {\n setShowAdd(true);\n }}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__OPERATORS__TITLE_ADD}\n </Button>\n {\n hasNext && (\n <Button\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={() => {\n setShowMore(true);\n }}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__OPERATORS__TITLE_ALL}\n </Button>\n )\n }\n </div>\n {\n showMore && (\n <>\n <OperatorListModal\n onCancel={() => {\n setShowMore(false);\n refreshList();\n }}\n />\n </>\n )\n }\n {\n showAdd && (\n <>\n <AddOperatorsModal\n onCancel={() => setShowAdd(false)}\n onSubmit={() => {\n setShowAdd(false);\n refreshList();\n }}\n />\n </>\n )\n }\n </div>\n );\n};\n\nexport default OperatorList;\n","import React, {\n ReactElement,\n useContext,\n useEffect,\n useState,\n} from 'react';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport { noop } from '../../../../utils/utils';\nimport { useOpenChannelSettingsContext } from '../../context/OpenChannelSettingsProvider';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\n\ninterface Props {\n onCancel(): void;\n}\n\nexport default function MutedParticipantsModal({\n onCancel,\n}: Props): ReactElement {\n const [mutedUsers, setMutedUsers] = useState([]);\n const [userListQuery, setUserListQuery] = useState(null);\n\n const { channel } = useOpenChannelSettingsContext();\n const state = useSendbirdStateContext();\n const currentUserId = state?.config?.userId;\n const { stringSet } = useContext(LocalizationContext);\n\n useEffect(() => {\n const mutedUserListQuery = channel?.createMutedUserListQuery({\n limit: 10,\n });\n mutedUserListQuery.next().then((users) => {\n setMutedUsers(users);\n });\n setUserListQuery(mutedUserListQuery);\n }, []);\n return (\n <div>\n <Modal\n hideFooter\n onCancel={() => onCancel()}\n onSubmit={noop}\n titleText=\"Muted members\"\n >\n <div\n className=\"sendbird-more-members__popup-scroll\"\n onScroll={(e) => {\n const { hasNext } = userListQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n userListQuery.next().then((o) => {\n setMutedUsers([\n ...mutedUsers,\n ...o,\n ])\n });\n }\n }}\n >\n {\n mutedUsers.map((mutedUser) => (\n <UserListItem\n currentUser={currentUserId}\n user={mutedUser}\n key={mutedUser.userId}\n action={({ actionRef }) => (\n mutedUser?.userId !== currentUserId\n ? (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-user-message__more__menu\"\n width=\"32px\"\n height=\"32px\"\n onClick={toggleDropdown}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={actionRef}\n closeDropdown={closeDropdown}\n openLeft\n >\n <MenuItem\n onClick={() => {\n channel?.unmuteUser(mutedUser).then(() => {\n closeDropdown();\n setMutedUsers(mutedUsers.filter((u) => {\n return (u.userId !== mutedUser.userId);\n }));\n });\n }}\n >\n {stringSet.OPEN_CHANNEL_SETTING__MODERATION__UNMUTE}\n </MenuItem>\n </MenuItems>\n )}\n />\n ) : null\n )}\n />\n ))}\n </div>\n </Modal>\n </div>\n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n useContext,\n} from 'react';\n\nimport Button, { ButtonTypes, ButtonSizes } from '../../../../ui/Button';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport { UserListItem } from '../ParticipantUI/ParticipantItem';\nimport MutedParticipantsModal from './MutedParticipantsModal';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { useOpenChannelSettingsContext } from '../../context/OpenChannelSettingsProvider';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\n\nexport const MutedParticipantList = (): ReactElement => {\n const [mutedUsers, setMutedUsers] = useState([]);\n const [hasNext, setHasNext] = useState(false);\n const [showModal, setShowModal] = useState(false);\n\n const { channel } = useOpenChannelSettingsContext();\n const state = useSendbirdStateContext();\n const currentUserId = state?.config?.userId;\n const { stringSet } = useContext(LocalizationContext);\n\n useEffect(() => {\n if (!channel) {\n setMutedUsers([]);\n return;\n }\n const mutedUserListQuery = channel?.createMutedUserListQuery({\n limit: 10,\n });\n mutedUserListQuery.next().then((members) => {\n setMutedUsers(members);\n setHasNext(mutedUserListQuery.hasNext);\n });\n }, [channel]);\n\n const refreshList = useCallback(() => {\n if (!channel) {\n setMutedUsers([]);\n return;\n }\n\n const mutedUserListQuery = channel?.createMutedUserListQuery({\n limit: 10,\n });\n mutedUserListQuery.next().then((members) => {\n setMutedUsers(members);\n setHasNext(mutedUserListQuery.hasNext);\n });\n }, [channel]);\n return (\n <>\n {\n mutedUsers.map((mutedUser) => (\n <UserListItem\n key={mutedUser.userId}\n user={mutedUser}\n currentUser={currentUserId}\n isOperator={channel?.isOperator(mutedUser.userId)}\n action={({ actionRef }) => (\n mutedUser?.userId !== currentUserId\n ? (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-user-message__more__menu\"\n width=\"32px\"\n height=\"32px\"\n onClick={toggleDropdown}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n closeDropdown={closeDropdown}\n openLeft\n parentRef={actionRef}\n >\n <MenuItem\n onClick={() => {\n channel?.unmuteUser(mutedUser).then(() => {\n refreshList();\n closeDropdown();\n })\n }}\n >\n {stringSet.OPEN_CHANNEL_SETTING__MODERATION__UNMUTE}\n </MenuItem>\n </MenuItems>\n )}\n />\n ) : null\n )}\n />\n ))\n }\n {\n mutedUsers && mutedUsers.length === 0 && (\n <Label\n className=\"sendbird-channel-settings__empty-list\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_3}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__MUTED_MEMBERS__NO_ONE}\n </Label>\n )\n }\n {\n hasNext && (\n <div\n className=\"sendbird-channel-settings-muted-participant-list__footer\"\n >\n <Button\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={() => {\n setShowModal(true);\n }}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__MUTED_MEMBERS__TITLE_ALL}\n </Button>\n </div>\n )\n }\n {\n showModal && (\n <MutedParticipantsModal\n onCancel={() => {\n setShowModal(false);\n refreshList();\n }}\n />\n )\n }\n </>\n );\n}\n\nexport default MutedParticipantList;\n","import React, {\n ReactElement,\n useContext,\n useEffect,\n useState,\n} from 'react';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport { noop } from '../../../../utils/utils';\nimport { useOpenChannelSettingsContext } from '../../context/OpenChannelSettingsProvider';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\n\ninterface Props {\n onCancel(): void;\n}\n\nexport default function BannedUsersModal({\n onCancel,\n}: Props): ReactElement {\n const [bannedUsers, setBannedUsers] = useState([]);\n const [userListQuery, setUserListQuery] = useState(null);\n const { channel } = useOpenChannelSettingsContext();\n const state = useSendbirdStateContext();\n const { stringSet } = useContext(LocalizationContext);\n const currentUserId = state?.config?.userId;\n\n useEffect(() => {\n const bannedUserListQuery = channel?.createBannedUserListQuery();\n bannedUserListQuery.next().then((users) => {\n setBannedUsers(users);\n });\n setUserListQuery(bannedUserListQuery);\n }, []);\n return (\n <div>\n <Modal\n hideFooter\n onCancel={() => onCancel()}\n onSubmit={noop}\n titleText=\"Muted members\"\n >\n <div\n className=\"sendbird-more-members__popup-scroll\"\n onScroll={(e) => {\n const { hasNext } = userListQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n userListQuery.next().then((o) => {\n setBannedUsers([\n ...bannedUsers,\n ...o,\n ])\n });\n }\n }}\n >\n {\n bannedUsers.map((bannedUser) => (\n <UserListItem\n user={bannedUser}\n key={bannedUser.userId}\n action={({ actionRef }) => (\n bannedUser?.userId !== currentUserId\n ? (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-user-message__more__menu\"\n width=\"32px\"\n height=\"32px\"\n onClick={toggleDropdown}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={actionRef}\n closeDropdown={closeDropdown}\n openLeft\n >\n <MenuItem\n onClick={() => {\n channel?.unbanUser(bannedUser).then(() => {\n closeDropdown();\n setBannedUsers(bannedUsers.filter((u) => {\n return (u.userId !== bannedUser.userId);\n }));\n })\n }}\n >\n {stringSet.OPEN_CHANNEL_SETTING__MODERATION__UNBAN}\n </MenuItem>\n </MenuItems>\n )}\n />\n ) : null\n )\n }\n />\n ))\n }\n </div>\n </Modal>\n </div>\n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n useContext,\n} from 'react';\n\nimport Button, { ButtonTypes, ButtonSizes } from '../../../../ui/Button';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport BannedUsersModal from './BannedUsersModal';\nimport { UserListItem } from '../ParticipantUI/ParticipantItem';\nimport { useOpenChannelSettingsContext } from '../../context/OpenChannelSettingsProvider';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\n\nexport const BannedUserList = (): ReactElement => {\n const [bannedUsers, setBannedUsers] = useState([]);\n const [hasNext, setHasNext] = useState(false);\n const [showModal, setShowModal] = useState(false);\n\n const { channel } = useOpenChannelSettingsContext();\n const state = useSendbirdStateContext();\n const { stringSet } = useContext(LocalizationContext);\n const currentUserId = state?.config?.userId;\n\n useEffect(() => {\n if (!channel) {\n setBannedUsers([]);\n return;\n }\n const bannedUserListQuery = channel?.createBannedUserListQuery();\n bannedUserListQuery.next().then((users) => {\n setBannedUsers(users);\n setHasNext(bannedUserListQuery.hasNext);\n });\n }, [channel]);\n\n const refreshList = useCallback(() => {\n if (!channel) {\n setBannedUsers([]);\n return;\n }\n const bannedUserListQuery = channel?.createBannedUserListQuery();\n bannedUserListQuery.next().then((users) => {\n setBannedUsers(users);\n setHasNext(bannedUserListQuery.hasNext);\n });\n }, [channel]);\n return (\n <>\n {\n bannedUsers.map((bannedUser) => (\n <UserListItem\n key={bannedUser.userId}\n user={bannedUser}\n isOperator={channel?.isOperator(bannedUser.userId)}\n action={({ actionRef }) => (\n bannedUser?.userId !== currentUserId\n ? (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-user-message__more__menu\"\n width=\"32px\"\n height=\"32px\"\n onClick={toggleDropdown}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={actionRef}\n closeDropdown={closeDropdown}\n openLeft\n >\n <MenuItem\n onClick={() => {\n channel?.unbanUser(bannedUser).then(() => {\n closeDropdown();\n refreshList();\n })\n }}\n >\n {stringSet.OPEN_CHANNEL_SETTING__MODERATION__UNBAN}\n </MenuItem>\n </MenuItems>\n )}\n />\n ) : null\n )}\n />\n ))\n }\n {\n bannedUsers && bannedUsers.length === 0 && (\n <Label\n className=\"sendbird-channel-settings__empty-list\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_3}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__BANNED_MEMBERS__NO_ONE}\n </Label>\n )\n }\n {\n hasNext && (\n <div className=\"sendbird-channel-settings-banned-user-list__footer\" >\n <Button\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={() => {\n setShowModal(true);\n }}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__BANNED_MEMBERS__TITLE_ALL}\n </Button>\n </div>\n )\n }\n {\n showModal && (\n <BannedUsersModal\n onCancel={() => {\n setShowModal(false);\n refreshList();\n }}\n />\n )\n }\n </>\n );\n}\n\n\nexport default BannedUserList;\n","import React, { useContext } from 'react';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\n\nimport Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport Icon, {\n IconTypes,\n IconColors,\n} from '../../../../ui/Icon';\nimport { useOpenChannelSettingsContext } from '../../context/OpenChannelSettingsProvider';\nimport OpenChannelProfile from '../OpenChannelProfile';\nimport DeleteChannel from './DeleteOpenChannel';\nimport ParticipantsAccordion from '../ParticipantUI';\nimport Accordion, { AccordionGroup } from '../../../../ui/Accordion';\nimport OperatorList from './OperatorList';\nimport MutedParticipantList from './MutedParticipantList';\nimport BannedUserList from './BannedUserList';\n\nexport const copyToClipboard = (text: string): boolean => {\n // @ts-ignore: Unreachable code error\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n // @ts-ignore: Unreachable code error\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport interface OperatorUIProps {\n renderChannelProfile?: () => React.ReactNode;\n}\n\nexport const OperatorUI: React.FC<OperatorUIProps> = ({\n renderChannelProfile,\n}: OperatorUIProps) => {\n const { stringSet } = useContext(LocalizationContext);\n const {\n onCloseClick,\n channel,\n } = useOpenChannelSettingsContext();\n return (\n <>\n <div className=\"sendbird-openchannel-settings__header\">\n <Label type={LabelTypography.H_2} color={LabelColors.ONBACKGROUND_1}>\n {stringSet.CHANNEL_SETTING__HEADER__TITLE}\n </Label>\n <Icon\n className=\"sendbird-openchannel-settings__close-icon\"\n type={IconTypes.CLOSE}\n height=\"24px\"\n width=\"24px\"\n onClick={() => {\n onCloseClick();\n }}\n />\n </div>\n <div className=\"sendbird-openchannel-settings__profile\">\n {\n renderChannelProfile?.() || (\n <OpenChannelProfile />\n )\n }\n </div>\n <div className=\"sendbird-openchannel-settings__url\">\n <Icon\n className=\"sendbird-openchannel-settings__copy-icon\"\n type={IconTypes.COPY}\n height=\"22px\"\n width=\"22px\"\n onClick={() => {\n copyToClipboard(channel?.url);\n }}\n />\n <Label\n className=\"sendbird-openchannel-settings__url-label\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__OPERATOR_URL}\n </Label>\n <Label\n className=\"sendbird-openchannel-settings__url-value\"\n type={LabelTypography.SUBTITLE_2}\n >\n {channel?.url}\n </Label>\n </div>\n <AccordionGroup>\n <Accordion\n className=\"sendbird-openchannel-settings__operators-list\"\n id=\"operators\"\n renderTitle={() => (\n <>\n <Icon\n className=\"sendbird-openchannel-settings__operator-accordion-icon\"\n type={IconTypes.OPERATOR}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__OPERATORS_TITLE}\n </Label>\n </>\n )}\n renderContent={() => (\n <>\n <OperatorList />\n </>\n )}\n />\n <Accordion\n className=\"sendbird-channel-settings__operators-list\"\n id=\"participants\"\n renderTitle={() => (\n <>\n <Icon\n type={IconTypes.MEMBERS}\n fillColor={IconColors.PRIMARY}\n width={24}\n height={24}\n className=\"sendbird-openchannel-settings__operator-accordion-icon\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__PARTICIPANTS_ACCORDION_TITLE}\n </Label>\n </>\n )}\n renderContent={() => (\n <>\n <ParticipantsAccordion isOperatorView />\n </>\n )}\n />\n <Accordion\n className=\"sendbird-channel-settings__operators-list\"\n id=\"mutedMembers\"\n renderTitle={() => (\n <>\n <Icon\n className=\"sendbird-openchannel-settings__operator-accordion-icon\"\n type={IconTypes.MUTE}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__MUTED_MEMBERS__TITLE}\n </Label>\n </>\n )}\n renderContent={() => (\n <>\n <MutedParticipantList />\n </>\n )}\n />\n <Accordion\n className=\"sendbird-channel-settings__operators-list\"\n id=\"bannedUsers\"\n renderTitle={() => (\n <>\n <Icon\n className=\"sendbird-openchannel-settings__operator-accordion-icon\"\n type={IconTypes.BAN}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__BANNED_MEMBERS__TITLE}\n </Label>\n </>\n )}\n renderContent={() => (\n <>\n <BannedUserList />\n </>\n )}\n />\n </AccordionGroup>\n <DeleteChannel />\n </>\n );\n};\n\nexport default OperatorUI;\n"],"names":["DeleteChannel","_c","useState","showDeleteChannelModal","setShowDeleteChannelModal","stringSet","useContext","LocalizationContext","globalState","useSendbirdStateContext","isOnline","config","logger","_d","useOpenChannelSettingsContext","channel","onDeleteChannel","deleteChannel","delete","then","response","info","catch","error","warning","React","Icon","IconTypes","DELETE","IconColors","ERROR","join","Label","LabelTypography","SUBTITLE_1","LabelColors","ONBACKGROUND_1","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_PANEL","Modal","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_TITLE","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_SUBMIT","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_CONTEXT","OperatorListModal","_a","onCancel","users","setUsers","operatorQuery","setOperatorQuery","state","currentUserId","userId","useEffect","operatorListQuery","createOperatorListQuery","limit","next","participants","e","hasNext","target","fetchMore","clientHeight","scrollTop","scrollHeight","o","map","operator","UserListItem","parentRef","actionRef","ContextMenu","toggleDropdown","IconButton","MORE","CONTENT_INVERSE","closeDropdown","MenuItems","MenuItem","removeOperators","filter","OPEN_CHANNEL_SETTING__MODERATION__UNREGISTER_OPERATOR","AddOperatorsModal","onSubmit","_b","setParticipants","selectedUsers","setSelectedUsers","participantQuery","setParticipantQuery","participantListQuery","createParticipantListQuery","selectedCount","Object","keys","m","length","ButtonType","PRIMARY","addOperators","ONBACKGROUND_3","CAPTION_1","MODAL__INVITE_MEMBER__SELECTEC","participant","isOperator","operators","find","event","modifiedSelectedUsers","id","checked","OperatorList","setOperators","setHasNext","showAdd","setShowAdd","_e","showMore","setShowMore","refreshList","useCallback","muteUser","OPEN_CHANNEL_SETTING__MODERATION__MUTE","banUser","OPEN_CHANNEL_SETTING__MODERATION__BAN","Button","ButtonTypes","SECONDARY","ButtonSizes","SMALL","OPEN_CHANNEL_SETTINGS__OPERATORS__TITLE_ADD","OPEN_CHANNEL_SETTINGS__OPERATORS__TITLE_ALL","MutedParticipantsModal","mutedUsers","setMutedUsers","userListQuery","setUserListQuery","mutedUserListQuery","createMutedUserListQuery","noop","mutedUser","unmuteUser","u","OPEN_CHANNEL_SETTING__MODERATION__UNMUTE","MutedParticipantList","showModal","setShowModal","members","SUBTITLE_2","OPEN_CHANNEL_SETTINGS__MUTED_MEMBERS__NO_ONE","OPEN_CHANNEL_SETTINGS__MUTED_MEMBERS__TITLE_ALL","BannedUsersModal","bannedUsers","setBannedUsers","bannedUserListQuery","createBannedUserListQuery","bannedUser","unbanUser","OPEN_CHANNEL_SETTING__MODERATION__UNBAN","BannedUserList","OPEN_CHANNEL_SETTINGS__BANNED_MEMBERS__NO_ONE","OPEN_CHANNEL_SETTINGS__BANNED_MEMBERS__TITLE_ALL","copyToClipboard","text","window","clipboardData","setData","document","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","OperatorUI","renderChannelProfile","onCloseClick","H_2","CHANNEL_SETTING__HEADER__TITLE","CLOSE","OpenChannelProfile","COPY","url","CAPTION_2","ONBACKGROUND_2","OPEN_CHANNEL_SETTINGS__OPERATOR_URL","AccordionGroup","Accordion","OPERATOR","OPEN_CHANNEL_SETTINGS__OPERATORS_TITLE","MEMBERS","OPEN_CHANNEL_SETTINGS__PARTICIPANTS_ACCORDION_TITLE","ParticipantsAccordion","MUTE","OPEN_CHANNEL_SETTINGS__MUTED_MEMBERS__TITLE","BAN","OPEN_CHANNEL_SETTINGS__BANNED_MEMBERS__TITLE"],"mappings":"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"}
|
|
@@ -1,151 +1,40 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var UserProfileContext = require('../../UserProfileContext-5b432968.js');
|
|
8
|
-
require('../../index-13bf8604.js');
|
|
3
|
+
require('../../tslib.es6-306f32fb.js');
|
|
4
|
+
require('react');
|
|
5
|
+
require('../../index-52186645.js');
|
|
6
|
+
require('../../ui/ContextMenu.js');
|
|
9
7
|
require('../../ui/Icon.js');
|
|
10
|
-
require('../../
|
|
11
|
-
|
|
12
|
-
require('../../
|
|
13
|
-
require('../../
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
var useSendbirdStateContext = require('../../useSendbirdStateContext.js');
|
|
18
|
-
require('../../_rollupPluginBabelHelpers-8b01e58c.js');
|
|
8
|
+
require('../../ui/IconButton.js');
|
|
9
|
+
require('../../index-6b7d2465.js');
|
|
10
|
+
var OpenChannelSettings_components_ParticipantUI = require('../../index-3b747780.js');
|
|
11
|
+
require('../../LocalizationContext-672b9c94.js');
|
|
12
|
+
require('../context.js');
|
|
13
|
+
require('../../useSendbirdStateContext.js');
|
|
14
|
+
require('../../_rollupPluginBabelHelpers-f02175f2.js');
|
|
19
15
|
require('prop-types');
|
|
20
|
-
require('../../
|
|
21
|
-
require('../../index-fd497c7c.js');
|
|
22
|
-
require('../../utils-80d26c50.js');
|
|
23
|
-
require('../../ui/ImageRenderer.js');
|
|
24
|
-
require('../../uuid-198218df.js');
|
|
16
|
+
require('../../index-3b9eca88.js');
|
|
25
17
|
require('react-dom');
|
|
26
|
-
require('../../
|
|
27
|
-
require('../../
|
|
28
|
-
require('../../
|
|
29
|
-
require('../../
|
|
18
|
+
require('../../ui/SortByRow.js');
|
|
19
|
+
require('../../stringSet-da3df562.js');
|
|
20
|
+
require('../../UserProfileContext-d3290c6a.js');
|
|
21
|
+
require('../../context-01116a29.js');
|
|
22
|
+
require('../../utils-15fd96e3.js');
|
|
23
|
+
require('../../ui/Avatar.js');
|
|
24
|
+
require('../../ui/ImageRenderer.js');
|
|
25
|
+
require('../../uuid-deaf6e4d.js');
|
|
26
|
+
require('../../ui/Modal.js');
|
|
27
|
+
require('../../index-84bd6fef.js');
|
|
28
|
+
require('../../index-1a2c6bb9.js');
|
|
29
|
+
require('../../ui/UserProfile.js');
|
|
30
30
|
require('../../withSendbird.js');
|
|
31
31
|
require('../../sendbirdSelectors.js');
|
|
32
|
-
require('../../topics-
|
|
33
|
-
require('../../
|
|
34
|
-
require('../../ui/
|
|
35
|
-
|
|
36
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
37
|
-
|
|
38
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
39
|
-
|
|
40
|
-
var UserListItem = function UserListItem(_a) {
|
|
41
|
-
var member = _a.member,
|
|
42
|
-
currentUser = _a.currentUser;
|
|
43
|
-
var avatarRef = React.useRef(null);
|
|
44
|
-
|
|
45
|
-
var _b = React.useContext(UserProfileContext.UserProfileContext),
|
|
46
|
-
disableUserProfile = _b.disableUserProfile,
|
|
47
|
-
renderUserProfile = _b.renderUserProfile;
|
|
48
|
-
|
|
49
|
-
var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet;
|
|
50
|
-
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
51
|
-
className: "sendbird-participants-accordion__member"
|
|
52
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
53
|
-
className: "sendbird-participants-accordion__member-avatar"
|
|
54
|
-
}, /*#__PURE__*/React__default["default"].createElement(ui_ContextMenu["default"], {
|
|
55
|
-
menuTrigger: function menuTrigger(toggleDropdown) {
|
|
56
|
-
return /*#__PURE__*/React__default["default"].createElement(ui_Avatar["default"], {
|
|
57
|
-
onClick: function onClick() {
|
|
58
|
-
if (!disableUserProfile) {
|
|
59
|
-
toggleDropdown();
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
ref: avatarRef,
|
|
63
|
-
src: member.profileUrl,
|
|
64
|
-
width: 24,
|
|
65
|
-
height: 24
|
|
66
|
-
});
|
|
67
|
-
},
|
|
68
|
-
menuItems: function menuItems(closeDropdown) {
|
|
69
|
-
return /*#__PURE__*/React__default["default"].createElement(ui_ContextMenu.MenuItems, {
|
|
70
|
-
openLeft: true,
|
|
71
|
-
parentRef: avatarRef // for catching location(x, y) of MenuItems
|
|
72
|
-
,
|
|
73
|
-
parentContainRef: avatarRef // for toggling more options(menus & reactions)
|
|
74
|
-
,
|
|
75
|
-
closeDropdown: closeDropdown,
|
|
76
|
-
style: {
|
|
77
|
-
paddingTop: 0,
|
|
78
|
-
paddingBottom: 0
|
|
79
|
-
}
|
|
80
|
-
}, renderUserProfile ? renderUserProfile({
|
|
81
|
-
user: member,
|
|
82
|
-
currentUserId: currentUser,
|
|
83
|
-
close: closeDropdown
|
|
84
|
-
}) : /*#__PURE__*/React__default["default"].createElement(ui_UserProfile, {
|
|
85
|
-
disableMessaging: true,
|
|
86
|
-
user: member,
|
|
87
|
-
currentUserId: currentUser,
|
|
88
|
-
onSuccess: closeDropdown
|
|
89
|
-
}));
|
|
90
|
-
}
|
|
91
|
-
})), /*#__PURE__*/React__default["default"].createElement(ui_Label.Label, {
|
|
92
|
-
type: ui_Label.LabelTypography.SUBTITLE_2,
|
|
93
|
-
color: ui_Label.LabelColors.ONBACKGROUND_1
|
|
94
|
-
}, member.nickname || stringSet.NO_NAME, currentUser === member.userId && stringSet.CHANNEL_SETTING__MEMBERS__YOU));
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
function ParticipantsList() {
|
|
98
|
-
var _a;
|
|
99
|
-
|
|
100
|
-
var globalState = useSendbirdStateContext();
|
|
101
|
-
var currentUser = (_a = globalState === null || globalState === void 0 ? void 0 : globalState.config) === null || _a === void 0 ? void 0 : _a.userId;
|
|
102
|
-
var channel = OpenChannelSettings_context.useOpenChannelSettingsContext().channel;
|
|
103
|
-
var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet;
|
|
104
|
-
|
|
105
|
-
var _b = React.useState([]),
|
|
106
|
-
participants = _b[0],
|
|
107
|
-
setParticipants = _b[1];
|
|
108
|
-
|
|
109
|
-
var _c = React.useState(null),
|
|
110
|
-
participantListQuery = _c[0],
|
|
111
|
-
setParticipantListQuery = _c[1];
|
|
112
|
-
|
|
113
|
-
React.useEffect(function () {
|
|
114
|
-
if (!channel || !(channel === null || channel === void 0 ? void 0 : channel.createParticipantListQuery)) {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
32
|
+
require('../../topics-1932f321.js');
|
|
33
|
+
require('../../ui/UserListItem.js');
|
|
34
|
+
require('../../ui/MutedAvatarOverlay.js');
|
|
35
|
+
require('../../ui/Checkbox.js');
|
|
117
36
|
|
|
118
|
-
var participantListQuery = channel === null || channel === void 0 ? void 0 : channel.createParticipantListQuery({});
|
|
119
|
-
setParticipantListQuery(participantListQuery);
|
|
120
|
-
participantListQuery.next().then(function (participantList) {
|
|
121
|
-
setParticipants(participantList);
|
|
122
|
-
});
|
|
123
|
-
}, [channel]);
|
|
124
|
-
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
125
|
-
className: "sendbird-openchannel-settings__participants-list",
|
|
126
|
-
onScroll: function onScroll(e) {
|
|
127
|
-
var hasNext = participantListQuery.hasNext;
|
|
128
|
-
var target = e.target;
|
|
129
|
-
var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight;
|
|
130
37
|
|
|
131
|
-
if (hasNext && fetchMore) {
|
|
132
|
-
participantListQuery.next().then(function (fetchedParticipants) {
|
|
133
|
-
setParticipants(tslib_es6.__spreadArray(tslib_es6.__spreadArray([], participants, true), fetchedParticipants, true));
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", null, participants.map(function (p) {
|
|
138
|
-
return /*#__PURE__*/React__default["default"].createElement(UserListItem, {
|
|
139
|
-
member: p,
|
|
140
|
-
currentUser: currentUser,
|
|
141
|
-
key: p.userId
|
|
142
|
-
});
|
|
143
|
-
}), participants && participants.length === 0 ? /*#__PURE__*/React__default["default"].createElement(ui_Label.Label, {
|
|
144
|
-
className: "sendbird-channel-settings__empty-list",
|
|
145
|
-
type: ui_Label.LabelTypography.SUBTITLE_2,
|
|
146
|
-
color: ui_Label.LabelColors.ONBACKGROUND_3
|
|
147
|
-
}, stringSet.OPEN_CHANNEL_SETTINGS__EMPTY_LIST) : null));
|
|
148
|
-
}
|
|
149
38
|
|
|
150
|
-
module.exports =
|
|
39
|
+
module.exports = OpenChannelSettings_components_ParticipantUI.ParticipantList;
|
|
151
40
|
//# sourceMappingURL=ParticipantUI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParticipantUI.js","sources":["../../../../src/smart-components/OpenChannelSettings/components/ParticipantUI/ParticipantItem.tsx","../../../../src/smart-components/OpenChannelSettings/components/ParticipantUI/index.tsx"],"sourcesContent":["import React, {\n ReactElement,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport type { User } from '@sendbird/chat';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\n\nimport { UserProfileContext } from '../../../../lib/UserProfileContext';\nimport Button, { ButtonTypes, ButtonSizes } from '../../../../ui/Button';\nimport Accordion from '../../../../ui/Accordion';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport Avatar from '../../../../ui/Avatar/index';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport ParticipantsModal from './ParticipantsModal';\nimport UserProfile from '../../../../ui/UserProfile';\nimport ContextMenu, { MenuItems } from '../../../../ui/ContextMenu';\nimport { useOpenChannelSettingsContext } from '../../context/OpenChannelSettingsProvider';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\n\nconst SHOWN_MEMBER_MAX = 10;\n\ninterface UserListItemProps {\n member: User;\n currentUser?: string;\n}\n\nexport const UserListItem: React.FC<UserListItemProps> = ({\n member,\n currentUser,\n}: UserListItemProps) => {\n const avatarRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n return (\n <div className=\"sendbird-participants-accordion__member\">\n <div className=\"sendbird-participants-accordion__member-avatar\">\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <Avatar\n onClick={() => {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n src={member.profileUrl}\n width={24}\n height={24}\n />\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n openLeft\n parentRef={avatarRef}\n // for catching location(x, y) of MenuItems\n parentContainRef={avatarRef}\n // for toggling more options(menus & reactions)\n closeDropdown={closeDropdown}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n >\n {\n renderUserProfile\n ? renderUserProfile({\n user: member,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n <UserProfile\n disableMessaging\n user={member}\n currentUserId={currentUser}\n onSuccess={closeDropdown}\n />\n )\n }\n </MenuItems>\n )}\n />\n </div>\n <Label type={LabelTypography.SUBTITLE_2} color={LabelColors.ONBACKGROUND_1}>\n {member.nickname || stringSet.NO_NAME}\n {\n (currentUser === member.userId) && (\n stringSet.CHANNEL_SETTING__MEMBERS__YOU\n )\n }\n </Label>\n </div>\n );\n};\n\nexport interface ParticipantsAccordionProps {\n maxMembers?: number;\n}\n\nexport default function ParticipantsAccordion(props: ParticipantsAccordionProps): ReactElement {\n const maxMembers = props?.maxMembers || SHOWN_MEMBER_MAX;\n const { channel } = useOpenChannelSettingsContext();\n const globalState = useSendbirdStateContext();\n const currentUser = globalState?.config?.userId;\n const [participants, setParticipants] = useState([]);\n const [showMoreModal, setShowMoreModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n useEffect(() => {\n if (!channel || !channel?.createParticipantListQuery) {\n return;\n }\n const participantListQuery = channel?.createParticipantListQuery({});\n participantListQuery.next().then((participantList) => {\n setParticipants(participantList);\n });\n }, [channel]);\n\n return (\n <Accordion\n className=\"sendbird-participants-accordion\"\n id=\"participants\"\n renderTitle={() => (\n <>\n <Icon\n type={IconTypes.MEMBERS}\n fillColor={IconColors.PRIMARY}\n width={24}\n height={24}\n className=\"sendbird-openchannel-settings__accordion-icon\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__PARTICIPANTS_ACCORDION_TITLE}\n </Label>\n </>\n )}\n renderContent={() => (\n <div className=\"\">\n <div className=\"sendbird-participants-accordion__list\">\n {\n participants.slice(0, maxMembers).map((p) => (\n <UserListItem\n member={p}\n currentUser={currentUser}\n key={p.userId}\n />\n ))\n }\n {\n (participants && participants.length === 0)\n ? (\n <Label\n className=\"sendbird-channel-settings__empty-list\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_3}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__EMPTY_LIST}\n </Label>\n ): null\n }\n </div>\n {\n participants.length >= maxMembers && (\n <div className=\"sendbird-participants-accordion__footer\">\n <Button\n className=\"sendbird-participants-accordion__footer__all-participants\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={() => setShowMoreModal(true)}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__SEE_ALL}\n </Button>\n {\n showMoreModal && (\n <ParticipantsModal\n onCancel={() => {\n setShowMoreModal(false);\n }}\n />\n )\n }\n </div>\n )\n }\n </div>\n )}\n />\n );\n}\n","import React, {\n ReactElement,\n useContext,\n useState,\n useEffect,\n} from 'react';\nimport type { User } from '@sendbird/chat';\nimport type { ParticipantListQuery } from '@sendbird/chat/openChannel';\n\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\n\nimport { UserListItem } from './ParticipantItem';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport { useOpenChannelSettingsContext } from '../../context/OpenChannelSettingsProvider';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\n\nexport default function ParticipantsList(): ReactElement {\n const globalState = useSendbirdStateContext();\n const currentUser = globalState?.config?.userId;\n const { channel } = useOpenChannelSettingsContext();\n const { stringSet } = useContext(LocalizationContext);\n const [participants, setParticipants] = useState<Array<User>|null>([]);\n const [participantListQuery, setParticipantListQuery] = useState<ParticipantListQuery | null>(null);\n useEffect(() => {\n if (!channel || !channel?.createParticipantListQuery) {\n return;\n }\n const participantListQuery = channel?.createParticipantListQuery({});\n setParticipantListQuery(participantListQuery);\n participantListQuery.next().then((participantList) => {\n setParticipants(participantList);\n });\n }, [channel]);\n return (\n <div\n className=\"sendbird-openchannel-settings__participants-list\"\n onScroll={(e) => {\n const { hasNext } = participantListQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n participantListQuery.next().then((fetchedParticipants) => {\n setParticipants([\n ...participants,\n ...fetchedParticipants,\n ])\n });\n }\n }}\n >\n <div>\n {\n participants.map((p: User) => (\n <UserListItem\n member={p}\n currentUser={currentUser}\n key={p.userId}\n />\n ))\n }\n {\n (participants && participants.length === 0)\n ? (\n <Label\n className=\"sendbird-channel-settings__empty-list\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_3}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__EMPTY_LIST}\n </Label>\n ): null\n }\n </div>\n </div>\n )\n}\n"],"names":["UserListItem","_a","member","currentUser","avatarRef","useRef","_b","useContext","UserProfileContext","disableUserProfile","renderUserProfile","stringSet","LocalizationContext","React","ContextMenu","toggleDropdown","Avatar","profileUrl","closeDropdown","MenuItems","paddingTop","paddingBottom","user","currentUserId","close","UserProfile","Label","LabelTypography","SUBTITLE_2","LabelColors","ONBACKGROUND_1","nickname","NO_NAME","userId","CHANNEL_SETTING__MEMBERS__YOU","ParticipantsList","globalState","useSendbirdStateContext","config","channel","useOpenChannelSettingsContext","useState","participants","setParticipants","_c","participantListQuery","setParticipantListQuery","useEffect","createParticipantListQuery","next","then","participantList","e","hasNext","target","fetchMore","clientHeight","scrollTop","scrollHeight","fetchedParticipants","map","p","length","ONBACKGROUND_3","OPEN_CHANNEL_SETTINGS__EMPTY_LIST"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BO,IAAMA,YAAY,GAAgC,SAA5CA,YAA4C,CAACC,EAAD;MACvDC,MAAM;MACNC,WAAW;AAEX,MAAMC,SAAS,GAAGC,YAAM,CAAC,IAAD,CAAxB;;AACM,MAAAC,KAGFC,gBAAU,CAACC,qCAAD,CAHR;AAAA,MACJC,kBAAkB,wBADd;AAAA,MAEJC,iBAAiB,uBAFb;;AAIE,MAAAC,SAAS,GAAKJ,gBAAU,CAACK,uCAAD,CAAV,UAAd;AACR,sBACEC;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,wCAACC,yBAAD;AACE,IAAA,WAAW,EAAE,qBAACC,cAAD;AAAoB,0BAC/BF,wCAACG,oBAAD;AACE,QAAA,OAAO,EAAE;AACP,cAAI,CAACP,kBAAL,EAAyB;AACvBM,YAAAA,cAAc;AACf;AACF,SALH;AAME,QAAA,GAAG,EAAEX,SANP;AAOE,QAAA,GAAG,EAAEF,MAAM,CAACe,UAPd;AAQE,QAAA,KAAK,EAAE,EART;AASE,QAAA,MAAM,EAAE;AATV,QAD+B;AAYhC,KAbH;AAcE,IAAA,SAAS,EAAE,mBAACC,aAAD;AAAmB,0BAC5BL,wCAACM,wBAAD;AACE,QAAA,QAAQ,MADV;AAEE,QAAA,SAAS,EAAEf,SAFb;AAAA;AAIE,QAAA,gBAAgB,EAAEA,SAJpB;AAAA;AAME,QAAA,aAAa,EAAEc,aANjB;AAOE,QAAA,KAAK,EAAE;AAAEE,UAAAA,UAAU,EAAE,CAAd;AAAiBC,UAAAA,aAAa,EAAE;AAAhC;AAPT,SAUIX,iBAAiB,GACbA,iBAAiB,CAAC;AAClBY,QAAAA,IAAI,EAAEpB,MADY;AAElBqB,QAAAA,aAAa,EAAEpB,WAFG;AAGlBqB,QAAAA,KAAK,EAAEN;AAHW,OAAD,CADJ,gBAObL,wCAACY,cAAD;AACE,QAAA,gBAAgB,MADlB;AAEE,QAAA,IAAI,EAAEvB,MAFR;AAGE,QAAA,aAAa,EAAEC,WAHjB;AAIE,QAAA,SAAS,EAAEe;AAJb,QAjBR,CAD4B;AA2B7B;AAzCH,IADF,CADF,eA8CEL,wCAACa,cAAD;AAAO,IAAA,IAAI,EAAEC,wBAAe,CAACC,UAA7B;AAAyC,IAAA,KAAK,EAAEC,oBAAW,CAACC;AAA5D,KACG5B,MAAM,CAAC6B,QAAP,IAAmBpB,SAAS,CAACqB,OADhC,EAGK7B,WAAW,KAAKD,MAAM,CAAC+B,MAAxB,IACEtB,SAAS,CAACuB,6BAJhB,CA9CF,CADF;AAyDD,CAnEM;;SCbiBC;;;AACtB,MAAMC,WAAW,GAAGC,uBAAuB,EAA3C;AACA,MAAMlC,WAAW,GAAG,MAAAiC,WAAW,SAAX,IAAAA,WAAW,WAAX,SAAA,GAAAA,WAAW,CAAEE,MAAb,UAAA,iBAAA,SAAA,MAAqBL,MAAzC;AACQ,MAAAM,OAAO,GAAKC,yDAA6B,UAAzC;AACA,MAAA7B,SAAS,GAAKJ,gBAAU,CAACK,uCAAD,CAAV,UAAd;;AACF,MAAAN,KAAkCmC,cAAQ,CAAmB,EAAnB,CAA1C;AAAA,MAACC,YAAY,QAAb;AAAA,MAAeC,eAAe,QAA9B;;AACA,MAAAC,KAAkDH,cAAQ,CAA8B,IAA9B,CAA1D;AAAA,MAACI,oBAAoB,QAArB;AAAA,MAAuBC,uBAAuB,QAA9C;;AACNC,EAAAA,eAAS,CAAC;AACR,QAAI,CAACR,OAAD,IAAY,EAACA,OAAO,SAAP,IAAAA,OAAO,WAAP,SAAA,GAAAA,OAAO,CAAES,0BAAV,CAAhB,EAAsD;AACpD;AACD;;AACD,QAAMH,oBAAoB,GAAGN,OAAO,SAAP,IAAAA,OAAO,WAAP,SAAA,GAAAA,OAAO,CAAES,0BAAT,CAAoC,EAApC,CAA7B;AACAF,IAAAA,uBAAuB,CAACD,oBAAD,CAAvB;AACAA,IAAAA,oBAAoB,CAACI,IAArB,GAA4BC,IAA5B,CAAiC,UAACC,eAAD;AAC/BR,MAAAA,eAAe,CAACQ,eAAD,CAAf;AACD,KAFD;AAGD,GATQ,EASN,CAACZ,OAAD,CATM,CAAT;AAUA,sBACE1B;AACE,IAAA,SAAS,EAAC,kDADZ;AAEE,IAAA,QAAQ,EAAE,kBAACuC,CAAD;AACA,UAAAC,OAAO,GAAKR,oBAAoB,QAAhC;AACR,UAAMS,MAAM,GAAGF,CAAC,CAACE,MAAjB;AACA,UAAMC,SAAS,GACbD,MAAM,CAACE,YAAP,GAAsBF,MAAM,CAACG,SAA7B,KAA2CH,MAAM,CAACI,YADpD;;AAIA,UAAIL,OAAO,IAAIE,SAAf,EAA0B;AACxBV,QAAAA,oBAAoB,CAACI,IAArB,GAA4BC,IAA5B,CAAiC,UAACS,mBAAD;AAC/BhB,UAAAA,eAAe,qDACVD,qBACAiB,0BAFU,CAAf;AAID,SALD;AAMD;AACF;AAjBH,kBAmBE9C,qDAEI6B,YAAY,CAACkB,GAAb,CAAiB,UAACC,CAAD;AAAa,wBAC5BhD,wCAAC,YAAD;AACE,MAAA,MAAM,EAAEgD,CADV;AAEE,MAAA,WAAW,EAAE1D,WAFf;AAGE,MAAA,GAAG,EAAE0D,CAAC,CAAC5B;AAHT,MAD4B;AAM7B,GAND,CAFJ,EAWKS,YAAY,IAAIA,YAAY,CAACoB,MAAb,KAAwB,CAAzC,gBAEMjD,wCAACa,cAAD;AACE,IAAA,SAAS,EAAC,uCADZ;AAEE,IAAA,IAAI,EAAEC,wBAAe,CAACC,UAFxB;AAGE,IAAA,KAAK,EAAEC,oBAAW,CAACkC;AAHrB,KAKGpD,SAAS,CAACqD,iCALb,CAFN,GASK,IApBT,CAnBF,CADF;AA6CD;;;;"}
|
|
1
|
+
{"version":3,"file":"ParticipantUI.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -4,9 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var useSendbirdStateContext = require('../useSendbirdStateContext.js');
|
|
7
|
-
var UserProfileContext = require('../UserProfileContext-
|
|
7
|
+
var UserProfileContext = require('../UserProfileContext-d3290c6a.js');
|
|
8
|
+
var uuid = require('../uuid-deaf6e4d.js');
|
|
8
9
|
require('../withSendbird.js');
|
|
9
|
-
require('../_rollupPluginBabelHelpers-
|
|
10
|
+
require('../_rollupPluginBabelHelpers-f02175f2.js');
|
|
10
11
|
require('prop-types');
|
|
11
12
|
|
|
12
13
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -40,13 +41,56 @@ var OpenChannelSettingsProvider = function OpenChannelSettingsProvider(props) {
|
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
sdk.openChannel.getChannel(channelUrl).then(function (channel) {
|
|
43
|
-
logger.info('open channel setting: fetched', channel);
|
|
44
|
-
|
|
44
|
+
logger.info('open channel setting: fetched', channel); // TODO: Add pending status
|
|
45
|
+
|
|
46
|
+
channel.enter().then(function () {
|
|
47
|
+
setChannel(channel);
|
|
48
|
+
logger.info('OpenChannelSettings | Succeeded to enter channel');
|
|
49
|
+
}).catch(function (error) {
|
|
50
|
+
setChannel(null);
|
|
51
|
+
logger.warning('OpenChannelSettings | Failed to enter channel', error);
|
|
52
|
+
});
|
|
45
53
|
}).catch(function (error) {
|
|
46
54
|
logger.error('open channel setting: error fetching', error);
|
|
47
55
|
setChannel(null);
|
|
48
56
|
});
|
|
57
|
+
return function () {
|
|
58
|
+
if (channel && channel.exit) {
|
|
59
|
+
channel.exit().then(function () {
|
|
60
|
+
logger.info('OpenChannelSettings | Succeeded to exit channel');
|
|
61
|
+
}).catch(function (error) {
|
|
62
|
+
logger.warning('OpenChannelSettings | Failed to exit channel', error);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
};
|
|
49
66
|
}, [channelUrl, sdk]);
|
|
67
|
+
React.useEffect(function () {
|
|
68
|
+
var _a;
|
|
69
|
+
|
|
70
|
+
var channelHandlerId = uuid.uuidv4();
|
|
71
|
+
|
|
72
|
+
if (channel !== null && ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.openChannel) === null || _a === void 0 ? void 0 : _a.addOpenChannelHandler)) {
|
|
73
|
+
var channelHandlerParams = {
|
|
74
|
+
onUserBanned: function onUserBanned(ch, user) {
|
|
75
|
+
var _a;
|
|
76
|
+
|
|
77
|
+
if ((ch === null || ch === void 0 ? void 0 : ch.url) === (channel === null || channel === void 0 ? void 0 : channel.url) && (user === null || user === void 0 ? void 0 : user.userId) === ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.currentUser) === null || _a === void 0 ? void 0 : _a.userId)) {
|
|
78
|
+
setChannel(null);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
sdk.openChannel.addOpenChannelHandler(channelHandlerId, channelHandlerParams);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return function () {
|
|
86
|
+
var _a, _b, _c;
|
|
87
|
+
|
|
88
|
+
if ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.openChannel) === null || _a === void 0 ? void 0 : _a.removeOpenChannelHandler) {
|
|
89
|
+
logger.info('OpenChannelSettings | Removing channel handlers', channelHandlerId);
|
|
90
|
+
(_c = (_b = sdk.openChannel).removeOpenChannelHandler) === null || _c === void 0 ? void 0 : _c.call(_b, channelHandlerId);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
}, [channel]);
|
|
50
94
|
return /*#__PURE__*/React__default["default"].createElement(OpenChannelSettingsContext.Provider, {
|
|
51
95
|
value: {
|
|
52
96
|
channelUrl: channelUrl,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sources":["../../../src/smart-components/OpenChannelSettings/context/OpenChannelSettingsProvider.tsx"],"sourcesContent":["import React, {\n useEffect,\n useState,\n} from 'react';\nimport type { OpenChannel, OpenChannelUpdateParams, SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport useSendbirdStateContext from '../../../hooks/useSendbirdStateContext';\nimport { UserProfileProvider } from '../../../lib/UserProfileContext';\nimport { RenderUserProfileProps } from '../../../types';\n\nexport interface OpenChannelSettingsContextProps {\n channelUrl: string;\n children?: React.ReactNode;\n onCloseClick?(): void;\n onBeforeUpdateChannel?(currentTitle: string, currentImg: File, data: string): OpenChannelUpdateParams;\n onChannelModified?(channel: OpenChannel): void;\n onDeleteChannel?(channel: OpenChannel): void;\n disableUserProfile?: boolean;\n renderUserProfile?: (props: RenderUserProfileProps) => React.ReactNode;\n}\n\ninterface OpenChannelSettingsContextType {\n channelUrl: string;\n channel?: OpenChannel;\n setChannel?: React.Dispatch<React.SetStateAction<OpenChannel>>;\n onCloseClick?(): void;\n onBeforeUpdateChannel?(currentTitle: string, currentImg: File, data: string): OpenChannelUpdateParams;\n onChannelModified?(channel: OpenChannel): void;\n onDeleteChannel?(channel: OpenChannel): void;\n}\n\nconst OpenChannelSettingsContext = React.createContext<OpenChannelSettingsContextType | null>(undefined);\n\nconst OpenChannelSettingsProvider: React.FC<OpenChannelSettingsContextProps> = (props: OpenChannelSettingsContextProps) => {\n const {\n children,\n channelUrl,\n onCloseClick,\n onChannelModified,\n onBeforeUpdateChannel,\n onDeleteChannel,\n } = props;\n\n // fetch store from <SendbirdProvider />\n const globalStore = useSendbirdStateContext();\n const sdk = globalStore?.stores?.sdkStore?.sdk as SendbirdOpenChat;\n\n const logger = globalStore?.config?.logger;\n\n const [channel, setChannel] = useState<OpenChannel | null>(null);\n useEffect(() => {\n if (!channelUrl || !sdk.openChannel) {\n setChannel(null);\n return;\n }\n\n sdk.openChannel.getChannel(channelUrl)\n .then((channel) => {\n logger.info('open channel setting: fetched', channel);\n setChannel(channel);\n })\n .catch((error) => {\n logger.error('open channel setting: error fetching', error);\n setChannel(null);\n });\n }, [channelUrl, sdk]);\n\n return (\n <OpenChannelSettingsContext.Provider value={{\n channelUrl,\n channel,\n setChannel,\n onCloseClick,\n onChannelModified,\n onBeforeUpdateChannel,\n onDeleteChannel,\n }}>\n <UserProfileProvider\n isOpenChannel\n renderUserProfile={props?.renderUserProfile}\n disableUserProfile={props?.disableUserProfile}\n >\n {children}\n </UserProfileProvider>\n </OpenChannelSettingsContext.Provider>\n );\n}\n\ntype useOpenChannelSettingsType = () => OpenChannelSettingsContextType;\nconst useOpenChannelSettingsContext: useOpenChannelSettingsType = () => React.useContext(OpenChannelSettingsContext);\n\nexport {\n OpenChannelSettingsProvider,\n useOpenChannelSettingsContext,\n};\n"],"names":["OpenChannelSettingsContext","React","createContext","undefined","OpenChannelSettingsProvider","props","children","channelUrl","onCloseClick","onChannelModified","onBeforeUpdateChannel","onDeleteChannel","globalStore","useSendbirdStateContext","sdk","stores","sdkStore","logger","config","_d","useState","channel","setChannel","useEffect","openChannel","getChannel","then","info","catch","error","UserProfileProvider","renderUserProfile","disableUserProfile","useOpenChannelSettingsContext","useContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../../src/smart-components/OpenChannelSettings/context/OpenChannelSettingsProvider.tsx"],"sourcesContent":["import React, {\n useEffect,\n useState,\n} from 'react';\nimport type { OpenChannel, OpenChannelHandler, OpenChannelUpdateParams, SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport useSendbirdStateContext from '../../../hooks/useSendbirdStateContext';\nimport { UserProfileProvider } from '../../../lib/UserProfileContext';\nimport { RenderUserProfileProps } from '../../../types';\nimport uuidv4 from '../../../utils/uuid';\n\nexport interface OpenChannelSettingsContextProps {\n channelUrl: string;\n children?: React.ReactNode;\n onCloseClick?(): void;\n onBeforeUpdateChannel?(currentTitle: string, currentImg: File, data: string): OpenChannelUpdateParams;\n onChannelModified?(channel: OpenChannel): void;\n onDeleteChannel?(channel: OpenChannel): void;\n disableUserProfile?: boolean;\n renderUserProfile?: (props: RenderUserProfileProps) => React.ReactNode;\n}\n\ninterface OpenChannelSettingsContextType {\n channelUrl: string;\n channel?: OpenChannel;\n setChannel?: React.Dispatch<React.SetStateAction<OpenChannel>>;\n onCloseClick?(): void;\n onBeforeUpdateChannel?(currentTitle: string, currentImg: File, data: string): OpenChannelUpdateParams;\n onChannelModified?(channel: OpenChannel): void;\n onDeleteChannel?(channel: OpenChannel): void;\n}\n\nconst OpenChannelSettingsContext = React.createContext<OpenChannelSettingsContextType | null>(undefined);\n\nconst OpenChannelSettingsProvider: React.FC<OpenChannelSettingsContextProps> = (props: OpenChannelSettingsContextProps) => {\n const {\n children,\n channelUrl,\n onCloseClick,\n onChannelModified,\n onBeforeUpdateChannel,\n onDeleteChannel,\n } = props;\n\n // fetch store from <SendbirdProvider />\n const globalStore = useSendbirdStateContext();\n const sdk = globalStore?.stores?.sdkStore?.sdk as SendbirdOpenChat;\n\n const logger = globalStore?.config?.logger;\n\n const [channel, setChannel] = useState<OpenChannel | null>(null);\n useEffect(() => {\n if (!channelUrl || !sdk.openChannel) {\n setChannel(null);\n return;\n }\n\n sdk.openChannel.getChannel(channelUrl)\n .then((channel) => {\n logger.info('open channel setting: fetched', channel);\n // TODO: Add pending status\n channel.enter()\n .then(() => {\n setChannel(channel);\n logger.info('OpenChannelSettings | Succeeded to enter channel');\n })\n .catch((error) => {\n setChannel(null);\n logger.warning('OpenChannelSettings | Failed to enter channel', error);\n });\n })\n .catch((error) => {\n logger.error('open channel setting: error fetching', error);\n setChannel(null);\n });\n return () => {\n if (channel && channel.exit) {\n channel.exit()\n .then(() => {\n logger.info('OpenChannelSettings | Succeeded to exit channel');\n })\n .catch((error) => {\n logger.warning('OpenChannelSettings | Failed to exit channel', error);\n });\n }\n }\n }, [channelUrl, sdk]);\n\n useEffect(() => {\n const channelHandlerId = uuidv4();\n if (channel !== null && sdk?.openChannel?.addOpenChannelHandler) {\n const channelHandlerParams: OpenChannelHandler = {\n onUserBanned(ch, user) {\n if (ch?.url === channel?.url && user?.userId === sdk?.currentUser?.userId) {\n setChannel(null);\n }\n },\n };\n sdk.openChannel.addOpenChannelHandler(channelHandlerId, channelHandlerParams);\n }\n return () => {\n if (sdk?.openChannel?.removeOpenChannelHandler) {\n logger.info('OpenChannelSettings | Removing channel handlers', channelHandlerId);\n sdk.openChannel.removeOpenChannelHandler?.(channelHandlerId);\n }\n }\n }, [channel]);\n\n return (\n <OpenChannelSettingsContext.Provider value={{\n channelUrl,\n channel,\n setChannel,\n onCloseClick,\n onChannelModified,\n onBeforeUpdateChannel,\n onDeleteChannel,\n }}>\n <UserProfileProvider\n isOpenChannel\n renderUserProfile={props?.renderUserProfile}\n disableUserProfile={props?.disableUserProfile}\n >\n {children}\n </UserProfileProvider>\n </OpenChannelSettingsContext.Provider>\n );\n}\n\ntype useOpenChannelSettingsType = () => OpenChannelSettingsContextType;\nconst useOpenChannelSettingsContext: useOpenChannelSettingsType = () => React.useContext(OpenChannelSettingsContext);\n\nexport {\n OpenChannelSettingsProvider,\n useOpenChannelSettingsContext,\n};\n"],"names":["OpenChannelSettingsContext","React","createContext","undefined","OpenChannelSettingsProvider","props","children","channelUrl","onCloseClick","onChannelModified","onBeforeUpdateChannel","onDeleteChannel","globalStore","useSendbirdStateContext","sdk","stores","sdkStore","logger","config","_d","useState","channel","setChannel","useEffect","openChannel","getChannel","then","info","enter","catch","error","warning","exit","channelHandlerId","uuidv4","addOpenChannelHandler","channelHandlerParams","onUserBanned","ch","user","url","userId","currentUser","removeOpenChannelHandler","UserProfileProvider","renderUserProfile","disableUserProfile","useOpenChannelSettingsContext","useContext"],"mappings":"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"}
|