@primer-io/react-native 2.30.0 → 2.30.2

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
@@ -1,11 +1,15 @@
1
1
  package com.primerioreactnative
2
2
 
3
- import com.primerioreactnative.datamodels.*
3
+ import com.primerioreactnative.datamodels.ErrorTypeRN
4
+ import com.primerioreactnative.datamodels.PrimerCheckoutDataRN
5
+ import com.primerioreactnative.datamodels.PrimerErrorRN
6
+ import com.primerioreactnative.datamodels.PrimerEvents
7
+ import com.primerioreactnative.datamodels.PrimerPaymentInstrumentTokenRN
8
+ import com.primerioreactnative.extensions.removeType
4
9
  import com.primerioreactnative.extensions.toCheckoutAdditionalInfoRN
5
10
  import com.primerioreactnative.extensions.toPrimerCheckoutDataRN
6
11
  import com.primerioreactnative.extensions.toPrimerClientSessionRN
7
12
  import com.primerioreactnative.extensions.toPrimerPaymentMethodDataRN
8
- import com.primerioreactnative.extensions.removeType
9
13
  import com.primerioreactnative.utils.PrimerImplementedRNCallbacks
10
14
  import com.primerioreactnative.utils.errorTo
11
15
  import io.primer.android.PrimerCheckoutListener
@@ -15,302 +19,306 @@ import io.primer.android.completion.PrimerResumeDecisionHandler
15
19
  import io.primer.android.domain.PrimerCheckoutData
16
20
  import io.primer.android.domain.action.models.PrimerClientSession
17
21
  import io.primer.android.domain.error.models.PrimerError
18
- import io.primer.android.vouchers.multibanco.MultibancoCheckoutAdditionalInfo
19
- import io.primer.android.payments.core.additionalInfo.PrimerCheckoutAdditionalInfo
20
- import io.primer.android.qrcode.QrCodeCheckoutAdditionalInfo
21
22
  import io.primer.android.domain.tokenization.models.PrimerPaymentMethodData
22
23
  import io.primer.android.domain.tokenization.models.PrimerPaymentMethodTokenData
24
+ import io.primer.android.payments.core.additionalInfo.PrimerCheckoutAdditionalInfo
25
+ import io.primer.android.qrcode.QrCodeCheckoutAdditionalInfo
26
+ import io.primer.android.vouchers.multibanco.MultibancoCheckoutAdditionalInfo
23
27
  import kotlinx.serialization.encodeToString
24
28
  import kotlinx.serialization.json.Json
25
29
  import org.json.JSONObject
26
30
 
