@primer-io/react-native 2.30.0 → 2.30.1

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 (308) hide show
  1. package/android/.editorconfig +2 -0
  2. package/android/build.gradle +29 -1
  3. package/android/detekt-baseline.xml +24 -0
  4. package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +248 -195
  5. package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +261 -253
  6. package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckout.kt +177 -143
  7. package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt +298 -291
  8. package/android/src/main/java/com/primerioreactnative/PrimerRNViewModelStoreOwner.kt +2 -3
  9. package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +33 -36
  10. package/android/src/main/java/com/primerioreactnative/components/assets/AssetsManager.kt +29 -30
  11. package/android/src/main/java/com/primerioreactnative/components/assets/CardNetworkImageFileProvider.kt +15 -15
  12. package/android/src/main/java/com/primerioreactnative/components/assets/PaymentMethodAssetFileProvider.kt +16 -16
  13. package/android/src/main/java/com/primerioreactnative/components/datamodels/core/PrimerRNHeadlessUniversalCheckoutPaymentMethod.kt +9 -9
  14. package/android/src/main/java/com/primerioreactnative/components/datamodels/core/PrimerRawPaymentMethodType.kt +5 -5
  15. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/asset/Resources.kt +143 -0
  16. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/card/PrimerRNCardData.kt +11 -11
  17. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/cardRedirect/PrimerRNBancontactCardData.kt +19 -0
  18. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/phoneNumber/PrimerRNPhoneNumberData.kt +5 -5
  19. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/retailOutlets/PrimerRNRetailOutletData.kt +2 -3
  20. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/retailOutlets/RNRetailOutletsList.kt +15 -14
  21. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/vault/PrimerRNValidationError.kt +10 -10
  22. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/vault/PrimerRNVaultedPaymentMethod.kt +15 -16
  23. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/vault/PrimerRNVaultedPaymentMethodAdditionalData.kt +4 -2
  24. package/android/src/main/java/com/primerioreactnative/components/events/PrimerHeadlessUniversalCheckoutComponentEvent.kt +6 -6
  25. package/android/src/main/java/com/primerioreactnative/components/events/PrimerHeadlessUniversalCheckoutEvent.kt +13 -13
  26. package/android/src/main/java/com/primerioreactnative/components/events/PrimerHeadlessUniversalCheckoutRawDataManagerEvent.kt +2 -2
  27. package/android/src/main/java/com/primerioreactnative/components/manager/NativeViewContainer.kt +9 -8
  28. package/android/src/main/java/com/primerioreactnative/components/manager/ach/{AchMandateManager.kt → PrimerRNAchMandateManager.kt} +20 -17
  29. package/android/src/main/java/com/primerioreactnative/components/manager/ach/PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent.kt +227 -212
  30. package/android/src/main/java/com/primerioreactnative/components/manager/asset/PrimerRNHeadlessUniversalCheckoutAssetManager.kt +178 -163
  31. package/android/src/main/java/com/primerioreactnative/components/manager/banks/PrimerRNHeadlessUniversalCheckoutBanksComponent.kt +207 -194
  32. package/android/src/main/java/com/primerioreactnative/components/manager/googlePay/PrimerGooglePayButtonConstantsModule.kt +23 -26
  33. package/android/src/main/java/com/primerioreactnative/components/manager/googlePay/PrimerGooglePayButtonManager.kt +25 -23
  34. package/android/src/main/java/com/primerioreactnative/components/manager/klarna/PrimerKlarnaPaymentViewManager.kt +24 -23
  35. package/android/src/main/java/com/primerioreactnative/components/manager/klarna/PrimerRNHeadlessUniversalCheckoutKlarnaComponent.kt +111 -87
  36. package/android/src/main/java/com/primerioreactnative/components/manager/nativeUi/PrimerRNHeadlessUniversalCheckoutNativeUiManager.kt +68 -63
  37. package/android/src/main/java/com/primerioreactnative/components/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManager.kt +189 -164
  38. package/android/src/main/java/com/primerioreactnative/components/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManagerListener.kt +39 -37
  39. package/android/src/main/java/com/primerioreactnative/components/manager/vault/PrimerRNHeadlessUniversalCheckoutVaultManager.kt +128 -118
  40. package/android/src/main/java/com/primerioreactnative/datamodels/{NamedComponentStepRN.kt → NamedComponentStep.kt} +0 -2
  41. package/android/src/main/java/com/primerioreactnative/datamodels/{NamedComponentValidatableDataRN.kt → NamedComponentValidatableData.kt} +1 -3
  42. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerCheckoutAdditionalInfoRN.kt +14 -14
  43. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerCheckoutDataRN.kt +4 -4
  44. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerClientSessionRN.kt +34 -35
  45. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +14 -14
  46. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerEvents.kt +10 -11
  47. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerInputValidationErrorRN.kt +4 -4
  48. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerIssuingBankRN.kt +1 -1
  49. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerPaymentInstrumentTokenRN.kt +66 -67
  50. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerSettingsRN.kt +128 -119
  51. package/android/src/main/java/com/primerioreactnative/datamodels/ach/AchUserDetailsStepRN.kt +2 -3
  52. package/android/src/main/java/com/primerioreactnative/datamodels/banks/BanksStepRN.kt +3 -3
  53. package/android/src/main/java/com/primerioreactnative/datamodels/extensions/ach/AchUserDetailsCollectableData.kt +11 -6
  54. package/android/src/main/java/com/primerioreactnative/datamodels/extensions/ach/AchUserDetailsStep.kt +1 -1
  55. package/android/src/main/java/com/primerioreactnative/datamodels/extensions/banks/BanksCollectableData.kt +2 -2
  56. package/android/src/main/java/com/primerioreactnative/datamodels/extensions/banks/BanksStep.kt +8 -4
  57. package/android/src/main/java/com/primerioreactnative/datamodels/klarna/KlarnaPaymentCategoryRN.kt +2 -2
  58. package/android/src/main/java/com/primerioreactnative/datamodels/klarna/KlarnaPaymentCollectableDataRN.kt +2 -3
  59. package/android/src/main/java/com/primerioreactnative/datamodels/klarna/KlarnaPaymentStepRN.kt +6 -6
  60. package/android/src/main/java/com/primerioreactnative/extensions/JSONExtensions.kt +26 -26
  61. package/android/src/main/java/com/primerioreactnative/extensions/LocaleSettingsRN.kt +5 -5
  62. package/android/src/main/java/com/primerioreactnative/extensions/PaymentInstrumentData.kt +37 -31
  63. package/android/src/main/java/com/primerioreactnative/extensions/PrimerAddress.kt +11 -10
  64. package/android/src/main/java/com/primerioreactnative/extensions/PrimerCheckoutAdditionalInfo.kt +19 -14
  65. package/android/src/main/java/com/primerioreactnative/extensions/PrimerCheckoutData.kt +1 -1
  66. package/android/src/main/java/com/primerioreactnative/extensions/PrimerClientSession.kt +9 -9
  67. package/android/src/main/java/com/primerioreactnative/extensions/PrimerCustomer.kt +9 -8
  68. package/android/src/main/java/com/primerioreactnative/extensions/PrimerDebugOptionsRN.kt +1 -2
  69. package/android/src/main/java/com/primerioreactnative/extensions/PrimerError.kt +3 -3
  70. package/android/src/main/java/com/primerioreactnative/extensions/PrimerIssuingBank.kt +1 -2
  71. package/android/src/main/java/com/primerioreactnative/extensions/PrimerLineItem.kt +10 -3
  72. package/android/src/main/java/com/primerioreactnative/extensions/PrimerOrder.kt +5 -3
  73. package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodData.kt +4 -1
  74. package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodOptionsRN.kt +69 -54
  75. package/android/src/main/java/com/primerioreactnative/extensions/PrimerUIOptionsRN.kt +16 -16
  76. package/android/src/main/java/com/primerioreactnative/extensions/ThreeDsAuthenticationData.kt +7 -7
  77. package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCategory.kt +1 -1
  78. package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCategoryRN.kt +1 -1
  79. package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCollectableData.kt +4 -4
  80. package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentStep.kt +8 -7
  81. package/android/src/main/java/com/primerioreactnative/utils/ErrorHelper.kt +6 -5
  82. package/android/src/main/java/com/primerioreactnative/utils/JsonConverter.kt +33 -34
  83. package/android/src/main/java/com/primerioreactnative/utils/PrimerHeadlessUniversalCheckoutImplementedRNCallbacks.kt +26 -26
  84. package/android/src/main/java/com/primerioreactnative/utils/PrimerImplementedRNCallbacks.kt +20 -20
  85. package/android/src/test/java/com/primerioreactnative/utils/ErrorHelperTest.kt +12 -13
  86. package/android/tooling/code-analysis/detekt.yml +68 -0
  87. package/ios/Sources/DataModels/Ach Component/RNTAchUserDetailsCollectableData.swift +2 -2
  88. package/ios/Sources/DataModels/Banks Component/RNTBanksCollectableData.swift +0 -1
  89. package/ios/Sources/DataModels/ImplementedRNCallbacks.swift +83 -63
  90. package/ios/Sources/DataModels/Klarna Component/PrimerHeadlessUniversalCheckoutComponentEvent.swift +3 -1
  91. package/ios/Sources/DataModels/Klarna Component/RNTKlarnaCollectableData.swift +2 -2
  92. package/ios/Sources/DataModels/Klarna Component/RNTKlarnaPaymentCategory.swift +1 -1
  93. package/ios/Sources/DataModels/Klarna Component/RNTKlarnaStep.swift +5 -5
  94. package/ios/Sources/DataModels/Klarna Component/RNTPrimerError.swift +1 -1
  95. package/ios/Sources/DataModels/PrimerBancontactCardRedirectData+Extension.swift +1 -2
  96. package/ios/Sources/DataModels/PrimerCardData+Extension.swift +6 -7
  97. package/ios/Sources/DataModels/PrimerCheckoutAdditionalInfoRN.swift +6 -7
  98. package/ios/Sources/DataModels/PrimerHeadlessUniversalCheckout_PaymentMethod.swift +10 -7
  99. package/ios/Sources/DataModels/PrimerPhoneNumberData+Extension.swift +1 -2
  100. package/ios/Sources/DataModels/PrimerRawRetailerData+Extension.swift +1 -2
  101. package/ios/Sources/DataModels/PrimerSettings+Extensions.swift +91 -50
  102. package/ios/Sources/DataModels/PrimerThemeRN.swift +6 -6
  103. package/ios/Sources/DataModels/RNTNativeError.swift +3 -4
  104. package/ios/Sources/DataModels/RNTPrimerPaymentMethodAsset.swift +54 -48
  105. package/ios/Sources/Headless Universal Checkout/Managers/Ach/PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent.swift +225 -202
  106. package/ios/Sources/Headless Universal Checkout/Managers/Ach/RNTAchMandateManager.swift +6 -6
  107. package/ios/Sources/Headless Universal Checkout/Managers/Assets Manager/RNTAssetsManager.swift +163 -161
  108. package/ios/Sources/Headless Universal Checkout/Managers/Klarna/PrimerRNHeadlessUniversalCheckoutKlarnaComponent.swift +268 -250
  109. package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNPrimerHeadlessUniversalCheckoutVaultManager.swift +88 -66
  110. package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTNativeUIManager.swift +51 -43
  111. package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTRawDataManager.swift +181 -158
  112. package/ios/Sources/Headless Universal Checkout/Managers/RNTRedirectManager.swift +165 -156
  113. package/ios/Sources/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +526 -459
  114. package/ios/Sources/Helpers/Encodable+Extension.swift +5 -1
  115. package/ios/Sources/Helpers/Error+Extensions.swift +5 -5
  116. package/ios/Sources/Helpers/UIColor+Extensions.swift +23 -20
  117. package/ios/Sources/RNTPrimer.swift +135 -48
  118. package/lib/commonjs/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +1 -1
  119. package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +1 -1
  120. package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js.map +1 -1
  121. package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js +4 -4
  122. package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
  123. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js +1 -1
  124. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js.map +1 -1
  125. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js +2 -2
  126. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js.map +1 -1
  127. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +1 -1
  128. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
  129. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -1
  130. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -1
  131. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +6 -6
  132. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -1
  133. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.js.map +1 -1
  134. package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
  135. package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +4 -4
  136. package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -1
  137. package/lib/commonjs/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js +1 -1
  138. package/lib/commonjs/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
  139. package/lib/commonjs/HeadlessUniversalCheckout/types.js +5 -5
  140. package/lib/commonjs/Primer.js +2 -2
  141. package/lib/commonjs/Primer.js.map +1 -1
  142. package/lib/commonjs/RNPrimer.js +5 -5
  143. package/lib/commonjs/RNPrimer.js.map +1 -1
  144. package/lib/commonjs/index.js.map +1 -1
  145. package/lib/commonjs/models/PrimerError.js.map +1 -1
  146. package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js +3 -3
  147. package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +1 -1
  148. package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js +1 -1
  149. package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +1 -1
  150. package/lib/module/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js +1 -1
  151. package/lib/module/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js.map +1 -1
  152. package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js +4 -4
  153. package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
  154. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js +1 -1
  155. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js.map +1 -1
  156. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js +2 -2
  157. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js.map +1 -1
  158. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +1 -1
  159. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
  160. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -1
  161. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -1
  162. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +6 -6
  163. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -1
  164. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.js.map +1 -1
  165. package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
  166. package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +4 -4
  167. package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -1
  168. package/lib/module/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js +1 -1
  169. package/lib/module/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
  170. package/lib/module/HeadlessUniversalCheckout/types.js +5 -5
  171. package/lib/module/Primer.js +2 -2
  172. package/lib/module/Primer.js.map +1 -1
  173. package/lib/module/RNPrimer.js +5 -5
  174. package/lib/module/RNPrimer.js.map +1 -1
  175. package/lib/module/index.js.map +1 -1
  176. package/lib/module/models/PrimerError.js.map +1 -1
  177. package/lib/typescript/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts +2 -2
  178. package/lib/typescript/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts.map +1 -1
  179. package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts +1 -1
  180. package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts.map +1 -1
  181. package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.d.ts.map +1 -1
  182. package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts +4 -4
  183. package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts.map +1 -1
  184. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.d.ts.map +1 -1
  185. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.d.ts.map +1 -1
  186. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.d.ts.map +1 -1
  187. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.d.ts.map +1 -1
  188. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.d.ts.map +1 -1
  189. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts.map +1 -1
  190. package/lib/typescript/HeadlessUniversalCheckout/Managers/VaultManager.d.ts.map +1 -1
  191. package/lib/typescript/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.d.ts.map +1 -1
  192. package/lib/typescript/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.d.ts.map +1 -1
  193. package/lib/typescript/Primer.d.ts.map +1 -1
  194. package/lib/typescript/RNPrimer.d.ts.map +1 -1
  195. package/lib/typescript/index.d.ts +4 -4
  196. package/lib/typescript/index.d.ts.map +1 -1
  197. package/lib/typescript/models/IssuingBank.d.ts.map +1 -1
  198. package/lib/typescript/models/NamedComponentStep.d.ts.map +1 -1
  199. package/lib/typescript/models/NamedComponentValidatableData.d.ts.map +1 -1
  200. package/lib/typescript/models/PrimerCheckoutAdditionalInfo.d.ts +4 -4
  201. package/lib/typescript/models/PrimerCheckoutAdditionalInfo.d.ts.map +1 -1
  202. package/lib/typescript/models/PrimerCheckoutData.d.ts +1 -1
  203. package/lib/typescript/models/PrimerCheckoutData.d.ts.map +1 -1
  204. package/lib/typescript/models/PrimerCheckoutPaymentMethodData.d.ts.map +1 -1
  205. package/lib/typescript/models/PrimerClientSession.d.ts.map +1 -1
  206. package/lib/typescript/models/PrimerComponentDataValidation.d.ts +5 -5
  207. package/lib/typescript/models/PrimerComponentDataValidation.d.ts.map +1 -1
  208. package/lib/typescript/models/PrimerCountryCode.d.ts +1 -1
  209. package/lib/typescript/models/PrimerCountryCode.d.ts.map +1 -1
  210. package/lib/typescript/models/PrimerCurrencyCode.d.ts +1 -1
  211. package/lib/typescript/models/PrimerCurrencyCode.d.ts.map +1 -1
  212. package/lib/typescript/models/PrimerError.d.ts.map +1 -1
  213. package/lib/typescript/models/PrimerHandlers.d.ts.map +1 -1
  214. package/lib/typescript/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts +2 -2
  215. package/lib/typescript/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts.map +1 -1
  216. package/lib/typescript/models/PrimerImplementedRNCallbacks.d.ts.map +1 -1
  217. package/lib/typescript/models/PrimerInitializationData.d.ts +1 -1
  218. package/lib/typescript/models/PrimerInitializationData.d.ts.map +1 -1
  219. package/lib/typescript/models/PrimerInputElementType.d.ts.map +1 -1
  220. package/lib/typescript/models/PrimerInterfaces.d.ts +1 -1
  221. package/lib/typescript/models/PrimerPaymentMethodManagerCategory.d.ts.map +1 -1
  222. package/lib/typescript/models/PrimerPaymentMethodResource.d.ts.map +1 -1
  223. package/lib/typescript/models/PrimerRawData.d.ts.map +1 -1
  224. package/lib/typescript/models/PrimerSettings.d.ts +10 -10
  225. package/lib/typescript/models/PrimerSettings.d.ts.map +1 -1
  226. package/lib/typescript/models/PrimerValidationError.d.ts.map +1 -1
  227. package/lib/typescript/models/PrimerValidationErrorResult.d.ts +1 -1
  228. package/lib/typescript/models/PrimerValidationErrorResult.d.ts.map +1 -1
  229. package/lib/typescript/models/PrimerVaultedPaymentMethod.d.ts +1 -1
  230. package/lib/typescript/models/PrimerVaultedPaymentMethod.d.ts.map +1 -1
  231. package/lib/typescript/models/PrimerVaultedPaymentMethodAdditionalData.d.ts.map +1 -1
  232. package/lib/typescript/models/PrimerVaultedPaymentMethodResult.d.ts +1 -1
  233. package/lib/typescript/models/PrimerVaultedPaymentMethodResult.d.ts.map +1 -1
  234. package/lib/typescript/models/RetailOutletsRetail.d.ts.map +1 -1
  235. package/lib/typescript/models/ach/AchCollectableData.d.ts +4 -4
  236. package/lib/typescript/models/ach/AchCollectableData.d.ts.map +1 -1
  237. package/lib/typescript/models/ach/AchSteps.d.ts +3 -3
  238. package/lib/typescript/models/ach/AchSteps.d.ts.map +1 -1
  239. package/lib/typescript/models/banks/BanksCollectableData.d.ts +3 -3
  240. package/lib/typescript/models/banks/BanksCollectableData.d.ts.map +1 -1
  241. package/lib/typescript/models/banks/BanksSteps.d.ts +6 -6
  242. package/lib/typescript/models/banks/BanksSteps.d.ts.map +1 -1
  243. package/lib/typescript/models/klarna/KlarnaPaymentCategory.d.ts +2 -2
  244. package/lib/typescript/models/klarna/KlarnaPaymentCategory.d.ts.map +1 -1
  245. package/lib/typescript/models/klarna/KlarnaPaymentCollectableData.d.ts +4 -4
  246. package/lib/typescript/models/klarna/KlarnaPaymentCollectableData.d.ts.map +1 -1
  247. package/lib/typescript/models/klarna/KlarnaPaymentSteps.d.ts +6 -6
  248. package/lib/typescript/models/klarna/KlarnaPaymentSteps.d.ts.map +1 -1
  249. package/lib/typescript/utils/index.d.ts +1 -1
  250. package/package.json +5 -4
  251. package/primer-io-react-native.podspec +1 -1
  252. package/src/HeadlessUniversalCheckout/Components/NativeResourceView.tsx +17 -21
  253. package/src/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.tsx +3 -6
  254. package/src/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.tsx +2 -4
  255. package/src/HeadlessUniversalCheckout/Managers/AssetsManager.ts +68 -69
  256. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.ts +127 -131
  257. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.ts +23 -25
  258. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.ts +21 -30
  259. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.ts +137 -141
  260. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.ts +17 -18
  261. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.ts +158 -142
  262. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.ts +7 -7
  263. package/src/HeadlessUniversalCheckout/Managers/VaultManager.ts +96 -87
  264. package/src/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.ts +159 -170
  265. package/src/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.ts +2 -6
  266. package/src/HeadlessUniversalCheckout/types.ts +5 -5
  267. package/src/Primer.ts +60 -57
  268. package/src/RNPrimer.ts +53 -54
  269. package/src/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.tsx +1 -1
  270. package/src/index.tsx +73 -36
  271. package/src/models/IssuingBank.ts +5 -5
  272. package/src/models/NamedComponentStep.ts +5 -5
  273. package/src/models/NamedComponentValidatableData.ts +5 -5
  274. package/src/models/PrimerCheckoutAdditionalInfo.ts +18 -23
  275. package/src/models/PrimerCheckoutData.ts +8 -8
  276. package/src/models/PrimerCheckoutPaymentMethodData.ts +6 -6
  277. package/src/models/PrimerClientSession.ts +34 -34
  278. package/src/models/PrimerComponentDataValidation.ts +33 -33
  279. package/src/models/PrimerCountryCode.ts +1 -1
  280. package/src/models/PrimerCurrencyCode.ts +1 -1
  281. package/src/models/PrimerError.ts +7 -1
  282. package/src/models/PrimerHandlers.ts +24 -24
  283. package/src/models/PrimerHeadlessUniversalCheckoutPaymentMethod.ts +4 -4
  284. package/src/models/PrimerImplementedRNCallbacks.ts +15 -15
  285. package/src/models/PrimerInitializationData.ts +3 -3
  286. package/src/models/PrimerInputElementType.ts +9 -9
  287. package/src/models/PrimerInterfaces.ts +1 -1
  288. package/src/models/PrimerPaymentMethodManagerCategory.ts +4 -4
  289. package/src/models/PrimerPaymentMethodResource.ts +11 -11
  290. package/src/models/PrimerRawData.ts +9 -9
  291. package/src/models/PrimerSessionIntent.ts +1 -1
  292. package/src/models/PrimerSettings.ts +37 -21
  293. package/src/models/PrimerValidationError.ts +3 -3
  294. package/src/models/PrimerValidationErrorResult.ts +2 -2
  295. package/src/models/PrimerVaultedPaymentMethod.ts +7 -7
  296. package/src/models/PrimerVaultedPaymentMethodAdditionalData.ts +1 -1
  297. package/src/models/PrimerVaultedPaymentMethodResult.ts +3 -3
  298. package/src/models/RetailOutletsRetail.ts +5 -5
  299. package/src/models/ach/AchCollectableData.ts +12 -12
  300. package/src/models/ach/AchSteps.ts +18 -18
  301. package/src/models/banks/BanksCollectableData.ts +14 -14
  302. package/src/models/banks/BanksSteps.ts +13 -13
  303. package/src/models/klarna/KlarnaPaymentCategory.ts +16 -16
  304. package/src/models/klarna/KlarnaPaymentCollectableData.ts +16 -15
  305. package/src/models/klarna/KlarnaPaymentSteps.ts +21 -17
  306. package/src/utils/index.ts +1 -1
  307. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/cardRedirect/PrimerRNCardRedirectData.kt +0 -19
  308. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/resource/Resources.kt +0 -138
