Channel member improvements

This commit is contained in:
Isaac
2024-04-26 19:16:33 +04:00
parent 56b32159ac
commit 4556fe57a6
3 changed files with 18 additions and 9 deletions

View File

@@ -527,8 +527,7 @@ private final class AdminUserActionsSheetComponent: Component {
break loop break loop
case let .member(_, _, adminInfo, banInfo, _): case let .member(_, _, adminInfo, banInfo, _):
if adminInfo != nil { if adminInfo != nil {
allowedParticipantRights = [] (allowedParticipantRights, allowedMediaRights) = rightsFromBannedRights([])
allowedMediaRights = []
break loop break loop
} else if let banInfo { } else if let banInfo {
(peerParticipantRights, peerMediaRights) = rightsFromBannedRights(banInfo.rights.flags) (peerParticipantRights, peerMediaRights) = rightsFromBannedRights(banInfo.rights.flags)
@@ -825,6 +824,7 @@ private final class AdminUserActionsSheetComponent: Component {
context: component.context, context: component.context,
theme: environment.theme, theme: environment.theme,
strings: environment.strings, strings: environment.strings,
baseFontSize: presentationData.listsFontSize.baseDisplaySize,
sideInset: 0.0, sideInset: 0.0,
title: EnginePeer(peer.peer).displayTitle(strings: environment.strings, displayOrder: .firstLast), title: EnginePeer(peer.peer).displayTitle(strings: environment.strings, displayOrder: .firstLast),
peer: EnginePeer(peer.peer), peer: EnginePeer(peer.peer),
@@ -1102,6 +1102,7 @@ private final class AdminUserActionsSheetComponent: Component {
guard let self else { guard let self else {
return return
} }
switch configItem { switch configItem {
case .sendMessages: case .sendMessages:
if self.participantRights.contains(.sendMessages) { if self.participantRights.contains(.sendMessages) {
@@ -1137,12 +1138,20 @@ private final class AdminUserActionsSheetComponent: Component {
self.state?.updated(transition: .spring(duration: 0.35)) self.state?.updated(transition: .spring(duration: 0.35))
} : nil } : nil
)), )),
action: (isEnabled && configItem == .sendMedia) ? { [weak self] _ in action: ((isEnabled && configItem == .sendMedia) || !isEnabled) ? { [weak self] _ in
guard let self else { guard let self, let component = self.component else {
return return
} }
if !isEnabled {
let presentationData = component.context.sharedContext.currentPresentationData.with { $0 }
self.environment?.controller()?.present(standardTextAlertController(theme: AlertControllerTheme(presentationData: presentationData), title: nil, text: environment.strings.GroupPermission_PermissionDisabledByDefault, actions: [
TextAlertAction(type: .defaultAction, title: environment.strings.Common_OK, action: {
})
]), in: .window(.root))
} else {
self.isMediaSectionExpanded = !self.isMediaSectionExpanded self.isMediaSectionExpanded = !self.isMediaSectionExpanded
self.state?.updated(transition: .spring(duration: 0.35)) self.state?.updated(transition: .spring(duration: 0.35))
}
} : nil, } : nil,
highlighting: .disabled highlighting: .disabled
)))) ))))
@@ -1756,4 +1765,3 @@ private final class OptionsSectionFooterComponent: Component {
return view.update(component: self, availableSize: availableSize, state: state, environment: environment, transition: transition) return view.update(component: self, availableSize: availableSize, state: state, environment: environment, transition: transition)
} }
} }

View File

@@ -759,6 +759,7 @@ private final class RecentActionsSettingsSheetComponent: Component {
context: component.context, context: component.context,
theme: environment.theme, theme: environment.theme,
strings: environment.strings, strings: environment.strings,
baseFontSize: presentationData.listsFontSize.baseDisplaySize,
sideInset: 0.0, sideInset: 0.0,
title: peer.displayTitle(strings: environment.strings, displayOrder: .firstLast), title: peer.displayTitle(strings: environment.strings, displayOrder: .firstLast),
peer: peer, peer: peer,

View File

@@ -141,7 +141,7 @@ private enum PeerMembersListEntry: Comparable, Identifiable {
sortOrder: presentationData.nameSortOrder, sortOrder: presentationData.nameSortOrder,
displayOrder: presentationData.nameDisplayOrder, displayOrder: presentationData.nameDisplayOrder,
context: context, context: context,
peerMode: .peer, peerMode: .memberList,
peer: .peer(peer: EnginePeer(member.peer), chatPeer: EnginePeer(member.peer)), peer: .peer(peer: EnginePeer(member.peer), chatPeer: EnginePeer(member.peer)),
status: .presence(presence, presentationData.dateTimeFormat), status: .presence(presence, presentationData.dateTimeFormat),
rightLabelText: label, rightLabelText: label,
@@ -153,7 +153,7 @@ private enum PeerMembersListEntry: Comparable, Identifiable {
actionIcon: .none, actionIcon: .none,
index: nil, index: nil,
header: nil, header: nil,
action: { _ in action: member.peer.id == context.account.peerId ? nil : { _ in
action(member, .open) action(member, .open)
}, },
disabledAction: nil, disabledAction: nil,