@primer-io/react-native 2.28.0-beta.1 → 2.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/android/.settings/org.eclipse.buildship.core.prefs +2 -2
  2. package/android/build.gradle +1 -1
  3. package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +4 -4
  4. package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt +5 -5
  5. package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +8 -2
  6. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/cardRedirect/PrimerRNCardRedirectData.kt +1 -1
  7. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/phoneNumber/PrimerRNPhoneNumberData.kt +1 -1
  8. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/retailOutlets/PrimerRNRetailOutletData.kt +1 -1
  9. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/retailOutlets/RNRetailOutletsList.kt +1 -1
  10. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/{asset/PrimerRNAsset.kt → resource/Resources.kt} +41 -9
  11. package/android/src/main/java/com/primerioreactnative/components/manager/NativeViewContainer.kt +35 -0
  12. package/android/src/main/java/com/primerioreactnative/components/manager/ach/PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent.kt +4 -4
  13. package/android/src/main/java/com/primerioreactnative/components/manager/asset/PrimerRNHeadlessUniversalCheckoutAssetManager.kt +83 -1
  14. package/android/src/main/java/com/primerioreactnative/components/manager/banks/PrimerRNHeadlessUniversalCheckoutBanksComponent.kt +1 -1
  15. package/android/src/main/java/com/primerioreactnative/components/manager/googlePay/PrimerGooglePayButtonConstantsModule.kt +39 -0
  16. package/android/src/main/java/com/primerioreactnative/components/manager/googlePay/PrimerGooglePayButtonManager.kt +38 -0
  17. package/android/src/main/java/com/primerioreactnative/components/manager/klarna/PrimerKlarnaPaymentViewManager.kt +15 -78
  18. package/android/src/main/java/com/primerioreactnative/components/manager/klarna/PrimerRNHeadlessUniversalCheckoutKlarnaComponent.kt +4 -4
  19. package/android/src/main/java/com/primerioreactnative/components/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManager.kt +1 -1
  20. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerClientSessionRN.kt +1 -1
  21. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +1 -1
  22. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerPaymentInstrumentTokenRN.kt +5 -10
  23. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerSettingsRN.kt +48 -37
  24. package/android/src/main/java/com/primerioreactnative/datamodels/extensions/ach/AchUserDetailsCollectableData.kt +1 -1
  25. package/android/src/main/java/com/primerioreactnative/datamodels/extensions/ach/AchUserDetailsStep.kt +1 -1
  26. package/android/src/main/java/com/primerioreactnative/extensions/PaymentInstrumentData.kt +29 -16
  27. package/android/src/main/java/com/primerioreactnative/extensions/PrimerCheckoutAdditionalInfo.kt +7 -7
  28. package/android/src/main/java/com/primerioreactnative/extensions/PrimerIssuingBank.kt +1 -1
  29. package/android/src/main/java/com/primerioreactnative/extensions/PrimerOrder.kt +4 -2
  30. package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodOptionsRN.kt +48 -35
  31. package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCategory.kt +1 -1
  32. package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCategoryRN.kt +1 -1
  33. package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCollectableData.kt +2 -2
  34. package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentStep.kt +4 -4
  35. package/ios/Sources/DataModels/PrimerSettings+Extensions.swift +33 -7
  36. package/ios/Sources/Headless Universal Checkout/Managers/Assets Manager/RNTAssetsManager.m +7 -0
  37. package/ios/Sources/Headless Universal Checkout/Managers/Assets Manager/RNTAssetsManager.swift +162 -88
  38. package/ios/Sources/version.swift +1 -1
  39. package/lib/commonjs/HeadlessUniversalCheckout/Components/NativeResourceView.js +30 -0
  40. package/lib/commonjs/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +1 -0
  41. package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js +9 -0
  42. package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +1 -0
  43. package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js +32 -0
  44. package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
  45. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +6 -0
  46. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
  47. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js +6 -0
  48. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -1
  49. package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js +24 -1
  50. package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
  51. package/lib/commonjs/index.js +20 -0
  52. package/lib/commonjs/index.js.map +1 -1
  53. package/lib/commonjs/models/PrimerPaymentMethodResource.js +2 -0
  54. package/lib/{module/models/PrimerAsset.js.map → commonjs/models/PrimerPaymentMethodResource.js.map} +1 -1
  55. package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js +22 -0
  56. package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +1 -0
  57. package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js +3 -0
  58. package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +1 -0
  59. package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js +32 -0
  60. package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
  61. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +6 -0
  62. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
  63. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js +6 -0
  64. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -1
  65. package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js +24 -1
  66. package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
  67. package/lib/module/index.js +6 -0
  68. package/lib/module/index.js.map +1 -1
  69. package/lib/module/models/PrimerPaymentMethodResource.js +2 -0
  70. package/lib/{commonjs/models/PrimerAsset.js.map → module/models/PrimerPaymentMethodResource.js.map} +1 -1
  71. package/lib/typescript/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts +11 -0
  72. package/lib/typescript/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts.map +1 -0
  73. package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts +6 -0
  74. package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts.map +1 -0
  75. package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts +10 -1
  76. package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts.map +1 -1
  77. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.d.ts +16 -1
  78. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.d.ts.map +1 -1
  79. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.d.ts +14 -1
  80. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.d.ts.map +1 -1
  81. package/lib/typescript/HeadlessUniversalCheckout/Managers/VaultManager.d.ts.map +1 -1
  82. package/lib/typescript/index.d.ts +8 -1
  83. package/lib/typescript/index.d.ts.map +1 -1
  84. package/lib/typescript/models/PrimerPaymentMethodResource.d.ts +19 -0
  85. package/lib/typescript/models/PrimerPaymentMethodResource.d.ts.map +1 -0
  86. package/lib/typescript/models/PrimerPaymentMethodTokenData.d.ts +10 -49
  87. package/lib/typescript/models/PrimerPaymentMethodTokenData.d.ts.map +1 -1
  88. package/lib/typescript/models/PrimerSettings.d.ts +15 -4
  89. package/lib/typescript/models/PrimerSettings.d.ts.map +1 -1
  90. package/package.json +1 -1
  91. package/primer-io-react-native.podspec +1 -1
  92. package/src/HeadlessUniversalCheckout/Components/NativeResourceView.tsx +31 -0
  93. package/src/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.tsx +8 -0
  94. package/src/HeadlessUniversalCheckout/Managers/AssetsManager.ts +34 -1
  95. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.ts +24 -1
  96. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.ts +22 -1
  97. package/src/HeadlessUniversalCheckout/Managers/VaultManager.ts +22 -1
  98. package/src/index.tsx +9 -3
  99. package/src/models/PrimerPaymentMethodResource.ts +21 -0
  100. package/src/models/PrimerPaymentMethodTokenData.ts +10 -53
  101. package/src/models/PrimerSettings.ts +17 -5
  102. package/lib/commonjs/models/PrimerAsset.js +0 -2
  103. package/lib/module/models/PrimerAsset.js +0 -2
  104. package/lib/typescript/models/PrimerAsset.d.ts +0 -15
  105. package/lib/typescript/models/PrimerAsset.d.ts.map +0 -1
  106. package/src/models/PrimerAsset.ts +0 -14
