@primer-io/react-native 2.37.1 → 2.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +149 -0
- package/android/build.gradle +39 -83
- package/android/src/main/java/com/primerioreactnative/{PrimerRN.kt → DefaultNativePrimerModule.kt} +87 -79
- package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +29 -1
- package/android/src/main/java/com/primerioreactnative/components/manager/asset/PrimerRNHeadlessUniversalCheckoutAssetManager.kt +1 -2
- package/android/src/main/java/com/primerioreactnative/components/manager/nativeUi/PrimerRNHeadlessUniversalCheckoutNativeUiManager.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerSettingsRN.kt +4 -5
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerUIOptionsRN.kt +1 -2
- package/android/src/newarch/java/com/primerioreactnative/NativePrimerModule.kt +119 -0
- package/android/src/oldarch/java/com/primerioreactnative/NativePrimerModule.kt +134 -0
- package/ios/ReactNative.xcodeproj/project.pbxproj +14 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Ach/PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent.swift +1 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Ach/RNTAchMandateManager.swift +0 -1
- package/ios/Sources/Headless Universal Checkout/Managers/Klarna/PrimerRNHeadlessUniversalCheckoutKlarnaComponent.swift +1 -2
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNPrimerHeadlessUniversalCheckoutVaultManager.swift +1 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTNativeUIManager.swift +1 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTRawDataManager.swift +1 -0
- package/ios/Sources/Headless Universal Checkout/Managers/RNTRedirectManager.swift +1 -0
- package/ios/Sources/NativePrimer/RCTNativePrimer.h +20 -0
- package/ios/Sources/NativePrimer/RCTNativePrimer.mm +222 -0
- package/ios/Sources/RNTPrimer.swift +27 -40
- package/ios/Sources/version.swift +1 -1
- package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js +11 -8
- package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js +2 -0
- package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js +2 -0
- package/lib/module/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js +2 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js +15 -19
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js +2 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +15 -19
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js +15 -19
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js +2 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +11 -16
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.js +2 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js +3 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +30 -42
- package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js +2 -0
- package/lib/module/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/types.js +1 -0
- package/lib/module/HeadlessUniversalCheckout/types.js.map +1 -1
- package/lib/module/Primer.js +14 -13
- package/lib/module/Primer.js.map +1 -1
- package/lib/module/RNPrimer.js +23 -26
- package/lib/module/RNPrimer.js.map +1 -1
- package/lib/module/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js +2 -0
- package/lib/module/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +1 -1
- package/lib/module/index.js +28 -16
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/IssuingBank.js +1 -1
- package/lib/module/models/IssuingBank.js.map +1 -1
- package/lib/module/models/NamedComponentStep.js +1 -1
- package/lib/module/models/NamedComponentStep.js.map +1 -1
- package/lib/module/models/NamedComponentValidatableData.js +1 -1
- package/lib/module/models/NamedComponentValidatableData.js.map +1 -1
- package/lib/module/models/PrimerCheckoutAdditionalInfo.js +1 -1
- package/lib/module/models/PrimerCheckoutAdditionalInfo.js.map +1 -1
- package/lib/module/models/PrimerCheckoutData.js +2 -0
- package/lib/module/models/PrimerCheckoutData.js.map +1 -1
- package/lib/module/models/PrimerCheckoutPaymentMethodData.js +1 -1
- package/lib/module/models/PrimerCheckoutPaymentMethodData.js.map +1 -1
- package/lib/module/models/PrimerClientSession.js +1 -1
- package/lib/module/models/PrimerClientSession.js.map +1 -1
- package/lib/module/models/PrimerComponentDataValidation.js +2 -0
- package/lib/module/models/PrimerComponentDataValidation.js.map +1 -1
- package/lib/module/models/PrimerError.js +2 -0
- package/lib/module/models/PrimerError.js.map +1 -1
- package/lib/module/models/PrimerHandlers.js +1 -1
- package/lib/module/models/PrimerHandlers.js.map +1 -1
- package/lib/module/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js +1 -1
- package/lib/module/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js.map +1 -1
- package/lib/module/models/PrimerImplementedRNCallbacks.js +1 -1
- package/lib/module/models/PrimerImplementedRNCallbacks.js.map +1 -1
- package/lib/module/models/PrimerInitializationData.js +2 -0
- package/lib/module/models/PrimerInitializationData.js.map +1 -1
- package/lib/module/models/PrimerInputElementType.js +2 -0
- package/lib/module/models/PrimerInputElementType.js.map +1 -1
- package/lib/module/models/PrimerInterfaces.js +2 -0
- package/lib/module/models/PrimerInterfaces.js.map +1 -1
- package/lib/module/models/PrimerPaymentMethodManagerCategory.js +2 -0
- package/lib/module/models/PrimerPaymentMethodManagerCategory.js.map +1 -1
- package/lib/module/models/PrimerPaymentMethodResource.js +1 -1
- package/lib/module/models/PrimerPaymentMethodResource.js.map +1 -1
- package/lib/module/models/PrimerPaymentMethodTokenData.js +2 -0
- package/lib/module/models/PrimerPaymentMethodTokenData.js.map +1 -1
- package/lib/module/models/PrimerRawData.js +1 -1
- package/lib/module/models/PrimerRawData.js.map +1 -1
- package/lib/module/models/PrimerSessionIntent.js +2 -0
- package/lib/module/models/PrimerSessionIntent.js.map +1 -1
- package/lib/module/models/PrimerSettings.js +2 -0
- package/lib/module/models/PrimerSettings.js.map +1 -1
- package/lib/module/models/PrimerTheme.js +1 -1
- package/lib/module/models/PrimerTheme.js.map +1 -1
- package/lib/module/models/PrimerValidationError.js +1 -1
- package/lib/module/models/PrimerValidationError.js.map +1 -1
- package/lib/module/models/PrimerValidationErrorResult.js +2 -0
- package/lib/module/models/PrimerValidationErrorResult.js.map +1 -1
- package/lib/module/models/PrimerVaultedPaymentMethod.js +2 -0
- package/lib/module/models/PrimerVaultedPaymentMethod.js.map +1 -1
- package/lib/module/models/PrimerVaultedPaymentMethodAdditionalData.js +1 -1
- package/lib/module/models/PrimerVaultedPaymentMethodAdditionalData.js.map +1 -1
- package/lib/module/models/PrimerVaultedPaymentMethodResult.js +2 -0
- package/lib/module/models/PrimerVaultedPaymentMethodResult.js.map +1 -1
- package/lib/module/models/RetailOutletsRetail.js +1 -1
- package/lib/module/models/RetailOutletsRetail.js.map +1 -1
- package/lib/module/models/ach/AchCollectableData.js +2 -0
- package/lib/module/models/ach/AchCollectableData.js.map +1 -1
- package/lib/module/models/ach/AchSteps.js +2 -0
- package/lib/module/models/ach/AchSteps.js.map +1 -1
- package/lib/module/models/banks/BanksCollectableData.js +2 -0
- package/lib/module/models/banks/BanksCollectableData.js.map +1 -1
- package/lib/module/models/banks/BanksSteps.js +2 -0
- package/lib/module/models/banks/BanksSteps.js.map +1 -1
- package/lib/module/models/klarna/KlarnaPaymentCategory.js +1 -1
- package/lib/module/models/klarna/KlarnaPaymentCategory.js.map +1 -1
- package/lib/module/models/klarna/KlarnaPaymentCollectableData.js +2 -0
- package/lib/module/models/klarna/KlarnaPaymentCollectableData.js.map +1 -1
- package/lib/module/models/klarna/KlarnaPaymentSteps.js +2 -0
- package/lib/module/models/klarna/KlarnaPaymentSteps.js.map +1 -1
- package/lib/module/package.json +1 -0
- package/lib/module/specs/NativePrimer.js +6 -0
- package/lib/module/specs/NativePrimer.js.map +1 -0
- package/lib/module/utils/index.js +5 -3
- package/lib/module/utils/index.js.map +1 -1
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/{HeadlessUniversalCheckout → src/HeadlessUniversalCheckout}/Components/NativeResourceView.d.ts +1 -1
- package/lib/typescript/src/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts.map +1 -0
- package/lib/typescript/{HeadlessUniversalCheckout → src/HeadlessUniversalCheckout}/Components/PrimerGooglePayButton.d.ts +1 -1
- package/lib/typescript/src/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts.map +1 -0
- package/lib/typescript/src/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.d.ts.map +1 -0
- package/lib/typescript/{HeadlessUniversalCheckout → src/HeadlessUniversalCheckout}/Managers/AssetsManager.d.ts +2 -2
- package/lib/typescript/src/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts.map +1 -0
- package/lib/typescript/{HeadlessUniversalCheckout → src/HeadlessUniversalCheckout}/Managers/PaymentMethodManagers/AchManager.d.ts +6 -6
- package/lib/typescript/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.d.ts.map +1 -0
- package/lib/typescript/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.d.ts.map +1 -0
- package/lib/typescript/{HeadlessUniversalCheckout → src/HeadlessUniversalCheckout}/Managers/PaymentMethodManagers/ComponentWithRedirectManager.d.ts +6 -6
- package/lib/typescript/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.d.ts.map +1 -0
- package/lib/typescript/{HeadlessUniversalCheckout → src/HeadlessUniversalCheckout}/Managers/PaymentMethodManagers/KlarnaManager.d.ts +7 -7
- package/lib/typescript/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.d.ts.map +1 -0
- package/lib/typescript/{HeadlessUniversalCheckout → src/HeadlessUniversalCheckout}/Managers/PaymentMethodManagers/NativeUIManager.d.ts +1 -1
- package/lib/typescript/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.d.ts.map +1 -0
- package/lib/typescript/{HeadlessUniversalCheckout → src/HeadlessUniversalCheckout}/Managers/PaymentMethodManagers/RawDataManager.d.ts +2 -2
- package/lib/typescript/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts.map +1 -0
- package/lib/typescript/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.d.ts.map +1 -0
- package/lib/typescript/{HeadlessUniversalCheckout → src/HeadlessUniversalCheckout}/Managers/VaultManager.d.ts +3 -3
- package/lib/typescript/src/HeadlessUniversalCheckout/Managers/VaultManager.d.ts.map +1 -0
- package/lib/typescript/src/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.d.ts.map +1 -0
- package/lib/typescript/{HeadlessUniversalCheckout → src/HeadlessUniversalCheckout}/RNPrimerHeadlessUniversalCheckout.d.ts +1 -2
- package/lib/typescript/src/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.d.ts.map +1 -0
- package/lib/typescript/src/HeadlessUniversalCheckout/types.d.ts.map +1 -0
- package/lib/typescript/src/Primer.d.ts.map +1 -0
- package/lib/typescript/{RNPrimer.d.ts → src/RNPrimer.d.ts} +2 -7
- package/lib/typescript/src/RNPrimer.d.ts.map +1 -0
- package/lib/typescript/src/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.d.ts.map +1 -0
- package/lib/typescript/{index.d.ts → src/index.d.ts} +35 -16
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/models/IssuingBank.d.ts.map +1 -0
- package/lib/typescript/src/models/NamedComponentStep.d.ts.map +1 -0
- package/lib/typescript/src/models/NamedComponentValidatableData.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerCheckoutAdditionalInfo.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerCheckoutData.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerCheckoutPaymentMethodData.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerClientSession.d.ts.map +1 -0
- package/lib/typescript/{models → src/models}/PrimerComponentDataValidation.d.ts +2 -2
- package/lib/typescript/src/models/PrimerComponentDataValidation.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerError.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerHandlers.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerImplementedRNCallbacks.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerInitializationData.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerInputElementType.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerInterfaces.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerPaymentMethodManagerCategory.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerPaymentMethodResource.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerPaymentMethodTokenData.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerRawData.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerSessionIntent.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerSettings.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerTheme.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerValidationError.d.ts.map +1 -0
- package/lib/typescript/{models → src/models}/PrimerValidationErrorResult.d.ts +1 -1
- package/lib/typescript/src/models/PrimerValidationErrorResult.d.ts.map +1 -0
- package/lib/typescript/{models → src/models}/PrimerVaultedPaymentMethod.d.ts +1 -1
- package/lib/typescript/src/models/PrimerVaultedPaymentMethod.d.ts.map +1 -0
- package/lib/typescript/src/models/PrimerVaultedPaymentMethodAdditionalData.d.ts.map +1 -0
- package/lib/typescript/{models → src/models}/PrimerVaultedPaymentMethodResult.d.ts +1 -1
- package/lib/typescript/src/models/PrimerVaultedPaymentMethodResult.d.ts.map +1 -0
- package/lib/typescript/src/models/RetailOutletsRetail.d.ts.map +1 -0
- package/lib/typescript/{models → src/models}/ach/AchCollectableData.d.ts +1 -1
- package/lib/typescript/src/models/ach/AchCollectableData.d.ts.map +1 -0
- package/lib/typescript/{models → src/models}/ach/AchSteps.d.ts +1 -1
- package/lib/typescript/src/models/ach/AchSteps.d.ts.map +1 -0
- package/lib/typescript/{models → src/models}/banks/BanksCollectableData.d.ts +1 -1
- package/lib/typescript/src/models/banks/BanksCollectableData.d.ts.map +1 -0
- package/lib/typescript/{models → src/models}/banks/BanksSteps.d.ts +2 -2
- package/lib/typescript/src/models/banks/BanksSteps.d.ts.map +1 -0
- package/lib/typescript/src/models/klarna/KlarnaPaymentCategory.d.ts.map +1 -0
- package/lib/typescript/{models → src/models}/klarna/KlarnaPaymentCollectableData.d.ts +2 -2
- package/lib/typescript/src/models/klarna/KlarnaPaymentCollectableData.d.ts.map +1 -0
- package/lib/typescript/{models → src/models}/klarna/KlarnaPaymentSteps.d.ts +2 -2
- package/lib/typescript/src/models/klarna/KlarnaPaymentSteps.d.ts.map +1 -0
- package/lib/typescript/src/specs/NativePrimer.d.ts +27 -0
- package/lib/typescript/src/specs/NativePrimer.d.ts.map +1 -0
- package/lib/typescript/src/utils/index.d.ts.map +1 -0
- package/package.json +68 -26
- package/primer-io-react-native.podspec +3 -1
- package/src/HeadlessUniversalCheckout/Components/NativeResourceView.tsx +2 -1
- package/src/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.tsx +2 -1
- package/src/HeadlessUniversalCheckout/Managers/AssetsManager.ts +2 -2
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.ts +9 -7
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.ts +9 -7
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.ts +13 -8
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.ts +1 -1
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.ts +3 -2
- package/src/HeadlessUniversalCheckout/Managers/VaultManager.ts +5 -5
- package/src/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.ts +2 -2
- package/src/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.ts +2 -2
- package/src/RNPrimer.ts +27 -45
- package/src/index.tsx +43 -18
- package/src/models/PrimerComponentDataValidation.ts +2 -2
- package/src/models/PrimerValidationErrorResult.ts +1 -1
- package/src/models/PrimerVaultedPaymentMethod.ts +1 -1
- package/src/models/PrimerVaultedPaymentMethodResult.ts +1 -1
- package/src/models/ach/AchCollectableData.ts +1 -1
- package/src/models/ach/AchSteps.ts +1 -1
- package/src/models/banks/BanksCollectableData.ts +1 -1
- package/src/models/banks/BanksSteps.ts +2 -2
- package/src/models/klarna/KlarnaPaymentCollectableData.ts +2 -2
- package/src/models/klarna/KlarnaPaymentSteps.ts +2 -2
- package/src/specs/NativePrimer.ts +43 -0
- package/src/utils/index.ts +3 -3
- package/android/.editorconfig +0 -2
- package/android/.project +0 -34
- package/android/.settings/org.eclipse.buildship.core.prefs +0 -13
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +0 -5
- package/android/gradlew +0 -183
- package/android/gradlew.bat +0 -100
- package/ios/Pods/Manifest.lock +0 -3
- package/ios/Pods/Pods.xcodeproj/project.pbxproj +0 -352
- package/ios/Pods/Target Support Files/Pods-ReactNative/Pods-ReactNative-acknowledgements.markdown +0 -3
- package/ios/Pods/Target Support Files/Pods-ReactNative/Pods-ReactNative-acknowledgements.plist +0 -29
- package/ios/Pods/Target Support Files/Pods-ReactNative/Pods-ReactNative-dummy.m +0 -5
- package/ios/Pods/Target Support Files/Pods-ReactNative/Pods-ReactNative.debug.xcconfig +0 -8
- package/ios/Pods/Target Support Files/Pods-ReactNative/Pods-ReactNative.release.xcconfig +0 -8
- package/ios/Sources/RNTPrimer.m +0 -86
- package/lib/commonjs/HeadlessUniversalCheckout/Components/NativeResourceView.js +0 -30
- package/lib/commonjs/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +0 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js +0 -9
- package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +0 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js +0 -9
- package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js.map +0 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js +0 -90
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +0 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js +0 -106
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js.map +0 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js +0 -38
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js.map +0 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +0 -109
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +0 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js +0 -105
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +0 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js +0 -34
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +0 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +0 -148
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +0 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.js +0 -8
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.js.map +0 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js +0 -107
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js.map +0 -1
- package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +0 -269
- package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +0 -1
- package/lib/commonjs/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js +0 -120
- package/lib/commonjs/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +0 -1
- package/lib/commonjs/HeadlessUniversalCheckout/types.js +0 -34
- package/lib/commonjs/HeadlessUniversalCheckout/types.js.map +0 -1
- package/lib/commonjs/Primer.js +0 -269
- package/lib/commonjs/Primer.js.map +0 -1
- package/lib/commonjs/RNPrimer.js +0 -219
- package/lib/commonjs/RNPrimer.js.map +0 -1
- package/lib/commonjs/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js +0 -12
- package/lib/commonjs/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +0 -1
- package/lib/commonjs/index.js +0 -125
- package/lib/commonjs/index.js.map +0 -1
- package/lib/commonjs/models/IssuingBank.js +0 -2
- package/lib/commonjs/models/IssuingBank.js.map +0 -1
- package/lib/commonjs/models/NamedComponentStep.js +0 -2
- package/lib/commonjs/models/NamedComponentStep.js.map +0 -1
- package/lib/commonjs/models/NamedComponentValidatableData.js +0 -2
- package/lib/commonjs/models/NamedComponentValidatableData.js.map +0 -1
- package/lib/commonjs/models/PrimerCheckoutAdditionalInfo.js +0 -2
- package/lib/commonjs/models/PrimerCheckoutAdditionalInfo.js.map +0 -1
- package/lib/commonjs/models/PrimerCheckoutData.js +0 -11
- package/lib/commonjs/models/PrimerCheckoutData.js.map +0 -1
- package/lib/commonjs/models/PrimerCheckoutPaymentMethodData.js +0 -2
- package/lib/commonjs/models/PrimerCheckoutPaymentMethodData.js.map +0 -1
- package/lib/commonjs/models/PrimerClientSession.js +0 -2
- package/lib/commonjs/models/PrimerClientSession.js.map +0 -1
- package/lib/commonjs/models/PrimerComponentDataValidation.js +0 -6
- package/lib/commonjs/models/PrimerComponentDataValidation.js.map +0 -1
- package/lib/commonjs/models/PrimerCountryCode.js +0 -4
- package/lib/commonjs/models/PrimerCountryCode.js.map +0 -1
- package/lib/commonjs/models/PrimerCurrencyCode.js +0 -4
- package/lib/commonjs/models/PrimerCurrencyCode.js.map +0 -1
- package/lib/commonjs/models/PrimerError.js +0 -18
- package/lib/commonjs/models/PrimerError.js.map +0 -1
- package/lib/commonjs/models/PrimerHandlers.js +0 -2
- package/lib/commonjs/models/PrimerHandlers.js.map +0 -1
- package/lib/commonjs/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js +0 -2
- package/lib/commonjs/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js.map +0 -1
- package/lib/commonjs/models/PrimerImplementedRNCallbacks.js +0 -2
- package/lib/commonjs/models/PrimerImplementedRNCallbacks.js.map +0 -1
- package/lib/commonjs/models/PrimerInitializationData.js +0 -6
- package/lib/commonjs/models/PrimerInitializationData.js.map +0 -1
- package/lib/commonjs/models/PrimerInputElementType.js +0 -19
- package/lib/commonjs/models/PrimerInputElementType.js.map +0 -1
- package/lib/commonjs/models/PrimerInterfaces.js +0 -6
- package/lib/commonjs/models/PrimerInterfaces.js.map +0 -1
- package/lib/commonjs/models/PrimerPaymentMethodManagerCategory.js +0 -13
- package/lib/commonjs/models/PrimerPaymentMethodManagerCategory.js.map +0 -1
- package/lib/commonjs/models/PrimerPaymentMethodResource.js +0 -2
- package/lib/commonjs/models/PrimerPaymentMethodResource.js.map +0 -1
- package/lib/commonjs/models/PrimerPaymentMethodTokenData.js +0 -12
- package/lib/commonjs/models/PrimerPaymentMethodTokenData.js.map +0 -1
- package/lib/commonjs/models/PrimerRawData.js +0 -2
- package/lib/commonjs/models/PrimerRawData.js.map +0 -1
- package/lib/commonjs/models/PrimerSessionIntent.js +0 -12
- package/lib/commonjs/models/PrimerSessionIntent.js.map +0 -1
- package/lib/commonjs/models/PrimerSettings.js +0 -6
- package/lib/commonjs/models/PrimerSettings.js.map +0 -1
- package/lib/commonjs/models/PrimerTheme.js +0 -2
- package/lib/commonjs/models/PrimerTheme.js.map +0 -1
- package/lib/commonjs/models/PrimerValidationError.js +0 -2
- package/lib/commonjs/models/PrimerValidationError.js.map +0 -1
- package/lib/commonjs/models/PrimerValidationErrorResult.js +0 -6
- package/lib/commonjs/models/PrimerValidationErrorResult.js.map +0 -1
- package/lib/commonjs/models/PrimerVaultedPaymentMethod.js +0 -6
- package/lib/commonjs/models/PrimerVaultedPaymentMethod.js.map +0 -1
- package/lib/commonjs/models/PrimerVaultedPaymentMethodAdditionalData.js +0 -2
- package/lib/commonjs/models/PrimerVaultedPaymentMethodAdditionalData.js.map +0 -1
- package/lib/commonjs/models/PrimerVaultedPaymentMethodResult.js +0 -6
- package/lib/commonjs/models/PrimerVaultedPaymentMethodResult.js.map +0 -1
- package/lib/commonjs/models/RetailOutletsRetail.js +0 -2
- package/lib/commonjs/models/RetailOutletsRetail.js.map +0 -1
- package/lib/commonjs/models/ach/AchCollectableData.js +0 -6
- package/lib/commonjs/models/ach/AchCollectableData.js.map +0 -1
- package/lib/commonjs/models/ach/AchSteps.js +0 -6
- package/lib/commonjs/models/ach/AchSteps.js.map +0 -1
- package/lib/commonjs/models/banks/BanksCollectableData.js +0 -6
- package/lib/commonjs/models/banks/BanksCollectableData.js.map +0 -1
- package/lib/commonjs/models/banks/BanksSteps.js +0 -6
- package/lib/commonjs/models/banks/BanksSteps.js.map +0 -1
- package/lib/commonjs/models/klarna/KlarnaPaymentCategory.js +0 -2
- package/lib/commonjs/models/klarna/KlarnaPaymentCategory.js.map +0 -1
- package/lib/commonjs/models/klarna/KlarnaPaymentCollectableData.js +0 -6
- package/lib/commonjs/models/klarna/KlarnaPaymentCollectableData.js.map +0 -1
- package/lib/commonjs/models/klarna/KlarnaPaymentSteps.js +0 -6
- package/lib/commonjs/models/klarna/KlarnaPaymentSteps.js.map +0 -1
- package/lib/commonjs/utils/index.js +0 -39
- package/lib/commonjs/utils/index.js.map +0 -1
- package/lib/module/models/PrimerCountryCode.js +0 -2
- package/lib/module/models/PrimerCountryCode.js.map +0 -1
- package/lib/module/models/PrimerCurrencyCode.js +0 -2
- package/lib/module/models/PrimerCurrencyCode.js.map +0 -1
- package/lib/typescript/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts.map +0 -1
- package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts.map +0 -1
- package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.d.ts.map +0 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts.map +0 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.d.ts.map +0 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.d.ts.map +0 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.d.ts.map +0 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.d.ts.map +0 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.d.ts.map +0 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts.map +0 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.d.ts.map +0 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/VaultManager.d.ts.map +0 -1
- package/lib/typescript/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.d.ts.map +0 -1
- package/lib/typescript/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.d.ts.map +0 -1
- package/lib/typescript/HeadlessUniversalCheckout/types.d.ts.map +0 -1
- package/lib/typescript/Primer.d.ts.map +0 -1
- package/lib/typescript/RNPrimer.d.ts.map +0 -1
- package/lib/typescript/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.d.ts.map +0 -1
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/models/IssuingBank.d.ts.map +0 -1
- package/lib/typescript/models/NamedComponentStep.d.ts.map +0 -1
- package/lib/typescript/models/NamedComponentValidatableData.d.ts.map +0 -1
- package/lib/typescript/models/PrimerCheckoutAdditionalInfo.d.ts.map +0 -1
- package/lib/typescript/models/PrimerCheckoutData.d.ts.map +0 -1
- package/lib/typescript/models/PrimerCheckoutPaymentMethodData.d.ts.map +0 -1
- package/lib/typescript/models/PrimerClientSession.d.ts.map +0 -1
- package/lib/typescript/models/PrimerComponentDataValidation.d.ts.map +0 -1
- package/lib/typescript/models/PrimerCountryCode.d.ts +0 -4
- package/lib/typescript/models/PrimerCountryCode.d.ts.map +0 -1
- package/lib/typescript/models/PrimerCurrencyCode.d.ts +0 -4
- package/lib/typescript/models/PrimerCurrencyCode.d.ts.map +0 -1
- package/lib/typescript/models/PrimerError.d.ts.map +0 -1
- package/lib/typescript/models/PrimerHandlers.d.ts.map +0 -1
- package/lib/typescript/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts.map +0 -1
- package/lib/typescript/models/PrimerImplementedRNCallbacks.d.ts.map +0 -1
- package/lib/typescript/models/PrimerInitializationData.d.ts.map +0 -1
- package/lib/typescript/models/PrimerInputElementType.d.ts.map +0 -1
- package/lib/typescript/models/PrimerInterfaces.d.ts.map +0 -1
- package/lib/typescript/models/PrimerPaymentMethodManagerCategory.d.ts.map +0 -1
- package/lib/typescript/models/PrimerPaymentMethodResource.d.ts.map +0 -1
- package/lib/typescript/models/PrimerPaymentMethodTokenData.d.ts.map +0 -1
- package/lib/typescript/models/PrimerRawData.d.ts.map +0 -1
- package/lib/typescript/models/PrimerSessionIntent.d.ts.map +0 -1
- package/lib/typescript/models/PrimerSettings.d.ts.map +0 -1
- package/lib/typescript/models/PrimerTheme.d.ts.map +0 -1
- package/lib/typescript/models/PrimerValidationError.d.ts.map +0 -1
- package/lib/typescript/models/PrimerValidationErrorResult.d.ts.map +0 -1
- package/lib/typescript/models/PrimerVaultedPaymentMethod.d.ts.map +0 -1
- package/lib/typescript/models/PrimerVaultedPaymentMethodAdditionalData.d.ts.map +0 -1
- package/lib/typescript/models/PrimerVaultedPaymentMethodResult.d.ts.map +0 -1
- package/lib/typescript/models/RetailOutletsRetail.d.ts.map +0 -1
- package/lib/typescript/models/ach/AchCollectableData.d.ts.map +0 -1
- package/lib/typescript/models/ach/AchSteps.d.ts.map +0 -1
- package/lib/typescript/models/banks/BanksCollectableData.d.ts.map +0 -1
- package/lib/typescript/models/banks/BanksSteps.d.ts.map +0 -1
- package/lib/typescript/models/klarna/KlarnaPaymentCategory.d.ts.map +0 -1
- package/lib/typescript/models/klarna/KlarnaPaymentCollectableData.d.ts.map +0 -1
- package/lib/typescript/models/klarna/KlarnaPaymentSteps.d.ts.map +0 -1
- package/lib/typescript/utils/index.d.ts.map +0 -1
- package/src/models/PrimerCountryCode.ts +0 -249
- package/src/models/PrimerCurrencyCode.ts +0 -182
- /package/lib/typescript/{HeadlessUniversalCheckout → src/HeadlessUniversalCheckout}/Components/PrimerKlarnaPaymentView.d.ts +0 -0
- /package/lib/typescript/{HeadlessUniversalCheckout → src/HeadlessUniversalCheckout}/Managers/PaymentMethodManagers/AchMandateManager.d.ts +0 -0
- /package/lib/typescript/{HeadlessUniversalCheckout → src/HeadlessUniversalCheckout}/Managers/PaymentMethodManagers/Utils/EventType.d.ts +0 -0
- /package/lib/typescript/{HeadlessUniversalCheckout → src/HeadlessUniversalCheckout}/PrimerHeadlessUniversalCheckout.d.ts +0 -0
- /package/lib/typescript/{HeadlessUniversalCheckout → src/HeadlessUniversalCheckout}/types.d.ts +0 -0
- /package/lib/typescript/{Primer.d.ts → src/Primer.d.ts} +0 -0
- /package/lib/typescript/{RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.d.ts → src/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.d.ts} +0 -0
- /package/lib/typescript/{models → src/models}/IssuingBank.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/NamedComponentStep.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/NamedComponentValidatableData.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerCheckoutAdditionalInfo.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerCheckoutData.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerCheckoutPaymentMethodData.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerClientSession.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerError.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerHandlers.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerImplementedRNCallbacks.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerInitializationData.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerInputElementType.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerInterfaces.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerPaymentMethodManagerCategory.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerPaymentMethodResource.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerPaymentMethodTokenData.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerRawData.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerSessionIntent.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerSettings.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerTheme.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerValidationError.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/PrimerVaultedPaymentMethodAdditionalData.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/RetailOutletsRetail.d.ts +0 -0
- /package/lib/typescript/{models → src/models}/klarna/KlarnaPaymentCategory.d.ts +0 -0
- /package/lib/typescript/{utils → src/utils}/index.d.ts +0 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2020 Primer Ltd.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
<h1 align="center">Primer React Native SDK</h1>
|
|
2
|
+
|
|
3
|
+
<h3 align="center">
|
|
4
|
+
|
|
5
|
+
Official React Native SDK plugin for [Primer](https://primer.io)
|
|
6
|
+
|
|
7
|
+
</h3>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<img src="https://img.shields.io/npm/v/@primer-io/react-native" />
|
|
11
|
+
</p>
|
|
12
|
+
|
|
13
|
+
**Note:** This quick start guide addresses the platform-specific integration points only. As everything prior to that (e.g. creating a client token) is the same for all the guidelines.
|
|
14
|
+
|
|
15
|
+
# Set up the Universal Checkout
|
|
16
|
+
|
|
17
|
+
## Step 1. Install the SDK
|
|
18
|
+
|
|
19
|
+
Add the SDK package.
|
|
20
|
+
|
|
21
|
+
```sh
|
|
22
|
+
\# With yarn
|
|
23
|
+
yarn add @primer-io/react-native
|
|
24
|
+
|
|
25
|
+
\# With npm
|
|
26
|
+
npm i @primer-io/react-native --save
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Once you are done, navigate to the \/ios folder and run pod install.
|
|
30
|
+
|
|
31
|
+
## Step 2. Initialize the SDK
|
|
32
|
+
|
|
33
|
+
Import the Primer SDK, construct your settings and call the SDK’s configure function.
|
|
34
|
+
|
|
35
|
+
```js
|
|
36
|
+
import * as React from 'react';
|
|
37
|
+
import {
|
|
38
|
+
Primer,
|
|
39
|
+
PrimerSettings,
|
|
40
|
+
PrimerCheckoutData
|
|
41
|
+
} from '@primer-io/react-native';
|
|
42
|
+
|
|
43
|
+
const CheckoutScreen = (props: any) => {
|
|
44
|
+
|
|
45
|
+
const onCheckoutComplete = (checkoutData: PrimerCheckoutData) => {
|
|
46
|
+
// Perform an action based on the payment creation response
|
|
47
|
+
// ex. show success screen, redirect to order confirmation view, etc.
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
React.useEffect(() => {
|
|
51
|
+
const settings: PrimerSettings = {
|
|
52
|
+
onCheckoutComplete: onCheckoutComplete
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
Primer.configure(settings)
|
|
56
|
+
.then(() => {
|
|
57
|
+
// SDK is initialized sucessfully
|
|
58
|
+
})
|
|
59
|
+
.catch (err => {
|
|
60
|
+
// SDK failed to initialize
|
|
61
|
+
})
|
|
62
|
+
}, []);
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Step 3. Generate a client token
|
|
67
|
+
|
|
68
|
+
**Note:** Check our guide on how to set up the client session [here](https://primer.io/docs/accept-payments/manage-client-sessions).
|
|
69
|
+
|
|
70
|
+
Make an API call to your backend to fetch a Client Token. Here is a simple example of how it can be done from your component. Once successful store your Client Token for future use.
|
|
71
|
+
|
|
72
|
+
```js
|
|
73
|
+
const CheckoutScreen = (props: any) => {
|
|
74
|
+
|
|
75
|
+
// ...
|
|
76
|
+
|
|
77
|
+
const onUniversalCheckoutButtonTapped = async () => {
|
|
78
|
+
try {
|
|
79
|
+
// Make an API request to your backend to create a client session
|
|
80
|
+
// and fetch a client token.
|
|
81
|
+
const clientToken = await createClientSession(clientSessionRequestParams);
|
|
82
|
+
} catch (err) {
|
|
83
|
+
// ...
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Step 4. Show Universal Checkout
|
|
90
|
+
|
|
91
|
+
At this step, you should have a Client Token available. Call the `showUniversalCheckout(clientToken)` function, with the Client Token (as shown below) to present Universal Checkout.
|
|
92
|
+
|
|
93
|
+
```js
|
|
94
|
+
const CheckoutScreen = (props: any) => {
|
|
95
|
+
|
|
96
|
+
// ...
|
|
97
|
+
|
|
98
|
+
const onUniversalCheckoutButtonTapped = async () => {
|
|
99
|
+
try {
|
|
100
|
+
// ...
|
|
101
|
+
|
|
102
|
+
// Present Universal Checkout
|
|
103
|
+
await Primer.showUniversalCheckout(clientToken);
|
|
104
|
+
} catch (err) {
|
|
105
|
+
// ...
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Full Code Snippet
|
|
112
|
+
|
|
113
|
+
```js
|
|
114
|
+
import * as React from 'react';
|
|
115
|
+
import {
|
|
116
|
+
Primer,
|
|
117
|
+
PrimerSettings,
|
|
118
|
+
PrimerCheckoutData
|
|
119
|
+
} from '@primer-io/react-native';
|
|
120
|
+
|
|
121
|
+
const CheckoutScreen = async (props: any) => {
|
|
122
|
+
const onCheckoutComplete = (checkoutData: PrimerCheckoutData) => {
|
|
123
|
+
// Show a success screen
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
const onUniversalCheckoutButtonTapped = async () => {
|
|
127
|
+
const settings: PrimerSettings = {
|
|
128
|
+
onCheckoutComplete: onCheckoutComplete
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
// Configure the SDK
|
|
132
|
+
await Primer.configure(settings);
|
|
133
|
+
|
|
134
|
+
// Ask your backend to create a client session
|
|
135
|
+
const clientToken = await createClientSession(clientSessionRequestParams);
|
|
136
|
+
|
|
137
|
+
// Present Universal Checkout
|
|
138
|
+
await Primer.showUniversalCheckout(clientToken);
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
You should now be able to see Universal Checkout! The user can now interact with Universal Checkout, and the SDK will create the payment. The payment’s data will be returned in the onCheckoutComplete callback configured in Step 2.
|
|
144
|
+
|
|
145
|
+
**Note:** For more info & help troubleshooting, check out our [docs](http://primer.io/docs).
|
|
146
|
+
|
|
147
|
+
## 📚 License
|
|
148
|
+
|
|
149
|
+
Distributed under the MIT License. See [LICENSE](./LICENSE) for more information.
|
package/android/build.gradle
CHANGED
|
@@ -12,7 +12,7 @@ buildscript {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
dependencies {
|
|
15
|
-
classpath 'com.android.tools.build:gradle:8.
|
|
15
|
+
classpath 'com.android.tools.build:gradle:8.13.0'
|
|
16
16
|
// noinspection DifferentKotlinGradleVersion
|
|
17
17
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
|
18
18
|
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
|
|
@@ -23,6 +23,7 @@ buildscript {
|
|
|
23
23
|
|
|
24
24
|
apply plugin: 'com.android.library'
|
|
25
25
|
apply plugin: 'kotlin-android'
|
|
26
|
+
apply plugin: "com.facebook.react"
|
|
26
27
|
apply plugin: 'kotlinx-serialization'
|
|
27
28
|
apply plugin: 'io.gitlab.arturbosch.detekt'
|
|
28
29
|
apply from: "./config/coverage-scripts/kover.gradle"
|
|
@@ -35,6 +36,10 @@ def getExtOrIntegerDefault(name) {
|
|
|
35
36
|
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties['ReactNative_' + name]).toInteger()
|
|
36
37
|
}
|
|
37
38
|
|
|
39
|
+
def isNewArchitectureEnabled() {
|
|
40
|
+
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
|
|
41
|
+
}
|
|
42
|
+
|
|
38
43
|
java {
|
|
39
44
|
toolchain {
|
|
40
45
|
languageVersion.set(JavaLanguageVersion.of(17))
|
|
@@ -48,6 +53,7 @@ android {
|
|
|
48
53
|
defaultConfig {
|
|
49
54
|
minSdkVersion 21
|
|
50
55
|
targetSdkVersion getExtOrIntegerDefault('targetSdkVersion')
|
|
56
|
+
buildConfigField("boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString())
|
|
51
57
|
|
|
52
58
|
testInstrumentationRunnerArguments runnerBuilder: 'de.mannodermaus.junit5.AndroidJUnit5Builder'
|
|
53
59
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
@@ -79,99 +85,49 @@ android {
|
|
|
79
85
|
useJUnitPlatform()
|
|
80
86
|
}
|
|
81
87
|
}
|
|
88
|
+
|
|
89
|
+
sourceSets {
|
|
90
|
+
main {
|
|
91
|
+
java.srcDirs += [
|
|
92
|
+
"generated/java",
|
|
93
|
+
"generated/jni"
|
|
94
|
+
]
|
|
95
|
+
|
|
96
|
+
if (isNewArchitectureEnabled()) {
|
|
97
|
+
java.srcDirs += ['src/newarch']
|
|
98
|
+
} else {
|
|
99
|
+
java.srcDirs += ['src/oldarch']
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
82
103
|
}
|
|
83
104
|
|
|
84
105
|
repositories {
|
|
85
106
|
mavenLocal()
|
|
86
107
|
mavenCentral()
|
|
87
108
|
google()
|
|
88
|
-
|
|
89
|
-
def found = false
|
|
90
|
-
def defaultDir = null
|
|
91
|
-
def androidSourcesName = 'React Native sources'
|
|
92
|
-
|
|
93
|
-
if (rootProject.ext.has('reactNativeAndroidRoot')) {
|
|
94
|
-
defaultDir = rootProject.ext.get('reactNativeAndroidRoot')
|
|
95
|
-
} else {
|
|
96
|
-
defaultDir = new File(
|
|
97
|
-
projectDir,
|
|
98
|
-
'/../../../node_modules/react-native/android'
|
|
99
|
-
)
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
if (defaultDir.exists()) {
|
|
103
|
-
maven {
|
|
104
|
-
url defaultDir.toString()
|
|
105
|
-
name androidSourcesName
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
logger.info(":${project.name}:reactNativeAndroidRoot ${defaultDir.canonicalPath}")
|
|
109
|
-
found = true
|
|
110
|
-
} else {
|
|
111
|
-
def parentDir = rootProject.projectDir
|
|
112
|
-
|
|
113
|
-
1.upto(5, {
|
|
114
|
-
if (found) return true
|
|
115
|
-
parentDir = parentDir.parentFile
|
|
116
|
-
|
|
117
|
-
def androidSourcesDir = new File(
|
|
118
|
-
parentDir,
|
|
119
|
-
'node_modules/react-native'
|
|
120
|
-
)
|
|
121
|
-
|
|
122
|
-
def androidPrebuiltBinaryDir = new File(
|
|
123
|
-
parentDir,
|
|
124
|
-
'node_modules/react-native/android'
|
|
125
|
-
)
|
|
126
|
-
|
|
127
|
-
if (androidPrebuiltBinaryDir.exists()) {
|
|
128
|
-
maven {
|
|
129
|
-
url androidPrebuiltBinaryDir.toString()
|
|
130
|
-
name androidSourcesName
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
logger.info(":${project.name}:reactNativeAndroidRoot ${androidPrebuiltBinaryDir.canonicalPath}")
|
|
134
|
-
found = true
|
|
135
|
-
} else if (androidSourcesDir.exists()) {
|
|
136
|
-
maven {
|
|
137
|
-
url androidSourcesDir.toString()
|
|
138
|
-
name androidSourcesName
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
logger.info(":${project.name}:reactNativeAndroidRoot ${androidSourcesDir.canonicalPath}")
|
|
142
|
-
found = true
|
|
143
|
-
}
|
|
144
|
-
})
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
if (!found) {
|
|
148
|
-
throw new GradleException(
|
|
149
|
-
"${project.name}: unable to locate React Native android sources. " +
|
|
150
|
-
"Ensure you have you installed React Native as a dependency in your project and try again."
|
|
151
|
-
)
|
|
152
|
-
}
|
|
153
109
|
}
|
|
154
110
|
|
|
155
111
|
detekt {
|
|
156
|
-
|
|
157
|
-
|
|
112
|
+
buildUponDefaultConfig = true
|
|
113
|
+
def defaultConfig = file("$rootDir/tooling/code-analysis/detekt.yml")
|
|
158
114
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
115
|
+
if (defaultConfig.exists()) {
|
|
116
|
+
config.setFrom(files(defaultConfig))
|
|
117
|
+
}
|
|
162
118
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
119
|
+
debug = true
|
|
120
|
+
parallel = true
|
|
121
|
+
disableDefaultRuleSets = false
|
|
166
122
|
|
|
167
|
-
|
|
123
|
+
ignoredBuildTypes = ["debug"]
|
|
168
124
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
125
|
+
reports {
|
|
126
|
+
html.required.set(true)
|
|
127
|
+
xml.required.set(true)
|
|
128
|
+
txt.required.set(true)
|
|
129
|
+
sarif.required.set(true)
|
|
130
|
+
}
|
|
175
131
|
}
|
|
176
132
|
|
|
177
133
|
def kotlin_version = getExtOrDefault('kotlinVersion')
|
|
@@ -179,10 +135,10 @@ def kotlin_version = getExtOrDefault('kotlinVersion')
|
|
|
179
135
|
dependencies {
|
|
180
136
|
detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:1.23.8")
|
|
181
137
|
// noinspection GradleDynamicVersion
|
|
182
|
-
|
|
138
|
+
implementation 'com.facebook.react:react-native:+'
|
|
183
139
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
184
140
|
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3"
|
|
185
|
-
implementation 'io.primer:android:2.
|
|
141
|
+
implementation 'io.primer:android:2.44.1'
|
|
186
142
|
testImplementation 'io.mockk:mockk:1.14.2'
|
|
187
143
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2'
|
|
188
144
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2'
|
package/android/src/main/java/com/primerioreactnative/{PrimerRN.kt → DefaultNativePrimerModule.kt}
RENAMED
|
@@ -4,10 +4,7 @@ import android.util.Log
|
|
|
4
4
|
import com.facebook.react.bridge.Arguments
|
|
5
5
|
import com.facebook.react.bridge.Promise
|
|
6
6
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
7
|
-
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
8
|
-
import com.facebook.react.bridge.ReactMethod
|
|
9
7
|
import com.facebook.react.bridge.WritableMap
|
|
10
|
-
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
11
8
|
import com.primerioreactnative.datamodels.ErrorTypeRN
|
|
12
9
|
import com.primerioreactnative.datamodels.PrimerCheckoutDataRN
|
|
13
10
|
import com.primerioreactnative.datamodels.PrimerErrorRN
|
|
@@ -18,100 +15,142 @@ import com.primerioreactnative.utils.PrimerImplementedRNCallbacks
|
|
|
18
15
|
import com.primerioreactnative.utils.errorTo
|
|
19
16
|
import com.primerioreactnative.utils.toWritableMap
|
|
20
17
|
import io.primer.android.Primer
|
|
18
|
+
import io.primer.android.PrimerSessionIntent
|
|
21
19
|
import io.primer.android.data.settings.PrimerSettings
|
|
22
|
-
import kotlinx.serialization.decodeFromString
|
|
23
20
|
import kotlinx.serialization.encodeToString
|
|
24
21
|
import kotlinx.serialization.json.Json
|
|
25
22
|
import org.json.JSONObject
|
|
26
23
|
|
|
27
24
|
@Suppress("TooManyFunctions")
|
|
28
|
-
class
|
|
29
|
-
|
|
25
|
+
internal open class DefaultNativePrimerModule(
|
|
26
|
+
private val reactContext: ReactApplicationContext,
|
|
27
|
+
private val json: Json,
|
|
28
|
+
private val eventSender: (String, WritableMap) -> Unit,
|
|
29
|
+
) {
|
|
30
30
|
private val mListener = PrimerRNEventListener()
|
|
31
31
|
|
|
32
32
|
init {
|
|
33
33
|
mListener.sendEvent = { eventName, paramsJson -> sendEvent(eventName, paramsJson) }
|
|
34
34
|
mListener.sendError = { paramsJson -> onError(paramsJson) }
|
|
35
|
-
mListener.sendErrorWithCheckoutData =
|
|
36
|
-
{ paramsJson, checkoutData -> onError(paramsJson, checkoutData) }
|
|
35
|
+
mListener.sendErrorWithCheckoutData = { paramsJson, checkoutData -> onError(paramsJson, checkoutData) }
|
|
37
36
|
mListener.onDismissedEvent = { Primer.instance.dismiss(true) }
|
|
38
37
|
}
|
|
39
38
|
|
|
40
|
-
|
|
39
|
+
open fun sendEvent(
|
|
40
|
+
name: String,
|
|
41
|
+
params: WritableMap,
|
|
42
|
+
) = eventSender(name, params)
|
|
43
|
+
|
|
44
|
+
open fun sendEvent(
|
|
45
|
+
name: String,
|
|
46
|
+
data: JSONObject?,
|
|
47
|
+
) = eventSender(name, prepareData(data))
|
|
48
|
+
|
|
49
|
+
fun getName(): String {
|
|
50
|
+
return NAME
|
|
51
|
+
}
|
|
41
52
|
|
|
42
|
-
@ReactMethod
|
|
43
53
|
fun configure(
|
|
44
|
-
settingsStr: String
|
|
54
|
+
settingsStr: String?,
|
|
45
55
|
promise: Promise,
|
|
46
56
|
) {
|
|
47
57
|
try {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
)
|
|
56
|
-
}
|
|
58
|
+
val settings = if (settingsStr.isNullOrBlank()) {
|
|
59
|
+
PrimerSettingsRN()
|
|
60
|
+
} else {
|
|
61
|
+
json.decodeFromString(
|
|
62
|
+
settingsStr,
|
|
63
|
+
)
|
|
64
|
+
}
|
|
57
65
|
startSdk(settings.toPrimerSettings(reactContext))
|
|
58
66
|
promise.resolve(null)
|
|
59
|
-
} catch (
|
|
60
|
-
Log.e("PrimerRN", "configure settings error: $
|
|
67
|
+
} catch (expected: Exception) {
|
|
68
|
+
Log.e("PrimerRN", "configure settings error: $expected")
|
|
61
69
|
val exception = ErrorTypeRN.NativeBridgeFailed errorTo "failed to parse settings."
|
|
62
70
|
onError(exception)
|
|
63
|
-
promise.reject(exception.errorId, exception.description,
|
|
71
|
+
promise.reject(exception.errorId, exception.description, expected)
|
|
64
72
|
}
|
|
65
73
|
}
|
|
66
74
|
|
|
67
|
-
@ReactMethod
|
|
68
75
|
fun showUniversalCheckoutWithClientToken(
|
|
69
76
|
clientToken: String,
|
|
70
77
|
promise: Promise,
|
|
71
78
|
) {
|
|
72
79
|
try {
|
|
73
|
-
Primer.instance.showUniversalCheckout(
|
|
80
|
+
Primer.instance.showUniversalCheckout(
|
|
81
|
+
reactContext.applicationContext,
|
|
82
|
+
clientToken,
|
|
83
|
+
)
|
|
74
84
|
promise.resolve(null)
|
|
75
|
-
} catch (
|
|
76
|
-
val exception =
|
|
77
|
-
ErrorTypeRN.NativeBridgeFailed errorTo
|
|
78
|
-
"Primer SDK failed: ${e.message}"
|
|
85
|
+
} catch (expected: Exception) {
|
|
86
|
+
val exception = ErrorTypeRN.NativeBridgeFailed errorTo "Primer SDK failed: ${expected.message}"
|
|
79
87
|
onError(exception)
|
|
80
|
-
promise.reject(exception.errorId, exception.description,
|
|
88
|
+
promise.reject(exception.errorId, exception.description, expected)
|
|
81
89
|
}
|
|
82
90
|
}
|
|
83
91
|
|
|
84
|
-
@ReactMethod
|
|
85
92
|
fun showVaultManagerWithClientToken(
|
|
86
93
|
clientToken: String,
|
|
87
94
|
promise: Promise,
|
|
88
95
|
) {
|
|
89
96
|
try {
|
|
90
|
-
Primer.instance.showVaultManager(
|
|
97
|
+
Primer.instance.showVaultManager(
|
|
98
|
+
reactContext.applicationContext,
|
|
99
|
+
clientToken,
|
|
100
|
+
)
|
|
91
101
|
promise.resolve(null)
|
|
92
|
-
} catch (
|
|
93
|
-
val exception =
|
|
94
|
-
ErrorTypeRN.NativeBridgeFailed errorTo
|
|
95
|
-
"Primer SDK failed: ${e.message}"
|
|
102
|
+
} catch (expected: Exception) {
|
|
103
|
+
val exception = ErrorTypeRN.NativeBridgeFailed errorTo "Primer SDK failed: ${expected.message}"
|
|
96
104
|
onError(exception)
|
|
97
|
-
promise.reject(exception.errorId, exception.description,
|
|
105
|
+
promise.reject(exception.errorId, exception.description, expected)
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
fun showPaymentMethod(
|
|
110
|
+
paymentMethod: String,
|
|
111
|
+
intent: String,
|
|
112
|
+
clientToken: String,
|
|
113
|
+
promise: Promise,
|
|
114
|
+
) {
|
|
115
|
+
try {
|
|
116
|
+
if (PrimerSessionIntent.entries.firstOrNull { intent.equals(it.name, true) } == null) {
|
|
117
|
+
val exception = PrimerErrorRN(
|
|
118
|
+
errorId = ErrorTypeRN.NativeBridgeFailed.errorId,
|
|
119
|
+
errorCode = null,
|
|
120
|
+
description = "Invalid value for 'intent'.",
|
|
121
|
+
diagnosticsId = null,
|
|
122
|
+
recoverySuggestion = "'intent' can be 'CHECKOUT' or 'VAULT'.",
|
|
123
|
+
)
|
|
124
|
+
promise.reject(exception.errorId, exception.description)
|
|
125
|
+
} else {
|
|
126
|
+
Primer.instance.showPaymentMethod(
|
|
127
|
+
reactContext.applicationContext,
|
|
128
|
+
clientToken,
|
|
129
|
+
paymentMethod,
|
|
130
|
+
PrimerSessionIntent.entries.first {
|
|
131
|
+
intent.equals(it.name, ignoreCase = true)
|
|
132
|
+
},
|
|
133
|
+
)
|
|
134
|
+
promise.resolve(null)
|
|
135
|
+
}
|
|
136
|
+
} catch (expected: Exception) {
|
|
137
|
+
val exception = ErrorTypeRN.NativeBridgeFailed errorTo "Primer SDK failed: ${expected.message}"
|
|
138
|
+
onError(exception)
|
|
139
|
+
promise.reject(exception.errorId, exception.description, expected)
|
|
98
140
|
}
|
|
99
141
|
}
|
|
100
142
|
|
|
101
|
-
@ReactMethod
|
|
102
143
|
fun dismiss(promise: Promise) {
|
|
103
144
|
Primer.instance.dismiss(true)
|
|
104
145
|
promise.resolve(null)
|
|
105
146
|
}
|
|
106
147
|
|
|
107
|
-
@ReactMethod
|
|
108
148
|
fun cleanUp(promise: Promise) {
|
|
109
149
|
Primer.instance.dismiss(true)
|
|
110
150
|
promise.resolve(null)
|
|
111
151
|
}
|
|
112
152
|
|
|
113
153
|
// region tokenization handlers
|
|
114
|
-
@ReactMethod
|
|
115
154
|
fun handleTokenizationNewClientToken(
|
|
116
155
|
newClientToken: String,
|
|
117
156
|
promise: Promise,
|
|
@@ -120,13 +159,11 @@ class PrimerRN(private val reactContext: ReactApplicationContext, private val js
|
|
|
120
159
|
promise.resolve(null)
|
|
121
160
|
}
|
|
122
161
|
|
|
123
|
-
@ReactMethod
|
|
124
162
|
fun handleTokenizationSuccess(promise: Promise) {
|
|
125
163
|
mListener.handleTokenizationSuccess()
|
|
126
164
|
promise.resolve(null)
|
|
127
165
|
}
|
|
128
166
|
|
|
129
|
-
@ReactMethod
|
|
130
167
|
fun handleTokenizationFailure(
|
|
131
168
|
errorMessage: String?,
|
|
132
169
|
promise: Promise,
|
|
@@ -137,8 +174,7 @@ class PrimerRN(private val reactContext: ReactApplicationContext, private val js
|
|
|
137
174
|
// endregion
|
|
138
175
|
|
|
139
176
|
// region resume handlers
|
|
140
|
-
|
|
141
|
-
fun handleResumeNewClientToken(
|
|
177
|
+
fun handleResumeWithNewClientToken(
|
|
142
178
|
newClientToken: String,
|
|
143
179
|
promise: Promise,
|
|
144
180
|
) {
|
|
@@ -146,13 +182,11 @@ class PrimerRN(private val reactContext: ReactApplicationContext, private val js
|
|
|
146
182
|
promise.resolve(null)
|
|
147
183
|
}
|
|
148
184
|
|
|
149
|
-
@ReactMethod
|
|
150
185
|
fun handleResumeSuccess(promise: Promise) {
|
|
151
186
|
mListener.handleResumeSuccess()
|
|
152
187
|
promise.resolve(null)
|
|
153
188
|
}
|
|
154
189
|
|
|
155
|
-
@ReactMethod
|
|
156
190
|
fun handleResumeFailure(
|
|
157
191
|
errorMessage: String?,
|
|
158
192
|
promise: Promise,
|
|
@@ -163,13 +197,11 @@ class PrimerRN(private val reactContext: ReactApplicationContext, private val js
|
|
|
163
197
|
// endregion
|
|
164
198
|
|
|
165
199
|
// region payment handlers
|
|
166
|
-
@ReactMethod
|
|
167
200
|
fun handlePaymentCreationContinue(promise: Promise) {
|
|
168
201
|
mListener.handlePaymentCreationContinue()
|
|
169
202
|
promise.resolve(null)
|
|
170
203
|
}
|
|
171
204
|
|
|
172
|
-
@ReactMethod
|
|
173
205
|
fun handlePaymentCreationAbort(
|
|
174
206
|
errorMessage: String?,
|
|
175
207
|
promise: Promise,
|
|
@@ -180,7 +212,6 @@ class PrimerRN(private val reactContext: ReactApplicationContext, private val js
|
|
|
180
212
|
// endregion
|
|
181
213
|
|
|
182
214
|
// region error handlers
|
|
183
|
-
@ReactMethod
|
|
184
215
|
fun showErrorMessage(
|
|
185
216
|
errorMessage: String?,
|
|
186
217
|
promise: Promise,
|
|
@@ -190,31 +221,23 @@ class PrimerRN(private val reactContext: ReactApplicationContext, private val js
|
|
|
190
221
|
}
|
|
191
222
|
// endregion
|
|
192
223
|
|
|
193
|
-
@ReactMethod
|
|
194
224
|
fun setImplementedRNCallbacks(
|
|
195
225
|
implementedRNCallbacksStr: String,
|
|
196
226
|
promise: Promise,
|
|
197
227
|
) {
|
|
198
228
|
try {
|
|
199
229
|
Log.d("PrimerRN", "implementedRNCallbacks: $implementedRNCallbacksStr")
|
|
200
|
-
val implementedRNCallbacks =
|
|
201
|
-
json.decodeFromString<PrimerImplementedRNCallbacks>(implementedRNCallbacksStr)
|
|
230
|
+
val implementedRNCallbacks = json.decodeFromString<PrimerImplementedRNCallbacks>(implementedRNCallbacksStr)
|
|
202
231
|
this.mListener.setImplementedCallbacks(implementedRNCallbacks)
|
|
203
232
|
promise.resolve(null)
|
|
204
|
-
} catch (
|
|
233
|
+
} catch (expected: Exception) {
|
|
205
234
|
val exception =
|
|
206
235
|
ErrorTypeRN.NativeBridgeFailed errorTo "Implemented callbacks $implementedRNCallbacksStr is not valid."
|
|
207
236
|
onError(exception)
|
|
208
|
-
promise.reject(exception.errorId, exception.description,
|
|
237
|
+
promise.reject(exception.errorId, exception.description, expected)
|
|
209
238
|
}
|
|
210
239
|
}
|
|
211
240
|
|
|
212
|
-
@ReactMethod
|
|
213
|
-
fun addListener(eventName: String?) = Unit
|
|
214
|
-
|
|
215
|
-
@ReactMethod
|
|
216
|
-
fun removeListeners(count: Int?) = Unit
|
|
217
|
-
|
|
218
241
|
private fun startSdk(settings: PrimerSettings) {
|
|
219
242
|
Primer.instance.configure(settings, mListener)
|
|
220
243
|
}
|
|
@@ -235,28 +258,13 @@ class PrimerRN(private val reactContext: ReactApplicationContext, private val js
|
|
|
235
258
|
sendEvent(PrimerEvents.ON_ERROR.eventName, params)
|
|
236
259
|
}
|
|
237
260
|
|
|
238
|
-
private fun sendEvent(
|
|
239
|
-
name: String,
|
|
240
|
-
params: WritableMap,
|
|
241
|
-
) {
|
|
242
|
-
reactApplicationContext.getJSModule(
|
|
243
|
-
DeviceEventManagerModule.RCTDeviceEventEmitter::class.java,
|
|
244
|
-
).emit(name, params)
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
private fun sendEvent(
|
|
248
|
-
name: String,
|
|
249
|
-
data: JSONObject?,
|
|
250
|
-
) {
|
|
251
|
-
val params = prepareData(data)
|
|
252
|
-
reactContext.getJSModule(
|
|
253
|
-
DeviceEventManagerModule.RCTDeviceEventEmitter::class.java,
|
|
254
|
-
).emit(name, params)
|
|
255
|
-
}
|
|
256
|
-
|
|
257
261
|
private fun prepareData(data: JSONObject?): WritableMap {
|
|
258
262
|
return data.toWritableMap()
|
|
259
263
|
}
|
|
264
|
+
|
|
265
|
+
companion object Companion {
|
|
266
|
+
const val NAME = "NativePrimer"
|
|
267
|
+
}
|
|
260
268
|
}
|
|
261
269
|
|
|
262
270
|
internal object Keys {
|