From 8805124507df773344c6cd9089ea751533ced0e7 Mon Sep 17 00:00:00 2001 From: Joshua Rogers Date: Tue, 3 Feb 2026 20:15:42 +0800 Subject: [PATCH] Prevent hanging promise when enrollment VC is already presented Also fix incorrect return (cherry picked from commit 2b348bf288258243ec962857a420243b89446b45) --- ios/WalletManager.swift | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ios/WalletManager.swift b/ios/WalletManager.swift index c0afa08..974f1b5 100644 --- a/ios/WalletManager.swift +++ b/ios/WalletManager.swift @@ -126,6 +126,10 @@ open class WalletManager: UIViewController { RCTPresentedViewController()?.present(enrollViewController, animated: true, completion: nil) } else { self.logInfo(message: "EnrollViewController is already presented.") + self.presentAddPaymentPassCompletionHandler = nil + completion(.error, [ + "errorMessage": "EnrollViewController is already presented." + ]) } } } @@ -165,7 +169,7 @@ open class WalletManager: UIViewController { let paymentPasses = passLibrary.passes(of: .payment) if paymentPasses.isEmpty { self.logInfo(message: "No passes found in Wallet.") - return -1 + return NSNumber(value: -1) } for pass in paymentPasses { @@ -174,7 +178,7 @@ open class WalletManager: UIViewController { return NSNumber(value: securePassElement.passActivationState.rawValue) } } - return -1 + return NSNumber(value: -1) } @objc public func getCardStatusBySuffix(last4Digits: NSString) -> NSNumber {