@primer-io/react-native 2.29.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 (311) 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 -111
  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 +235 -177
  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/ios/Sources/version.swift +1 -1
  119. package/lib/commonjs/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +1 -1
  120. package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +1 -1
  121. package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js.map +1 -1
  122. package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js +4 -4
  123. package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
  124. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js +1 -1
  125. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js.map +1 -1
  126. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js +2 -2
  127. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js.map +1 -1
  128. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +1 -1
  129. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
  130. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -1
  131. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -1
  132. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +6 -6
  133. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -1
  134. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.js.map +1 -1
  135. package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
  136. package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +4 -4
  137. package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -1
  138. package/lib/commonjs/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js +1 -1
  139. package/lib/commonjs/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
  140. package/lib/commonjs/HeadlessUniversalCheckout/types.js +5 -5
  141. package/lib/commonjs/Primer.js +2 -2
  142. package/lib/commonjs/Primer.js.map +1 -1
  143. package/lib/commonjs/RNPrimer.js +5 -5
  144. package/lib/commonjs/RNPrimer.js.map +1 -1
  145. package/lib/commonjs/index.js +6 -0
  146. package/lib/commonjs/index.js.map +1 -1
  147. package/lib/commonjs/models/PrimerError.js.map +1 -1
  148. package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js +3 -3
  149. package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +1 -1
  150. package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js +1 -1
  151. package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +1 -1
  152. package/lib/module/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js +1 -1
  153. package/lib/module/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js.map +1 -1
  154. package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js +4 -4
  155. package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
  156. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js +1 -1
  157. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js.map +1 -1
  158. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js +2 -2
  159. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js.map +1 -1
  160. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +1 -1
  161. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
  162. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -1
  163. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -1
  164. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +6 -6
  165. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -1
  166. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.js.map +1 -1
  167. package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
  168. package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +4 -4
  169. package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -1
  170. package/lib/module/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js +1 -1
  171. package/lib/module/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
  172. package/lib/module/HeadlessUniversalCheckout/types.js +5 -5
  173. package/lib/module/Primer.js +2 -2
  174. package/lib/module/Primer.js.map +1 -1
  175. package/lib/module/RNPrimer.js +5 -5
  176. package/lib/module/RNPrimer.js.map +1 -1
  177. package/lib/module/index.js +1 -1
  178. package/lib/module/index.js.map +1 -1
  179. package/lib/module/models/PrimerError.js.map +1 -1
  180. package/lib/typescript/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts +2 -2
  181. package/lib/typescript/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts.map +1 -1
  182. package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts +1 -1
  183. package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts.map +1 -1
  184. package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.d.ts.map +1 -1
  185. package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts +4 -4
  186. package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts.map +1 -1
  187. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.d.ts.map +1 -1
  188. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.d.ts.map +1 -1
  189. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.d.ts.map +1 -1
  190. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.d.ts.map +1 -1
  191. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.d.ts.map +1 -1
  192. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts.map +1 -1
  193. package/lib/typescript/HeadlessUniversalCheckout/Managers/VaultManager.d.ts.map +1 -1
  194. package/lib/typescript/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.d.ts.map +1 -1
  195. package/lib/typescript/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.d.ts.map +1 -1
  196. package/lib/typescript/Primer.d.ts.map +1 -1
  197. package/lib/typescript/RNPrimer.d.ts.map +1 -1
  198. package/lib/typescript/index.d.ts +5 -5
  199. package/lib/typescript/index.d.ts.map +1 -1
  200. package/lib/typescript/models/IssuingBank.d.ts.map +1 -1
  201. package/lib/typescript/models/NamedComponentStep.d.ts.map +1 -1
  202. package/lib/typescript/models/NamedComponentValidatableData.d.ts.map +1 -1
  203. package/lib/typescript/models/PrimerCheckoutAdditionalInfo.d.ts +4 -4
  204. package/lib/typescript/models/PrimerCheckoutAdditionalInfo.d.ts.map +1 -1
  205. package/lib/typescript/models/PrimerCheckoutData.d.ts +1 -1
  206. package/lib/typescript/models/PrimerCheckoutData.d.ts.map +1 -1
  207. package/lib/typescript/models/PrimerCheckoutPaymentMethodData.d.ts.map +1 -1
  208. package/lib/typescript/models/PrimerClientSession.d.ts.map +1 -1
  209. package/lib/typescript/models/PrimerComponentDataValidation.d.ts +5 -5
  210. package/lib/typescript/models/PrimerComponentDataValidation.d.ts.map +1 -1
  211. package/lib/typescript/models/PrimerCountryCode.d.ts +1 -1
  212. package/lib/typescript/models/PrimerCountryCode.d.ts.map +1 -1
  213. package/lib/typescript/models/PrimerCurrencyCode.d.ts +1 -1
  214. package/lib/typescript/models/PrimerCurrencyCode.d.ts.map +1 -1
  215. package/lib/typescript/models/PrimerError.d.ts.map +1 -1
  216. package/lib/typescript/models/PrimerHandlers.d.ts.map +1 -1
  217. package/lib/typescript/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts +2 -2
  218. package/lib/typescript/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts.map +1 -1
  219. package/lib/typescript/models/PrimerImplementedRNCallbacks.d.ts.map +1 -1
  220. package/lib/typescript/models/PrimerInitializationData.d.ts +1 -1
  221. package/lib/typescript/models/PrimerInitializationData.d.ts.map +1 -1
  222. package/lib/typescript/models/PrimerInputElementType.d.ts.map +1 -1
  223. package/lib/typescript/models/PrimerInterfaces.d.ts +1 -1
  224. package/lib/typescript/models/PrimerPaymentMethodManagerCategory.d.ts.map +1 -1
  225. package/lib/typescript/models/PrimerPaymentMethodResource.d.ts.map +1 -1
  226. package/lib/typescript/models/PrimerRawData.d.ts.map +1 -1
  227. package/lib/typescript/models/PrimerSettings.d.ts +15 -10
  228. package/lib/typescript/models/PrimerSettings.d.ts.map +1 -1
  229. package/lib/typescript/models/PrimerValidationError.d.ts.map +1 -1
  230. package/lib/typescript/models/PrimerValidationErrorResult.d.ts +1 -1
  231. package/lib/typescript/models/PrimerValidationErrorResult.d.ts.map +1 -1
  232. package/lib/typescript/models/PrimerVaultedPaymentMethod.d.ts +1 -1
  233. package/lib/typescript/models/PrimerVaultedPaymentMethod.d.ts.map +1 -1
  234. package/lib/typescript/models/PrimerVaultedPaymentMethodAdditionalData.d.ts.map +1 -1
  235. package/lib/typescript/models/PrimerVaultedPaymentMethodResult.d.ts +1 -1
  236. package/lib/typescript/models/PrimerVaultedPaymentMethodResult.d.ts.map +1 -1
  237. package/lib/typescript/models/RetailOutletsRetail.d.ts.map +1 -1
  238. package/lib/typescript/models/ach/AchCollectableData.d.ts +4 -4
  239. package/lib/typescript/models/ach/AchCollectableData.d.ts.map +1 -1
  240. package/lib/typescript/models/ach/AchSteps.d.ts +3 -3
  241. package/lib/typescript/models/ach/AchSteps.d.ts.map +1 -1
  242. package/lib/typescript/models/banks/BanksCollectableData.d.ts +3 -3
  243. package/lib/typescript/models/banks/BanksCollectableData.d.ts.map +1 -1
  244. package/lib/typescript/models/banks/BanksSteps.d.ts +6 -6
  245. package/lib/typescript/models/banks/BanksSteps.d.ts.map +1 -1
  246. package/lib/typescript/models/klarna/KlarnaPaymentCategory.d.ts +2 -2
  247. package/lib/typescript/models/klarna/KlarnaPaymentCategory.d.ts.map +1 -1
  248. package/lib/typescript/models/klarna/KlarnaPaymentCollectableData.d.ts +4 -4
  249. package/lib/typescript/models/klarna/KlarnaPaymentCollectableData.d.ts.map +1 -1
  250. package/lib/typescript/models/klarna/KlarnaPaymentSteps.d.ts +6 -6
  251. package/lib/typescript/models/klarna/KlarnaPaymentSteps.d.ts.map +1 -1
  252. package/lib/typescript/utils/index.d.ts +1 -1
  253. package/package.json +5 -4
  254. package/primer-io-react-native.podspec +1 -1
  255. package/src/HeadlessUniversalCheckout/Components/NativeResourceView.tsx +17 -21
  256. package/src/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.tsx +3 -6
  257. package/src/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.tsx +2 -4
  258. package/src/HeadlessUniversalCheckout/Managers/AssetsManager.ts +68 -69
  259. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.ts +127 -131
  260. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.ts +23 -25
  261. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.ts +21 -30
  262. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.ts +137 -141
  263. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.ts +17 -18
  264. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.ts +158 -142
  265. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.ts +7 -7
  266. package/src/HeadlessUniversalCheckout/Managers/VaultManager.ts +96 -87
  267. package/src/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.ts +159 -170
  268. package/src/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.ts +2 -6
  269. package/src/HeadlessUniversalCheckout/types.ts +5 -5
  270. package/src/Primer.ts +60 -57
  271. package/src/RNPrimer.ts +53 -54
  272. package/src/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.tsx +1 -1
  273. package/src/index.tsx +74 -37
  274. package/src/models/IssuingBank.ts +5 -5
  275. package/src/models/NamedComponentStep.ts +5 -5
  276. package/src/models/NamedComponentValidatableData.ts +5 -5
  277. package/src/models/PrimerCheckoutAdditionalInfo.ts +18 -23
  278. package/src/models/PrimerCheckoutData.ts +8 -8
  279. package/src/models/PrimerCheckoutPaymentMethodData.ts +6 -6
  280. package/src/models/PrimerClientSession.ts +34 -34
  281. package/src/models/PrimerComponentDataValidation.ts +33 -33
  282. package/src/models/PrimerCountryCode.ts +1 -1
  283. package/src/models/PrimerCurrencyCode.ts +1 -1
  284. package/src/models/PrimerError.ts +7 -1
  285. package/src/models/PrimerHandlers.ts +24 -24
  286. package/src/models/PrimerHeadlessUniversalCheckoutPaymentMethod.ts +4 -4
  287. package/src/models/PrimerImplementedRNCallbacks.ts +15 -15
  288. package/src/models/PrimerInitializationData.ts +3 -3
  289. package/src/models/PrimerInputElementType.ts +9 -9
  290. package/src/models/PrimerInterfaces.ts +1 -1
  291. package/src/models/PrimerPaymentMethodManagerCategory.ts +4 -4
  292. package/src/models/PrimerPaymentMethodResource.ts +11 -11
  293. package/src/models/PrimerRawData.ts +9 -9
  294. package/src/models/PrimerSessionIntent.ts +1 -1
  295. package/src/models/PrimerSettings.ts +47 -21
  296. package/src/models/PrimerValidationError.ts +3 -3
  297. package/src/models/PrimerValidationErrorResult.ts +2 -2
  298. package/src/models/PrimerVaultedPaymentMethod.ts +7 -7
  299. package/src/models/PrimerVaultedPaymentMethodAdditionalData.ts +1 -1
  300. package/src/models/PrimerVaultedPaymentMethodResult.ts +3 -3
  301. package/src/models/RetailOutletsRetail.ts +5 -5
  302. package/src/models/ach/AchCollectableData.ts +12 -12
  303. package/src/models/ach/AchSteps.ts +18 -18
  304. package/src/models/banks/BanksCollectableData.ts +14 -14
  305. package/src/models/banks/BanksSteps.ts +13 -13
  306. package/src/models/klarna/KlarnaPaymentCategory.ts +16 -16
  307. package/src/models/klarna/KlarnaPaymentCollectableData.ts +16 -15
  308. package/src/models/klarna/KlarnaPaymentSteps.ts +21 -17
  309. package/src/utils/index.ts +1 -1
  310. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/cardRedirect/PrimerRNCardRedirectData.kt +0 -19
  311. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/resource/Resources.kt +0 -138
