mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 14:20:20 +00:00
Channel member improvements
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user