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";
|
||||
|
||||
"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.Create" = "Suggest Post";
|
||||
|
||||
|
@ -989,27 +989,64 @@ extension ChatControllerImpl {
|
||||
|
||||
let subject: StarsWithdrawalScreenSubject
|
||||
if postSuggestionState.editingOriginalMessageId != nil {
|
||||
subject = .postSuggestionModification(current: postSuggestionState.price ?? CurrencyAmount(amount: .zero, currency: .stars), timestamp: postSuggestionState.timestamp, completion: { [weak self] price, timestamp in
|
||||
guard let self else {
|
||||
return
|
||||
var isFromAdmin = false
|
||||
if let channel = self.presentationInterfaceState.renderedPeer?.peer as? TelegramChannel, channel.isMonoForum {
|
||||
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
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
if isFromAdmin {
|
||||
subject = .postSuggestionModification(current: postSuggestionState.price ?? CurrencyAmount(amount: .zero, currency: .stars), timestamp: postSuggestionState.timestamp, completion: { [weak self] price, timestamp in
|
||||
guard let self else {
|
||||
return
|
||||
}
|
||||
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 {
|
||||
var isFromAdmin = false
|
||||
if let channel = self.presentationInterfaceState.renderedPeer?.peer as? TelegramChannel, channel.isMonoForum {
|
||||
|
Loading…
x
Reference in New Issue
Block a user