@@ -13,7 +13,6 @@ import com.primerioreactnative.PrimerRNViewModelStoreOwner
13
13
  import com.primerioreactnative.components.events.PrimerHeadlessUniversalCheckoutComponentEvent
14
14
  import com.primerioreactnative.datamodels.ErrorTypeRN
15
15
  import com.primerioreactnative.datamodels.PrimerErrorRN
16
- import com.primerioreactnative.datamodels.PrimerValidationErrorRN
17
16
  import com.primerioreactnative.datamodels.klarna.KlarnaPaymentCategoryRN
18
17
  import com.primerioreactnative.extensions.klarna.toFinalizePaymentRN
19
18
  import com.primerioreactnative.extensions.klarna.toKlarnaPaymentCategory
@@ -22,11 +21,11 @@ import com.primerioreactnative.extensions.klarna.toPaymentSessionAuthorizedRN
22
21
  import com.primerioreactnative.extensions.klarna.toPaymentSessionCreatedRN
23
22
  import com.primerioreactnative.extensions.klarna.toPaymentSessionFinalizedRN
24
23
  import com.primerioreactnative.extensions.klarna.toPaymentViewLoadedRN
24
+ import com.primerioreactnative.extensions.putErrors
25
+ import com.primerioreactnative.extensions.putValidationErrors
25
26
  import com.primerioreactnative.utils.errorTo
