diff --git a/ios/RNWallet.mm b/ios/RNWallet.mm index bf424e5f..9775afe1 100644 --- a/ios/RNWallet.mm +++ b/ios/RNWallet.mm @@ -7,7 +7,6 @@ #import #endif - @interface RNWallet () @end @@ -34,17 +33,33 @@ - (instancetype)init { } RCT_REMAP_METHOD(IOSPresentAddPaymentPassView, +#ifdef RCT_NEW_ARCH_ENABLED IOSPresentAddPaymentPassView:(JS::NativeWallet::IOSCardData &)cardData +#else + IOSPresentAddPaymentPassView:(NSDictionary *)cardData +#endif resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { @try { - NSDictionary *cardDataDict = @{ + NSDictionary *cardDataDict = nil; + +#ifdef RCT_NEW_ARCH_ENABLED + cardDataDict = @{ @"network": [self safeString:cardData.network()], @"cardHolderName": [self safeString:cardData.cardHolderName()], @"lastDigits": [self safeString:cardData.lastDigits()], @"cardDescription": [self safeString:cardData.cardDescription()], }; +#else + cardDataDict = @{ + @"network": [self safeString:cardData[@"network"]], + @"cardHolderName": [self safeString:cardData[@"cardHolderName"]], + @"lastDigits": [self safeString:cardData[@"lastDigits"]], + @"cardDescription": [self safeString:cardData[@"cardDescription"]], + }; +#endif + dispatch_async(dispatch_get_main_queue(), ^{ [self->walletManager IOSPresentAddPaymentPassViewWithCardData:cardDataDict completion:^(OperationResult result, NSDictionary* data) { [self handleWalletResponse:result data:data completedBlock:resolve errorPrefix:@"present_payment_pass_view_failed" defaultErrorMessage:@"Failed to present the payment pass view" rejecter:reject]; @@ -56,16 +71,31 @@ - (instancetype)init { } RCT_REMAP_METHOD(IOSHandleAddPaymentPassResponse, +#ifdef RCT_NEW_ARCH_ENABLED IOSHandleAddPaymentPassResponse:(JS::NativeWallet::IOSEncryptPayload &)payload +#else + IOSHandleAddPaymentPassResponse:(NSDictionary *)payload +#endif resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { @try { - NSDictionary *payloadDict = @{ + NSDictionary *payloadDict = nil; + +#ifdef RCT_NEW_ARCH_ENABLED + payloadDict = @{ @"encryptedPassData": [self safeString:payload.encryptedPassData()], @"activationData": [self safeString:payload.activationData()], @"ephemeralPublicKey": [self safeString:payload.ephemeralPublicKey()], }; +#else + payloadDict = @{ + @"encryptedPassData": [self safeString:payload[@"encryptedPassData"]], + @"activationData": [self safeString:payload[@"activationData"]], + @"ephemeralPublicKey": [self safeString:payload[@"ephemeralPublicKey"]], + }; +#endif + dispatch_async(dispatch_get_main_queue(), ^{ [self->walletManager IOSHandleAddPaymentPassResponseWithPayload:payloadDict completion:^(OperationResult result, NSDictionary* data) { [self handleWalletResponse:result data:data completedBlock:resolve errorPrefix:@"add_card_failed" defaultErrorMessage:@"Failed to add the card to the wallet" rejecter:reject]; @@ -93,7 +123,15 @@ - (instancetype)init { resolve([walletManager getCardStatusByIdentifierWithIdentifier:identifier]); } -- (void)addCardToGoogleWallet:(JS::NativeWallet::AndroidCardData &)cardData resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { +- (void)addCardToGoogleWallet: +#ifdef RCT_NEW_ARCH_ENABLED + (JS::NativeWallet::AndroidCardData &)cardData +#else + (NSDictionary *)cardData +#endif + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject +{ // no-op } @@ -149,5 +187,4 @@ - (NSString *)safeString:(NSString *)value { } #endif - @end