Skip to content

Commit 07bddcd

Browse files
committed
Various fixes
1 parent 510dadd commit 07bddcd

2 files changed

Lines changed: 32 additions & 12 deletions

File tree

submodules/TelegramUI/Components/Stars/StarsTransferScreen/Sources/StarsTransferScreen.swift

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ private final class SheetContent: CombinedComponent {
3434
let source: BotPaymentInvoiceSource
3535
let extendedMedia: [TelegramExtendedMedia]
3636
let inputData: Signal<(StarsContext.State, BotPaymentForm, EnginePeer?, EnginePeer?)?, NoError>
37-
let navigateToPeer: (EnginePeer) -> Void
37+
let navigateToPeer: ((EnginePeer) -> Void)?
3838
let dismiss: () -> Void
3939

4040
init(
@@ -44,7 +44,7 @@ private final class SheetContent: CombinedComponent {
4444
source: BotPaymentInvoiceSource,
4545
extendedMedia: [TelegramExtendedMedia],
4646
inputData: Signal<(StarsContext.State, BotPaymentForm, EnginePeer?, EnginePeer?)?, NoError>,
47-
navigateToPeer: @escaping (EnginePeer) -> Void,
47+
navigateToPeer: ((EnginePeer) -> Void)?,
4848
dismiss: @escaping () -> Void
4949
) {
5050
self.context = context
@@ -85,7 +85,7 @@ private final class SheetContent: CombinedComponent {
8585
private var peerDisposable: Disposable?
8686
private(set) var balance: StarsAmount?
8787
private(set) var form: BotPaymentForm?
88-
private(set) var navigateToPeer: (EnginePeer) -> Void
88+
private(set) var navigateToPeer: ((EnginePeer) -> Void)?
8989

9090
private var stateDisposable: Disposable?
9191

@@ -106,7 +106,7 @@ private final class SheetContent: CombinedComponent {
106106
extendedMedia: [TelegramExtendedMedia],
107107
invoice: TelegramMediaInvoice,
108108
inputData: Signal<(StarsContext.State, BotPaymentForm, EnginePeer?, EnginePeer?)?, NoError>,
109-
navigateToPeer: @escaping (EnginePeer) -> Void
109+
navigateToPeer: ((EnginePeer) -> Void)?
110110
) {
111111
self.context = context
112112
self.starsContext = starsContext
@@ -189,7 +189,7 @@ private final class SheetContent: CombinedComponent {
189189
let _ = (self.context.engine.peers.joinLinkInformation(link)
190190
|> deliverOnMainQueue).startStandalone(next: { result in
191191
if case let .alreadyJoined(peer) = result {
192-
navigateToPeer(peer)
192+
navigateToPeer?(peer)
193193
}
194194
})
195195
}
@@ -402,9 +402,11 @@ private final class SheetContent: CombinedComponent {
402402
)
403403
),
404404
action: {
405-
component.navigateToPeer(peer)
406-
}
407-
),
405+
component.navigateToPeer?(peer)
406+
},
407+
animateAlpha: component.navigateToPeer != nil,
408+
animateScale: false
409+
),
408410
availableSize: CGSize(width: context.availableSize.width - 32.0, height: context.availableSize.height),
409411
transition: .immediate
410412
)
@@ -740,7 +742,7 @@ private final class StarsTransferSheetComponent: CombinedComponent {
740742
private let source: BotPaymentInvoiceSource
741743
private let extendedMedia: [TelegramExtendedMedia]
742744
private let inputData: Signal<(StarsContext.State, BotPaymentForm, EnginePeer?, EnginePeer?)?, NoError>
743-
private let navigateToPeer: (EnginePeer) -> Void
745+
private let navigateToPeer: ((EnginePeer) -> Void)?
744746

745747
init(
746748
context: AccountContext,
@@ -749,7 +751,7 @@ private final class StarsTransferSheetComponent: CombinedComponent {
749751
source: BotPaymentInvoiceSource,
750752
extendedMedia: [TelegramExtendedMedia],
751753
inputData: Signal<(StarsContext.State, BotPaymentForm, EnginePeer?, EnginePeer?)?, NoError>,
752-
navigateToPeer: @escaping (EnginePeer) -> Void
754+
navigateToPeer: ((EnginePeer) -> Void)?
753755
) {
754756
self.context = context
755757
self.starsContext = starsContext
@@ -804,6 +806,7 @@ private final class StarsTransferSheetComponent: CombinedComponent {
804806
backgroundColor: .color(environment.theme.list.modalBlocksBackgroundColor),
805807
followContentSizeChanges: true,
806808
clipsContent: true,
809+
autoAnimateOut: false,
807810
animateOut: animateOut
808811
),
809812
environment: {
@@ -855,7 +858,7 @@ public final class StarsTransferScreen: ViewControllerComponentContainer {
855858
source: BotPaymentInvoiceSource,
856859
extendedMedia: [TelegramExtendedMedia] = [],
857860
inputData: Signal<(StarsContext.State, BotPaymentForm, EnginePeer?, EnginePeer?)?, NoError>,
858-
navigateToPeer: @escaping (EnginePeer) -> Void = { _ in },
861+
navigateToPeer: ((EnginePeer) -> Void)? = nil,
859862
completion: @escaping (Bool) -> Void
860863
) {
861864
self.context = context

submodules/TelegramUI/Sources/SharedAccountContext.swift

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3783,7 +3783,24 @@ public final class SharedAccountContextImpl: SharedAccountContext {
37833783
}
37843784

37853785
public func makeStarsTransferScreen(context: AccountContext, starsContext: StarsContext, invoice: TelegramMediaInvoice, source: BotPaymentInvoiceSource, extendedMedia: [TelegramExtendedMedia], inputData: Signal<(StarsContext.State, BotPaymentForm, EnginePeer?, EnginePeer?)?, NoError>, completion: @escaping (Bool) -> Void) -> ViewController {
3786-
return StarsTransferScreen(context: context, starsContext: starsContext, invoice: invoice, source: source, extendedMedia: extendedMedia, inputData: inputData, completion: completion)
3786+
return StarsTransferScreen(context: context, starsContext: starsContext, invoice: invoice, source: source, extendedMedia: extendedMedia, inputData: inputData, navigateToPeer: { [weak self] peer in
3787+
guard let self else {
3788+
return
3789+
}
3790+
if let infoController = self.makePeerInfoController(
3791+
context: context,
3792+
updatedPresentationData: nil,
3793+
peer: peer._asPeer(),
3794+
mode: .generic,
3795+
avatarInitiallyExpanded: peer.smallProfileImage != nil,
3796+
fromChat: false,
3797+
requestsContext: nil
3798+
) {
3799+
if let navigationController = self.mainWindow?.viewController as? NavigationController {
3800+
navigationController.pushViewController(infoController)
3801+
}
3802+
}
3803+
}, completion: completion)
37873804
}
37883805

37893806
public func makeStarsSubscriptionTransferScreen(context: AccountContext, starsContext: StarsContext, invoice: TelegramMediaInvoice, link: String, inputData: Signal<(StarsContext.State, BotPaymentForm, EnginePeer?, EnginePeer?)?, NoError>, navigateToPeer: @escaping (EnginePeer) -> Void) -> ViewController {

0 commit comments

Comments
 (0)