mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-10-09 03:20:48 +00:00
Fix user suggest changes
This commit is contained in:
parent
c5f2953e90
commit
7b18685825
@ -14623,7 +14623,7 @@ Sorry for the inconvenience.";
|
|||||||
"VoiceOver.SuggestPost" = "Suggest Post";
|
"VoiceOver.SuggestPost" = "Suggest Post";
|
||||||
|
|
||||||
"Chat.ContextMenu.SuggestedPost.EditMessage" = "Edit Message";
|
"Chat.ContextMenu.SuggestedPost.EditMessage" = "Edit Message";
|
||||||
"Chat.ContextMenu.SuggestedPost.EditPrice" = "Edit Prive";
|
"Chat.ContextMenu.SuggestedPost.EditPrice" = "Edit Price";
|
||||||
"Chat.ContextMenu.SuggestedPost.EditTime" = "Edit Time";
|
"Chat.ContextMenu.SuggestedPost.EditTime" = "Edit Time";
|
||||||
"Chat.ContextMenu.SuggestedPost.Create" = "Suggest Post";
|
"Chat.ContextMenu.SuggestedPost.Create" = "Suggest Post";
|
||||||
|
|
||||||
|
@ -989,27 +989,64 @@ extension ChatControllerImpl {
|
|||||||
|
|
||||||
let subject: StarsWithdrawalScreenSubject
|
let subject: StarsWithdrawalScreenSubject
|
||||||
if postSuggestionState.editingOriginalMessageId != nil {
|
if postSuggestionState.editingOriginalMessageId != nil {
|
||||||
subject = .postSuggestionModification(current: postSuggestionState.price ?? CurrencyAmount(amount: .zero, currency: .stars), timestamp: postSuggestionState.timestamp, completion: { [weak self] price, timestamp in
|
var isFromAdmin = false
|
||||||
guard let self else {
|
if let channel = self.presentationInterfaceState.renderedPeer?.peer as? TelegramChannel, channel.isMonoForum {
|
||||||
return
|
if let linkedMonoforumId = channel.linkedMonoforumId, let mainChannel = self.presentationInterfaceState.renderedPeer?.peers[linkedMonoforumId] as? TelegramChannel, mainChannel.hasPermission(.manageDirect) {
|
||||||
|
isFromAdmin = true
|
||||||
}
|
}
|
||||||
|
}
|
||||||
let price: CurrencyAmount? = price.amount == .zero ? nil : price
|
|
||||||
|
if isFromAdmin {
|
||||||
self.updateChatPresentationInterfaceState(interactive: true, { state in
|
subject = .postSuggestionModification(current: postSuggestionState.price ?? CurrencyAmount(amount: .zero, currency: .stars), timestamp: postSuggestionState.timestamp, completion: { [weak self] price, timestamp in
|
||||||
var state = state
|
guard let self else {
|
||||||
state = state.updatedInterfaceState { interfaceState in
|
return
|
||||||
var interfaceState = interfaceState
|
|
||||||
interfaceState = interfaceState.withUpdatedPostSuggestionState(ChatInterfaceState.PostSuggestionState(
|
|
||||||
editingOriginalMessageId: interfaceState.postSuggestionState?.editingOriginalMessageId,
|
|
||||||
price: price,
|
|
||||||
timestamp: timestamp
|
|
||||||
))
|
|
||||||
return interfaceState
|
|
||||||
}
|
}
|
||||||
return state
|
|
||||||
|
let price: CurrencyAmount? = price.amount == .zero ? nil : price
|
||||||
|
|
||||||
|
self.updateChatPresentationInterfaceState(interactive: true, { state in
|
||||||
|
var state = state
|
||||||
|
state = state.updatedInterfaceState { interfaceState in
|
||||||
|
var interfaceState = interfaceState
|
||||||
|
interfaceState = interfaceState.withUpdatedPostSuggestionState(ChatInterfaceState.PostSuggestionState(
|
||||||
|
editingOriginalMessageId: interfaceState.postSuggestionState?.editingOriginalMessageId,
|
||||||
|
price: price,
|
||||||
|
timestamp: timestamp
|
||||||
|
))
|
||||||
|
return interfaceState
|
||||||
|
}
|
||||||
|
return state
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
} else {
|
||||||
|
subject = .postSuggestion(
|
||||||
|
channel: .channel(channel),
|
||||||
|
isFromAdmin: false,
|
||||||
|
current: postSuggestionState.price ?? CurrencyAmount(amount: .zero, currency: .stars),
|
||||||
|
timestamp: postSuggestionState.timestamp,
|
||||||
|
completion: { [weak self] price, timestamp in
|
||||||
|
guard let self else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
let price: CurrencyAmount? = price.amount == .zero ? nil : price
|
||||||
|
|
||||||
|
self.updateChatPresentationInterfaceState(interactive: true, { state in
|
||||||
|
var state = state
|
||||||
|
state = state.updatedInterfaceState { interfaceState in
|
||||||
|
var interfaceState = interfaceState
|
||||||
|
interfaceState = interfaceState.withUpdatedPostSuggestionState(ChatInterfaceState.PostSuggestionState(
|
||||||
|
editingOriginalMessageId: interfaceState.postSuggestionState?.editingOriginalMessageId,
|
||||||
|
price: price,
|
||||||
|
timestamp: timestamp
|
||||||
|
))
|
||||||
|
return interfaceState
|
||||||
|
}
|
||||||
|
return state
|
||||||
|
})
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
var isFromAdmin = false
|
var isFromAdmin = false
|
||||||
if let channel = self.presentationInterfaceState.renderedPeer?.peer as? TelegramChannel, channel.isMonoForum {
|
if let channel = self.presentationInterfaceState.renderedPeer?.peer as? TelegramChannel, channel.isMonoForum {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user