Various improvements

This commit is contained in:
Ilya Laktyushin 2025-08-27 22:22:39 +04:00
parent 24e01cc8d4
commit 276743d0f9
3 changed files with 19 additions and 15 deletions

View File

@ -596,7 +596,7 @@ private final class GiftViewSheetContent: CombinedComponent {
}
if let convertToStars = controller?.convertToStars {
convertToStars()
convertToStars(reference)
} else {
let _ = (self.context.engine.payments.convertStarGift(reference: reference)
|> deliverOnMainQueue).startStandalone()
@ -1641,8 +1641,11 @@ private final class GiftViewSheetContent: CombinedComponent {
let context = self.context
let upgradeGiftImpl: ((Int64?, Bool) -> Signal<ProfileGiftsContext.State.StarGift, UpgradeStarGiftError>)
if let upgradeGift = controller.upgradeGift {
guard let reference = arguments.reference else {
return
}
upgradeGiftImpl = { formId, keepOriginalInfo in
return upgradeGift(formId, keepOriginalInfo)
return upgradeGift(formId, reference, keepOriginalInfo)
|> afterCompleted {
if formId != nil {
context.starsContext?.load(force: true)
@ -1690,7 +1693,8 @@ private final class GiftViewSheetContent: CombinedComponent {
}
}
}
self.updated(transition: .spring(duration: 0.4))
Queue.mainQueue().after(firstDuration) {
self.revealedAttributes.insert(.backdrop)
self.updated(transition: .immediate)
@ -4461,9 +4465,9 @@ public class GiftViewScreen: ViewControllerComponentContainer {
fileprivate let balanceOverlay = ComponentView<Empty>()
fileprivate let updateSavedToProfile: ((StarGiftReference, Bool) -> Void)?
fileprivate let convertToStars: (() -> Void)?
fileprivate let convertToStars: ((StarGiftReference) -> Void)?
fileprivate let transferGift: ((Bool, EnginePeer.Id) -> Signal<Never, TransferStarGiftError>)?
fileprivate let upgradeGift: ((Int64?, Bool) -> Signal<ProfileGiftsContext.State.StarGift, UpgradeStarGiftError>)?
fileprivate let upgradeGift: ((Int64?, StarGiftReference, Bool) -> Signal<ProfileGiftsContext.State.StarGift, UpgradeStarGiftError>)?
fileprivate let buyGift: ((String, EnginePeer.Id, CurrencyAmount?) -> Signal<Never, BuyStarGiftError>)?
fileprivate let updateResellStars: ((CurrencyAmount?) -> Signal<Never, UpdateStarGiftPriceError>)?
fileprivate let togglePinnedToTop: ((Bool) -> Bool)?
@ -4479,9 +4483,9 @@ public class GiftViewScreen: ViewControllerComponentContainer {
index: Int? = nil,
forceDark: Bool = false,
updateSavedToProfile: ((StarGiftReference, Bool) -> Void)? = nil,
convertToStars: (() -> Void)? = nil,
convertToStars: ((StarGiftReference) -> Void)? = nil,
transferGift: ((Bool, EnginePeer.Id) -> Signal<Never, TransferStarGiftError>)? = nil,
upgradeGift: ((Int64?, Bool) -> Signal<ProfileGiftsContext.State.StarGift, UpgradeStarGiftError>)? = nil,
upgradeGift: ((Int64?, StarGiftReference, Bool) -> Signal<ProfileGiftsContext.State.StarGift, UpgradeStarGiftError>)? = nil,
buyGift: ((String, EnginePeer.Id, CurrencyAmount?) -> Signal<Never, BuyStarGiftError>)? = nil,
updateResellStars: ((CurrencyAmount?) -> Signal<Never, UpdateStarGiftPriceError>)? = nil,
togglePinnedToTop: ((Bool) -> Bool)? = nil,

View File

@ -5012,8 +5012,8 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, PeerInfoScreenNodePro
}
profileGifts.updateStarGiftAddedToProfile(reference: reference, added: added)
},
convertToStars: { [weak profileGifts] in
guard let profileGifts, let reference = gift.reference else {
convertToStars: { [weak profileGifts] reference in
guard let profileGifts else {
return
}
profileGifts.convertStarGift(reference: reference)
@ -5024,8 +5024,8 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, PeerInfoScreenNodePro
}
return profileGifts.transferStarGift(prepaid: prepaid, reference: reference, peerId: peerId)
},
upgradeGift: { [weak profileGifts] formId, keepOriginalInfo in
guard let profileGifts, let reference = gift.reference else {
upgradeGift: { [weak profileGifts] formId, reference, keepOriginalInfo in
guard let profileGifts else {
return .never()
}
return profileGifts.upgradeStarGift(formId: formId, reference: reference, keepOriginalInfo: keepOriginalInfo)

View File

@ -611,8 +611,8 @@ final class GiftsListView: UIView {
}
self.profileGifts.updateStarGiftAddedToProfile(reference: reference, added: added)
},
convertToStars: { [weak self] in
guard let self, let reference = product.reference else {
convertToStars: { [weak self] reference in
guard let self else {
return
}
self.profileGifts.convertStarGift(reference: reference)
@ -623,8 +623,8 @@ final class GiftsListView: UIView {
}
return self.profileGifts.transferStarGift(prepaid: prepaid, reference: reference, peerId: peerId)
},
upgradeGift: { [weak self] formId, keepOriginalInfo in
guard let self, let reference = product.reference else {
upgradeGift: { [weak self] formId, reference, keepOriginalInfo in
guard let self else {
return .never()
}
return self.profileGifts.upgradeStarGift(formId: formId, reference: reference, keepOriginalInfo: keepOriginalInfo)