@@ -1,38 +1,30 @@
1
- package com.primerioreactnative.components.manager.redirect
1
+ package com.primerioreactnative.components.manager.banks
2
2
 
3
3
  import androidx.lifecycle.LifecycleOwner
4
4
  import androidx.lifecycle.ViewModelStoreOwner
5
5
  import androidx.lifecycle.lifecycleScope
6
- import com.facebook.react.bridge.Arguments
7
6
  import com.facebook.react.bridge.Promise
8
7
  import com.facebook.react.bridge.ReactApplicationContext
9
8
  import com.facebook.react.bridge.ReactContextBaseJavaModule
10
9
  import com.facebook.react.bridge.ReactMethod
11
- import com.facebook.react.bridge.WritableMap
12
- import com.facebook.react.bridge.WritableArray
13
10
  import com.facebook.react.modules.core.DeviceEventManagerModule
14
11
  import com.primerioreactnative.PrimerRNViewModelStoreOwner
15
12
  import com.primerioreactnative.components.events.PrimerHeadlessUniversalCheckoutComponentEvent
16
13
  import com.primerioreactnative.datamodels.ErrorTypeRN
17
- import com.primerioreactnative.datamodels.PrimerValidationErrorRN
18
14
  import com.primerioreactnative.datamodels.extensions.banks.toBankIdRN