26
27
  import com.primerioreactnative.utils.toWritableArray
27
28
  import com.primerioreactnative.utils.toWritableMap
28
- import com.primerioreactnative.extensions.putErrors
29
- import com.primerioreactnative.extensions.putValidationErrors
30
29
  import io.primer.android.PrimerSessionIntent
31
30
  import io.primer.android.components.manager.core.composable.PrimerValidationStatus
32
31
  import io.primer.android.klarna.PrimerHeadlessUniversalCheckoutKlarnaManager
@@ -45,10 +44,10 @@ import kotlinx.serialization.json.Json
45
44
  import org.json.JSONArray
46
45
  import org.json.JSONObject
47
46
 
47
+ @Suppress("TooManyFunctions")
48
48
  class PrimerRNHeadlessUniversalCheckoutKlarnaComponent(
49
- private val reactContext: ReactApplicationContext
49
+ private val reactContext: ReactApplicationContext,
50
50
  ) : ReactContextBaseJavaModule(reactContext) {
51
-
52
51
  override fun getName(): String = "RNTPrimerHeadlessUniversalCheckoutKlarnaComponent"
53
52
 
54
53
  private var job: Job? = null
@@ -56,47 +55,52 @@ class PrimerRNHeadlessUniversalCheckoutKlarnaComponent(
56
55
  private var klarnaComponent: KlarnaComponent? = null
57
56
 
58
57
  @ReactMethod
59
- fun configure(intent: String, promise: Promise) {
58
+ fun configure(
59
+ intent: String,
60
+ promise: Promise,
61
+ ) {
60
62
  val primerSessionIntent = PrimerSessionIntent.values().firstOrNull { intent.equals(it.name, true) }
61
63
  if (primerSessionIntent == null) {
62
- val exception = PrimerErrorRN(
63
- errorId = ErrorTypeRN.NativeBridgeFailed.errorId,
64
- description = "Invalid value for 'intent'.",
65
- diagnosticsId = null,
66
- recoverySuggestion = "'intent' can be 'CHECKOUT' or 'VAULT'."
67
- )
64
+ val exception =
65
+ PrimerErrorRN(
66
+ errorId = ErrorTypeRN.NativeBridgeFailed.errorId,
67
+ description = "Invalid value for 'intent'.",
68
+ diagnosticsId = null,
69
+ recoverySuggestion = "'intent' can be 'CHECKOUT' or 'VAULT'.",
70
+ )
68
71
  promise.reject(exception.errorId, exception.description)
69
72
  return
70
73
  }
71
74
 
72
75
  val currentViewModelStoreOwner =
73
- reactContext.currentActivity as? ViewModelStoreOwner
74
- ?: run { PrimerRNViewModelStoreOwner() }
76
+ reactContext.currentActivity as? ViewModelStoreOwner
77
+ ?: run { PrimerRNViewModelStoreOwner() }
75
78
 
76
79
  viewModelStoreOwner = currentViewModelStoreOwner
77
- klarnaComponent = PrimerHeadlessUniversalCheckoutKlarnaManager(currentViewModelStoreOwner)
78
- .provideKlarnaComponent(primerSessionIntent)
80
+ klarnaComponent =
81
+ PrimerHeadlessUniversalCheckoutKlarnaManager(currentViewModelStoreOwner)
82
+ .provideKlarnaComponent(primerSessionIntent)
79
83
 
80
84
  val lifecycleScope =
81
- (reactContext.currentActivity as? LifecycleOwner)?.lifecycleScope
82
- ?: CoroutineScope(SupervisorJob() + Dispatchers.Main)
85
+ (reactContext.currentActivity as? LifecycleOwner)?.lifecycleScope
86
+ ?: CoroutineScope(SupervisorJob() + Dispatchers.Main)
83
87
 
84
88
  job =
85
- lifecycleScope.launch {
86
- if (klarnaComponent == null) {
87
- val exception = ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
88
- promise.reject(exception.errorId, exception.description)
89
- } else {
90
- coroutineScope {
91
- launch { configureStepListener() }
92
-
93
- launch { configureValidationListener() }
94
-
95
- launch { configureErrorListener() }
96
- promise.resolve(null)
97
- }
89
+ lifecycleScope.launch {
90
+ if (klarnaComponent == null) {
91
+ val exception = ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
92
+ promise.reject(exception.errorId, exception.description)
93
+ } else {
94
+ coroutineScope {
95
+ launch { configureStepListener() }
96
+
97
+ launch { configureValidationListener() }
98
+
99
+ launch { configureErrorListener() }
100
+ promise.resolve(null)
98
101
  }
99
102
  }
103
+ }
100
104
  }
101
105
 
102
106
  @ReactMethod
@@ -124,8 +128,8 @@ class PrimerRNHeadlessUniversalCheckoutKlarnaComponent(
124
128
  private suspend fun configureErrorListener() {
125
129
  klarnaComponent?.componentError?.collectLatest { error ->
126
130
  sendEvent(
127
- PrimerHeadlessUniversalCheckoutComponentEvent.ON_ERROR.eventName,
128
- JSONObject().apply { putErrors(error) }
131
+ PrimerHeadlessUniversalCheckoutComponentEvent.ON_ERROR.eventName,
132
+ JSONObject().apply { putErrors(error) },
129
133
  )
130
134
  }
131
135
  }
@@ -135,10 +139,11 @@ class PrimerRNHeadlessUniversalCheckoutKlarnaComponent(
135
139
  when (klarnaStep) {
136
140
  is KlarnaPaymentStep.PaymentSessionCreated -> {
137
141
  sendEvent(
138
- name = PrimerHeadlessUniversalCheckoutComponentEvent.ON_STEP.eventName,
139
- data = JSONObject(
140
- json.encodeToString(klarnaStep.toPaymentSessionCreatedRN())
141
- )
142
+ name = PrimerHeadlessUniversalCheckoutComponentEvent.ON_STEP.eventName,
143
+ data =
144
+ JSONObject(
145
+ json.encodeToString(klarnaStep.toPaymentSessionCreatedRN()),
146
+ ),
142
147
  )
143
148
  }
144
149
 
@@ -146,21 +151,25 @@ class PrimerRNHeadlessUniversalCheckoutKlarnaComponent(
146
151
  PrimerKlarnaPaymentViewManager.updatePrimerKlarnaPaymentView(klarnaStep.paymentView)
147
152
 
148
153
  sendEvent(
149
- name = PrimerHeadlessUniversalCheckoutComponentEvent.ON_STEP.eventName,
150
- data = JSONObject(json.encodeToString(klarnaStep.toPaymentViewLoadedRN()))
154
+ name = PrimerHeadlessUniversalCheckoutComponentEvent.ON_STEP.eventName,
155
+ data = JSONObject(json.encodeToString(klarnaStep.toPaymentViewLoadedRN())),
151
156
  )
152
157
  }
158
+
153
159
  is KlarnaPaymentStep.PaymentSessionAuthorized -> {
154
160
  sendEvent(
155
- name = PrimerHeadlessUniversalCheckoutComponentEvent.ON_STEP.eventName,
156
- data = JSONObject(json.encodeToString(klarnaStep.toPaymentSessionAuthorizedRN()))
161
+ name = PrimerHeadlessUniversalCheckoutComponentEvent.ON_STEP.eventName,
162
+ data = JSONObject(json.encodeToString(klarnaStep.toPaymentSessionAuthorizedRN())),
157
163
  )
158
164
  }
165
+
159
166
  is KlarnaPaymentStep.PaymentSessionFinalized -> {
160
167
  sendEvent(
161
- name = PrimerHeadlessUniversalCheckoutComponentEvent.ON_STEP.eventName,
162
- data = JSONObject(json.encodeToString(klarnaStep.toPaymentSessionFinalizedRN())
163
- )
168
+ name = PrimerHeadlessUniversalCheckoutComponentEvent.ON_STEP.eventName,
169
+ data =
170
+ JSONObject(
171
+ json.encodeToString(klarnaStep.toPaymentSessionFinalizedRN()),
172
+ ),
164
173
  )
165
174
  }
166
175
  }
@@ -172,36 +181,39 @@ class PrimerRNHeadlessUniversalCheckoutKlarnaComponent(
172
181
  when (validationStatus) {
173
182
  is PrimerValidationStatus.Validating -> {
174
183
  sendEvent(
175
- PrimerHeadlessUniversalCheckoutComponentEvent.ON_VALIDATING.eventName,
176
- JSONObject().apply {
177
- putData(validationStatus.collectableData as KlarnaPaymentCollectableData)
178
- }
184
+ PrimerHeadlessUniversalCheckoutComponentEvent.ON_VALIDATING.eventName,
185
+ JSONObject().apply {
186
+ putData(validationStatus.collectableData as KlarnaPaymentCollectableData)
187
+ },
179
188
  )
180
189
  }
190
+
181
191
  is PrimerValidationStatus.Invalid -> {
182
192
  sendEvent(
183
- PrimerHeadlessUniversalCheckoutComponentEvent.ON_IN_VALID.eventName,
184
- JSONObject().apply {
185
- putData(validationStatus.collectableData as KlarnaPaymentCollectableData)
186
- putValidationErrors(validationStatus.validationErrors)
187
- }
193
+ PrimerHeadlessUniversalCheckoutComponentEvent.ON_IN_VALID.eventName,
194
+ JSONObject().apply {
195
+ putData(validationStatus.collectableData as KlarnaPaymentCollectableData)
196
+ putValidationErrors(validationStatus.validationErrors)
197
+ },
188
198
  )
189
199
  }
200
+
190
201
  is PrimerValidationStatus.Valid -> {
191
202
  sendEvent(
192
- PrimerHeadlessUniversalCheckoutComponentEvent.ON_VALID.eventName,
193
- JSONObject().apply {
194
- putData(validationStatus.collectableData as KlarnaPaymentCollectableData)
195
- }
203
+ PrimerHeadlessUniversalCheckoutComponentEvent.ON_VALID.eventName,
204
+ JSONObject().apply {
205
+ putData(validationStatus.collectableData as KlarnaPaymentCollectableData)
206
+ },
196
207
  )
197
208
  }
209
+
198
210
  is PrimerValidationStatus.Error -> {
199
211
  sendEvent(
200
- PrimerHeadlessUniversalCheckoutComponentEvent.ON_VALIDATION_ERROR.eventName,
201
- JSONObject().apply {
202
- putData(validationStatus.collectableData as KlarnaPaymentCollectableData)
203
- putErrors(validationStatus.error)
204
- }
212
+ PrimerHeadlessUniversalCheckoutComponentEvent.ON_VALIDATION_ERROR.eventName,
213
+ JSONObject().apply {
214
+ putData(validationStatus.collectableData as KlarnaPaymentCollectableData)
215
+ putErrors(validationStatus.error)
216
+ },
205
217
  )
206
218
  }
207
219
  }
@@ -210,32 +222,38 @@ class PrimerRNHeadlessUniversalCheckoutKlarnaComponent(
210
222
 
211
223
  private fun JSONObject.putData(collectableData: KlarnaPaymentCollectableData) {
212
224
  put(
213
- "data",
214
- JSONObject(
215
- json.encodeToString(
216
- when (collectableData) {
217
- is KlarnaPaymentCollectableData.PaymentOptions ->
218
- collectableData.toPaymentOptionsRN()
219
- is KlarnaPaymentCollectableData.FinalizePayment ->
220
- collectableData.toFinalizePaymentRN()
221
- }
222
- )
223
- )
225
+ "data",
226
+ JSONObject(
227
+ json.encodeToString(
228
+ when (collectableData) {
229
+ is KlarnaPaymentCollectableData.PaymentOptions ->
230
+ collectableData.toPaymentOptionsRN()
231
+
232
+ is KlarnaPaymentCollectableData.FinalizePayment ->
233
+ collectableData.toFinalizePaymentRN()
234
+ },
235
+ ),
236
+ ),
224
237
  )
225
238
  }
226
239
 
227
- @ReactMethod fun addListener(eventName: String?) = Unit
240
+ @ReactMethod
241
+ fun addListener(eventName: String?) = Unit
228
242
 
229
- @ReactMethod fun removeListeners(count: Int?) = Unit
243
+ @ReactMethod
244
+ fun removeListeners(count: Int?) = Unit
230
245
 
231
246
  @ReactMethod
232
- fun onSetPaymentOptions(readableMap: ReadableMap, promise: Promise) {
247
+ fun onSetPaymentOptions(
248
+ readableMap: ReadableMap,
249
+ promise: Promise,
250
+ ) {
233
251
  val returnIntentUrl = readableMap.getString("returnIntentUrl")
234
252
  val paymentCategory = readableMap.getMap("paymentCategory") as ReadableMap
235
253
  val json = Json { ignoreUnknownKeys = true }
236
254
  val klarnaPaymentCategoryRN =
237
255
  json.decodeFromString<KlarnaPaymentCategoryRN>(
238
- Json.encodeToString(paymentCategory.toHashMap() as Map<String, String>)
256
+ Json.encodeToString(paymentCategory.toHashMap() as Map<String, String>),
239
257
  )
240
258
 
241
259
  val activity = currentActivity
@@ -251,8 +269,8 @@ class PrimerRNHeadlessUniversalCheckoutKlarnaComponent(
251
269
  KlarnaPaymentCollectableData.PaymentOptions(
252
270
  context = activity,
253
271
  returnIntentUrl = requireNotNull(returnIntentUrl),
254
- paymentCategory = klarnaPaymentCategoryRN.toKlarnaPaymentCategory()
255
- )
272
+ paymentCategory = klarnaPaymentCategoryRN.toKlarnaPaymentCategory(),
273
+ ),
256
274
  )
257
275
  promise.resolve(null)
258
276
  }
@@ -269,16 +287,22 @@ class PrimerRNHeadlessUniversalCheckoutKlarnaComponent(
269
287
  }
270
288
  }
271
289
 
272
- private fun sendEvent(name: String, data: JSONObject?) {
290
+ private fun sendEvent(
291
+ name: String,
292
+ data: JSONObject?,
293
+ ) {
273
294
  reactApplicationContext
274
- .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
275
- .emit(name, data.toWritableMap())
295
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
296
+ .emit(name, data.toWritableMap())
276
297
  }
277
298
 
278
- private fun sendEvent(name: String, data: JSONArray?) {
299
+ private fun sendEvent(
300
+ name: String,
301
+ data: JSONArray?,
302
+ ) {
279
303
  reactApplicationContext
280
- .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
281
- .emit(name, data.toWritableArray())
304
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
305
+ .emit(name, data.toWritableArray())
282
306
  }
283
307
 
284
308
  @ReactMethod
@@ -292,12 +316,12 @@ class PrimerRNHeadlessUniversalCheckoutKlarnaComponent(
292
316
 
293
317
  private companion object {
294
318
  const val UNINITIALIZED_ERROR =
295
- """
319
+ """
296
320
  The KlarnaComponent has not been initialized.
297
321
  Make sure you have initialized the `KlarnaComponent` first.
298
322
  """
299
323
  const val MISSING_ACTIVITY_ERROR =
300
- """
324
+ """
301
325
  Could not retrieve running activity from context.
302
326
  """
303
327
 
@@ -7,83 +7,88 @@ import com.facebook.react.bridge.ReactMethod
7
7
  import com.primerioreactnative.datamodels.ErrorTypeRN
8
8
  import com.primerioreactnative.datamodels.PrimerErrorRN
9
9
  import com.primerioreactnative.utils.errorTo
10
- import io.primer.android.core.ExperimentalPrimerApi
11
10
  import io.primer.android.PrimerSessionIntent
12
11
  import io.primer.android.components.SdkUninitializedException
13
12
  import io.primer.android.components.domain.exception.UnsupportedPaymentMethodManagerException
14
13
  import io.primer.android.components.manager.nativeUi.PrimerHeadlessUniversalCheckoutNativeUiManager
15
14
  import io.primer.android.components.manager.nativeUi.PrimerHeadlessUniversalCheckoutNativeUiManagerInterface
15
+ import io.primer.android.core.ExperimentalPrimerApi
16
16
  import io.primer.android.domain.exception.UnsupportedPaymentIntentException
17
17
 
18
18
  @ExperimentalPrimerApi
19
19
  internal class PrimerRNHeadlessUniversalCheckoutNativeUiManager(
20
- private val reactContext: ReactApplicationContext,
20
+ private val reactContext: ReactApplicationContext,
21
21
  ) : ReactContextBaseJavaModule(reactContext) {
22
+ private lateinit var nativeUiManager: PrimerHeadlessUniversalCheckoutNativeUiManagerInterface
23
+ private var paymentMethodTypeStr: String? = null
22
24
 
23
- private lateinit var nativeUiManager: PrimerHeadlessUniversalCheckoutNativeUiManagerInterface
24
- private var paymentMethodTypeStr: String? = null
25
-
26
- override fun getName() = "RNTPrimerHeadlessUniversalPaymentMethodNativeUIManager"
25
+ override fun getName() = "RNTPrimerHeadlessUniversalPaymentMethodNativeUIManager"
27
26
 
28
- @ReactMethod
29
- fun configure(paymentMethodTypeStr: String, promise: Promise) {
30
- try {
31
- nativeUiManager = PrimerHeadlessUniversalCheckoutNativeUiManager.newInstance(
32
- paymentMethodTypeStr
33
- )
34
- this.paymentMethodTypeStr = paymentMethodTypeStr
35
- promise.resolve(null)
36
- } catch (e: SdkUninitializedException) {
37
- promise.reject(ErrorTypeRN.UnitializedSdkSession.errorId, e.message, e)
38
- } catch (e: UnsupportedPaymentMethodManagerException) {
39
- promise.reject(ErrorTypeRN.UnsupportedPaymentMethod.errorId, e.message, e)
40
- } catch (e: Exception) {
41
- val exception =
42
- ErrorTypeRN.NativeBridgeFailed errorTo e.message.orEmpty()
43
- promise.reject(exception.errorId, exception.description, e)
27
+ @ReactMethod
28
+ fun configure(
29
+ paymentMethodTypeStr: String,
30
+ promise: Promise,
31
+ ) {
32
+ try {
33
+ nativeUiManager =
34
+ PrimerHeadlessUniversalCheckoutNativeUiManager.newInstance(
35
+ paymentMethodTypeStr,
36
+ )
37
+ this.paymentMethodTypeStr = paymentMethodTypeStr
38
+ promise.resolve(null)
39
+ } catch (e: SdkUninitializedException) {
40
+ promise.reject(ErrorTypeRN.UnitializedSdkSession.errorId, e.message, e)
41
+ } catch (e: UnsupportedPaymentMethodManagerException) {
42
+ promise.reject(ErrorTypeRN.UnsupportedPaymentMethod.errorId, e.message, e)
43
+ } catch (e: Exception) {
44
+ val exception =
45
+ ErrorTypeRN.NativeBridgeFailed errorTo e.message.orEmpty()
46
+ promise.reject(exception.errorId, exception.description, e)
47
+ }
44
48
  }
45
- }
46
-
47
- @ReactMethod
48
- fun showPaymentMethod(
49
- intentStr: String,
50
- promise: Promise
51
- ) {
52
49
 
53
- if (::nativeUiManager.isInitialized.not()) {
54
- val exception = PrimerErrorRN(
55
- errorId = ErrorTypeRN.NativeBridgeFailed.errorId,
56
- errorCode = null,
57
- description = "The NativeUIManager has not been initialized.",
58
- diagnosticsId = null,
59
- recoverySuggestion = "Initialize the NativeUIManager by calling the configure function" +
60
- " and providing a payment method type."
61
- )
62
- promise.reject(exception.errorId, exception.description)
63
- } else if (PrimerSessionIntent.values()
64
- .firstOrNull { intentStr.equals(it.name, true) } == null
50
+ @ReactMethod
51
+ fun showPaymentMethod(
52
+ intentStr: String,
53
+ promise: Promise,
65
54
  ) {
66
- val exception = PrimerErrorRN(
67
- errorId = ErrorTypeRN.NativeBridgeFailed.errorId,
68
- errorCode = null,
69
- description = "Invalid value for 'intent'.",
70
- diagnosticsId = null,
71
- recoverySuggestion = "'intent' can be 'CHECKOUT' or 'VAULT'."
72
- )
73
- promise.reject(exception.errorId, exception.description)
74
- } else {
75
- try {
76
- nativeUiManager.showPaymentMethod(
77
- reactContext,
78
- PrimerSessionIntent.valueOf(intentStr.uppercase())
79
- )
80
- } catch (e: UnsupportedPaymentIntentException) {
81
- promise.reject(ErrorTypeRN.UnsupportedPaymentIntent.errorId, e.message, e)
82
- } catch (e: Exception) {
83
- val exception =
84
- ErrorTypeRN.NativeBridgeFailed errorTo e.message.orEmpty()
85
- promise.reject(exception.errorId, exception.description, e)
86
- }
55
+ if (::nativeUiManager.isInitialized.not()) {
56
+ val exception =
57
+ PrimerErrorRN(
58
+ errorId = ErrorTypeRN.NativeBridgeFailed.errorId,
59
+ errorCode = null,
60
+ description = "The NativeUIManager has not been initialized.",
61
+ diagnosticsId = null,
62
+ recoverySuggestion =
63
+ "Initialize the NativeUIManager by calling the configure function" +
64
+ " and providing a payment method type.",
65
+ )
66
+ promise.reject(exception.errorId, exception.description)
67
+ } else if (PrimerSessionIntent.values()
68
+ .firstOrNull { intentStr.equals(it.name, true) } == null
69
+ ) {
70
+ val exception =
71
+ PrimerErrorRN(
72
+ errorId = ErrorTypeRN.NativeBridgeFailed.errorId,
73
+ errorCode = null,
74
+ description = "Invalid value for 'intent'.",
75
+ diagnosticsId = null,
76
+ recoverySuggestion = "'intent' can be 'CHECKOUT' or 'VAULT'.",
77
+ )
78
+ promise.reject(exception.errorId, exception.description)
79
+ } else {
80
+ try {
81
+ nativeUiManager.showPaymentMethod(
82
+ reactContext,
83
+ PrimerSessionIntent.valueOf(intentStr.uppercase()),
84
+ )
85
+ } catch (e: UnsupportedPaymentIntentException) {
86
+ promise.reject(ErrorTypeRN.UnsupportedPaymentIntent.errorId, e.message, e)
87
+ } catch (e: Exception) {
88
+ val exception =
89
+ ErrorTypeRN.NativeBridgeFailed errorTo e.message.orEmpty()
90
+ promise.reject(exception.errorId, exception.description, e)
91
+ }
92
+ }
87
93
  }
88
- }
89
94
  }