@@ -36,28 +36,23 @@ data class PrimerPaymentInstrumentTokenRN(
36
36
  val cardholderName: String? = null,
37
37
  val first6Digits: Int? = null,
38
38
  val last4Digits: Int? = null,
39
+ val accountNumberLast4Digits: Int? = null,
39
40
  val expirationMonth: Int? = null,
40
41
  val expirationYear: Int? = null,
41
- val gocardlessMandateId: String? = null,
42
42
  val externalPayerInfo: ExternalPayerInfo? = null,
43
43
  val klarnaCustomerToken: String? = null,
44
44
  val sessionData: SessionData? = null,
45
- // apaya
46
- val mx: String? = null,
47
- val mnc: Int? = null,
48
- val mcc: Int? = null,
49
- val hashedIdentifier: String? = null,
50
- val currencyCode: String? = null,
51
- val productId: String? = null,
52
- // async
53
45
  val paymentMethodType: String? = null,
54
- // bin
55
46
  val binData: BinData? = null,
47
+ val bankName: String? = null
56
48
  )
57
49
 
58
50
  @Serializable
59
51
  data class ExternalPayerInfo(
60
52
  val email: String,
53
+ val externalPayerId: String?,
54
+ val firstName: String?,
55
+ val lastName: String?
61
56
  )
62
57
 
63
58
  @Serializable
@@ -1,6 +1,7 @@
1
1
  package com.primerioreactnative.datamodels
2
2
 
3
3
  import android.content.Context
4
+ import com.google.android.gms.wallet.button.ButtonConstants
4
5
  import com.primerioreactnative.extensions.toLocale
5
6
  import com.primerioreactnative.extensions.toPrimerDebugOptions
6
7
  import com.primerioreactnative.extensions.toPrimerPaymentMethodOptions