31
+ @Suppress("TooManyFunctions")
27
32
  class PrimerRNEventListener : PrimerCheckoutListener {
33
+ private var paymentCreationDecisionHandler: ((errorMessage: String?) -> Unit)? = null
34
+ private var primerErrorDecisionHandler: ((errorMessage: String?) -> Unit)? = null
35
+ private var tokenizeSuccessDecisionHandler: ((resumeToken: String?, errorMessage: String?) -> Unit)? =
36
+ null
37
+ private var resumeSuccessDecisionHandler: ((resumeToken: String?, errorMessage: String?) -> Unit)? =
38
+ null
39
+ private var implementedRNCallbacks: PrimerImplementedRNCallbacks? = null
28
40
 
29
- private var paymentCreationDecisionHandler: ((errorMessage: String?) -> Unit)? = null
30
- private var primerErrorDecisionHandler: ((errorMessage: String?) -> Unit)? = null
31
- private var tokenizeSuccessDecisionHandler: ((resumeToken: String?, errorMessage: String?) -> Unit)? =
32
- null
33
- private var resumeSuccessDecisionHandler: ((resumeToken: String?, errorMessage: String?) -> Unit)? =
34
- null
35
- private var implementedRNCallbacks: PrimerImplementedRNCallbacks? = null
41
+ var sendEvent: ((eventName: String, paramsJson: JSONObject?) -> Unit)? = null
42
+ var sendError: ((error: PrimerErrorRN) -> Unit)? = null
43
+ var sendErrorWithCheckoutData: ((error: PrimerErrorRN, checkoutData: PrimerCheckoutDataRN?) -> Unit)? =
44
+ null
45
+ var onDismissedEvent: (() -> Unit)? = null
36
46
 
37
- var sendEvent: ((eventName: String, paramsJson: JSONObject?) -> Unit)? = null
38
- var sendError: ((error: PrimerErrorRN) -> Unit)? = null
39
- var sendErrorWithCheckoutData: ((error: PrimerErrorRN, checkoutData: PrimerCheckoutDataRN?) -> Unit)? =
40
- null
41
- var onDismissedEvent: (() -> Unit)? = null
47
+ override fun onCheckoutCompleted(checkoutData: PrimerCheckoutData) {
48
+ if (implementedRNCallbacks?.isOnCheckoutCompleteImplemented == true) {
49
+ sendEvent?.invoke(
50
+ PrimerEvents.ON_CHECKOUT_COMPLETE.eventName,
51
+ JSONObject(Json.encodeToString(checkoutData.toPrimerCheckoutDataRN())).apply {
52
+ val additionalInfoJson = optJSONObject(Keys.ADDITIONAL_INFO)
53
+ additionalInfoJson?.removeType()
54
+ putOpt(Keys.ADDITIONAL_INFO, additionalInfoJson)
55
+ },
56
+ )
57
+ } else {
58
+ sendError?.invoke(
59
+ ErrorTypeRN.NativeBridgeFailed
60
+ errorTo "Callback [onCheckoutComplete] should be implemented.",
61
+ )
62
+ }
63
+ }
42
64
 
43
- override fun onCheckoutCompleted(checkoutData: PrimerCheckoutData) {
44
- if (implementedRNCallbacks?.isOnCheckoutCompleteImplemented == true) {
45
- sendEvent?.invoke(
46
- PrimerEvents.ON_CHECKOUT_COMPLETE.eventName,
47
- JSONObject(Json.encodeToString(checkoutData.toPrimerCheckoutDataRN())).apply {
48
- val additionalInfoJson = optJSONObject(Keys.ADDITIONAL_INFO)
49
- additionalInfoJson?.removeType()
50
- putOpt(Keys.ADDITIONAL_INFO, additionalInfoJson)
65
+ override fun onBeforePaymentCreated(
66
+ paymentMethodData: PrimerPaymentMethodData,
67
+ decisionHandler: PrimerPaymentCreationDecisionHandler,
68
+ ) {
69
+ if (implementedRNCallbacks?.isOnBeforePaymentCreateImplemented == true) {
70
+ paymentCreationDecisionHandler = { errorMessage ->
71
+ when {
72
+ errorMessage != null -> decisionHandler.abortPaymentCreation(errorMessage.ifBlank { null })
73
+ else -> decisionHandler.continuePaymentCreation()
74
+ }
75
+ }
76
+ sendEvent?.invoke(
77
+ PrimerEvents.ON_BEFORE_PAYMENT_CREATE.eventName,
78
+ JSONObject(Json.encodeToString(paymentMethodData.toPrimerPaymentMethodDataRN())),
79
+ )
80
+ } else {
81
+ super.onBeforePaymentCreated(paymentMethodData, decisionHandler)
51
82
  }
52
- )
53
- } else {
54
- sendError?.invoke(
55
- ErrorTypeRN.NativeBridgeFailed
56
- errorTo "Callback [onCheckoutComplete] should be implemented."
57
- )
58
83
  }
59
- }
60
84
 
61
- override fun onBeforePaymentCreated(
62
- paymentMethodData: PrimerPaymentMethodData,
63
- decisionHandler: PrimerPaymentCreationDecisionHandler
64
- ) {
65
- if (implementedRNCallbacks?.isOnBeforePaymentCreateImplemented == true) {
66
- paymentCreationDecisionHandler = { errorMessage ->
67
- when {
68
- errorMessage != null -> decisionHandler.abortPaymentCreation(errorMessage.ifBlank { null })
69
- else -> decisionHandler.continuePaymentCreation()
85
+ override fun onBeforeClientSessionUpdated() {
86
+ if (implementedRNCallbacks?.isOnBeforeClientSessionUpdateImplemented == true) {
87
+ sendEvent?.invoke(
88
+ PrimerEvents.ON_BEFORE_CLIENT_SESSION_UPDATE.eventName,
89
+ null,
90
+ )
91
+ } else {
92
+ super.onBeforeClientSessionUpdated()
70
93
  }
71
- }
72
- sendEvent?.invoke(
73
- PrimerEvents.ON_BEFORE_PAYMENT_CREATE.eventName,
74
- JSONObject(Json.encodeToString(paymentMethodData.toPrimerPaymentMethodDataRN()))
75
- )
76
- } else {
77
- super.onBeforePaymentCreated(paymentMethodData, decisionHandler)
78
94
  }
79
- }
80
95
 
81
- override fun onBeforeClientSessionUpdated() {
82
- if (implementedRNCallbacks?.isOnBeforeClientSessionUpdateImplemented == true) {
83
- sendEvent?.invoke(
84
- PrimerEvents.ON_BEFORE_CLIENT_SESSION_UPDATE.eventName,
85
- null
86
- )
87
- } else {
88
- super.onBeforeClientSessionUpdated()
96
+ override fun onClientSessionUpdated(clientSession: PrimerClientSession) {
97
+ if (implementedRNCallbacks?.isOnClientSessionUpdateImplemented == true) {
98
+ sendEvent?.invoke(
99
+ PrimerEvents.ON_CLIENT_SESSION_UPDATE.eventName,
100
+ JSONObject().apply {
101
+ put(
102
+ "clientSession",
103
+ JSONObject(Json.encodeToString(clientSession.toPrimerClientSessionRN())),
104
+ )
105
+ },
106
+ )
107
+ } else {
108
+ super.onClientSessionUpdated(clientSession)
109
+ }
89
110
  }
90
- }
91
111
 
92
- override fun onClientSessionUpdated(clientSession: PrimerClientSession) {
93
- if (implementedRNCallbacks?.isOnClientSessionUpdateImplemented == true) {
94
- sendEvent?.invoke(
95
- PrimerEvents.ON_CLIENT_SESSION_UPDATE.eventName,
96
- JSONObject().apply {
97
- put(
98
- "clientSession",
99
- JSONObject(Json.encodeToString(clientSession.toPrimerClientSessionRN()))
100
- )
112
+ override fun onTokenizeSuccess(
113
+ paymentMethodTokenData: PrimerPaymentMethodTokenData,
114
+ decisionHandler: PrimerResumeDecisionHandler,
115
+ ) {
116
+ if (implementedRNCallbacks?.isOnTokenizeSuccessImplemented == true) {
117
+ val token = PrimerPaymentInstrumentTokenRN.fromPaymentMethodToken(paymentMethodTokenData)
118
+ val request = JSONObject(Json.encodeToString(token))
119
+ tokenizeSuccessDecisionHandler = { newClientToken, err ->
120
+ when {
121
+ err != null -> decisionHandler.handleFailure(err.ifBlank { null })
122
+ newClientToken != null -> decisionHandler.continueWithNewClientToken(newClientToken)
123
+ else -> decisionHandler.handleSuccess()
124
+ }
125
+ }
126
+ sendEvent?.invoke(PrimerEvents.ON_TOKENIZE_SUCCESS.eventName, request)
127
+ } else {
128
+ sendError?.invoke(
129
+ ErrorTypeRN.NativeBridgeFailed
130
+ errorTo "Callback [onTokenizeSuccess] should be implemented.",
131
+ )
101
132
  }
102
- )
103
- } else {
104
- super.onClientSessionUpdated(clientSession)
105
133
  }
106
- }
107
134
 
108
- override fun onTokenizeSuccess(
109
- paymentMethodTokenData: PrimerPaymentMethodTokenData,
110
- decisionHandler: PrimerResumeDecisionHandler
111
- ) {
112
- if (implementedRNCallbacks?.isOnTokenizeSuccessImplemented == true) {
113
- val token = PrimerPaymentInstrumentTokenRN.fromPaymentMethodToken(paymentMethodTokenData)
114
- val request = JSONObject(Json.encodeToString(token))
115
- tokenizeSuccessDecisionHandler = { newClientToken, err ->
116
- when {
117
- err != null -> decisionHandler.handleFailure(err.ifBlank { null })
118
- newClientToken != null -> decisionHandler.continueWithNewClientToken(newClientToken)
119
- else -> decisionHandler.handleSuccess()
135
+ override fun onResumeSuccess(
136
+ resumeToken: String,
137
+ decisionHandler: PrimerResumeDecisionHandler,
138
+ ) {
139
+ if (implementedRNCallbacks?.isOnCheckoutResumeImplemented == true) {
140
+ resumeSuccessDecisionHandler = { newClientToken, err ->
141
+ when {
142
+ err != null -> decisionHandler.handleFailure(err.ifBlank { null })
143
+ newClientToken != null -> decisionHandler.continueWithNewClientToken(newClientToken)
144
+ else -> decisionHandler.handleSuccess()
145
+ }
146
+ }
147
+
148
+ sendEvent?.invoke(
149
+ PrimerEvents.ON_RESUME_SUCCESS.eventName,
150
+ JSONObject(Json.encodeToString(mapOf(Keys.RESUME_TOKEN to resumeToken))),
151
+ )
152
+ } else {
153
+ sendError?.invoke(
154
+ ErrorTypeRN.NativeBridgeFailed
155
+ errorTo "Callback [onResumeSuccess] should be implemented.",
156
+ )
120
157
  }
121
- }
122
- sendEvent?.invoke(PrimerEvents.ON_TOKENIZE_SUCCESS.eventName, request)
123
- } else {
124
- sendError?.invoke(
125
- ErrorTypeRN.NativeBridgeFailed
126
- errorTo "Callback [onTokenizeSuccess] should be implemented."
127
- )
128
158
  }
129
- }
130
159
 
131
- override fun onResumeSuccess(
132
- resumeToken: String,
133
- decisionHandler: PrimerResumeDecisionHandler
134
- ) {
135
- if (implementedRNCallbacks?.isOnCheckoutResumeImplemented == true) {
136
- resumeSuccessDecisionHandler = { newClientToken, err ->
137
- when {
138
- err != null -> decisionHandler.handleFailure(err.ifBlank { null })
139
- newClientToken != null -> decisionHandler.continueWithNewClientToken(newClientToken)
140
- else -> decisionHandler.handleSuccess()
160
+ override fun onResumePending(additionalInfo: PrimerCheckoutAdditionalInfo) {
161
+ if (implementedRNCallbacks?.isOnCheckoutPendingImplemented == true) {
162
+ if (additionalInfo is MultibancoCheckoutAdditionalInfo) {
163
+ sendEvent?.invoke(
164
+ PrimerEvents.ON_RESUME_PENDING.eventName,
165
+ JSONObject(Json.encodeToString(additionalInfo.toCheckoutAdditionalInfoRN())).apply {
166
+ removeType()
167
+ },
168
+ )
169
+ }
170
+ } else {
171
+ sendError?.invoke(
172
+ ErrorTypeRN.NativeBridgeFailed
173
+ errorTo "Callback [onResumePending] should be implemented.",
174
+ )
141
175
  }
142
- }
176
+ }
143
177
 
144
- sendEvent?.invoke(
145
- PrimerEvents.ON_RESUME_SUCCESS.eventName,
146
- JSONObject(Json.encodeToString(mapOf(Keys.RESUME_TOKEN to resumeToken)))
147
- )
148
- } else {
149
- sendError?.invoke(
150
- ErrorTypeRN.NativeBridgeFailed
151
- errorTo "Callback [onResumeSuccess] should be implemented."
152
- )
178
+ override fun onAdditionalInfoReceived(additionalInfo: PrimerCheckoutAdditionalInfo) {
179
+ if (implementedRNCallbacks?.isOnCheckoutAdditionalInfoImplemented == true) {
180
+ if (additionalInfo is QrCodeCheckoutAdditionalInfo) {
181
+ sendEvent?.invoke(
182
+ PrimerEvents.ON_CHECKOUT_RECEIVED_ADDITIONAL_INFO.eventName,
183
+ JSONObject(Json.encodeToString(additionalInfo.toCheckoutAdditionalInfoRN())).apply {
184
+ removeType()
185
+ },
186
+ )
187
+ }
188
+ } else {
189
+ sendError?.invoke(
190
+ ErrorTypeRN.NativeBridgeFailed
191
+ errorTo "Callback [onAdditionalInfoReceived] should be implemented.",
192
+ )
193
+ }
153
194
  }
154
- }
155
195
 
156
- override fun onResumePending(additionalInfo: PrimerCheckoutAdditionalInfo) {
157
- if (implementedRNCallbacks?.isOnCheckoutPendingImplemented == true) {
158
- if (additionalInfo is MultibancoCheckoutAdditionalInfo) {
159
- sendEvent?.invoke(
160
- PrimerEvents.ON_RESUME_PENDING.eventName,
161
- JSONObject(Json.encodeToString(additionalInfo.toCheckoutAdditionalInfoRN())).apply {
162
- removeType()
163
- }
164
- )
165
- }
166
- } else {
167
- sendError?.invoke(
168
- ErrorTypeRN.NativeBridgeFailed
169
- errorTo "Callback [onResumePending] should be implemented."
170
- )
196
+ override fun onDismissed() {
197
+ if (implementedRNCallbacks?.isOnDismissImplemented == true) {
198
+ sendEvent?.invoke(
199
+ PrimerEvents.ON_DISMISS.eventName,
200
+ null,
201
+ )
202
+ }
203
+
204
+ onDismissedEvent?.invoke()
205
+ removeCallbacksAndHandlers()
171
206
  }
172
- }
173
207
 
174
- override fun onAdditionalInfoReceived(additionalInfo: PrimerCheckoutAdditionalInfo) {
175
- if (implementedRNCallbacks?.isOnCheckoutAdditionalInfoImplemented == true) {
176
- if (additionalInfo is QrCodeCheckoutAdditionalInfo) {
177
- sendEvent?.invoke(
178
- PrimerEvents.ON_CHECKOUT_RECEIVED_ADDITIONAL_INFO.eventName,
179
- JSONObject(Json.encodeToString(additionalInfo.toCheckoutAdditionalInfoRN())).apply {
180
- removeType()
181
- }
182
- )
183
- }
184
- } else {
185
- sendError?.invoke(
186
- ErrorTypeRN.NativeBridgeFailed
187
- errorTo "Callback [onAdditionalInfoReceived] should be implemented."
188
- )
208
+ override fun onFailed(
209
+ error: PrimerError,
210
+ checkoutData: PrimerCheckoutData?,
211
+ errorHandler: PrimerErrorDecisionHandler?,
212
+ ) {
213
+ if (implementedRNCallbacks?.isOnErrorImplemented == true) {
214
+ primerErrorDecisionHandler = { errorMessage: String? ->
215
+ errorHandler?.showErrorMessage(errorMessage?.ifBlank { null })
216
+ }
217
+ sendErrorWithCheckoutData?.invoke(
218
+ PrimerErrorRN(
219
+ errorId = error.errorId,
220
+ errorCode = error.errorCode,
221
+ description = error.description,
222
+ diagnosticsId = error.diagnosticsId,
223
+ recoverySuggestion = error.recoverySuggestion,
224
+ ),
225
+ checkoutData?.toPrimerCheckoutDataRN(),
226
+ )
227
+ } else {
228
+ super.onFailed(error, checkoutData, errorHandler)
229
+ }
189
230
  }
190
- }
191
231
 
192
- override fun onDismissed() {
193
- if (implementedRNCallbacks?.isOnDismissImplemented == true) {
194
- sendEvent?.invoke(
195
- PrimerEvents.ON_DISMISS.eventName,
196
- null
197
- )
232
+ override fun onFailed(
233
+ error: PrimerError,
234
+ errorHandler: PrimerErrorDecisionHandler?,
235
+ ) {
236
+ if (implementedRNCallbacks?.isOnErrorImplemented == true) {
237
+ primerErrorDecisionHandler = { errorMessage: String? ->
238
+ errorHandler?.showErrorMessage(errorMessage)
239
+ }
240
+ sendError?.invoke(
241
+ PrimerErrorRN(
242
+ errorId = error.errorId,
243
+ errorCode = error.errorCode,
244
+ description = error.description,
245
+ diagnosticsId = error.diagnosticsId,
246
+ recoverySuggestion = error.recoverySuggestion,
247
+ ),
248
+ )
249
+ } else {
250
+ super.onFailed(error, errorHandler)
251
+ }
198
252
  }
199
253
 
200
- onDismissedEvent?.invoke()
201
- removeCallbacksAndHandlers()
202
- }
254
+ // region tokenization handlers
255
+ fun handleTokenizationNewClientToken(newClientToken: String) {
256
+ tokenizeSuccessDecisionHandler?.invoke(newClientToken, null)
257
+ tokenizeSuccessDecisionHandler = null
258
+ }
203
259
 
204
- override fun onFailed(
205
- error: PrimerError,
206
- checkoutData: PrimerCheckoutData?,
207
- errorHandler: PrimerErrorDecisionHandler?
208
- ) {
209
- if (implementedRNCallbacks?.isOnErrorImplemented == true) {
210
- primerErrorDecisionHandler = { errorMessage: String? ->
211
- errorHandler?.showErrorMessage(errorMessage?.ifBlank { null })
212
- }
213
- sendErrorWithCheckoutData?.invoke(
214
- PrimerErrorRN(
215
- errorId = error.errorId,
216
- errorCode = error.errorCode,
217
- description = error.description,
218
- diagnosticsId = error.diagnosticsId,
219
- recoverySuggestion = error.recoverySuggestion
220
- ), checkoutData?.toPrimerCheckoutDataRN()
221
- )
222
- } else {
223
- super.onFailed(error, checkoutData, errorHandler)
260
+ fun handleTokenizationSuccess() {
261
+ tokenizeSuccessDecisionHandler?.invoke(null, null)
262
+ tokenizeSuccessDecisionHandler = null
224
263
  }
225
- }
226
264
 
227
- override fun onFailed(error: PrimerError, errorHandler: PrimerErrorDecisionHandler?) {
228
- if (implementedRNCallbacks?.isOnErrorImplemented == true) {
229
- primerErrorDecisionHandler = { errorMessage: String? ->
230
- errorHandler?.showErrorMessage(errorMessage)
231
- }
232
- sendError?.invoke(
233
- PrimerErrorRN(
234
- errorId = error.errorId,
235
- errorCode = error.errorCode,
236
- description = error.description,
237
- diagnosticsId = error.diagnosticsId,
238
- recoverySuggestion = error.recoverySuggestion
265
+ fun handleTokenizationFailure(errorMessage: String) {
266
+ tokenizeSuccessDecisionHandler?.invoke(
267
+ null,
268
+ errorMessage.ifBlank { null },
239
269
  )
240
- )
241
- } else {
242
- super.onFailed(error, errorHandler)
270
+ tokenizeSuccessDecisionHandler = null
243
271
  }
244
- }
245
-
246
- // region tokenization handlers
247
- fun handleTokenizationNewClientToken(newClientToken: String) {
248
- tokenizeSuccessDecisionHandler?.invoke(newClientToken, null)
249
- tokenizeSuccessDecisionHandler = null
250
- }
251
-
252
- fun handleTokenizationSuccess() {
253
- tokenizeSuccessDecisionHandler?.invoke(null, null)
254
- tokenizeSuccessDecisionHandler = null
255
- }
256
-
257
- fun handleTokenizationFailure(errorMessage: String) {
258
- tokenizeSuccessDecisionHandler?.invoke(
259
- null,
260
- errorMessage.ifBlank { null }
261
- )
262
- tokenizeSuccessDecisionHandler = null
263
- }
264
- // endregion
272
+ // endregion
265
273
 
266
- // region resume handlers
267
- fun handleResumeNewClientToken(newClientToken: String) {
268
- resumeSuccessDecisionHandler?.invoke(newClientToken, null)
269
- resumeSuccessDecisionHandler = null
270
- }
274
+ // region resume handlers
275
+ fun handleResumeNewClientToken(newClientToken: String) {
276
+ resumeSuccessDecisionHandler?.invoke(newClientToken, null)
277
+ resumeSuccessDecisionHandler = null
278
+ }
271
279
 
272
- fun handleResumeSuccess() {
273
- resumeSuccessDecisionHandler?.invoke(null, null)
274
- resumeSuccessDecisionHandler = null
275
- }
280
+ fun handleResumeSuccess() {
281
+ resumeSuccessDecisionHandler?.invoke(null, null)
282
+ resumeSuccessDecisionHandler = null
283
+ }
276
284
 
277
- fun handleResumeFailure(errorMessage: String) {
278
- resumeSuccessDecisionHandler?.invoke(
279
- null,
280
- errorMessage.ifBlank { null }
281
- )
282
- resumeSuccessDecisionHandler = null
283
- }
284
- // endregion
285
+ fun handleResumeFailure(errorMessage: String) {
286
+ resumeSuccessDecisionHandler?.invoke(
287
+ null,
288
+ errorMessage.ifBlank { null },
289
+ )
290
+ resumeSuccessDecisionHandler = null
291
+ }
292
+ // endregion
285
293
 
286
- // region payment create handlers
287
- fun handlePaymentCreationContinue() {
288
- paymentCreationDecisionHandler?.invoke(null)
289
- paymentCreationDecisionHandler = null
290
- }
294
+ // region payment create handlers
295
+ fun handlePaymentCreationContinue() {
296
+ paymentCreationDecisionHandler?.invoke(null)
297
+ paymentCreationDecisionHandler = null
298
+ }
291
299
 
292
- fun handlePaymentCreationAbort(errorMessage: String) {
293
- paymentCreationDecisionHandler?.invoke(errorMessage)
294
- paymentCreationDecisionHandler = null
295
- }
296
- // endregion
300
+ fun handlePaymentCreationAbort(errorMessage: String) {
301
+ paymentCreationDecisionHandler?.invoke(errorMessage)
302
+ paymentCreationDecisionHandler = null
303
+ }
304
+ // endregion
297
305
 
298
- // region error handlers
299
- fun handleErrorMessage(errorMessage: String) {
300
- primerErrorDecisionHandler?.invoke(errorMessage)
301
- primerErrorDecisionHandler = null
302
- }
303
- // endregion
306
+ // region error handlers
307
+ fun handleErrorMessage(errorMessage: String) {
308
+ primerErrorDecisionHandler?.invoke(errorMessage)
309
+ primerErrorDecisionHandler = null
310
+ }
311
+ // endregion
304
312
 
305
- fun setImplementedCallbacks(implementedRNCallbacks: PrimerImplementedRNCallbacks) {
306
- this.implementedRNCallbacks = implementedRNCallbacks
307
- }
313
+ fun setImplementedCallbacks(implementedRNCallbacks: PrimerImplementedRNCallbacks) {
314
+ this.implementedRNCallbacks = implementedRNCallbacks
315
+ }
308
316
 
309
- private fun removeCallbacksAndHandlers() {
310
- paymentCreationDecisionHandler = null
311
- primerErrorDecisionHandler = null
312
- tokenizeSuccessDecisionHandler = null
313
- resumeSuccessDecisionHandler = null
314
- implementedRNCallbacks = null
315
- }
317
+ private fun removeCallbacksAndHandlers() {
318
+ paymentCreationDecisionHandler = null
319
+ primerErrorDecisionHandler = null
320
+ tokenizeSuccessDecisionHandler = null
321
+ resumeSuccessDecisionHandler = null
322
+ implementedRNCallbacks = null
323
+ }
316
324
  }