Various improvements

This commit is contained in:
Isaac
2025-06-26 20:29:23 +02:00
parent 8818ef04ad
commit 3e40713aad
14 changed files with 207 additions and 515 deletions

View File

@@ -856,6 +856,11 @@ public class ChatMessageStickerItemNode: ChatMessageItemView {
maxContentWidth = max(maxContentWidth, minWidth)
actionButtonsFinalize = buttonsLayout
} else if incoming, let attribute = item.message.attributes.first(where: { $0 is SuggestedPostMessageAttribute }) as? SuggestedPostMessageAttribute, attribute.state == nil {
var canApprove = true
if let peer = item.message.peers[item.message.id.peerId] as? TelegramChannel, peer.isMonoForum, let linkedMonoforumId = peer.linkedMonoforumId, let mainChannel = item.message.peers[linkedMonoforumId] as? TelegramChannel, mainChannel.hasPermission(.manageDirect), !mainChannel.hasPermission(.sendSomething) {
canApprove = false
}
//TODO:localize
var buttonDeclineValue: UInt8 = 0
let buttonDecline = MemoryBuffer(data: Data(bytes: &buttonDeclineValue, count: 1))
@@ -864,10 +869,19 @@ public class ChatMessageStickerItemNode: ChatMessageItemView {
var buttonSuggestChangesValue: UInt8 = 2
let buttonSuggestChanges = MemoryBuffer(data: Data(bytes: &buttonSuggestChangesValue, count: 1))
let customIcons: [MemoryBuffer: ChatMessageActionButtonsNode.CustomIcon] = [
buttonDecline: .suggestedPostReject,
buttonApprove: .suggestedPostApprove,
buttonSuggestChanges: .suggestedPostEdit
let customInfos: [MemoryBuffer: ChatMessageActionButtonsNode.CustomInfo] = [
buttonDecline: ChatMessageActionButtonsNode.CustomInfo(
isEnabled: true,
icon: .suggestedPostReject
),
buttonApprove: ChatMessageActionButtonsNode.CustomInfo(
isEnabled: canApprove,
icon: .suggestedPostApprove
),
buttonSuggestChanges: ChatMessageActionButtonsNode.CustomInfo(
isEnabled: canApprove,
icon: .suggestedPostEdit
)
]
let (minWidth, buttonsLayout) = actionButtonsLayout(
@@ -888,7 +902,7 @@ public class ChatMessageStickerItemNode: ChatMessageItemView {
],
flags: [],
placeholder: nil
), customIcons, item.message, baseWidth)
), customInfos, item.message, baseWidth)
maxContentWidth = max(maxContentWidth, minWidth)
actionButtonsFinalize = buttonsLayout
}