15
+ import com.primerioreactnative.datamodels.extensions.banks.toBanksRetrievedRN
19
16
  import com.primerioreactnative.datamodels.extensions.banks.toFilterRN
20
17
  import com.primerioreactnative.datamodels.extensions.banks.toLoadingRN
21
- import com.primerioreactnative.datamodels.extensions.banks.toBanksRetrievedRN
22
- import com.primerioreactnative.datamodels.NamedComponentStep
23
- import com.primerioreactnative.extensions.toPrimerIssuingBankRN
24
- import com.primerioreactnative.utils.convertJsonToMap
25
- import com.primerioreactnative.utils.convertJsonToArray
18
+ import com.primerioreactnative.extensions.putErrors
19
+ import com.primerioreactnative.extensions.putValidationErrors
26
20
  import com.primerioreactnative.utils.errorTo
21
+ import com.primerioreactnative.utils.toWritableArray
22
+ import com.primerioreactnative.utils.toWritableMap
23
+ import io.primer.android.components.componentWithRedirect.PrimerHeadlessUniversalCheckoutComponentWithRedirectManager
27
24
  import io.primer.android.components.manager.banks.composable.BanksCollectableData
28
25
  import io.primer.android.components.manager.banks.composable.BanksStep
29
- import io.primer.android.components.componentWithRedirect.PrimerHeadlessUniversalCheckoutComponentWithRedirectManager
30
26
  import io.primer.android.components.manager.componentWithRedirect.component.BanksComponent
