Various fixes

This commit is contained in:
Ilya Laktyushin 2025-05-03 17:07:17 +04:00
parent c04e8f3c11
commit fa46338010
2 changed files with 38 additions and 49 deletions

View File

@ -1542,24 +1542,7 @@ private final class ProfileGiftsContextImpl {
return EmptyDisposable return EmptyDisposable
} }
var saveToProfile = false let signal = _internal_updateStarGiftResalePrice(account: self.account, reference: reference, price: price)
if let gift = self.gifts.first(where: { $0.reference == reference }) {
if !gift.savedToProfile {
saveToProfile = true
}
} else if let gift = self.filteredGifts.first(where: { $0.reference == reference }) {
if !gift.savedToProfile {
saveToProfile = true
}
}
var signal = _internal_updateStarGiftResalePrice(account: self.account, reference: reference, price: price)
if saveToProfile {
signal = _internal_updateStarGiftAddedToProfile(account: self.account, reference: reference, added: true)
|> castError(UpdateStarGiftPriceError.self)
|> then(signal)
}
let disposable = MetaDisposable() let disposable = MetaDisposable()
disposable.set( disposable.set(
(signal (signal
@ -1584,7 +1567,7 @@ private final class ProfileGiftsContextImpl {
}) { }) {
if case let .unique(uniqueGift) = self.gifts[index].gift { if case let .unique(uniqueGift) = self.gifts[index].gift {
let updatedUniqueGift = uniqueGift.withResellStars(price) let updatedUniqueGift = uniqueGift.withResellStars(price)
let updatedGift = self.gifts[index].withGift(.unique(updatedUniqueGift)).withSavedToProfile(true) let updatedGift = self.gifts[index].withGift(.unique(updatedUniqueGift))
self.gifts[index] = updatedGift self.gifts[index] = updatedGift
} }
} }
@ -1607,7 +1590,7 @@ private final class ProfileGiftsContextImpl {
}) { }) {
if case let .unique(uniqueGift) = self.filteredGifts[index].gift { if case let .unique(uniqueGift) = self.filteredGifts[index].gift {
let updatedUniqueGift = uniqueGift.withResellStars(price) let updatedUniqueGift = uniqueGift.withResellStars(price)
let updatedGift = self.filteredGifts[index].withGift(.unique(updatedUniqueGift)).withSavedToProfile(true) let updatedGift = self.filteredGifts[index].withGift(.unique(updatedUniqueGift))
self.filteredGifts[index] = updatedGift self.filteredGifts[index] = updatedGift
} }
} }

View File

@ -306,40 +306,46 @@ private final class GiftViewSheetContent: CombinedComponent {
controller.dismissAllTooltips() controller.dismissAllTooltips()
if gifts { let context = self.context
if let profileController = self.context.sharedContext.makePeerInfoController( let action = {
context: self.context, if gifts {
updatedPresentationData: nil, if let profileController = context.sharedContext.makePeerInfoController(
peer: peer._asPeer(), context: context,
mode: peer.id == self.context.account.peerId ? .myProfileGifts : .gifts, updatedPresentationData: nil,
avatarInitiallyExpanded: false, peer: peer._asPeer(),
fromChat: false, mode: peer.id == context.account.peerId ? .myProfileGifts : .gifts,
requestsContext: nil avatarInitiallyExpanded: false,
) { fromChat: false,
controller.push(profileController) requestsContext: nil
) {
navigationController.pushViewController(profileController)
}
} else {
context.sharedContext.navigateToChatController(NavigateToChatControllerParams(
navigationController: navigationController,
chatController: nil,
context: context,
chatLocation: .peer(peer),
subject: nil,
botStart: nil,
updateTextInputState: nil,
keepStack: .always,
useExisting: true,
purposefulAction: nil,
scrollToEndIfExists: false,
activateMessageSearch: nil,
animated: true
))
} }
} else {
self.context.sharedContext.navigateToChatController(NavigateToChatControllerParams(
navigationController: navigationController,
chatController: nil,
context: self.context,
chatLocation: .peer(peer),
subject: nil,
botStart: nil,
updateTextInputState: nil,
keepStack: .always,
useExisting: true,
purposefulAction: nil,
scrollToEndIfExists: false,
activateMessageSearch: nil,
animated: true
))
} }
if dismiss { if dismiss {
Queue.mainQueue().after(0.6, { self.dismiss(animated: true)
self.dismiss(animated: false) Queue.mainQueue().after(0.4, {
action()
}) })
} else {
action()
} }
} }