From 3f9820f2eff67a3179508213e236a56209b2825e Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Wed, 3 Sep 2025 21:37:47 +0500 Subject: [PATCH] Various fixes --- .../Sources/TelegramEngine/Payments/StarGifts.swift | 2 +- .../Gifts/GiftSetupScreen/Sources/GiftSetupScreen.swift | 6 +++++- .../Gifts/GiftViewScreen/Sources/GiftViewScreen.swift | 6 +++--- .../PeerInfoScreen/Sources/PeerInfoHeaderNode.swift | 4 +++- .../PeerInfo/PeerInfoScreen/Sources/PeerInfoScreen.swift | 4 ++-- .../PeerInfoVisualMediaPaneNode/Sources/GiftsListView.swift | 4 ++-- 6 files changed, 16 insertions(+), 10 deletions(-) diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Payments/StarGifts.swift b/submodules/TelegramCore/Sources/TelegramEngine/Payments/StarGifts.swift index 055890e327..9464fa8bf1 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Payments/StarGifts.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Payments/StarGifts.swift @@ -976,7 +976,7 @@ func _internal_keepCachedStarGiftsUpdated(postbox: Postbox, network: Network, ac let updateSignal = _internal_cachedStarGifts(postbox: postbox) |> take(1) |> mapToSignal { list -> Signal in - return network.request(Api.functions.payments.getStarGifts(hash: 0)) + return network.request(Api.functions.payments.getStarGifts(hash: list?.hashValue ?? 0)) |> map(Optional.init) |> `catch` { _ -> Signal in return .single(nil) diff --git a/submodules/TelegramUI/Components/Gifts/GiftSetupScreen/Sources/GiftSetupScreen.swift b/submodules/TelegramUI/Components/Gifts/GiftSetupScreen/Sources/GiftSetupScreen.swift index 25bee3463c..3dedd98b87 100644 --- a/submodules/TelegramUI/Components/Gifts/GiftSetupScreen/Sources/GiftSetupScreen.swift +++ b/submodules/TelegramUI/Components/Gifts/GiftSetupScreen/Sources/GiftSetupScreen.swift @@ -124,7 +124,6 @@ final class GiftSetupScreenComponent: Component { private var inProgress = false - private var previousHadInputHeight: Bool = false private var previousInputHeight: CGFloat? private var recenterOnTag: NSObject? @@ -134,6 +133,8 @@ final class GiftSetupScreenComponent: Component { private var starImage: (UIImage, PresentationTheme)? + private var updateDisposable: Disposable? + private var optionsDisposable: Disposable? private(set) var options: [StarsTopUpOption] = [] { didSet { @@ -173,6 +174,9 @@ final class GiftSetupScreenComponent: Component { } deinit { + self.inputMediaNodeDataDisposable?.dispose() + self.updateDisposable?.dispose() + self.optionsDisposable?.dispose() } func scrollToTop() { diff --git a/submodules/TelegramUI/Components/Gifts/GiftViewScreen/Sources/GiftViewScreen.swift b/submodules/TelegramUI/Components/Gifts/GiftViewScreen/Sources/GiftViewScreen.swift index ba017d2150..4c3a90a7ea 100644 --- a/submodules/TelegramUI/Components/Gifts/GiftViewScreen/Sources/GiftViewScreen.swift +++ b/submodules/TelegramUI/Components/Gifts/GiftViewScreen/Sources/GiftViewScreen.swift @@ -931,7 +931,7 @@ private final class GiftViewSheetContent: CombinedComponent { }) if let tranfserGiftImpl { - return tranfserGiftImpl(transferStars == 0, peerId) + return tranfserGiftImpl(transferStars == 0, reference, peerId) } else { return (context.engine.payments.transferStarGift(prepaid: transferStars == 0, reference: reference, peerId: peerId) |> deliverOnMainQueue) @@ -4554,7 +4554,7 @@ public class GiftViewScreen: ViewControllerComponentContainer { fileprivate let updateSavedToProfile: ((StarGiftReference, Bool) -> Void)? fileprivate let convertToStars: ((StarGiftReference) -> Void)? - fileprivate let transferGift: ((Bool, EnginePeer.Id) -> Signal)? + fileprivate let transferGift: ((Bool, StarGiftReference, EnginePeer.Id) -> Signal)? fileprivate let upgradeGift: ((Int64?, StarGiftReference, Bool) -> Signal)? fileprivate let buyGift: ((String, EnginePeer.Id, CurrencyAmount?) -> Signal)? fileprivate let updateResellStars: ((StarGiftReference, CurrencyAmount?) -> Signal)? @@ -4572,7 +4572,7 @@ public class GiftViewScreen: ViewControllerComponentContainer { forceDark: Bool = false, updateSavedToProfile: ((StarGiftReference, Bool) -> Void)? = nil, convertToStars: ((StarGiftReference) -> Void)? = nil, - transferGift: ((Bool, EnginePeer.Id) -> Signal)? = nil, + transferGift: ((Bool, StarGiftReference, EnginePeer.Id) -> Signal)? = nil, upgradeGift: ((Int64?, StarGiftReference, Bool) -> Signal)? = nil, buyGift: ((String, EnginePeer.Id, CurrencyAmount?) -> Signal)? = nil, updateResellStars: ((StarGiftReference, CurrencyAmount?) -> Signal)? = nil, diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoHeaderNode.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoHeaderNode.swift index d38cf5f67f..9e6172ea02 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoHeaderNode.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoHeaderNode.swift @@ -1905,7 +1905,7 @@ final class PeerInfoHeaderNode: ASDisplayNode { transition.updateFrameAdditive(node: self.avatarListNode, frame: CGRect(origin: apparentAvatarFrame.center, size: CGSize())) transition.updateFrameAdditive(node: self.avatarOverlayNode, frame: CGRect(origin: apparentAvatarFrame.center, size: CGSize())) - let avatarListContainerFrame: CGRect + var avatarListContainerFrame: CGRect let avatarListContainerScale: CGFloat if self.isAvatarExpanded { if let transitionSourceAvatarFrame = transitionSourceAvatarFrame { @@ -1922,6 +1922,8 @@ final class PeerInfoHeaderNode: ASDisplayNode { avatarListContainerFrame = CGRect(origin: CGPoint(x: -expandedAvatarListSize.width / 2.0, y: -expandedAvatarListSize.width / 2.0), size: expandedAvatarListSize) } avatarListContainerScale = 1.0 + max(0.0, -contentOffset / avatarListContainerFrame.width) + let heightDelta = avatarListContainerFrame.height * avatarListContainerScale - avatarListContainerFrame.height + avatarListContainerFrame.origin.y -= heightDelta / 4.0 } else { let expandHeightFraction = expandedAvatarListSize.height / expandedAvatarListSize.width avatarListContainerFrame = CGRect(origin: CGPoint(x: -apparentAvatarFrame.width / 2.0, y: -apparentAvatarFrame.width / 2.0 + expandHeightFraction * 0.0 * apparentAvatarFrame.width), size: apparentAvatarFrame.size) diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoScreen.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoScreen.swift index 5627e06ed1..180b0bc579 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoScreen.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoScreen.swift @@ -5018,8 +5018,8 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, PeerInfoScreenNodePro } profileGifts.convertStarGift(reference: reference) }, - transferGift: { [weak profileGifts] prepaid, peerId in - guard let profileGifts, let reference = gift.reference else { + transferGift: { [weak profileGifts] prepaid, reference, peerId in + guard let profileGifts else { return .complete() } return profileGifts.transferStarGift(prepaid: prepaid, reference: reference, peerId: peerId) diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoVisualMediaPaneNode/Sources/GiftsListView.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoVisualMediaPaneNode/Sources/GiftsListView.swift index 89396b24d4..88028c55e6 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoVisualMediaPaneNode/Sources/GiftsListView.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoVisualMediaPaneNode/Sources/GiftsListView.swift @@ -617,8 +617,8 @@ final class GiftsListView: UIView { } self.profileGifts.convertStarGift(reference: reference) }, - transferGift: { [weak self] prepaid, peerId in - guard let self, let reference = product.reference else { + transferGift: { [weak self] prepaid, reference, peerId in + guard let self else { return .complete() } return self.profileGifts.transferStarGift(prepaid: prepaid, reference: reference, peerId: peerId)