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,23 +306,25 @@ private final class GiftViewSheetContent: CombinedComponent {
controller.dismissAllTooltips() controller.dismissAllTooltips()
let context = self.context
let action = {
if gifts { if gifts {
if let profileController = self.context.sharedContext.makePeerInfoController( if let profileController = context.sharedContext.makePeerInfoController(
context: self.context, context: context,
updatedPresentationData: nil, updatedPresentationData: nil,
peer: peer._asPeer(), peer: peer._asPeer(),
mode: peer.id == self.context.account.peerId ? .myProfileGifts : .gifts, mode: peer.id == context.account.peerId ? .myProfileGifts : .gifts,
avatarInitiallyExpanded: false, avatarInitiallyExpanded: false,
fromChat: false, fromChat: false,
requestsContext: nil requestsContext: nil
) { ) {
controller.push(profileController) navigationController.pushViewController(profileController)
} }
} else { } else {
self.context.sharedContext.navigateToChatController(NavigateToChatControllerParams( context.sharedContext.navigateToChatController(NavigateToChatControllerParams(
navigationController: navigationController, navigationController: navigationController,
chatController: nil, chatController: nil,
context: self.context, context: context,
chatLocation: .peer(peer), chatLocation: .peer(peer),
subject: nil, subject: nil,
botStart: nil, botStart: nil,
@ -335,11 +337,15 @@ private final class GiftViewSheetContent: CombinedComponent {
animated: true 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()
} }
} }