Hide participants: Show option only when available (#2752)

This commit is contained in:
Alexander Zinchuk 2023-03-10 02:34:08 +01:00
parent 2d7d1a7fd8
commit 22b3b53c58

View File

@ -47,8 +47,8 @@ type StateProps = {
globalUserIds?: string[]; globalUserIds?: string[];
currentUserId?: string; currentUserId?: string;
canDeleteMembers?: boolean; canDeleteMembers?: boolean;
isBasicGroup?: boolean;
areParticipantsHidden?: boolean; areParticipantsHidden?: boolean;
canHideParticipants?: boolean;
}; };
const ManageGroupMembers: FC<OwnProps & StateProps> = ({ const ManageGroupMembers: FC<OwnProps & StateProps> = ({
@ -66,8 +66,8 @@ const ManageGroupMembers: FC<OwnProps & StateProps> = ({
searchQuery, searchQuery,
currentUserId, currentUserId,
canDeleteMembers, canDeleteMembers,
isBasicGroup,
areParticipantsHidden, areParticipantsHidden,
canHideParticipants,
onClose, onClose,
onScreenSelect, onScreenSelect,
onChatMemberSelect, onChatMemberSelect,
@ -192,7 +192,7 @@ const ManageGroupMembers: FC<OwnProps & StateProps> = ({
<div className="Management"> <div className="Management">
{noAdmins && renderSearchField()} {noAdmins && renderSearchField()}
<div className="custom-scroll"> <div className="custom-scroll">
{!isBasicGroup && ( {canHideParticipants && (
<div className="section"> <div className="section">
<ListItem icon="group" ripple onClick={handleToggleParticipantsHidden}> <ListItem icon="group" ripple onClick={handleToggleParticipantsHidden}>
<span>{lang('ChannelHideMembers')}</span> <span>{lang('ChannelHideMembers')}</span>
@ -255,6 +255,12 @@ export default memo(withGlobal<OwnProps>(
const adminMembersById = chat?.fullInfo?.adminMembersById; const adminMembersById = chat?.fullInfo?.adminMembersById;
const isChannel = chat && isChatChannel(chat); const isChannel = chat && isChatChannel(chat);
const { userIds: localContactIds } = global.contactList || {}; const { userIds: localContactIds } = global.contactList || {};
const hiddenMembersMinCount = global.appConfig?.hiddenMembersMinCount;
const canDeleteMembers = chat && (chat.isCreator || getHasAdminRight(chat, 'banUsers'));
const canHideParticipants = canDeleteMembers && !isChatBasicGroup(chat) && chat.membersCount !== undefined
&& hiddenMembersMinCount !== undefined && chat.membersCount >= hiddenMembersMinCount;
const { const {
query: searchQuery, query: searchQuery,
@ -263,10 +269,7 @@ export default memo(withGlobal<OwnProps>(
localUserIds, localUserIds,
} = selectTabState(global).userSearch; } = selectTabState(global).userSearch;
const canDeleteMembers = chat && (chat.isCreator || getHasAdminRight(chat, 'banUsers'));
return { return {
isBasicGroup: Boolean(chat && isChatBasicGroup(chat)),
areParticipantsHidden: Boolean(chat && chat.fullInfo?.areParticipantsHidden), areParticipantsHidden: Boolean(chat && chat.fullInfo?.areParticipantsHidden),
members, members,
adminMembersById, adminMembersById,
@ -279,6 +282,7 @@ export default memo(withGlobal<OwnProps>(
localUserIds, localUserIds,
canDeleteMembers, canDeleteMembers,
currentUserId: global.currentUserId, currentUserId: global.currentUserId,
canHideParticipants,
}; };
}, },
)(ManageGroupMembers)); )(ManageGroupMembers));