@sendbird/uikit-react-native 2.0.2 → 2.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/lib/commonjs/components/ChannelCover.js +22 -1
- package/lib/commonjs/components/ChannelCover.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js +1 -1
- package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/index.js +1 -1
- package/lib/commonjs/components/MessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/TypedPlaceholder.js +2 -2
- package/lib/commonjs/components/TypedPlaceholder.js.map +1 -1
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js +4 -18
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/commonjs/containers/SendbirdUIKitContainer.js +8 -7
- package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/commonjs/contexts/SendbirdChatCtx.js +4 -2
- package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/commonjs/contexts/{ProfileCardCtx.js → UserProfileCtx.js} +16 -19
- package/lib/commonjs/contexts/UserProfileCtx.js.map +1 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js +3 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js +4 -2
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js +15 -10
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js +39 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js.map +1 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +53 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js +34 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js.map +1 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js +38 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js.map +1 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js +34 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js.map +1 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/index.js +62 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/index.js.map +1 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js +45 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js.map +1 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js +45 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/types.js +6 -0
- package/lib/commonjs/domain/groupChannelBannedUsers/types.js.map +1 -0
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js +32 -30
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
- package/lib/commonjs/domain/groupChannelList/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js +39 -0
- package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js.map +1 -0
- package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js +103 -0
- package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js.map +1 -0
- package/lib/commonjs/domain/groupChannelModeration/index.js +46 -0
- package/lib/commonjs/domain/groupChannelModeration/index.js.map +1 -0
- package/lib/commonjs/domain/groupChannelModeration/module/createGroupChannelModerationModule.js +33 -0
- package/lib/commonjs/domain/groupChannelModeration/module/createGroupChannelModerationModule.js.map +1 -0
- package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js +46 -0
- package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/groupChannelModeration/types.js +6 -0
- package/lib/commonjs/domain/groupChannelModeration/types.js.map +1 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js +39 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js.map +1 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +51 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js +34 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js.map +1 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js +38 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js.map +1 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js +34 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js.map +1 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/index.js +70 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/index.js.map +1 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js +45 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js.map +1 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js +45 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/types.js +6 -0
- package/lib/commonjs/domain/groupChannelMutedMembers/types.js.map +1 -0
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js +44 -0
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js.map +1 -0
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +51 -0
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -0
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js +34 -0
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js.map +1 -0
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js +38 -0
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js.map +1 -0
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js +34 -0
- package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js.map +1 -0
- package/lib/commonjs/domain/groupChannelOperators/index.js +70 -0
- package/lib/commonjs/domain/groupChannelOperators/index.js.map +1 -0
- package/lib/commonjs/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js +45 -0
- package/lib/commonjs/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js.map +1 -0
- package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js +45 -0
- package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/groupChannelOperators/types.js +6 -0
- package/lib/commonjs/domain/groupChannelOperators/types.js.map +1 -0
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +1 -8
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +11 -0
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -1
- package/lib/commonjs/domain/userList/component/UserListStatusError.js +2 -2
- package/lib/commonjs/domain/userList/component/UserListStatusError.js.map +1 -1
- package/lib/commonjs/domain/userList/types.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelBannedUsersFragment.js +101 -0
- package/lib/commonjs/fragments/createGroupChannelBannedUsersFragment.js.map +1 -0
- package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +9 -25
- package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelFragment.js +4 -5
- package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelInviteFragment.js +21 -37
- package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelListFragment.js +2 -9
- package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +93 -49
- package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelModerationFragment.js +68 -0
- package/lib/commonjs/fragments/createGroupChannelModerationFragment.js.map +1 -0
- package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js +116 -0
- package/lib/commonjs/fragments/createGroupChannelMutedMembersFragment.js.map +1 -0
- package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js +129 -0
- package/lib/commonjs/fragments/createGroupChannelOperatorsFragment.js.map +1 -0
- package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js +114 -0
- package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js.map +1 -0
- package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +2 -0
- package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -1
- package/lib/commonjs/hooks/useConnection.js +4 -0
- package/lib/commonjs/hooks/useConnection.js.map +1 -1
- package/lib/commonjs/hooks/useContext.js +7 -7
- package/lib/commonjs/hooks/useContext.js.map +1 -1
- package/lib/commonjs/index.js +67 -22
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/localization/StringSet.type.js +54 -11
- package/lib/commonjs/localization/StringSet.type.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/components/ChannelCover.js +22 -2
- package/lib/module/components/ChannelCover.js.map +1 -1
- package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js +2 -2
- package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js.map +1 -1
- package/lib/module/components/MessageRenderer/index.js +1 -1
- package/lib/module/components/MessageRenderer/index.js.map +1 -1
- package/lib/module/components/TypedPlaceholder.js +2 -2
- package/lib/module/components/TypedPlaceholder.js.map +1 -1
- package/lib/module/containers/GroupChannelPreviewContainer.js +4 -18
- package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/module/containers/SendbirdUIKitContainer.js +7 -6
- package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/module/contexts/SendbirdChatCtx.js +4 -2
- package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/module/contexts/{ProfileCardCtx.js → UserProfileCtx.js} +14 -17
- package/lib/module/contexts/UserProfileCtx.js.map +1 -0
- package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js +3 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js +4 -2
- package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js +16 -11
- package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
- package/lib/module/domain/groupChannel/types.js.map +1 -1
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js +25 -0
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js.map +1 -0
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js +40 -0
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.js.map +1 -0
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js +21 -0
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.js.map +1 -0
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js +25 -0
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.js.map +1 -0
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js +21 -0
- package/lib/module/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.js.map +1 -0
- package/lib/module/domain/groupChannelBannedUsers/index.js +7 -0
- package/lib/module/domain/groupChannelBannedUsers/index.js.map +1 -0
- package/lib/module/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js +30 -0
- package/lib/module/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.js.map +1 -0
- package/lib/module/domain/groupChannelBannedUsers/module/moduleContext.js +25 -0
- package/lib/module/domain/groupChannelBannedUsers/module/moduleContext.js.map +1 -0
- package/lib/module/domain/groupChannelBannedUsers/types.js +2 -0
- package/lib/module/domain/groupChannelBannedUsers/types.js.map +1 -0
- package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js +34 -33
- package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
- package/lib/module/domain/groupChannelList/types.js.map +1 -1
- package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationHeader.js +25 -0
- package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationHeader.js.map +1 -0
- package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationMenu.js +87 -0
- package/lib/module/domain/groupChannelModeration/component/GroupChannelModerationMenu.js.map +1 -0
- package/lib/module/domain/groupChannelModeration/index.js +5 -0
- package/lib/module/domain/groupChannelModeration/index.js.map +1 -0
- package/lib/module/domain/groupChannelModeration/module/createGroupChannelModerationModule.js +21 -0
- package/lib/module/domain/groupChannelModeration/module/createGroupChannelModerationModule.js.map +1 -0
- package/lib/module/domain/groupChannelModeration/module/moduleContext.js +26 -0
- package/lib/module/domain/groupChannelModeration/module/moduleContext.js.map +1 -0
- package/lib/module/domain/groupChannelModeration/types.js +2 -0
- package/lib/module/domain/groupChannelModeration/types.js.map +1 -0
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js +25 -0
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js.map +1 -0
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js +38 -0
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.js.map +1 -0
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js +21 -0
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.js.map +1 -0
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js +25 -0
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.js.map +1 -0
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js +21 -0
- package/lib/module/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.js.map +1 -0
- package/lib/module/domain/groupChannelMutedMembers/index.js +8 -0
- package/lib/module/domain/groupChannelMutedMembers/index.js.map +1 -0
- package/lib/module/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js +30 -0
- package/lib/module/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.js.map +1 -0
- package/lib/module/domain/groupChannelMutedMembers/module/moduleContext.js +25 -0
- package/lib/module/domain/groupChannelMutedMembers/module/moduleContext.js.map +1 -0
- package/lib/module/domain/groupChannelMutedMembers/types.js +2 -0
- package/lib/module/domain/groupChannelMutedMembers/types.js.map +1 -0
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js +30 -0
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js.map +1 -0
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js +38 -0
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsList.js.map +1 -0
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js +21 -0
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.js.map +1 -0
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js +25 -0
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.js.map +1 -0
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js +21 -0
- package/lib/module/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.js.map +1 -0
- package/lib/module/domain/groupChannelOperators/index.js +8 -0
- package/lib/module/domain/groupChannelOperators/index.js.map +1 -0
- package/lib/module/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js +30 -0
- package/lib/module/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.js.map +1 -0
- package/lib/module/domain/groupChannelOperators/module/moduleContext.js +25 -0
- package/lib/module/domain/groupChannelOperators/module/moduleContext.js.map +1 -0
- package/lib/module/domain/groupChannelOperators/types.js +2 -0
- package/lib/module/domain/groupChannelOperators/types.js.map +1 -0
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +2 -8
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +11 -0
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/types.js.map +1 -1
- package/lib/module/domain/groupChannelUserList/types.js.map +1 -1
- package/lib/module/domain/userList/component/UserListStatusError.js +2 -2
- package/lib/module/domain/userList/component/UserListStatusError.js.map +1 -1
- package/lib/module/domain/userList/types.js.map +1 -1
- package/lib/module/fragments/createGroupChannelBannedUsersFragment.js +84 -0
- package/lib/module/fragments/createGroupChannelBannedUsersFragment.js.map +1 -0
- package/lib/module/fragments/createGroupChannelCreateFragment.js +10 -26
- package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelFragment.js +4 -5
- package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelInviteFragment.js +22 -37
- package/lib/module/fragments/createGroupChannelInviteFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelListFragment.js +3 -9
- package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelMembersFragment.js +92 -53
- package/lib/module/fragments/createGroupChannelMembersFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelModerationFragment.js +53 -0
- package/lib/module/fragments/createGroupChannelModerationFragment.js.map +1 -0
- package/lib/module/fragments/createGroupChannelMutedMembersFragment.js +98 -0
- package/lib/module/fragments/createGroupChannelMutedMembersFragment.js.map +1 -0
- package/lib/module/fragments/createGroupChannelOperatorsFragment.js +111 -0
- package/lib/module/fragments/createGroupChannelOperatorsFragment.js.map +1 -0
- package/lib/module/fragments/createGroupChannelRegisterOperatorFragment.js +94 -0
- package/lib/module/fragments/createGroupChannelRegisterOperatorFragment.js.map +1 -0
- package/lib/module/fragments/createGroupChannelSettingsFragment.js +2 -0
- package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -1
- package/lib/module/hooks/useConnection.js +4 -0
- package/lib/module/hooks/useConnection.js.map +1 -1
- package/lib/module/hooks/useContext.js +4 -4
- package/lib/module/hooks/useContext.js.map +1 -1
- package/lib/module/index.js +7 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/localization/StringSet.type.js +54 -11
- package/lib/module/localization/StringSet.type.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/src/components/ChannelCover.d.ts +1 -1
- package/lib/typescript/src/components/TypedPlaceholder.d.ts +1 -1
- package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +7 -9
- package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +8 -4
- package/lib/typescript/src/contexts/{ProfileCardCtx.d.ts → UserProfileCtx.d.ts} +3 -3
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/EditInput.d.ts +2 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/SendInput.d.ts +3 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/index.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannel/types.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.d.ts +2 -0
- package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.d.ts +2 -0
- package/lib/typescript/src/domain/groupChannelBannedUsers/index.d.ts +6 -0
- package/lib/typescript/src/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelBannedUsers/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelBannedUsers/types.d.ts +47 -0
- package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListTypeSelector.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannelList/types.d.ts +1 -9
- package/lib/typescript/src/domain/groupChannelModeration/component/GroupChannelModerationHeader.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelModeration/component/GroupChannelModerationMenu.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelModeration/index.d.ts +4 -0
- package/lib/typescript/src/domain/groupChannelModeration/module/createGroupChannelModerationModule.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelModeration/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelModeration/types.d.ts +43 -0
- package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.d.ts +2 -0
- package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.d.ts +2 -0
- package/lib/typescript/src/domain/groupChannelMutedMembers/index.d.ts +7 -0
- package/lib/typescript/src/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelMutedMembers/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelMutedMembers/types.d.ts +47 -0
- package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.d.ts +2 -0
- package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.d.ts +2 -0
- package/lib/typescript/src/domain/groupChannelOperators/index.d.ts +7 -0
- package/lib/typescript/src/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelOperators/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelOperators/types.d.ts +49 -0
- package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannelSettings/types.d.ts +2 -0
- package/lib/typescript/src/domain/groupChannelUserList/types.d.ts +18 -12
- package/lib/typescript/src/domain/userList/component/UserListStatusError.d.ts +2 -2
- package/lib/typescript/src/domain/userList/types.d.ts +4 -3
- package/lib/typescript/src/fragments/createGroupChannelBannedUsersFragment.d.ts +3 -0
- package/lib/typescript/src/fragments/createGroupChannelCreateFragment.d.ts +2 -1
- package/lib/typescript/src/fragments/createGroupChannelInviteFragment.d.ts +2 -1
- package/lib/typescript/src/fragments/createGroupChannelModerationFragment.d.ts +3 -0
- package/lib/typescript/src/fragments/createGroupChannelMutedMembersFragment.d.ts +3 -0
- package/lib/typescript/src/fragments/createGroupChannelOperatorsFragment.d.ts +3 -0
- package/lib/typescript/src/fragments/createGroupChannelRegisterOperatorFragment.d.ts +5 -0
- package/lib/typescript/src/hooks/useContext.d.ts +2 -1
- package/lib/typescript/src/index.d.ts +7 -2
- package/lib/typescript/src/localization/StringSet.type.d.ts +41 -6
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +6 -6
- package/src/components/ChannelCover.tsx +23 -3
- package/src/components/MessageRenderer/MessageIncomingAvatar.tsx +2 -2
- package/src/components/MessageRenderer/index.tsx +1 -1
- package/src/components/TypedPlaceholder.tsx +4 -4
- package/src/containers/GroupChannelPreviewContainer.tsx +1 -15
- package/src/containers/SendbirdUIKitContainer.tsx +12 -13
- package/src/contexts/SendbirdChatCtx.tsx +10 -4
- package/src/contexts/{ProfileCardCtx.tsx → UserProfileCtx.tsx} +17 -16
- package/src/domain/groupChannel/component/GroupChannelInput/EditInput.tsx +3 -1
- package/src/domain/groupChannel/component/GroupChannelInput/SendInput.tsx +17 -3
- package/src/domain/groupChannel/component/GroupChannelInput/index.tsx +11 -8
- package/src/domain/groupChannel/types.ts +1 -1
- package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.tsx +14 -0
- package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.tsx +32 -0
- package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusEmpty.tsx +18 -0
- package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusError.tsx +19 -0
- package/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersStatusLoading.tsx +18 -0
- package/src/domain/groupChannelBannedUsers/index.ts +6 -0
- package/src/domain/groupChannelBannedUsers/module/createGroupChannelBannedUsersModule.tsx +21 -0
- package/src/domain/groupChannelBannedUsers/module/moduleContext.tsx +30 -0
- package/src/domain/groupChannelBannedUsers/types.ts +50 -0
- package/src/domain/groupChannelList/component/GroupChannelListTypeSelector.tsx +37 -43
- package/src/domain/groupChannelList/types.ts +1 -7
- package/src/domain/groupChannelModeration/component/GroupChannelModerationHeader.tsx +14 -0
- package/src/domain/groupChannelModeration/component/GroupChannelModerationMenu.tsx +84 -0
- package/src/domain/groupChannelModeration/index.ts +4 -0
- package/src/domain/groupChannelModeration/module/createGroupChannelModerationModule.tsx +15 -0
- package/src/domain/groupChannelModeration/module/moduleContext.tsx +33 -0
- package/src/domain/groupChannelModeration/types.ts +48 -0
- package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.tsx +14 -0
- package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.tsx +30 -0
- package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusEmpty.tsx +18 -0
- package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusError.tsx +19 -0
- package/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersStatusLoading.tsx +18 -0
- package/src/domain/groupChannelMutedMembers/index.ts +7 -0
- package/src/domain/groupChannelMutedMembers/module/createGroupChannelMutedMembersModule.tsx +21 -0
- package/src/domain/groupChannelMutedMembers/module/moduleContext.tsx +30 -0
- package/src/domain/groupChannelMutedMembers/types.ts +50 -0
- package/src/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.tsx +25 -0
- package/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.tsx +29 -0
- package/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusEmpty.tsx +18 -0
- package/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusError.tsx +19 -0
- package/src/domain/groupChannelOperators/component/GroupChannelOperatorsStatusLoading.tsx +18 -0
- package/src/domain/groupChannelOperators/index.ts +7 -0
- package/src/domain/groupChannelOperators/module/createGroupChannelOperatorsModule.tsx +21 -0
- package/src/domain/groupChannelOperators/module/moduleContext.tsx +30 -0
- package/src/domain/groupChannelOperators/types.ts +52 -0
- package/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.tsx +2 -7
- package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +9 -0
- package/src/domain/groupChannelSettings/types.ts +2 -0
- package/src/domain/groupChannelUserList/types.ts +27 -12
- package/src/domain/userList/component/UserListStatusError.tsx +2 -2
- package/src/domain/userList/types.ts +4 -1
- package/src/fragments/createGroupChannelBannedUsersFragment.tsx +80 -0
- package/src/fragments/createGroupChannelCreateFragment.tsx +13 -33
- package/src/fragments/createGroupChannelFragment.tsx +9 -12
- package/src/fragments/createGroupChannelInviteFragment.tsx +28 -50
- package/src/fragments/createGroupChannelListFragment.tsx +3 -8
- package/src/fragments/createGroupChannelMembersFragment.tsx +94 -51
- package/src/fragments/createGroupChannelModerationFragment.tsx +57 -0
- package/src/fragments/createGroupChannelMutedMembersFragment.tsx +93 -0
- package/src/fragments/createGroupChannelOperatorsFragment.tsx +101 -0
- package/src/fragments/createGroupChannelRegisterOperatorFragment.tsx +94 -0
- package/src/fragments/createGroupChannelSettingsFragment.tsx +9 -1
- package/src/hooks/useConnection.ts +2 -0
- package/src/hooks/useContext.ts +4 -4
- package/src/index.ts +7 -2
- package/src/localization/StringSet.type.ts +87 -14
- package/src/version.ts +1 -1
- package/lib/commonjs/contexts/ProfileCardCtx.js.map +0 -1
- package/lib/module/contexts/ProfileCardCtx.js.map +0 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { StyleSheet, View } from 'react-native';
|
|
3
|
+
|
|
4
|
+
import TypedPlaceholder from '../../../components/TypedPlaceholder';
|
|
5
|
+
|
|
6
|
+
const GroupChannelOperatorsStatusLoading = () => {
|
|
7
|
+
return (
|
|
8
|
+
<View style={styles.container}>
|
|
9
|
+
<TypedPlaceholder type={'loading'} />
|
|
10
|
+
</View>
|
|
11
|
+
);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const styles = StyleSheet.create({
|
|
15
|
+
container: { flex: 1, justifyContent: 'center', alignItems: 'center' },
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export default GroupChannelOperatorsStatusLoading;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { default as GroupChannelOperatorsList } from './component/GroupChannelOperatorsList';
|
|
2
|
+
export { default as GroupChannelOperatorsHeader } from './component/GroupChannelOperatorsHeader';
|
|
3
|
+
export { default as GroupChannelOperatorsStatusEmpty } from './component/GroupChannelOperatorsStatusEmpty';
|
|
4
|
+
export { default as GroupChannelOperatorsStatusError } from './component/GroupChannelOperatorsStatusError';
|
|
5
|
+
export { default as GroupChannelOperatorsStatusLoading } from './component/GroupChannelOperatorsStatusLoading';
|
|
6
|
+
export { default as createGroupChannelOperatorsModule } from './module/createGroupChannelOperatorsModule';
|
|
7
|
+
export { GroupChannelOperatorsContextsProvider, GroupChannelOperatorsContexts } from './module/moduleContext';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import GroupChannelOperatorsHeader from '../component/GroupChannelOperatorsHeader';
|
|
2
|
+
import GroupChannelOperatorsList from '../component/GroupChannelOperatorsList';
|
|
3
|
+
import GroupChannelOperatorsStatusEmpty from '../component/GroupChannelOperatorsStatusEmpty';
|
|
4
|
+
import GroupChannelOperatorsStatusError from '../component/GroupChannelOperatorsStatusError';
|
|
5
|
+
import GroupChannelOperatorsStatusLoading from '../component/GroupChannelOperatorsStatusLoading';
|
|
6
|
+
import type { GroupChannelOperatorsModule } from '../types';
|
|
7
|
+
import { GroupChannelOperatorsContextsProvider } from './moduleContext';
|
|
8
|
+
|
|
9
|
+
const createGroupChannelOperatorsModule = ({
|
|
10
|
+
Header = GroupChannelOperatorsHeader,
|
|
11
|
+
List = GroupChannelOperatorsList,
|
|
12
|
+
StatusEmpty = GroupChannelOperatorsStatusEmpty,
|
|
13
|
+
StatusError = GroupChannelOperatorsStatusError,
|
|
14
|
+
StatusLoading = GroupChannelOperatorsStatusLoading,
|
|
15
|
+
Provider = GroupChannelOperatorsContextsProvider,
|
|
16
|
+
...module
|
|
17
|
+
}: Partial<GroupChannelOperatorsModule> = {}): GroupChannelOperatorsModule => {
|
|
18
|
+
return { Header, List, Provider, StatusEmpty, StatusError, StatusLoading, ...module };
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export default createGroupChannelOperatorsModule;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React, { createContext } from 'react';
|
|
2
|
+
|
|
3
|
+
import type { SendbirdGroupChannel } from '@sendbird/uikit-utils';
|
|
4
|
+
|
|
5
|
+
import ProviderLayout from '../../../components/ProviderLayout';
|
|
6
|
+
import { useLocalization } from '../../../hooks/useContext';
|
|
7
|
+
import type { GroupChannelOperatorsContextsType, GroupChannelOperatorsModule } from '../types';
|
|
8
|
+
|
|
9
|
+
export const GroupChannelOperatorsContexts: GroupChannelOperatorsContextsType = {
|
|
10
|
+
Fragment: createContext({
|
|
11
|
+
headerTitle: '',
|
|
12
|
+
channel: {} as SendbirdGroupChannel,
|
|
13
|
+
}),
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export const GroupChannelOperatorsContextsProvider: GroupChannelOperatorsModule['Provider'] = ({
|
|
17
|
+
channel,
|
|
18
|
+
children,
|
|
19
|
+
}) => {
|
|
20
|
+
const { STRINGS } = useLocalization();
|
|
21
|
+
return (
|
|
22
|
+
<ProviderLayout>
|
|
23
|
+
<GroupChannelOperatorsContexts.Fragment.Provider
|
|
24
|
+
value={{ headerTitle: STRINGS.GROUP_CHANNEL_OPERATORS.HEADER_TITLE, channel }}
|
|
25
|
+
>
|
|
26
|
+
{children}
|
|
27
|
+
</GroupChannelOperatorsContexts.Fragment.Provider>
|
|
28
|
+
</ProviderLayout>
|
|
29
|
+
);
|
|
30
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
|
|
3
|
+
import type { SendbirdGroupChannel, SendbirdUser } from '@sendbird/uikit-utils';
|
|
4
|
+
|
|
5
|
+
import type { CommonComponent } from '../../types';
|
|
6
|
+
|
|
7
|
+
export type GroupChannelOperatorsProps = {
|
|
8
|
+
Fragment: {
|
|
9
|
+
channel: SendbirdGroupChannel;
|
|
10
|
+
onPressHeaderLeft: GroupChannelOperatorsProps['Header']['onPressHeaderLeft'];
|
|
11
|
+
onPressHeaderRight: GroupChannelOperatorsProps['Header']['onPressHeaderRight'];
|
|
12
|
+
renderUser?: GroupChannelOperatorsProps['List']['renderUser'];
|
|
13
|
+
};
|
|
14
|
+
Header: {
|
|
15
|
+
onPressHeaderLeft: () => void;
|
|
16
|
+
onPressHeaderRight: () => void;
|
|
17
|
+
};
|
|
18
|
+
List: {
|
|
19
|
+
operators: SendbirdUser[];
|
|
20
|
+
onLoadNext: () => void;
|
|
21
|
+
renderUser: (props: { user: SendbirdUser }) => React.ReactElement | null;
|
|
22
|
+
ListEmptyComponent?: React.ReactElement;
|
|
23
|
+
};
|
|
24
|
+
StatusError: {
|
|
25
|
+
onPressRetry: () => void;
|
|
26
|
+
};
|
|
27
|
+
Provider: {
|
|
28
|
+
channel: SendbirdGroupChannel;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Internal context for GroupChannelOperators
|
|
34
|
+
* For example, the developer can create a custom header
|
|
35
|
+
* with getting data from the domain context
|
|
36
|
+
* */
|
|
37
|
+
export type GroupChannelOperatorsContextsType = {
|
|
38
|
+
Fragment: React.Context<{
|
|
39
|
+
headerTitle: string;
|
|
40
|
+
channel: SendbirdGroupChannel;
|
|
41
|
+
}>;
|
|
42
|
+
};
|
|
43
|
+
export interface GroupChannelOperatorsModule {
|
|
44
|
+
Provider: CommonComponent<GroupChannelOperatorsProps['Provider']>;
|
|
45
|
+
Header: CommonComponent<GroupChannelOperatorsProps['Header']>;
|
|
46
|
+
List: CommonComponent<GroupChannelOperatorsProps['List']>;
|
|
47
|
+
StatusEmpty: CommonComponent;
|
|
48
|
+
StatusLoading: CommonComponent;
|
|
49
|
+
StatusError: CommonComponent<GroupChannelOperatorsProps['StatusError']>;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export type GroupChannelOperatorsFragment = CommonComponent<GroupChannelOperatorsProps['Fragment']>;
|
|
@@ -2,7 +2,7 @@ import React, { useContext } from 'react';
|
|
|
2
2
|
import { View } from 'react-native';
|
|
3
3
|
|
|
4
4
|
import { Divider, Text, createStyleSheet } from '@sendbird/uikit-react-native-foundation';
|
|
5
|
-
import {
|
|
5
|
+
import { getGroupChannelTitle } from '@sendbird/uikit-utils';
|
|
6
6
|
|
|
7
7
|
import ChannelCover from '../../../components/ChannelCover';
|
|
8
8
|
import { useLocalization, useSendbirdChat } from '../../../hooks/useContext';
|
|
@@ -14,18 +14,13 @@ const GroupChannelSettingsInfo = (_: GroupChannelSettingsProps['Info']) => {
|
|
|
14
14
|
const { currentUser } = useSendbirdChat();
|
|
15
15
|
const { STRINGS } = useLocalization();
|
|
16
16
|
|
|
17
|
-
if (!currentUser) {
|
|
18
|
-
Logger.warn('Cannot render GroupChannelSettingsInfo, please connect using `useConnection()` hook first');
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
17
|
return (
|
|
23
18
|
<View>
|
|
24
19
|
<View style={styles.userInfoContainer}>
|
|
25
20
|
<ChannelCover channel={channel} size={80} containerStyle={styles.avatarContainer} />
|
|
26
21
|
<Text h1 numberOfLines={1}>
|
|
27
22
|
{getGroupChannelTitle(
|
|
28
|
-
currentUser
|
|
23
|
+
currentUser?.userId || '',
|
|
29
24
|
channel,
|
|
30
25
|
STRINGS.LABELS.USER_NO_NAME,
|
|
31
26
|
STRINGS.LABELS.CHANNEL_NO_MEMBERS,
|
|
@@ -10,6 +10,7 @@ import { GroupChannelSettingsContexts } from '../module/moduleContext';
|
|
|
10
10
|
import type { GroupChannelSettingsProps } from '../types';
|
|
11
11
|
|
|
12
12
|
const GroupChannelSettingsMenu = ({
|
|
13
|
+
onPressMenuModeration,
|
|
13
14
|
onPressMenuMembers,
|
|
14
15
|
onPressMenuLeaveChannel,
|
|
15
16
|
menuItemsCreator = (menu) => menu,
|
|
@@ -28,6 +29,13 @@ const GroupChannelSettingsMenu = ({
|
|
|
28
29
|
};
|
|
29
30
|
|
|
30
31
|
const menuItems: MenuBarProps[] = menuItemsCreator([
|
|
32
|
+
{
|
|
33
|
+
icon: 'moderation',
|
|
34
|
+
visible: channel.myRole === 'operator',
|
|
35
|
+
name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_MODERATION,
|
|
36
|
+
onPress: () => onPressMenuModeration(),
|
|
37
|
+
actionItem: <Icon icon={'chevron-right'} color={colors.onBackground01} />,
|
|
38
|
+
},
|
|
31
39
|
{
|
|
32
40
|
icon: 'notifications',
|
|
33
41
|
name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_NOTIFICATION,
|
|
@@ -63,6 +71,7 @@ const GroupChannelSettingsMenu = ({
|
|
|
63
71
|
onPress={menu.onPress}
|
|
64
72
|
name={menu.name}
|
|
65
73
|
disabled={menu.disabled}
|
|
74
|
+
visible={menu.visible}
|
|
66
75
|
icon={menu.icon}
|
|
67
76
|
iconColor={menu.iconColor}
|
|
68
77
|
iconBackgroundColor={menu.iconBackgroundColor}
|
|
@@ -9,6 +9,7 @@ export interface GroupChannelSettingsProps {
|
|
|
9
9
|
Fragment: {
|
|
10
10
|
channel: GroupChannelSettingsProps['Provider']['channel'];
|
|
11
11
|
onPressHeaderLeft: GroupChannelSettingsProps['Header']['onPressHeaderLeft'];
|
|
12
|
+
onPressMenuModeration: GroupChannelSettingsProps['Menu']['onPressMenuModeration'];
|
|
12
13
|
onPressMenuMembers: GroupChannelSettingsProps['Menu']['onPressMenuMembers'];
|
|
13
14
|
onPressMenuLeaveChannel: GroupChannelSettingsProps['Menu']['onPressMenuLeaveChannel'];
|
|
14
15
|
menuItemsCreator?: GroupChannelSettingsProps['Menu']['menuItemsCreator'];
|
|
@@ -18,6 +19,7 @@ export interface GroupChannelSettingsProps {
|
|
|
18
19
|
};
|
|
19
20
|
Info: {};
|
|
20
21
|
Menu: {
|
|
22
|
+
onPressMenuModeration: () => void;
|
|
21
23
|
onPressMenuMembers: () => void;
|
|
22
24
|
onPressMenuLeaveChannel: () => void;
|
|
23
25
|
menuItemsCreator?: (defaultMenuItems: MenuBarProps[]) => MenuBarProps[];
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';
|
|
2
|
-
import type { SendbirdGroupChannel, SendbirdGroupChannelCreateParams } from '@sendbird/uikit-utils';
|
|
1
|
+
import type { UseUserListOptions, UserStruct } from '@sendbird/uikit-chat-hooks';
|
|
2
|
+
import type { SendbirdGroupChannel, SendbirdGroupChannelCreateParams, SendbirdMember } from '@sendbird/uikit-utils';
|
|
3
3
|
|
|
4
4
|
import type { CommonComponent } from '../../types';
|
|
5
5
|
import type { GroupChannelType } from '../groupChannelList/types';
|
|
6
6
|
import type { UserListProps } from '../userList/types';
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export interface GroupChannelCreateProps<User> {
|
|
8
|
+
export interface GroupChannelCreateProps<User extends UserStruct> {
|
|
11
9
|
Fragment: {
|
|
12
10
|
onPressHeaderLeft: () => void;
|
|
13
11
|
onCreateChannel: (channel: SendbirdGroupChannel) => void;
|
|
14
12
|
channelType?: GroupChannelType;
|
|
15
|
-
userIdsGenerator?: (users: User[]) => UserIds;
|
|
16
13
|
onBeforeCreateChannel?: (
|
|
17
14
|
params: SendbirdGroupChannelCreateParams,
|
|
18
15
|
users: User[],
|
|
@@ -22,22 +19,25 @@ export interface GroupChannelCreateProps<User> {
|
|
|
22
19
|
renderUser?: UserListProps<User>['List']['renderUser'];
|
|
23
20
|
};
|
|
24
21
|
}
|
|
25
|
-
export type GroupChannelCreateFragment<User> = CommonComponent<
|
|
22
|
+
export type GroupChannelCreateFragment<User extends UserStruct> = CommonComponent<
|
|
23
|
+
GroupChannelCreateProps<User>['Fragment']
|
|
24
|
+
>;
|
|
26
25
|
|
|
27
|
-
export interface GroupChannelInviteProps<User> {
|
|
26
|
+
export interface GroupChannelInviteProps<User extends UserStruct> {
|
|
28
27
|
Fragment: {
|
|
29
28
|
channel: SendbirdGroupChannel;
|
|
30
29
|
onPressHeaderLeft: () => void;
|
|
31
30
|
onInviteMembers: (channel: SendbirdGroupChannel) => void;
|
|
32
|
-
userIdsGenerator?: (users: User[]) => UserIds;
|
|
33
31
|
queryCreator?: UseUserListOptions<User>['queryCreator'];
|
|
34
32
|
renderUser?: UserListProps<User>['List']['renderUser'];
|
|
35
33
|
sortComparator?: UseUserListOptions<User>['sortComparator'];
|
|
36
34
|
};
|
|
37
35
|
}
|
|
38
|
-
export type GroupChannelInviteFragment<User> = CommonComponent<
|
|
36
|
+
export type GroupChannelInviteFragment<User extends UserStruct> = CommonComponent<
|
|
37
|
+
GroupChannelInviteProps<User>['Fragment']
|
|
38
|
+
>;
|
|
39
39
|
|
|
40
|
-
export interface GroupChannelMembersProps<User> {
|
|
40
|
+
export interface GroupChannelMembersProps<User extends UserStruct> {
|
|
41
41
|
Fragment: {
|
|
42
42
|
channel: SendbirdGroupChannel;
|
|
43
43
|
onPressHeaderLeft: () => void;
|
|
@@ -46,4 +46,19 @@ export interface GroupChannelMembersProps<User> {
|
|
|
46
46
|
renderUser?: UserListProps<User>['List']['renderUser'];
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
-
export type GroupChannelMembersFragment<User> = CommonComponent<
|
|
49
|
+
export type GroupChannelMembersFragment<User extends UserStruct> = CommonComponent<
|
|
50
|
+
GroupChannelMembersProps<User>['Fragment']
|
|
51
|
+
>;
|
|
52
|
+
|
|
53
|
+
export interface GroupChannelRegisterOperatorProps<User extends UserStruct = SendbirdMember> {
|
|
54
|
+
Fragment: {
|
|
55
|
+
channel: SendbirdGroupChannel;
|
|
56
|
+
onPressHeaderLeft: () => void;
|
|
57
|
+
onPressHeaderRight: (channel: SendbirdGroupChannel) => void;
|
|
58
|
+
sortComparator?: UseUserListOptions<User>['sortComparator'];
|
|
59
|
+
renderUser?: UserListProps<User>['List']['renderUser'];
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export type GroupChannelRegisterOperatorFragment<User extends UserStruct> = CommonComponent<
|
|
63
|
+
GroupChannelRegisterOperatorProps<User>['Fragment']
|
|
64
|
+
>;
|
|
@@ -4,7 +4,7 @@ import { StyleSheet, View } from 'react-native';
|
|
|
4
4
|
import TypedPlaceholder from '../../../components/TypedPlaceholder';
|
|
5
5
|
import type { UserListModule } from '../types';
|
|
6
6
|
|
|
7
|
-
const
|
|
7
|
+
const UserListStatusError: UserListModule<unknown>['StatusError'] = ({ onPressRetry }) => {
|
|
8
8
|
return (
|
|
9
9
|
<View style={styles.container}>
|
|
10
10
|
<TypedPlaceholder type={'error-wrong'} onPressRetry={onPressRetry} />
|
|
@@ -16,4 +16,4 @@ const styles = StyleSheet.create({
|
|
|
16
16
|
container: { flex: 1, justifyContent: 'center', alignItems: 'center' },
|
|
17
17
|
});
|
|
18
18
|
|
|
19
|
-
export default
|
|
19
|
+
export default UserListStatusError;
|
|
@@ -37,6 +37,9 @@ export interface UserListProps<User> {
|
|
|
37
37
|
headerTitle: string;
|
|
38
38
|
headerRight: (selectedUsers: Array<User>) => string;
|
|
39
39
|
};
|
|
40
|
+
StatusError: {
|
|
41
|
+
onPressRetry: () => void;
|
|
42
|
+
};
|
|
40
43
|
}
|
|
41
44
|
|
|
42
45
|
/**
|
|
@@ -61,5 +64,5 @@ export interface UserListModule<User> {
|
|
|
61
64
|
List: CommonComponent<UserListProps<User>['List']>;
|
|
62
65
|
StatusEmpty: CommonComponent;
|
|
63
66
|
StatusLoading: CommonComponent;
|
|
64
|
-
StatusError: CommonComponent<
|
|
67
|
+
StatusError: CommonComponent<UserListProps<User>['StatusError']>;
|
|
65
68
|
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import { useUserList } from '@sendbird/uikit-chat-hooks';
|
|
4
|
+
import { useActionMenu } from '@sendbird/uikit-react-native-foundation';
|
|
5
|
+
import { NOOP, useFreshCallback } from '@sendbird/uikit-utils';
|
|
6
|
+
|
|
7
|
+
import StatusComposition from '../components/StatusComposition';
|
|
8
|
+
import UserActionBar from '../components/UserActionBar';
|
|
9
|
+
import { createGroupChannelBannedUsersModule } from '../domain/groupChannelBannedUsers';
|
|
10
|
+
import type {
|
|
11
|
+
GroupChannelBannedUsersFragment,
|
|
12
|
+
GroupChannelBannedUsersModule,
|
|
13
|
+
} from '../domain/groupChannelBannedUsers/types';
|
|
14
|
+
import { useLocalization, useSendbirdChat } from '../hooks/useContext';
|
|
15
|
+
|
|
16
|
+
const createGroupChannelBannedUsersFragment = (
|
|
17
|
+
initModule?: Partial<GroupChannelBannedUsersModule>,
|
|
18
|
+
): GroupChannelBannedUsersFragment => {
|
|
19
|
+
const GroupChannelBannedUsersModule = createGroupChannelBannedUsersModule(initModule);
|
|
20
|
+
|
|
21
|
+
return ({ onPressHeaderLeft = NOOP, channel, renderUser }) => {
|
|
22
|
+
const { STRINGS } = useLocalization();
|
|
23
|
+
const { currentUser, sdk } = useSendbirdChat();
|
|
24
|
+
const { openMenu } = useActionMenu();
|
|
25
|
+
|
|
26
|
+
const { users, deleteUser, loading, next, refresh, error } = useUserList(sdk, {
|
|
27
|
+
queryCreator: () => channel.createBannedUserListQuery({ limit: 20 }),
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const _renderUser: NonNullable<typeof renderUser> = useFreshCallback((props) => {
|
|
31
|
+
if (renderUser) return renderUser(props);
|
|
32
|
+
|
|
33
|
+
const { user } = props;
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<UserActionBar
|
|
37
|
+
muted={false}
|
|
38
|
+
uri={user.profileUrl}
|
|
39
|
+
name={
|
|
40
|
+
(user.nickname || STRINGS.LABELS.USER_NO_NAME) +
|
|
41
|
+
(user.userId === currentUser?.userId ? STRINGS.LABELS.USER_BAR_ME_POSTFIX : '')
|
|
42
|
+
}
|
|
43
|
+
disabled={user.userId === currentUser?.userId}
|
|
44
|
+
onPressActionMenu={() => {
|
|
45
|
+
openMenu({
|
|
46
|
+
title: user.nickname || STRINGS.LABELS.USER_NO_NAME,
|
|
47
|
+
menuItems: [
|
|
48
|
+
{
|
|
49
|
+
title: STRINGS.LABELS.UNBAN,
|
|
50
|
+
onPress: () => channel.unbanUser(user).then(() => deleteUser(user.userId)),
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
});
|
|
54
|
+
}}
|
|
55
|
+
/>
|
|
56
|
+
);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
return (
|
|
60
|
+
<GroupChannelBannedUsersModule.Provider channel={channel}>
|
|
61
|
+
<GroupChannelBannedUsersModule.Header onPressHeaderLeft={onPressHeaderLeft} />
|
|
62
|
+
<StatusComposition
|
|
63
|
+
loading={loading}
|
|
64
|
+
LoadingComponent={<GroupChannelBannedUsersModule.StatusLoading />}
|
|
65
|
+
error={Boolean(error)}
|
|
66
|
+
ErrorComponent={<GroupChannelBannedUsersModule.StatusError onPressRetry={refresh} />}
|
|
67
|
+
>
|
|
68
|
+
<GroupChannelBannedUsersModule.List
|
|
69
|
+
bannedUsers={users}
|
|
70
|
+
renderUser={_renderUser}
|
|
71
|
+
ListEmptyComponent={<GroupChannelBannedUsersModule.StatusEmpty />}
|
|
72
|
+
onLoadNext={next}
|
|
73
|
+
/>
|
|
74
|
+
</StatusComposition>
|
|
75
|
+
</GroupChannelBannedUsersModule.Provider>
|
|
76
|
+
);
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
export default createGroupChannelBannedUsersFragment;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { TouchableOpacity } from 'react-native';
|
|
3
3
|
|
|
4
|
-
import { useUserList } from '@sendbird/uikit-chat-hooks';
|
|
5
|
-
import {
|
|
4
|
+
import { UserStruct, useUserList } from '@sendbird/uikit-chat-hooks';
|
|
5
|
+
import { PASS, SendbirdGroupChannelCreateParams, SendbirdUser, useFreshCallback } from '@sendbird/uikit-utils';
|
|
6
6
|
|
|
7
7
|
import StatusComposition from '../components/StatusComposition';
|
|
8
8
|
import UserSelectableBar from '../components/UserSelectableBar';
|
|
@@ -11,30 +11,12 @@ import createUserListModule from '../domain/userList/module/createUserListModule
|
|
|
11
11
|
import type { UserListModule } from '../domain/userList/types';
|
|
12
12
|
import { useLocalization, useSendbirdChat } from '../hooks/useContext';
|
|
13
13
|
|
|
14
|
-
const
|
|
15
|
-
const userIds = users
|
|
16
|
-
.map((user) => {
|
|
17
|
-
// @ts-ignore
|
|
18
|
-
return user.userId as string | undefined;
|
|
19
|
-
})
|
|
20
|
-
.filter((u): u is string => Boolean(u));
|
|
21
|
-
|
|
22
|
-
if (userIds.length === 0) {
|
|
23
|
-
Logger.warn(
|
|
24
|
-
'GroupChannelCreateFragment: Couldn\'t find user ids! if you provide "queryCreator", please provide "userIdsGenerator" as well',
|
|
25
|
-
);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return userIds;
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
const createGroupChannelCreateFragment = <UserType,>(
|
|
14
|
+
const createGroupChannelCreateFragment = <UserType extends UserStruct>(
|
|
32
15
|
initModule?: Partial<UserListModule<UserType>>,
|
|
33
16
|
): GroupChannelCreateFragment<UserType> => {
|
|
34
17
|
const UserListModule = createUserListModule<UserType>(initModule);
|
|
35
18
|
|
|
36
19
|
return ({
|
|
37
|
-
userIdsGenerator = defaultUserIdsGenerator,
|
|
38
20
|
onPressHeaderLeft,
|
|
39
21
|
onBeforeCreateChannel = PASS,
|
|
40
22
|
onCreateChannel,
|
|
@@ -52,34 +34,32 @@ const createGroupChannelCreateFragment = <UserType,>(
|
|
|
52
34
|
|
|
53
35
|
const _renderUser: NonNullable<typeof renderUser> = useFreshCallback((user, selectedUsers, setSelectedUsers) => {
|
|
54
36
|
if (queryCreator && !renderUser) {
|
|
55
|
-
|
|
37
|
+
const hasRequiredKey = Object.hasOwn(user, 'profileUrl') && Object.hasOwn(user, 'nickname');
|
|
38
|
+
if (!hasRequiredKey) throw new Error('You should provide "renderUser" when providing "queryCreator"');
|
|
56
39
|
}
|
|
57
|
-
if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);
|
|
58
40
|
|
|
59
|
-
|
|
60
|
-
const sbSelectedUsers = selectedUsers as unknown as SendbirdUser[];
|
|
61
|
-
const sbSetSelectedUsers = setSelectedUsers as unknown as React.Dispatch<React.SetStateAction<SendbirdUser[]>>;
|
|
41
|
+
if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);
|
|
62
42
|
|
|
63
|
-
const isMe =
|
|
43
|
+
const isMe = user.userId === currentUser?.userId;
|
|
64
44
|
if (isMe) return null;
|
|
65
45
|
|
|
66
|
-
const userIdx =
|
|
46
|
+
const userIdx = selectedUsers.findIndex((u) => u.userId === user.userId);
|
|
67
47
|
const isSelected = userIdx > -1;
|
|
68
48
|
|
|
69
49
|
return (
|
|
70
50
|
<TouchableOpacity
|
|
71
51
|
activeOpacity={0.7}
|
|
72
52
|
onPress={() => {
|
|
73
|
-
|
|
53
|
+
setSelectedUsers(([...draft]) => {
|
|
74
54
|
if (isSelected) draft.splice(userIdx, 1);
|
|
75
|
-
else draft.push(
|
|
55
|
+
else draft.push(user);
|
|
76
56
|
return draft;
|
|
77
57
|
});
|
|
78
58
|
}}
|
|
79
59
|
>
|
|
80
60
|
<UserSelectableBar
|
|
81
|
-
uri={
|
|
82
|
-
name={
|
|
61
|
+
uri={(user as unknown as SendbirdUser).profileUrl}
|
|
62
|
+
name={(user as unknown as SendbirdUser).nickname || STRINGS.LABELS.USER_NO_NAME}
|
|
83
63
|
selected={isSelected}
|
|
84
64
|
disabled={false}
|
|
85
65
|
/>
|
|
@@ -96,7 +76,7 @@ const createGroupChannelCreateFragment = <UserType,>(
|
|
|
96
76
|
onPressHeaderLeft={onPressHeaderLeft}
|
|
97
77
|
onPressHeaderRight={async (users) => {
|
|
98
78
|
const params: SendbirdGroupChannelCreateParams = {
|
|
99
|
-
invitedUserIds:
|
|
79
|
+
invitedUserIds: users.map((it) => it.userId),
|
|
100
80
|
name: '',
|
|
101
81
|
coverUrl: '',
|
|
102
82
|
isDistinct: false,
|
|
@@ -37,7 +37,6 @@ const createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): G
|
|
|
37
37
|
const { sdk, currentUser } = useSendbirdChat();
|
|
38
38
|
|
|
39
39
|
const {
|
|
40
|
-
activeChannel,
|
|
41
40
|
messages,
|
|
42
41
|
nextMessages,
|
|
43
42
|
newMessagesFromMembers,
|
|
@@ -95,16 +94,16 @@ const createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): G
|
|
|
95
94
|
|
|
96
95
|
return (
|
|
97
96
|
<GroupChannelModule.Provider
|
|
98
|
-
channel={
|
|
97
|
+
channel={channel}
|
|
99
98
|
enableTypingIndicator={enableTypingIndicator}
|
|
100
99
|
keyboardAvoidOffset={keyboardAvoidOffset}
|
|
101
100
|
>
|
|
102
101
|
<GroupChannelModule.Header onPressHeaderLeft={onPressHeaderLeft} onPressHeaderRight={onPressHeaderRight} />
|
|
103
102
|
<StatusComposition loading={loading} LoadingComponent={<GroupChannelModule.StatusLoading />}>
|
|
104
103
|
<GroupChannelModule.MessageList
|
|
104
|
+
channel={channel}
|
|
105
105
|
enableMessageGrouping={enableMessageGrouping}
|
|
106
106
|
currentUserId={currentUser?.userId}
|
|
107
|
-
channel={activeChannel}
|
|
108
107
|
renderMessage={_renderMessage}
|
|
109
108
|
messages={messages}
|
|
110
109
|
nextMessages={nextMessages}
|
|
@@ -119,15 +118,13 @@ const createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): G
|
|
|
119
118
|
onPressMediaMessage={onPressMediaMessage}
|
|
120
119
|
flatListProps={memoizedFlatListProps}
|
|
121
120
|
/>
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
/>
|
|
130
|
-
)}
|
|
121
|
+
<GroupChannelModule.Input
|
|
122
|
+
shouldRenderInput={shouldRenderInput(channel)}
|
|
123
|
+
onSendFileMessage={onSendFileMessage}
|
|
124
|
+
onSendUserMessage={onSendUserMessage}
|
|
125
|
+
onUpdateFileMessage={onUpdateFileMessage}
|
|
126
|
+
onUpdateUserMessage={onUpdateUserMessage}
|
|
127
|
+
/>
|
|
131
128
|
</StatusComposition>
|
|
132
129
|
</GroupChannelModule.Provider>
|
|
133
130
|
);
|