31
27
  import io.primer.android.components.manager.core.composable.PrimerValidationStatus
32
- import com.primerioreactnative.utils.toWritableArray
33
- import com.primerioreactnative.utils.toWritableMap
34
- import com.primerioreactnative.extensions.putErrors
35
- import com.primerioreactnative.extensions.putValidationErrors
36
28
  import kotlinx.coroutines.CoroutineScope
37
29
  import kotlinx.coroutines.Dispatchers
38
30
  import kotlinx.coroutines.Job
@@ -45,210 +37,231 @@ import kotlinx.serialization.json.Json
45
37
  import org.json.JSONArray
46
38
  import org.json.JSONObject
47
39
 
40
+ @Suppress("TooManyFunctions")
48
41
  class PrimerRNHeadlessUniversalCheckoutBanksComponent(
49
42
  private val reactContext: ReactApplicationContext,
50
43
  ) : ReactContextBaseJavaModule(reactContext) {
51
- override fun getName() = "RNTPrimerHeadlessUniversalCheckoutBanksComponent"
44
+ override fun getName() = "RNTPrimerHeadlessUniversalCheckoutBanksComponent"
52
45
 
53
- private var job: Job? = null
54
- private var banksComponent: BanksComponent? = null
55
- private var viewModelStoreOwner: ViewModelStoreOwner? = null
46
+ private var job: Job? = null
47
+ private var banksComponent: BanksComponent? = null
48
+ private var viewModelStoreOwner: ViewModelStoreOwner? = null
56
49
 
57
- @ReactMethod
58
- fun configure(paymentMethodType: String, promise: Promise) {
50
+ @ReactMethod
51
+ fun configure(
52
+ paymentMethodType: String,
53
+ promise: Promise,
54
+ ) {
55
+ val currentViewModelStoreOwner =
56
+ reactContext.currentActivity as? ViewModelStoreOwner
57
+ ?: run { PrimerRNViewModelStoreOwner() }
59
58
 
60
- val currentViewModelStoreOwner =
61
- reactContext.currentActivity as? ViewModelStoreOwner
62
- ?: run { PrimerRNViewModelStoreOwner() }
59
+ viewModelStoreOwner = currentViewModelStoreOwner
60
+ banksComponent =
61
+ PrimerHeadlessUniversalCheckoutComponentWithRedirectManager(currentViewModelStoreOwner)
62
+ .provide<BanksComponent>(paymentMethodType = paymentMethodType)
63
63
 
64
- viewModelStoreOwner = currentViewModelStoreOwner
65
- banksComponent =
66
- PrimerHeadlessUniversalCheckoutComponentWithRedirectManager(currentViewModelStoreOwner)
67
- .provide<BanksComponent>(paymentMethodType = paymentMethodType)
64
+ val lifecycleScope =
65
+ (reactContext.currentActivity as? LifecycleOwner)?.lifecycleScope
66
+ ?: CoroutineScope(SupervisorJob() + Dispatchers.Main)
68
67
 
69
- val lifecycleScope =
70
- (reactContext.currentActivity as? LifecycleOwner)?.lifecycleScope
71
- ?: CoroutineScope(SupervisorJob() + Dispatchers.Main)
72
-
73
- job =
74
- lifecycleScope.launch {
75
- if (banksComponent == null) {
76
- val exception = ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
77
- promise.reject(exception.errorId, exception.description)
78
- } else {
79
- coroutineScope {
80
- launch { configureBanksListener() }
68
+ job =
69
+ lifecycleScope.launch {
70
+ if (banksComponent == null) {
71
+ val exception = ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
72
+ promise.reject(exception.errorId, exception.description)
73
+ } else {
74
+ coroutineScope {
75
+ launch { configureBanksListener() }
81
76
 
82
- launch { configureValidationListener() }
77
+ launch { configureValidationListener() }
83
78
 
84
- launch { configureErrorListener() }
85
- promise.resolve(null)
79
+ launch { configureErrorListener() }
80
+ promise.resolve(null)
81
+ }
82
+ }
86
83
  }
87
- }
88
- }
89
- }
90
-
91
- @ReactMethod
92
- fun start(promise: Promise) {
93
- if (banksComponent == null) {
94
- val exception = ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
95
- promise.reject(exception.errorId, exception.description)
96
- } else {
97
- banksComponent?.start()
98
- promise.resolve(null)
99
- }
100
- }
101
-
102
- @ReactMethod
103
- fun submit(promise: Promise) {
104
- if (banksComponent == null) {
105
- val exception = ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
106
- promise.reject(exception.errorId, exception.description)
107
- } else {
108
- banksComponent?.submit()
109
- promise.resolve(null)
110
84
  }
111
- }
112
-
113
- @ReactMethod
114
- fun onBankSelected(bankId: String, promise: Promise) {
115
- if (banksComponent == null) {
116
- val exception = ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
117
- promise.reject(exception.errorId, exception.description)
118
- } else {
119
- banksComponent?.updateCollectedData(BanksCollectableData.BankId(bankId))
120
- promise.resolve(null)
85
+
86
+ @ReactMethod
87
+ fun start(promise: Promise) {
88
+ if (banksComponent == null) {
89
+ val exception = ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
90
+ promise.reject(exception.errorId, exception.description)
91
+ } else {
92
+ banksComponent?.start()
93
+ promise.resolve(null)
94
+ }
121
95
  }
122
- }
123
-
124
- @ReactMethod
125
- fun onBankFilterChange(filter: String, promise: Promise) {
126
- if (banksComponent == null) {
127
- val exception = ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
128
- promise.reject(exception.errorId, exception.description)
129
- } else {
130
- banksComponent?.updateCollectedData(BanksCollectableData.Filter(filter))
131
- promise.resolve(null)
96
+
97
+ @ReactMethod
98
+ fun submit(promise: Promise) {
99
+ if (banksComponent == null) {
100
+ val exception = ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
101
+ promise.reject(exception.errorId, exception.description)
102
+ } else {
103
+ banksComponent?.submit()
104
+ promise.resolve(null)
105
+ }
132
106
  }
133
- }
134
-
135
- private suspend fun configureErrorListener() {
136
- banksComponent?.componentError?.collectLatest { error ->
137
- sendEvent(
138
- PrimerHeadlessUniversalCheckoutComponentEvent.ON_ERROR.eventName,
139
- JSONObject().apply { putErrors(error) }
140
- )
107
+
108
+ @ReactMethod
109
+ fun onBankSelected(
110
+ bankId: String,
111
+ promise: Promise,
112
+ ) {
113
+ if (banksComponent == null) {
114
+ val exception = ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
115
+ promise.reject(exception.errorId, exception.description)
116
+ } else {
117
+ banksComponent?.updateCollectedData(BanksCollectableData.BankId(bankId))
118
+ promise.resolve(null)
119
+ }
141
120
  }
142
- }
143
-
144
- private suspend fun configureBanksListener() {
145
- banksComponent?.componentStep?.collectLatest { banksStep ->
146
- when (banksStep) {
147
- is BanksStep.Loading -> {
148
- sendEvent(
149
- PrimerHeadlessUniversalCheckoutComponentEvent.ON_STEP.eventName,
150
- JSONObject(json.encodeToString(banksStep.toLoadingRN()))
151
- )
121
+
122
+ @ReactMethod
123
+ fun onBankFilterChange(
124
+ filter: String,
125
+ promise: Promise,
126
+ ) {
127
+ if (banksComponent == null) {
128
+ val exception = ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
129
+ promise.reject(exception.errorId, exception.description)
130
+ } else {
131
+ banksComponent?.updateCollectedData(BanksCollectableData.Filter(filter))
132
+ promise.resolve(null)
152
133
  }
153
- is BanksStep.BanksRetrieved -> {
154
- sendEvent(
155
- PrimerHeadlessUniversalCheckoutComponentEvent.ON_STEP.eventName,
156
- JSONObject(
157
- json.encodeToString(banksStep.toBanksRetrievedRN())
134
+ }
135
+
136
+ private suspend fun configureErrorListener() {
137
+ banksComponent?.componentError?.collectLatest { error ->
138
+ sendEvent(
139
+ PrimerHeadlessUniversalCheckoutComponentEvent.ON_ERROR.eventName,
140
+ JSONObject().apply { putErrors(error) },
158
141
  )
159
- )
160
142
  }
161
- }
162
143
  }
163
- }
164
-
165
- private suspend fun configureValidationListener() {
166
- banksComponent?.componentValidationStatus?.collectLatest { validationStatus ->
167
- when (validationStatus) {
168
- is PrimerValidationStatus.Validating -> {
169
- sendEvent(
170
- PrimerHeadlessUniversalCheckoutComponentEvent.ON_VALIDATING.eventName,
171
- JSONObject().apply {
172
- putData(validationStatus.collectableData as BanksCollectableData)
173
- }
174
- )
175
- }
176
- is PrimerValidationStatus.Invalid -> {
177
- sendEvent(
178
- PrimerHeadlessUniversalCheckoutComponentEvent.ON_IN_VALID.eventName,
179
- JSONObject().apply {
180
- putData(validationStatus.collectableData as BanksCollectableData)
181
- putValidationErrors(validationStatus.validationErrors)
182
- }
183
- )
184
- }
185
- is PrimerValidationStatus.Valid -> {
186
- sendEvent(
187
- PrimerHeadlessUniversalCheckoutComponentEvent.ON_VALID.eventName,
188
- JSONObject().apply {
189
- putData(validationStatus.collectableData as BanksCollectableData)
190
- }
191
- )
192
- }
193
- is PrimerValidationStatus.Error -> {
194
- sendEvent(
195
- PrimerHeadlessUniversalCheckoutComponentEvent.ON_VALIDATION_ERROR.eventName,
196
- JSONObject().apply {
197
- putData(validationStatus.collectableData as BanksCollectableData)
198
- putErrors(validationStatus.error)
199
- }
200
- )
144
+
145
+ private suspend fun configureBanksListener() {
146
+ banksComponent?.componentStep?.collectLatest { banksStep ->
147
+ when (banksStep) {
148
+ is BanksStep.Loading -> {
149
+ sendEvent(
150
+ PrimerHeadlessUniversalCheckoutComponentEvent.ON_STEP.eventName,
151
+ JSONObject(json.encodeToString(banksStep.toLoadingRN())),
152
+ )
153
+ }
154
+
155
+ is BanksStep.BanksRetrieved -> {
156
+ sendEvent(
157
+ PrimerHeadlessUniversalCheckoutComponentEvent.ON_STEP.eventName,
158
+ JSONObject(
159
+ json.encodeToString(banksStep.toBanksRetrievedRN()),
160
+ ),
161
+ )
162
+ }
163
+ }
201
164
  }
202
- }
203
165
  }
204
- }
205
-
206
- private fun JSONObject.putData(collectableData: BanksCollectableData) {
207
- put(
208
- "data",
209
- JSONObject(
210
- json.encodeToString(
211
- when (collectableData) {
212
- is BanksCollectableData.BankId -> collectableData.toBankIdRN()
213
- is BanksCollectableData.Filter -> collectableData.toFilterRN()
166
+
167
+ private suspend fun configureValidationListener() {
168
+ banksComponent?.componentValidationStatus?.collectLatest { validationStatus ->
169
+ when (validationStatus) {
170
+ is PrimerValidationStatus.Validating -> {
171
+ sendEvent(
172
+ PrimerHeadlessUniversalCheckoutComponentEvent.ON_VALIDATING.eventName,
173
+ JSONObject().apply {
174
+ putData(validationStatus.collectableData as BanksCollectableData)
175
+ },
176
+ )
177
+ }
178
+
179
+ is PrimerValidationStatus.Invalid -> {
180
+ sendEvent(
181
+ PrimerHeadlessUniversalCheckoutComponentEvent.ON_IN_VALID.eventName,
182
+ JSONObject().apply {
183
+ putData(validationStatus.collectableData as BanksCollectableData)
184
+ putValidationErrors(validationStatus.validationErrors)
185
+ },
186
+ )
187
+ }
188
+
189
+ is PrimerValidationStatus.Valid -> {
190
+ sendEvent(
191
+ PrimerHeadlessUniversalCheckoutComponentEvent.ON_VALID.eventName,
192
+ JSONObject().apply {
193
+ putData(validationStatus.collectableData as BanksCollectableData)
194
+ },
195
+ )
196
+ }
197
+
198
+ is PrimerValidationStatus.Error -> {
199
+ sendEvent(
200
+ PrimerHeadlessUniversalCheckoutComponentEvent.ON_VALIDATION_ERROR.eventName,
201
+ JSONObject().apply {
202
+ putData(validationStatus.collectableData as BanksCollectableData)
203
+ putErrors(validationStatus.error)
204
+ },
205
+ )
206
+ }
214
207
  }
215
- )
208
+ }
209
+ }
210
+
211
+ private fun JSONObject.putData(collectableData: BanksCollectableData) {
212
+ put(
213
+ "data",
214
+ JSONObject(
215
+ json.encodeToString(
216
+ when (collectableData) {
217
+ is BanksCollectableData.BankId -> collectableData.toBankIdRN()
218
+ is BanksCollectableData.Filter -> collectableData.toFilterRN()
219
+ },
220
+ ),
221
+ ),
216
222
  )
217
- )
218
- }
219
-
220
- @ReactMethod fun addListener(eventName: String?) = Unit
221
-
222
- @ReactMethod fun removeListeners(count: Int?) = Unit
223
-
224
- private fun sendEvent(name: String, data: JSONObject?) {
225
- reactApplicationContext
226
- .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
227
- .emit(name, data.toWritableMap())
228
- }
229
-
230
- private fun sendEvent(name: String, data: JSONArray?) {
231
- reactApplicationContext
232
- .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
233
- .emit(name, data.toWritableArray())
234
- }
235
-
236
- @ReactMethod
237
- fun cleanUp(promise: Promise) {
238
- job?.cancel()
239
- job = null
240
- banksComponent = null
241
- viewModelStoreOwner?.viewModelStore?.clear()
242
- promise.resolve(null)
243
- }
244
-
245
- private companion object {
246
- const val UNINITIALIZED_ERROR =
247
- """
223
+ }
224
+
225
+ @ReactMethod
226
+ fun addListener(eventName: String?) = Unit
227
+
228
+ @ReactMethod
229
+ fun removeListeners(count: Int?) = Unit
230
+
231
+ private fun sendEvent(
232
+ name: String,
233
+ data: JSONObject?,
234
+ ) {
235
+ reactApplicationContext
236
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
237
+ .emit(name, data.toWritableMap())
238
+ }
239
+
240
+ private fun sendEvent(
241
+ name: String,
242
+ data: JSONArray?,
243
+ ) {
244
+ reactApplicationContext
245
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
246
+ .emit(name, data.toWritableArray())
247
+ }
248
+
249
+ @ReactMethod
250
+ fun cleanUp(promise: Promise) {
251
+ job?.cancel()
252
+ job = null
253
+ banksComponent = null
254
+ viewModelStoreOwner?.viewModelStore?.clear()
255
+ promise.resolve(null)
256
+ }
257
+
258
+ private companion object {
259
+ const val UNINITIALIZED_ERROR =
260
+ """
248
261
  The BanksComponent has not been initialized.
249
262
  Make sure you have initialized the `BanksComponent` first.
250
263
  """
251
264
 
252
- val json = Json { encodeDefaults = true }
253
- }
265
+ val json = Json { encodeDefaults = true }
266
+ }
254
267
  }
@@ -5,35 +5,32 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule
5
5
  import com.google.android.gms.wallet.button.ButtonConstants
6
6
 
7
7
  internal object PrimerGooglePayButtonOptionsMapping {
8
-
9
- fun getOptions(): Map<String, Map<String, Int>> {
10
- val themes = hashMapOf<String, Int>()
11
- themes["Dark"] = ButtonConstants.ButtonTheme.DARK
12
- themes["Light"] = ButtonConstants.ButtonTheme.LIGHT
13
-
14
- val types = hashMapOf<String, Int>()
15
- types["Book"] = ButtonConstants.ButtonType.BOOK
16
- types["Buy"] = ButtonConstants.ButtonType.BUY
17
- types["Checkout"] = ButtonConstants.ButtonType.CHECKOUT
18
- types["Donate"] = ButtonConstants.ButtonType.DONATE
19
- types["Order"] = ButtonConstants.ButtonType.ORDER
20
- types["Pay"] = ButtonConstants.ButtonType.PAY
21
- types["Plain"] = ButtonConstants.ButtonType.PLAIN
22
- types["Subscribe"] = ButtonConstants.ButtonType.SUBSCRIBE
23
-
24
- return hashMapOf("Themes" to themes, "Types" to types)
25
- }
8
+ fun getOptions(): Map<String, Map<String, Int>> {
9
+ val themes = hashMapOf<String, Int>()
10
+ themes["Dark"] = ButtonConstants.ButtonTheme.DARK
11
+ themes["Light"] = ButtonConstants.ButtonTheme.LIGHT
12
+
13
+ val types = hashMapOf<String, Int>()
14
+ types["Book"] = ButtonConstants.ButtonType.BOOK
15
+ types["Buy"] = ButtonConstants.ButtonType.BUY
16
+ types["Checkout"] = ButtonConstants.ButtonType.CHECKOUT
17
+ types["Donate"] = ButtonConstants.ButtonType.DONATE
18
+ types["Order"] = ButtonConstants.ButtonType.ORDER
19
+ types["Pay"] = ButtonConstants.ButtonType.PAY
20
+ types["Plain"] = ButtonConstants.ButtonType.PLAIN
21
+ types["Subscribe"] = ButtonConstants.ButtonType.SUBSCRIBE
22
+
23
+ return hashMapOf("Themes" to themes, "Types" to types)
24
+ }
26
25
  }
27
26
 
28
27
  class PrimerGooglePayButtonConstantsModule(reactContext: ReactApplicationContext) :
29
- ReactContextBaseJavaModule(reactContext) {
30
-
31
- override fun getConstants(): Map<String, Any> =
32
- PrimerGooglePayButtonOptionsMapping.getOptions()
28
+ ReactContextBaseJavaModule(reactContext) {
29
+ override fun getConstants(): Map<String, Any> = PrimerGooglePayButtonOptionsMapping.getOptions()
33
30
 
34
- override fun getName() = NAME
31
+ override fun getName() = NAME
35
32
 
36
- companion object {
37
- private const val NAME = "PrimerGooglePayButtonConstants"
38
- }
33
+ companion object {
34
+ private const val NAME = "PrimerGooglePayButtonConstants"
35
+ }
39
36
  }
@@ -8,31 +8,33 @@ import com.facebook.react.uimanager.ThemedReactContext
8
8
  import com.primerioreactnative.components.manager.NativeViewContainer
9
9
 
10
10
  class PrimerGooglePayButtonManager : SimpleViewManager<NativeViewContainer>() {
11
- override fun getName() = REACT_CLASS
12
-
13
- override fun createViewInstance(reactContext: ThemedReactContext): NativeViewContainer =
14
- NativeViewContainer(reactContext)
11
+ override fun getName() = REACT_CLASS
12
+
13
+ override fun createViewInstance(reactContext: ThemedReactContext): NativeViewContainer =
14
+ NativeViewContainer(
15
+ reactContext,
16
+ )
17
+
18
+ override fun onAfterUpdateTransaction(view: NativeViewContainer) {
19
+ super.onAfterUpdateTransaction(view)
20
+ view.addViewImpl(
21
+ getPrimerGooglePayButtonOrNull(view.context)
22
+ ?: TextView(view.context).apply { text = "Error loading Google Pay button" },
23
+ )
24
+ }
15
25
 
16
- override fun onAfterUpdateTransaction(view: NativeViewContainer) {
17
- super.onAfterUpdateTransaction(view)
18
- view.addViewImpl(
19
- getPrimerGooglePayButtonOrNull(view.context)
20
- ?: TextView(view.context).apply { text = "Error loading Google Pay button" }
21
- )
22
- }
26
+ private fun getPrimerGooglePayButtonOrNull(context: Context): View? {
27
+ return createPrimerGooglePayButton?.invoke(context) ?: return null
28
+ }
23
29
 
24
- private fun getPrimerGooglePayButtonOrNull(context: Context): View? {
25
- return createPrimerGooglePayButton?.invoke(context) ?: return null
26
- }
30
+ companion object {
31
+ var createPrimerGooglePayButton: ((context: Context) -> View)? = null
32
+ private set
27
33
 
28
- companion object {
29
- var createPrimerGooglePayButton: ((context: Context) -> View)? = null
30
- private set
34
+ fun updatePrimerGooglePayButtonCreator(creator: (context: Context) -> View) {
35
+ this.createPrimerGooglePayButton = creator
36
+ }
31
37
 
32
- fun updatePrimerGooglePayButtonCreator(creator: (context: Context) -> View) {
33
- this.createPrimerGooglePayButton = creator
38
+ const val REACT_CLASS = "PrimerGooglePayButton"
34
39
  }
35
-
36
- const val REACT_CLASS = "PrimerGooglePayButton"
37
- }
38
- }
40
+ }
@@ -1,7 +1,6 @@
1
1
  package com.primerioreactnative.components.manager.klarna
2
2
 
3
3
  import android.view.View
4
- import android.view.ViewGroup
5
4
  import android.widget.TextView
6
5
  import com.facebook.react.uimanager.SimpleViewManager
7
6
  import com.facebook.react.uimanager.ThemedReactContext
@@ -10,31 +9,33 @@ import io.primer.android.klarna.api.ui.PrimerKlarnaPaymentView
10
9
  import java.lang.ref.WeakReference
11
10
 
12
11
  class PrimerKlarnaPaymentViewManager : SimpleViewManager<NativeViewContainer>() {
13
- override fun getName() = REACT_CLASS
14
-
15
- override fun createViewInstance(reactContext: ThemedReactContext): NativeViewContainer =
16
- NativeViewContainer(reactContext)
12
+ override fun getName() = REACT_CLASS
13
+
14
+ override fun createViewInstance(reactContext: ThemedReactContext): NativeViewContainer =
15
+ NativeViewContainer(
16
+ reactContext,
17
+ )
18
+
19
+ override fun onAfterUpdateTransaction(view: NativeViewContainer) {
20
+ super.onAfterUpdateTransaction(view)
21
+ view.addViewImpl(
22
+ getPrimerKlarnaPaymentViewOrNull()
23
+ ?: TextView(view.context).apply { text = "Error loading Klarna payment view" },
24
+ )
25
+ }
17
26
 
18
- override fun onAfterUpdateTransaction(view: NativeViewContainer) {
19
- super.onAfterUpdateTransaction(view)
20
- view.addViewImpl(
21
- getPrimerKlarnaPaymentViewOrNull()
22
- ?: TextView(view.context).apply { text = "Error loading Klarna payment view" }
23
- )
24
- }
27
+ private fun getPrimerKlarnaPaymentViewOrNull(): View? {
28
+ return primerKlarnaPaymentView.get() ?: return null
29
+ }
25
30
 
26
- private fun getPrimerKlarnaPaymentViewOrNull(): View? {
27
- return primerKlarnaPaymentView.get() ?: return null
28
- }
31
+ companion object {
32
+ private var primerKlarnaPaymentView: WeakReference<PrimerKlarnaPaymentView?> = WeakReference(null)
33
+ private set
29
34
 
30
- companion object {
31
- private var primerKlarnaPaymentView: WeakReference<PrimerKlarnaPaymentView?> = WeakReference(null)
32
- private set
35
+ fun updatePrimerKlarnaPaymentView(view: PrimerKlarnaPaymentView) {
36
+ primerKlarnaPaymentView = WeakReference(view)
37
+ }
33
38
 
34
- fun updatePrimerKlarnaPaymentView(view: PrimerKlarnaPaymentView) {
35
- primerKlarnaPaymentView = WeakReference(view)
39
+ const val REACT_CLASS = "PrimerKlarnaPaymentView"
36
40
  }
37
-
38
- const val REACT_CLASS = "PrimerKlarnaPaymentView"
39
- }
40
41
  }