@@ -25,20 +26,20 @@ data class PrimerSettingsRN(
25
26
 
26
27
  @Serializable
27
28
  data class LocaleSettingsRN(
28
- val languageCode: String? = null,
29
- val localeCode: String? = null
29
+ val languageCode: String? = null,
30
+ val localeCode: String? = null
30
31
  )
31
32
 
32
33
  @Serializable
33
34
  data class PrimerPaymentMethodOptionsRN(
34
- @SerialName("android")
35
- val androidSettingsRN: AndroidSettingsRN = AndroidSettingsRN(),
36
- var cardPaymentOptions: PrimerCardPaymentOptionsRN = PrimerCardPaymentOptionsRN(),
37
- var googlePayOptions: PrimerGooglePayOptionsRN = PrimerGooglePayOptionsRN(),
38
- var klarnaOptions: PrimerKlarnaOptionsRN = PrimerKlarnaOptionsRN(),
39
- var apayaOptions: PrimerApayaOptionsRN = PrimerApayaOptionsRN(),
40
- var threeDsOptions: PrimerThreeDsOptionsRN = PrimerThreeDsOptionsRN(),
41
- var stripeOptions: PrimerStripeOptionsRN = PrimerStripeOptionsRN(),
35
+ @SerialName("android")
36
+ val androidSettingsRN: AndroidSettingsRN = AndroidSettingsRN(),
37
+ var cardPaymentOptions: PrimerCardPaymentOptionsRN = PrimerCardPaymentOptionsRN(),
38
+ var googlePayOptions: PrimerGooglePayOptionsRN = PrimerGooglePayOptionsRN(),
39
+ var klarnaOptions: PrimerKlarnaOptionsRN = PrimerKlarnaOptionsRN(),
40
+ var apayaOptions: PrimerApayaOptionsRN = PrimerApayaOptionsRN(),
41
+ var threeDsOptions: PrimerThreeDsOptionsRN = PrimerThreeDsOptionsRN(),
42
+ var stripeOptions: PrimerStripeOptionsRN = PrimerStripeOptionsRN(),
42
43
  )
43
44
 
44
45
  @Serializable
@@ -120,8 +121,8 @@ data class PrimerCardPaymentOptionsRN(var is3DSOnVaultingEnabled: Boolean = true
120
121
 
121
122
  @Serializable
122
123
  data class PrimerThreeDsOptionsRN(
123
- @SerialName("android")
124
- val threeDsOptionsAndroid: PrimerThreeDsAndroidOptionsRN? = null
124
+ @SerialName("android")
125
+ val threeDsOptionsAndroid: PrimerThreeDsAndroidOptionsRN? = null
125
126
  )
126
127
 
127
128
  @Serializable
@@ -129,19 +130,21 @@ data class PrimerThreeDsAndroidOptionsRN(val threeDsAppRequestorUrl: String? = n
129
130
 
130
131
  @Serializable
131
132
  data class PrimerGooglePayOptionsRN(
132
- var merchantName: String? = null,
133
- var allowedCardNetworks: List<String> =
134
- listOf("AMEX", "DISCOVER", "JCB", "MASTERCARD", "VISA"),
135
- var buttonStyle: GooglePayButtonStyle = GooglePayButtonStyle.BLACK,
136
- @SerialName("isCaptureBillingAddressEnabled")
137
- var captureBillingAddress: Boolean = false,
138
- @SerialName("isExistingPaymentMethodRequired")
139
- var existingPaymentMethodRequired: Boolean = false,
140
- var shippingAddressParameters: PrimerGoogleShippingAddressParametersRN? = null,
141
- @SerialName("requireShippingMethod")
142
- var requireShippingMethod: Boolean = false,
143
- @SerialName("emailAddressRequired")
144
- var emailAddressRequired: Boolean = false
133
+ var merchantName: String? = null,
134
+ var allowedCardNetworks: List<String> =
135
+ listOf("AMEX", "DISCOVER", "JCB", "MASTERCARD", "VISA"),
136
+ var buttonStyle: GooglePayButtonStyle = GooglePayButtonStyle.BLACK,
137
+ @SerialName("isCaptureBillingAddressEnabled")
138
+ var captureBillingAddress: Boolean = false,
139
+ @SerialName("isExistingPaymentMethodRequired")
140
+ var existingPaymentMethodRequired: Boolean = false,
141
+ var shippingAddressParameters: PrimerGoogleShippingAddressParametersRN? = null,
142
+ @SerialName("requireShippingMethod")
143
+ var requireShippingMethod: Boolean = false,
144
+ @SerialName("emailAddressRequired")
145
+ var emailAddressRequired: Boolean = false,
146
+ @SerialName("buttonOptions")
147
+ var buttonOptions: PrimerGooglePayButtonOptionsRN? = null
145
148
  )
146
149
 
147
150
  @Serializable
@@ -149,30 +152,38 @@ data class PrimerGoogleShippingAddressParametersRN(
149
152
  var phoneNumberRequired: Boolean = false
150
153
  )
151
154
 
155
+ @Serializable
156
+ data class PrimerGooglePayButtonOptionsRN(
157
+ @SerialName("buttonTheme")
158
+ var buttonTheme: Int? = null,
159
+ @SerialName("buttonType")
160
+ var buttonType: Int? = null
161
+ )
162
+
152
163
  @Serializable
153
164
  data class PrimerKlarnaOptionsRN(
154
- var recurringPaymentDescription: String? = null,
155
- @Deprecated("This property is deprecated and will be removed in future release.")
156
- var webViewTitle: String? = null,
165
+ var recurringPaymentDescription: String? = null,
166
+ @Deprecated("This property is deprecated and will be removed in future release.")
167
+ var webViewTitle: String? = null,
157
168
  )
158
169
 
159
170
  @Serializable
160
171
  data class PrimerStripeOptionsRN(
161
- val mandateData: MandateDataRN? = null,
162
- val publishableKey: String? = null,
172
+ val mandateData: MandateDataRN? = null,
173
+ val publishableKey: String? = null,
163
174
  ) {
164
- @Serializable
165
- data class MandateDataRN(
166
- @SerialName("fullMandateText") val fullMandateText: String? = null,
167
- @SerialName("fullMandateStringResourceName") val fullMandateStringResName: String? = null,
168
- val merchantName: String? = null
169
- )
175
+ @Serializable
176
+ data class MandateDataRN(
177
+ @SerialName("fullMandateText") val fullMandateText: String? = null,
178
+ @SerialName("fullMandateStringResourceName") val fullMandateStringResName: String? = null,
179
+ val merchantName: String? = null
180
+ )
170
181
  }
171
182
 
172
183
  @Serializable
173
184
  @Deprecated("This class is deprecated and will be removed in future release.")
174
185
  data class PrimerApayaOptionsRN(
175
- var webViewTitle: String? = null,
186
+ var webViewTitle: String? = null,
176
187
  )
177
188
 
178
189
  fun PrimerSettingsRN.toPrimerSettings(context: Context) = PrimerSettings(
@@ -2,7 +2,7 @@ package com.primerioreactnative.datamodels.extensions.ach
2
2
 
3
3
  import com.primerioreactnative.datamodels.NamedComponentValidatableData
4
4
  import com.primerioreactnative.datamodels.ach.AchUserDetailsStepRN
5
- import io.primer.android.components.presentation.paymentMethods.nativeUi.stripe.ach.composable.AchUserDetailsCollectableData
5
+ import io.primer.android.stripe.ach.api.composable.AchUserDetailsCollectableData
6
6
  import kotlinx.serialization.Serializable
7
7
  import com.primerioreactnative.datamodels.ach.AchUserDetailsCollectableDataRN
8
8
 
@@ -1,7 +1,7 @@
1
1
  package com.primerioreactnative.datamodels.extensions.ach
2
2
 
3
3
  import com.primerioreactnative.datamodels.ach.AchUserDetailsStepRN
4
- import io.primer.android.components.presentation.paymentMethods.nativeUi.stripe.ach.composable.AchUserDetailsStep
4
+ import io.primer.android.stripe.ach.api.composable.AchUserDetailsStep
5
5
 
6
6
  internal fun AchUserDetailsStep.UserDetailsCollected.toUserDetailsCollectedRN() =
7
7
  AchUserDetailsStepRN.UserDetailsCollectedRN()
@@ -4,21 +4,34 @@ import com.primerioreactnative.datamodels.PrimerPaymentInstrumentTokenRN
4
4
  import io.primer.android.data.tokenization.models.PaymentInstrumentData
5
5
 
6
6
  internal fun PaymentInstrumentData.toPaymentInstrumentDataRN() =
7
- PrimerPaymentInstrumentTokenRN.PaymentInstrumentData(
8
- network,
9
- cardholderName,
10
- first6Digits,
11
- last4Digits,
12
- expirationMonth,
13
- expirationYear,
14
- gocardlessMandateId,
15
- externalPayerInfo?.email?.let { PrimerPaymentInstrumentTokenRN.ExternalPayerInfo(it) },
16
- klarnaCustomerToken,
17
- sessionData?.let {
7
+ PrimerPaymentInstrumentTokenRN.PaymentInstrumentData(
8
+ network = network,
9
+ cardholderName = cardholderName,
10
+ first6Digits = first6Digits,
11
+ last4Digits = last4Digits,
12
+ accountNumberLast4Digits = accountNumberLast4Digits,
13
+ expirationMonth = expirationMonth,
14
+ expirationYear = expirationYear,
15
+ externalPayerInfo = externalPayerInfo?.let {
16
+ PrimerPaymentInstrumentTokenRN.ExternalPayerInfo(
17
+ email = it.email,
18
+ externalPayerId = it.externalPayerId,
19
+ firstName = it.firstName,
20
+ lastName = it.lastName
21
+ )
22
+ },
23
+ klarnaCustomerToken = klarnaCustomerToken,
24
+ sessionData = sessionData?.let {
18
25
  PrimerPaymentInstrumentTokenRN.SessionData(
19
- it.recurringDescription,
20
- it.billingAddress?.let { PrimerPaymentInstrumentTokenRN.BillingAddress(it.email) })
26
+ recurringDescription = it.recurringDescription,
27
+ billingAddress = it.billingAddress?.let {
28
+ PrimerPaymentInstrumentTokenRN.BillingAddress(email = it.email)
29
+ }
30
+ )
31
+ },
32
+ paymentMethodType = paymentMethodType,
33
+ binData = binData?.let {
34
+ PrimerPaymentInstrumentTokenRN.BinData(network = it.network)
21
35
  },
22
- mx, mnc, mcc, hashedIdentifier, currencyCode, productId, paymentMethodType,
23
- binData?.let { PrimerPaymentInstrumentTokenRN.BinData(it.network) }
24
- )
36
+ bankName = bankName
37
+ )
@@ -4,17 +4,17 @@ import com.primerioreactnative.datamodels.MultibancoCheckoutAdditionalInfoRN
4
4
  import com.primerioreactnative.datamodels.PromptPayCheckoutAdditionalInfoRN
5
5
  import com.primerioreactnative.datamodels.XenditCheckoutVoucherAdditionalInfoRN
6
6
  import com.primerioreactnative.datamodels.AchAdditionalInfoDisplayMandateRN
7
- import io.primer.android.domain.payments.additionalInfo.MultibancoCheckoutAdditionalInfo
8
- import io.primer.android.domain.payments.additionalInfo.PrimerCheckoutAdditionalInfo
9
- import io.primer.android.domain.payments.additionalInfo.PromptPayCheckoutAdditionalInfo
10
- import io.primer.android.domain.payments.additionalInfo.XenditCheckoutVoucherAdditionalInfo
11
- import io.primer.android.domain.payments.additionalInfo.AchAdditionalInfo
7
+ import io.primer.android.vouchers.multibanco.MultibancoCheckoutAdditionalInfo
8
+ import io.primer.android.payments.core.additionalInfo.PrimerCheckoutAdditionalInfo
9
+ import io.primer.android.qrcode.QrCodeCheckoutAdditionalInfo
10
+ import io.primer.android.vouchers.retailOutlets.XenditCheckoutVoucherAdditionalInfo
11
+ import io.primer.android.stripe.ach.api.additionalInfo.AchAdditionalInfo
12
12
 
13
13
  internal fun PrimerCheckoutAdditionalInfo.toCheckoutAdditionalInfoRN() = when (this) {
14
14
  is MultibancoCheckoutAdditionalInfo ->
15
15
  MultibancoCheckoutAdditionalInfoRN(expiresAt, reference, entity)
16
- is PromptPayCheckoutAdditionalInfo ->
17
- PromptPayCheckoutAdditionalInfoRN(expiresAt, qrCodeUrl, qrCodeBase64)
16
+ is QrCodeCheckoutAdditionalInfo ->
17
+ PromptPayCheckoutAdditionalInfoRN(expiresAt.orEmpty(), qrCodeUrl, qrCodeBase64)
18
18
  is XenditCheckoutVoucherAdditionalInfo ->
19
19
  XenditCheckoutVoucherAdditionalInfoRN(expiresAt, couponCode, retailerName)
20
20
  is AchAdditionalInfo.DisplayMandate ->
@@ -1,7 +1,7 @@
1
1
  package com.primerioreactnative.extensions
2
2
 
3
3
  import com.primerioreactnative.datamodels.PrimerIssuingBankRN
4
- import io.primer.android.domain.rpc.banks.models.IssuingBank
4
+ import io.primer.android.banks.implementation.rpc.domain.models.IssuingBank
5
5
 
6
6
  internal fun IssuingBank.toPrimerIssuingBankRN() =
7
7
  PrimerIssuingBankRN(id, name, disabled, iconUrl)
@@ -5,6 +5,8 @@ import com.primerioreactnative.datamodels.PrimerShippingRN
5
5
  import io.primer.android.domain.action.models.PrimerOrder
6
6
  import io.primer.android.domain.action.models.PrimerShipping
7
7
 
8
- internal fun PrimerOrder.toPrimerOrderRN() = PrimerOrderRN(countryCode, shipping?.toPrimerShippingRN())
8
+ internal fun PrimerOrder.toPrimerOrderRN() =
9
+ PrimerOrderRN(countryCode = countryCode, shipping = shipping?.toPrimerShippingRN())
9
10
 
10
- internal fun PrimerShipping.toPrimerShippingRN() = PrimerShippingRN(amount, methodId, methodName, methodDescription)
11
+ internal fun PrimerShipping.toPrimerShippingRN() =
12
+ PrimerShippingRN(amount, methodId, methodName, methodDescription)
@@ -6,54 +6,67 @@ import io.primer.android.data.settings.PrimerStripeOptions.MandateData.TemplateM
6
6
  import io.primer.android.data.settings.PrimerStripeOptions.MandateData.FullMandateData
7
7
  import io.primer.android.data.settings.PrimerStripeOptions.MandateData.FullMandateStringData
8
8
  import android.content.Context
9
+ import com.google.android.gms.wallet.button.ButtonConstants
10
+ import com.primerioreactnative.components.manager.googlePay.PrimerGooglePayButtonOptionsMapping
9
11
 
10
12
  fun PrimerPaymentMethodOptionsRN.toPrimerPaymentMethodOptions(context: Context) =
11
- PrimerPaymentMethodOptions(
12
- androidSettingsRN.redirectScheme,
13
- googlePayOptions.toPrimerGooglePayOptions(),
14
- klarnaOptions.toPrimerKlarnaOptions(),
15
- threeDsOptions.toPrimerThreeDsOptions(),
16
- stripeOptions.toPrimerStripeOptions(context),
17
- )
13
+ PrimerPaymentMethodOptions(
14
+ androidSettingsRN.redirectScheme,
15
+ googlePayOptions.toPrimerGooglePayOptions(),
16
+ klarnaOptions.toPrimerKlarnaOptions(),
17
+ threeDsOptions.toPrimerThreeDsOptions(),
18
+ stripeOptions.toPrimerStripeOptions(context),
19
+ )
18
20
 
19
21
  fun PrimerGooglePayOptionsRN.toPrimerGooglePayOptions() =
20
- PrimerGooglePayOptions(
21
- merchantName = merchantName,
22
- allowedCardNetworks = allowedCardNetworks,
23
- buttonStyle = buttonStyle,
24
- captureBillingAddress = captureBillingAddress,
25
- existingPaymentMethodRequired = existingPaymentMethodRequired,
26
- shippingAddressParameters = shippingAddressParameters?.toPrimerGoogleShippingAddressParameters(),
27
- requireShippingMethod = requireShippingMethod,
28
- emailAddressRequired = emailAddressRequired
29
- )
22
+ PrimerGooglePayOptions(
23
+ merchantName = merchantName,
24
+ allowedCardNetworks = allowedCardNetworks,
25
+ buttonStyle = buttonStyle,
26
+ captureBillingAddress = captureBillingAddress,
27
+ existingPaymentMethodRequired = existingPaymentMethodRequired,
28
+ shippingAddressParameters = shippingAddressParameters?.toPrimerGoogleShippingAddressParameters(),
29
+ requireShippingMethod = requireShippingMethod,
30
+ emailAddressRequired = emailAddressRequired,
31
+ buttonOptions = buttonOptions?.toPrimerGooglePayButtonOptions() ?: GooglePayButtonOptions()
32
+ )
30
33
 
31
34
  fun PrimerGoogleShippingAddressParametersRN.toPrimerGoogleShippingAddressParameters() =
32
- PrimerGoogleShippingAddressParameters(phoneNumberRequired)
35
+ PrimerGoogleShippingAddressParameters(phoneNumberRequired)
36
+
37
+ fun PrimerGooglePayButtonOptionsRN.toPrimerGooglePayButtonOptions() = GooglePayButtonOptions(
38
+ buttonType = buttonType ?: ButtonConstants.ButtonType.PAY,
39
+ buttonTheme = buttonTheme ?: ButtonConstants.ButtonTheme.DARK,
40
+ )
33
41
 
34
42
  fun PrimerKlarnaOptionsRN.toPrimerKlarnaOptions() =
35
- PrimerKlarnaOptions(recurringPaymentDescription, webViewTitle)
43
+ PrimerKlarnaOptions(recurringPaymentDescription, webViewTitle)
36
44
 
37
45
  fun PrimerThreeDsOptionsRN.toPrimerThreeDsOptions() =
38
- PrimerThreeDsOptions(threeDsOptionsAndroid?.threeDsAppRequestorUrl)
46
+ PrimerThreeDsOptions(threeDsOptionsAndroid?.threeDsAppRequestorUrl)
39
47
 
40
48
  fun PrimerStripeOptionsRN.toPrimerStripeOptions(context: Context) =
41
- PrimerStripeOptions(mandateData = mandateData?.toMandateData(context), publishableKey = publishableKey)
49
+ PrimerStripeOptions(
50
+ mandateData = mandateData?.toMandateData(context),
51
+ publishableKey = publishableKey
52
+ )
42
53
 
43
54
  private fun PrimerStripeOptionsRN.MandateDataRN.toMandateData(context: Context) = when {
44
- merchantName != null -> TemplateMandateData(merchantName)
45
- fullMandateStringResName != null -> {
46
- val stringId = context.getResources().getIdentifier(fullMandateStringResName, "string", context.getPackageName())
47
- if (stringId != 0) {
48
- FullMandateData(stringId)
49
- } else {
50
- if (fullMandateText != null) {
51
- FullMandateStringData(fullMandateText)
52
- } else {
53
- error("Missing mandate data")
54
- }
55
- }
55
+ merchantName != null -> TemplateMandateData(merchantName)
56
+ fullMandateStringResName != null -> {
57
+ val stringId = context.getResources()
58
+ .getIdentifier(fullMandateStringResName, "string", context.getPackageName())
59
+ if (stringId != 0) {
60
+ FullMandateData(stringId)
61
+ } else {
62
+ if (fullMandateText != null) {
63
+ FullMandateStringData(fullMandateText)
64
+ } else {
65
+ error("Missing mandate data")
66
+ }
56
67
  }
57
- fullMandateText != null -> FullMandateStringData(fullMandateText)
58
- else -> error("Missing mandate data")
68
+ }
69
+
70
+ fullMandateText != null -> FullMandateStringData(fullMandateText)
71
+ else -> error("Missing mandate data")
59
72
  }
@@ -1,7 +1,7 @@
1
1
  package com.primerioreactnative.extensions.klarna
2
2
 
3
3
  import com.primerioreactnative.datamodels.klarna.KlarnaPaymentCategoryRN
4
- import io.primer.android.components.domain.payments.paymentMethods.nativeUi.klarna.models.KlarnaPaymentCategory
4
+ import io.primer.android.klarna.implementation.session.domain.models.KlarnaPaymentCategory
5
5
 
6
6
  internal fun KlarnaPaymentCategory.toKlarnaPaymentCategoryRN() =
7
7
  KlarnaPaymentCategoryRN(
@@ -1,7 +1,7 @@
1
1
  package com.primerioreactnative.extensions.klarna
2
2
 
3
3
  import com.primerioreactnative.datamodels.klarna.KlarnaPaymentCategoryRN
4
- import io.primer.android.components.domain.payments.paymentMethods.nativeUi.klarna.models.KlarnaPaymentCategory
4
+ import io.primer.android.klarna.implementation.session.domain.models.KlarnaPaymentCategory
5
5
 
6
6
  internal fun KlarnaPaymentCategoryRN.toKlarnaPaymentCategory() =
7
7
  KlarnaPaymentCategory(
@@ -2,8 +2,8 @@ package com.primerioreactnative.extensions.klarna
2
2
 
3
3
  import com.primerioreactnative.datamodels.klarna.KlarnaPaymentCollectableDataRN.PaymentOptionsRN
4
4
  import com.primerioreactnative.datamodels.klarna.KlarnaPaymentCollectableDataRN.FinalizePaymentRN
5
- import io.primer.android.components.presentation.paymentMethods.nativeUi.klarna.models.KlarnaPaymentCollectableData.PaymentOptions
6
- import io.primer.android.components.presentation.paymentMethods.nativeUi.klarna.models.KlarnaPaymentCollectableData.FinalizePayment
5
+ import io.primer.android.klarna.api.composable.KlarnaPaymentCollectableData.PaymentOptions
6
+ import io.primer.android.klarna.api.composable.KlarnaPaymentCollectableData.FinalizePayment
7
7
 
8
8
  internal fun PaymentOptions.toPaymentOptionsRN() =
9
9
  PaymentOptionsRN(
@@ -5,10 +5,10 @@ import com.primerioreactnative.datamodels.klarna.KlarnaPaymentStepRN.PaymentView
5
5
  import com.primerioreactnative.datamodels.klarna.KlarnaPaymentStepRN.PaymentSessionAuthorizedRN
6
6
  import com.primerioreactnative.datamodels.klarna.KlarnaPaymentStepRN.PaymentSessionFinalizedRN
7
7
  import com.primerioreactnative.extensions.klarna.toKlarnaPaymentCategoryRN
8
- import io.primer.android.components.presentation.paymentMethods.nativeUi.klarna.models.KlarnaPaymentStep.PaymentSessionCreated
9
- import io.primer.android.components.presentation.paymentMethods.nativeUi.klarna.models.KlarnaPaymentStep.PaymentViewLoaded
10
- import io.primer.android.components.presentation.paymentMethods.nativeUi.klarna.models.KlarnaPaymentStep.PaymentSessionAuthorized
11
- import io.primer.android.components.presentation.paymentMethods.nativeUi.klarna.models.KlarnaPaymentStep.PaymentSessionFinalized
8
+ import io.primer.android.klarna.api.composable.KlarnaPaymentStep.PaymentSessionCreated
9
+ import io.primer.android.klarna.api.composable.KlarnaPaymentStep.PaymentViewLoaded
10
+ import io.primer.android.klarna.api.composable.KlarnaPaymentStep.PaymentSessionAuthorized
11
+ import io.primer.android.klarna.api.composable.KlarnaPaymentStep.PaymentSessionFinalized
12
12
 
13
13
  internal fun PaymentSessionCreated.toPaymentSessionCreatedRN() =
14
14
  PaymentSessionCreatedRN(paymentCategories = paymentCategories.map { it.toKlarnaPaymentCategoryRN() })
@@ -43,12 +43,11 @@ extension PrimerSettings {
43
43
 
44
44
  var shippingOptions: PrimerApplePayOptions.ShippingOptions? = nil
45
45
  if let rnShippingOptions = rnApplePayOptions["shippingOptions"] as? [String: Any] {
46
- let isCaptureShippingAddressEnabled = rnShippingOptions["isCaptureShippingAddressEnabled"] as? Bool ?? false
47
46
  let requireShippingMethod = rnShippingOptions["requireShippingMethod"] as? Bool ?? false
48
47
 
49
- var additionalShippingContactFields: [PrimerApplePayOptions.ShippingOptions.AdditionalShippingContactField]? = nil
50
- if let additionalFieldsStrings = rnShippingOptions["additionalShippingContactFields"] as? [String] {
51
- additionalShippingContactFields = additionalFieldsStrings.compactMap { fieldStr in
48
+ var shippingContactFields: [PrimerApplePayOptions.RequiredContactField]? = nil
49
+ if let requiredFieldsStrings = rnShippingOptions["shippingContactFields"] as? [String] {
50
+ shippingContactFields = requiredFieldsStrings.compactMap { fieldStr in
52
51
  switch fieldStr {
53
52
  case "name":
54
53
  return .name
@@ -56,6 +55,8 @@ extension PrimerSettings {
56
55
  return .emailAddress
57
56
  case "phoneNumber":
58
57
  return .phoneNumber
58
+ case "postalAddress":
59
+ return .postalAddress
59
60
  default:
60
61
  return nil // Ignore unknown values or handle accordingly
61
62
  }
@@ -63,19 +64,44 @@ extension PrimerSettings {
63
64
  }
64
65
 
65
66
  shippingOptions = PrimerApplePayOptions.ShippingOptions(
66
- isCaptureShippingAddressEnabled: isCaptureShippingAddressEnabled,
67
- additionalShippingContactFields: additionalShippingContactFields,
67
+ shippingContactFields: shippingContactFields,
68
68
  requireShippingMethod: requireShippingMethod
69
69
  )
70
70
  }
71
71
 
72
+ var billingOptions: PrimerApplePayOptions.BillingOptions? = nil
73
+ if let rnBillingOptions = rnApplePayOptions["billingOptions"] as? [String: Any] {
74
+ var requiredBillingContactFields: [PrimerApplePayOptions.RequiredContactField]? = nil
75
+ if let requiredFieldsStrings = rnBillingOptions["requiredBillingContactFields"] as? [String] {
76
+ requiredBillingContactFields = requiredFieldsStrings.compactMap { fieldStr in
77
+ switch fieldStr {
78
+ case "name":
79
+ return .name
80
+ case "emailAddress":
81
+ return .emailAddress
82
+ case "phoneNumber":
83
+ return .phoneNumber
84
+ case "postalAddress":
85
+ return .postalAddress
86
+ default:
87
+ return nil // Ignore unknown values or handle accordingly
88
+ }
89
+ }
90
+ }
91
+
92
+ billingOptions = PrimerApplePayOptions.BillingOptions(
93
+ requiredBillingContactFields: requiredBillingContactFields
94
+ )
95
+ }
96
+
72
97
  applePayOptions = PrimerApplePayOptions(
73
98
  merchantIdentifier: rnApplePayMerchantIdentifier,
74
99
  merchantName: rnApplePayMerchantName,
75
100
  isCaptureBillingAddressEnabled: rnApplePayIsCaptureBillingAddressEnabled,
76
101
  showApplePayForUnsupportedDevice: rnApplePayShowApplePayForUnsupportedDevice,
77
102
  checkProvidedNetworks: rnApplePayCheckProvidedNetworks,
78
- shippingOptions: shippingOptions
103
+ shippingOptions: shippingOptions,
104
+ billingOptions: billingOptions
79
105
  )
80
106
  }
81
107
 
@@ -18,7 +18,14 @@ RCT_EXTERN_METHOD(getPaymentMethodAsset:(NSString *)paymentMethodType
18
18
  resolver:(RCTPromiseResolveBlock)resolver
19
19
  rejecter:(RCTPromiseRejectBlock)rejecter)
20
20
 
21
+ RCT_EXTERN_METHOD(getPaymentMethodResource:(NSString *)paymentMethodType
22
+ resolver:(RCTPromiseResolveBlock)resolver
23
+ rejecter:(RCTPromiseRejectBlock)rejecter)
24
+
21
25
  RCT_EXTERN_METHOD(getPaymentMethodAssets:(RCTPromiseResolveBlock)resolver
22
26
  rejecter:(RCTPromiseRejectBlock)rejecter)
23
27
 
28
+ RCT_EXTERN_METHOD(getPaymentMethodResources:(RCTPromiseResolveBlock)resolver
29
+ rejecter:(RCTPromiseRejectBlock)rejecter)
30
+
24
31
  @end