@stripe/stripe-react-native 0.65.0 → 0.66.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/README.md +2 -2
- package/android/detekt/detekt-baseline.xml +1 -76
- package/android/gradle.properties +4 -4
- package/android/src/main/java/com/reactnativestripesdk/AuBECSDebitFormView.kt +3 -1
- package/android/src/main/java/com/reactnativestripesdk/AuBECSDebitFormViewManager.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/CardFieldView.kt +56 -58
- package/android/src/main/java/com/reactnativestripesdk/CurrencySelectorElementEvent.kt +26 -0
- package/android/src/main/java/com/reactnativestripesdk/CurrencySelectorElementView.kt +139 -0
- package/android/src/main/java/com/reactnativestripesdk/CurrencySelectorElementViewManager.kt +59 -0
- package/android/src/main/java/com/reactnativestripesdk/EmbeddedPaymentElementView.kt +105 -49
- package/android/src/main/java/com/reactnativestripesdk/EmbeddedPaymentElementViewManager.kt +72 -12
- package/android/src/main/java/com/reactnativestripesdk/EventEmitterCompat.kt +4 -0
- package/android/src/main/java/com/reactnativestripesdk/FinancialConnectionsSheetManager.kt +8 -4
- package/android/src/main/java/com/reactnativestripesdk/GooglePayButtonManager.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/GooglePayButtonView.kt +26 -11
- package/android/src/main/java/com/reactnativestripesdk/GooglePayLauncherManager.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/NavigationBarView.kt +14 -5
- package/android/src/main/java/com/reactnativestripesdk/PaymentElementConfig.kt +6 -2
- package/android/src/main/java/com/reactnativestripesdk/PaymentLauncherManager.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/PaymentMethodCreateParamsFactory.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/PaymentMethodMessagingElementConfig.kt +6 -2
- package/android/src/main/java/com/reactnativestripesdk/PaymentMethodMessagingElementViewManager.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/PaymentOptionDisplayDataMapper.kt +8 -4
- package/android/src/main/java/com/reactnativestripesdk/PaymentSheetAppearance.kt +9 -3
- package/android/src/main/java/com/reactnativestripesdk/PaymentSheetManager.kt +118 -48
- package/android/src/main/java/com/reactnativestripesdk/StripeAbstractComposeView.kt +1 -0
- package/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt +281 -46
- package/android/src/main/java/com/reactnativestripesdk/StripeSdkPackage.kt +2 -0
- package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressLauncherManager.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressSheetView.kt +3 -1
- package/android/src/main/java/com/reactnativestripesdk/customersheet/CustomerSheetManager.kt +8 -18
- package/android/src/main/java/com/reactnativestripesdk/customersheet/ReactNativeCustomerAdapter.kt +3 -1
- package/android/src/main/java/com/reactnativestripesdk/customersheet/ReactNativeCustomerSessionProvider.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/AddToWalletButtonManager.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/utils/CheckoutAddressUpdate.kt +45 -0
- package/android/src/main/java/com/reactnativestripesdk/utils/CheckoutMappers.kt +127 -0
- package/android/src/main/java/com/reactnativestripesdk/utils/DefaultActivityLifecycleCallbacks.kt +41 -0
- package/android/src/main/java/com/reactnativestripesdk/utils/Errors.kt +4 -2
- package/android/src/main/java/com/reactnativestripesdk/utils/Extensions.kt +5 -1
- package/android/src/main/java/com/reactnativestripesdk/utils/Mappers.kt +29 -13
- package/android/src/main/java/com/reactnativestripesdk/utils/PostalCodeUtilities.kt +2 -1
- package/android/src/oldarch/java/com/facebook/react/viewmanagers/EmbeddedPaymentElementViewManagerDelegate.java +6 -0
- package/android/src/oldarch/java/com/facebook/react/viewmanagers/EmbeddedPaymentElementViewManagerInterface.java +2 -0
- package/android/src/oldarch/java/com/facebook/react/viewmanagers/StripeCurrencySelectorElementManagerDelegate.java +35 -0
- package/android/src/oldarch/java/com/facebook/react/viewmanagers/StripeCurrencySelectorElementManagerInterface.java +18 -0
- package/android/src/oldarch/java/com/reactnativestripesdk/NativeOnrampSdkModuleSpec.java +17 -3
- package/android/src/oldarch/java/com/reactnativestripesdk/NativeStripeSdkModuleSpec.java +13 -1
- package/android/src/onramp/java/com/reactnativestripesdk/OnrampMappers.kt +116 -0
- package/android/src/onramp/java/com/reactnativestripesdk/OnrampSdkModule.kt +109 -1
- package/android/src/test/java/com/reactnativestripesdk/DrawableLoadingTest.kt +6 -2
- package/android/src/test/java/com/reactnativestripesdk/mappers/MappersTest.kt +60 -0
- package/android/src/test/java/com/reactnativestripesdk/mappers/OnrampMappersTest.kt +145 -0
- package/android/src/test/java/com/reactnativestripesdk/mappers/PaymentOptionDisplayDataMapperTest.kt +9 -4
- package/android/src/test/java/com/reactnativestripesdk/utils/CheckoutMappersTest.kt +98 -0
- package/android/src/test/java/com/reactnativestripesdk/utils/CheckoutTestFixtures.java +57 -0
- package/ios/ConnectAccountOnboarding/ConnectAccountOnboardingViewController.swift +6 -8
- package/ios/CurrencySelectorElementManager.m +16 -0
- package/ios/CurrencySelectorElementView.swift +159 -0
- package/ios/EmbeddedPaymentElementView.swift +1 -1
- package/ios/Mappers+Checkout.swift +337 -0
- package/ios/Mappers.swift +90 -2
- package/ios/NewArch/EmbeddedPaymentElementViewComponentView.mm +16 -2
- package/ios/NewArch/StripeCurrencySelectorElementComponentView.h +10 -0
- package/ios/NewArch/StripeCurrencySelectorElementComponentView.mm +89 -0
- package/ios/OldArch/StripeSdkEventEmitterCompat.h +1 -0
- package/ios/OldArch/StripeSdkEventEmitterCompat.m +6 -0
- package/ios/PaymentOptionDisplayData+ReactNative.swift +1 -1
- package/ios/PaymentSheetAppearance.swift +1 -1
- package/ios/StripeOnrampSdk.mm +19 -0
- package/ios/StripeSdk.mm +136 -0
- package/ios/StripeSdkEmitter.swift +1 -0
- package/ios/StripeSdkImpl+Checkout.swift +360 -0
- package/ios/StripeSdkImpl+CustomerSheet.swift +1 -1
- package/ios/StripeSdkImpl+Embedded.swift +108 -27
- package/ios/StripeSdkImpl+PaymentSheet.swift +18 -2
- package/ios/StripeSdkImpl.swift +89 -7
- package/jest/mock.js +13 -1
- package/lib/commonjs/components/AddToWalletButton.js +1 -1
- package/lib/commonjs/components/AddToWalletButton.js.map +1 -1
- package/lib/commonjs/components/AddressSheet.js +1 -1
- package/lib/commonjs/components/AddressSheet.js.map +1 -1
- package/lib/commonjs/components/AuBECSDebitForm.js +1 -1
- package/lib/commonjs/components/AuBECSDebitForm.js.map +1 -1
- package/lib/commonjs/components/CardField.js +1 -1
- package/lib/commonjs/components/CardField.js.map +1 -1
- package/lib/commonjs/components/CardForm.js +1 -1
- package/lib/commonjs/components/CardForm.js.map +1 -1
- package/lib/commonjs/components/CurrencySelectorElement.js +2 -0
- package/lib/commonjs/components/CurrencySelectorElement.js.map +1 -0
- package/lib/commonjs/components/PaymentMethodMessagingElement.js +1 -1
- package/lib/commonjs/components/PaymentMethodMessagingElement.js.map +1 -1
- package/lib/commonjs/components/PlatformPayButton.js +1 -1
- package/lib/commonjs/components/PlatformPayButton.js.map +1 -1
- package/lib/commonjs/components/StripeContainer.js +1 -1
- package/lib/commonjs/components/StripeContainer.js.map +1 -1
- package/lib/commonjs/connect/Components.js +1 -1
- package/lib/commonjs/connect/Components.js.map +1 -1
- package/lib/commonjs/connect/ConnectComponentsProvider.js +1 -1
- package/lib/commonjs/connect/ConnectComponentsProvider.js.map +1 -1
- package/lib/commonjs/connect/EmbeddedComponent.js +1 -1
- package/lib/commonjs/connect/EmbeddedComponent.js.map +1 -1
- package/lib/commonjs/connect/ModalCloseButton.js +1 -1
- package/lib/commonjs/connect/ModalCloseButton.js.map +1 -1
- package/lib/commonjs/connect/NavigationBar.js +1 -1
- package/lib/commonjs/connect/NavigationBar.js.map +1 -1
- package/lib/commonjs/events.js.map +1 -1
- package/lib/commonjs/functions.js +1 -1
- package/lib/commonjs/functions.js.map +1 -1
- package/lib/commonjs/helpers.js +1 -1
- package/lib/commonjs/hooks/useCheckout.js +1 -1
- package/lib/commonjs/hooks/useCheckout.js.map +1 -1
- package/lib/commonjs/hooks/useOnramp.js +1 -1
- package/lib/commonjs/hooks/useOnramp.js.map +1 -1
- package/lib/commonjs/specs/NativeAddToWalletButton.js +1 -1
- package/lib/commonjs/specs/NativeAddressSheet.js +1 -1
- package/lib/commonjs/specs/NativeApplePayButton.js +1 -1
- package/lib/commonjs/specs/NativeAuBECSDebitForm.js +1 -1
- package/lib/commonjs/specs/NativeCardField.js +1 -1
- package/lib/commonjs/specs/NativeCardField.js.map +1 -1
- package/lib/commonjs/specs/NativeCardForm.js +1 -1
- package/lib/commonjs/specs/NativeCardForm.js.map +1 -1
- package/lib/commonjs/specs/NativeConnectAccountOnboardingView.js +1 -1
- package/lib/commonjs/specs/NativeCurrencySelectorElement.js +2 -0
- package/lib/commonjs/specs/NativeCurrencySelectorElement.js.map +1 -0
- package/lib/commonjs/specs/NativeEmbeddedPaymentElement.js +1 -1
- package/lib/commonjs/specs/NativeEmbeddedPaymentElement.js.map +1 -1
- package/lib/commonjs/specs/NativeGooglePayButton.js +1 -1
- package/lib/commonjs/specs/NativeNavigationBar.js +1 -1
- package/lib/commonjs/specs/NativeOnrampSdkModule.js.map +1 -1
- package/lib/commonjs/specs/NativePaymentMethodMessagingElement.js +1 -1
- package/lib/commonjs/specs/NativeStripeContainer.js +1 -1
- package/lib/commonjs/specs/NativeStripeSdkModule.js.map +1 -1
- package/lib/commonjs/types/EmbeddedPaymentElement.js +1 -1
- package/lib/commonjs/types/EmbeddedPaymentElement.js.map +1 -1
- package/lib/module/components/AddToWalletButton.js +1 -1
- package/lib/module/components/AddToWalletButton.js.map +1 -1
- package/lib/module/components/AddressSheet.js +1 -1
- package/lib/module/components/AddressSheet.js.map +1 -1
- package/lib/module/components/AuBECSDebitForm.js +1 -1
- package/lib/module/components/AuBECSDebitForm.js.map +1 -1
- package/lib/module/components/CardField.js +1 -1
- package/lib/module/components/CardField.js.map +1 -1
- package/lib/module/components/CardForm.js +1 -1
- package/lib/module/components/CardForm.js.map +1 -1
- package/lib/module/components/CurrencySelectorElement.js +2 -0
- package/lib/module/components/CurrencySelectorElement.js.map +1 -0
- package/lib/module/components/PaymentMethodMessagingElement.js +1 -1
- package/lib/module/components/PaymentMethodMessagingElement.js.map +1 -1
- package/lib/module/components/PlatformPayButton.js +1 -1
- package/lib/module/components/PlatformPayButton.js.map +1 -1
- package/lib/module/components/StripeContainer.js +1 -1
- package/lib/module/components/StripeContainer.js.map +1 -1
- package/lib/module/connect/Components.js +1 -1
- package/lib/module/connect/Components.js.map +1 -1
- package/lib/module/connect/ConnectComponentsProvider.js +1 -1
- package/lib/module/connect/ConnectComponentsProvider.js.map +1 -1
- package/lib/module/connect/EmbeddedComponent.js +1 -1
- package/lib/module/connect/EmbeddedComponent.js.map +1 -1
- package/lib/module/connect/ModalCloseButton.js +1 -1
- package/lib/module/connect/ModalCloseButton.js.map +1 -1
- package/lib/module/connect/NavigationBar.js +1 -1
- package/lib/module/connect/NavigationBar.js.map +1 -1
- package/lib/module/events.js.map +1 -1
- package/lib/module/functions.js +1 -1
- package/lib/module/functions.js.map +1 -1
- package/lib/module/helpers.js +1 -1
- package/lib/module/hooks/useCheckout.js +1 -1
- package/lib/module/hooks/useCheckout.js.map +1 -1
- package/lib/module/hooks/useOnramp.js +1 -1
- package/lib/module/hooks/useOnramp.js.map +1 -1
- package/lib/module/specs/NativeAddToWalletButton.js +1 -1
- package/lib/module/specs/NativeAddressSheet.js +1 -1
- package/lib/module/specs/NativeApplePayButton.js +1 -1
- package/lib/module/specs/NativeAuBECSDebitForm.js +1 -1
- package/lib/module/specs/NativeCardField.js +1 -1
- package/lib/module/specs/NativeCardField.js.map +1 -1
- package/lib/module/specs/NativeCardForm.js +1 -1
- package/lib/module/specs/NativeCardForm.js.map +1 -1
- package/lib/module/specs/NativeConnectAccountOnboardingView.js +1 -1
- package/lib/module/specs/NativeCurrencySelectorElement.js +2 -0
- package/lib/module/specs/NativeCurrencySelectorElement.js.map +1 -0
- package/lib/module/specs/NativeEmbeddedPaymentElement.js +1 -1
- package/lib/module/specs/NativeEmbeddedPaymentElement.js.map +1 -1
- package/lib/module/specs/NativeGooglePayButton.js +1 -1
- package/lib/module/specs/NativeNavigationBar.js +1 -1
- package/lib/module/specs/NativeOnrampSdkModule.js.map +1 -1
- package/lib/module/specs/NativePaymentMethodMessagingElement.js +1 -1
- package/lib/module/specs/NativeStripeContainer.js +1 -1
- package/lib/module/specs/NativeStripeSdkModule.js.map +1 -1
- package/lib/module/types/EmbeddedPaymentElement.js +1 -1
- package/lib/module/types/EmbeddedPaymentElement.js.map +1 -1
- package/lib/typescript/src/components/CurrencySelectorElement.d.ts +62 -0
- package/lib/typescript/src/components/CurrencySelectorElement.d.ts.map +1 -0
- package/lib/typescript/src/components/PaymentMethodMessagingElement.d.ts +1 -1
- package/lib/typescript/src/components/PaymentMethodMessagingElement.d.ts.map +1 -1
- package/lib/typescript/src/events.d.ts +11 -0
- package/lib/typescript/src/events.d.ts.map +1 -1
- package/lib/typescript/src/functions.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useCheckout.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useOnramp.d.ts +22 -0
- package/lib/typescript/src/hooks/useOnramp.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativeCurrencySelectorElement.d.ts +25 -0
- package/lib/typescript/src/specs/NativeCurrencySelectorElement.d.ts.map +1 -0
- package/lib/typescript/src/specs/NativeEmbeddedPaymentElement.d.ts +5 -1
- package/lib/typescript/src/specs/NativeEmbeddedPaymentElement.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativeOnrampSdkModule.d.ts +3 -0
- package/lib/typescript/src/specs/NativeOnrampSdkModule.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativeStripeSdkModule.d.ts +5 -2
- package/lib/typescript/src/specs/NativeStripeSdkModule.d.ts.map +1 -1
- package/lib/typescript/src/types/Checkout.d.ts +268 -86
- package/lib/typescript/src/types/Checkout.d.ts.map +1 -1
- package/lib/typescript/src/types/EmbeddedPaymentElement.d.ts +36 -1
- package/lib/typescript/src/types/EmbeddedPaymentElement.d.ts.map +1 -1
- package/lib/typescript/src/types/Onramp.d.ts +94 -0
- package/lib/typescript/src/types/Onramp.d.ts.map +1 -1
- package/package.json +16 -4
- package/src/components/CurrencySelectorElement.tsx +95 -0
- package/src/components/PaymentMethodMessagingElement.tsx +54 -52
- package/src/events.ts +11 -0
- package/src/functions.ts +30 -1
- package/src/hooks/useCheckout.tsx +129 -74
- package/src/hooks/useOnramp.tsx +44 -0
- package/src/specs/NativeCurrencySelectorElement.ts +35 -0
- package/src/specs/NativeEmbeddedPaymentElement.ts +12 -2
- package/src/specs/NativeOnrampSdkModule.ts +5 -0
- package/src/specs/NativeStripeSdkModule.ts +16 -2
- package/src/types/Checkout.ts +291 -86
- package/src/types/EmbeddedPaymentElement.tsx +117 -26
- package/src/types/Onramp.ts +109 -0
- package/stripe-react-native.podspec +1 -1
- package/android/.idea/AndroidProjectSystem.xml +0 -6
- package/android/.idea/caches/deviceStreaming.xml +0 -835
- package/android/.idea/compiler.xml +0 -6
- package/android/.idea/gradle.xml +0 -17
- package/android/.idea/migrations.xml +0 -10
- package/android/.idea/misc.xml +0 -10
- package/android/.idea/runConfigurations.xml +0 -17
- package/android/.idea/vcs.xml +0 -6
- package/android/local.properties +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Onramp.d.ts","sourceRoot":"","sources":["../../../../src/types/Onramp.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Onramp.d.ts","sourceRoot":"","sources":["../../../../src/types/Onramp.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stripe/stripe-react-native",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.66.0",
|
|
4
4
|
"author": "Stripe",
|
|
5
5
|
"description": "Stripe SDK for React Native",
|
|
6
6
|
"main": "lib/commonjs/index",
|
|
@@ -13,13 +13,14 @@
|
|
|
13
13
|
"typescript": "tsc --noEmit",
|
|
14
14
|
"lint": "eslint \"**/*.{js,ts,tsx}\" --ignore-pattern \"docs/api-reference/*\" --ignore-path .gitignore",
|
|
15
15
|
"prepare": "bob build && rm -rf lib/*/package.json && husky",
|
|
16
|
-
"
|
|
16
|
+
"propose": "./scripts/propose.rb",
|
|
17
|
+
"release": "./scripts/publish.rb",
|
|
17
18
|
"example": "yarn --cwd example",
|
|
18
19
|
"pods": "cd example && npx pod-install --quiet",
|
|
19
20
|
"update-pods": "cd example/ios && pod update Stripe StripeApplePay StripeFinancialConnections StripePayments StripePaymentSheet StripePaymentsUI StripeCore StripeUICore StripeCryptoOnramp",
|
|
20
21
|
"bootstrap": "yarn example && yarn && yarn pods",
|
|
21
22
|
"bootstrap-no-pods": "yarn example && yarn",
|
|
22
|
-
"docs": "yarn typedoc ./src/index.tsx --out ./docs/api-reference --tsconfig ./tsconfig.json --readme none --sort source-order",
|
|
23
|
+
"docs": "yarn typedoc ./src/index.tsx --out ./docs/api-reference --tsconfig ./tsconfig.json --readme none --sort source-order --excludeInternal",
|
|
23
24
|
"run-example-ios": "cd example && yarn ios --simulator \"iPhone 16 Pro Max\"",
|
|
24
25
|
"run-example-ios:release": "cd example && yarn build:ios && yarn ios --mode Release --simulator \"iPhone 16 Pro Max\" --no-packager",
|
|
25
26
|
"run-example-android": "cd example && yarn android",
|
|
@@ -35,6 +36,8 @@
|
|
|
35
36
|
"lint:android": "cd android && ./gradlew detekt",
|
|
36
37
|
"format:ios:check": "swiftlint ios --config .swiftlint.yml --strict",
|
|
37
38
|
"format:ios:write": "./scripts/format-changed-ios",
|
|
39
|
+
"test:package-types": "attw --pack .",
|
|
40
|
+
"prepublishOnly": "echo \"\\nPlease use ./scripts/publish instead\\n\" && exit 1",
|
|
38
41
|
"api-extractor:update": "bob build && api-extractor run --local --verbose",
|
|
39
42
|
"api-extractor:check": "bob build && api-extractor run --verbose"
|
|
40
43
|
},
|
|
@@ -70,6 +73,7 @@
|
|
|
70
73
|
},
|
|
71
74
|
"homepage": "https://github.com/stripe/stripe-react-native/#readme",
|
|
72
75
|
"devDependencies": {
|
|
76
|
+
"@arethetypeswrong/cli": "^0.17.0",
|
|
73
77
|
"@expo/config-plugins": "^9.0.16",
|
|
74
78
|
"@microsoft/api-extractor": "^7.58.7",
|
|
75
79
|
"@react-native/babel-preset": "^0.81.0",
|
|
@@ -83,6 +87,7 @@
|
|
|
83
87
|
"eslint-plugin-prettier": "^5.1.3",
|
|
84
88
|
"husky": "^9.1.7",
|
|
85
89
|
"jest": "^29.2.1",
|
|
90
|
+
"lint-staged": "^16.4.0",
|
|
86
91
|
"prettier": "^3.5.2",
|
|
87
92
|
"react": "19.1.0",
|
|
88
93
|
"react-native": "^0.81.0",
|
|
@@ -175,6 +180,12 @@
|
|
|
175
180
|
"typescript"
|
|
176
181
|
]
|
|
177
182
|
},
|
|
183
|
+
"lint-staged": {
|
|
184
|
+
"*.{js,ts,tsx}": "eslint --ignore-path .gitignore",
|
|
185
|
+
"*.{ts,tsx}": "bash -c 'yarn typescript'",
|
|
186
|
+
"*.kt": "bash -c 'yarn format:android:write'",
|
|
187
|
+
"*.swift": "bash -c 'yarn format:ios:write'"
|
|
188
|
+
},
|
|
178
189
|
"resolutions": {
|
|
179
190
|
"simple-plist": "1.3.1"
|
|
180
191
|
},
|
|
@@ -192,7 +203,8 @@
|
|
|
192
203
|
"CardForm": "CardFormComponentView",
|
|
193
204
|
"EmbeddedPaymentElementView": "EmbeddedPaymentElementViewComponentView",
|
|
194
205
|
"NavigationBar": "NavigationBarComponentView",
|
|
195
|
-
"StripeContainer": "StripeContainerComponentView"
|
|
206
|
+
"StripeContainer": "StripeContainerComponentView",
|
|
207
|
+
"StripeCurrencySelectorElement": "StripeCurrencySelectorElementComponentView"
|
|
196
208
|
}
|
|
197
209
|
},
|
|
198
210
|
"name": "rnstripe",
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import React, { useCallback, useState } from 'react';
|
|
2
|
+
import {
|
|
3
|
+
AccessibilityProps,
|
|
4
|
+
LayoutAnimation,
|
|
5
|
+
NativeSyntheticEvent,
|
|
6
|
+
} from 'react-native';
|
|
7
|
+
import type { Checkout } from '../types/Checkout';
|
|
8
|
+
import NativeCurrencySelectorElement, {
|
|
9
|
+
type HeightChangeEvent,
|
|
10
|
+
} from '../specs/NativeCurrencySelectorElement';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Props for {@link CurrencySelectorElement}.
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export interface CurrencySelectorElementProps extends AccessibilityProps {
|
|
17
|
+
/**
|
|
18
|
+
* The `Checkout` handle returned by `useCheckout`.
|
|
19
|
+
*
|
|
20
|
+
* The element reads currency options from this session and calls
|
|
21
|
+
* `selectCurrency` internally — you never call it yourself.
|
|
22
|
+
*/
|
|
23
|
+
checkout: Checkout;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* When `true`, the toggle is visible but does not respond to taps.
|
|
27
|
+
*
|
|
28
|
+
* Tip: pass `disabled={state?.status === 'loading'}` to freeze the
|
|
29
|
+
* selector while an unrelated mutation (e.g. applying a promo code)
|
|
30
|
+
* is in flight. The element also disables itself automatically
|
|
31
|
+
* during its own currency-selection network call.
|
|
32
|
+
*
|
|
33
|
+
* @default false
|
|
34
|
+
*/
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* A self-contained currency selector for Adaptive Pricing.
|
|
40
|
+
*
|
|
41
|
+
* Place this element on your cart or checkout page **near the total price**,
|
|
42
|
+
* above the Payment Element. It automatically:
|
|
43
|
+
*
|
|
44
|
+
* - Reads currency options from the `Checkout` session
|
|
45
|
+
* - Renders a two-option toggle with exchange rate disclosure
|
|
46
|
+
* - Calls `selectCurrency` when the customer taps an option
|
|
47
|
+
* - Collapses to zero height when Adaptive Pricing is unavailable
|
|
48
|
+
* - Displays inline errors on failed selections
|
|
49
|
+
*
|
|
50
|
+
* Session state updates automatically through `useCheckout` — no extra
|
|
51
|
+
* wiring needed to keep your cart totals in sync.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```tsx
|
|
55
|
+
* const { state, checkout } = useCheckout(clientSecret, {
|
|
56
|
+
* adaptivePricing: { allowed: true },
|
|
57
|
+
* });
|
|
58
|
+
*
|
|
59
|
+
* return (
|
|
60
|
+
* <ScrollView>
|
|
61
|
+
* <CurrencySelectorElement checkout={checkout} />
|
|
62
|
+
* <Text>{formatTotal(state?.session.totals?.total, state?.session.currency)}</Text>
|
|
63
|
+
* </ScrollView>
|
|
64
|
+
* );
|
|
65
|
+
* ```
|
|
66
|
+
*
|
|
67
|
+
* @param props {@link CurrencySelectorElementProps}
|
|
68
|
+
* @category ReactComponents
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
export function CurrencySelectorElement({
|
|
72
|
+
checkout,
|
|
73
|
+
disabled = false,
|
|
74
|
+
...a11yProps
|
|
75
|
+
}: CurrencySelectorElementProps) {
|
|
76
|
+
const [height, setHeight] = useState<number>(0);
|
|
77
|
+
|
|
78
|
+
const handleHeightChange = useCallback(
|
|
79
|
+
(e: NativeSyntheticEvent<HeightChangeEvent>) => {
|
|
80
|
+
LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut);
|
|
81
|
+
setHeight(e.nativeEvent.height);
|
|
82
|
+
},
|
|
83
|
+
[]
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
return (
|
|
87
|
+
<NativeCurrencySelectorElement
|
|
88
|
+
sessionKey={checkout.sessionKey}
|
|
89
|
+
disabled={disabled}
|
|
90
|
+
style={{ width: '100%', height }}
|
|
91
|
+
onHeightChange={handleHeightChange}
|
|
92
|
+
{...a11yProps}
|
|
93
|
+
/>
|
|
94
|
+
);
|
|
95
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
2
2
|
import {
|
|
3
3
|
AccessibilityProps,
|
|
4
4
|
HostComponent,
|
|
@@ -50,60 +50,62 @@ export interface Props extends AccessibilityProps {
|
|
|
50
50
|
* @returns JSX.Element
|
|
51
51
|
* @category ReactComponents
|
|
52
52
|
*/
|
|
53
|
-
export const PaymentMethodMessagingElement =
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
export const PaymentMethodMessagingElement = ({
|
|
54
|
+
appearance,
|
|
55
|
+
configuration,
|
|
56
|
+
onStateChange,
|
|
57
|
+
...props
|
|
58
|
+
}: Props) => {
|
|
59
|
+
const viewRef = useRef<React.ComponentRef<HostComponent<NativeProps>>>(null);
|
|
57
60
|
|
|
58
|
-
|
|
61
|
+
const [height, setHeight] = useState<number | undefined>();
|
|
59
62
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
// listen for height changes
|
|
65
|
+
const sub = addListener(
|
|
66
|
+
'paymentMethodMessagingElementDidUpdateHeight',
|
|
67
|
+
({ height: h }) => {
|
|
68
|
+
LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut);
|
|
69
|
+
setHeight(h);
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
return () => sub.remove();
|
|
73
|
+
});
|
|
71
74
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
useEffect(() => {
|
|
76
|
+
// listen for load complete
|
|
77
|
+
const sub = addListener(
|
|
78
|
+
'paymentMethodMessagingElementConfigureResult',
|
|
79
|
+
({ status: s }) => {
|
|
80
|
+
let state: PaymentMethodMessagingElementState;
|
|
78
81
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
onStateChange?.(state);
|
|
82
|
+
if (s === 'loaded') {
|
|
83
|
+
state = { status: 'loaded' };
|
|
84
|
+
} else if (s === 'loading') {
|
|
85
|
+
state = { status: 'loading' };
|
|
86
|
+
} else if (s === 'no_content') {
|
|
87
|
+
state = { status: 'no_content' };
|
|
88
|
+
} else {
|
|
89
|
+
state = {
|
|
90
|
+
status: 'failed',
|
|
91
|
+
error: new Error(
|
|
92
|
+
'Failed to configure payment method messaging element'
|
|
93
|
+
),
|
|
94
|
+
};
|
|
94
95
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}, [onStateChange]);
|
|
98
|
-
|
|
99
|
-
return (
|
|
100
|
-
<NativePaymentMethodMessagingElement
|
|
101
|
-
appearance={appearance}
|
|
102
|
-
style={[{ width: '100%', height: height }]}
|
|
103
|
-
configuration={configuration}
|
|
104
|
-
{...props}
|
|
105
|
-
ref={viewRef}
|
|
106
|
-
/>
|
|
96
|
+
onStateChange?.(state);
|
|
97
|
+
}
|
|
107
98
|
);
|
|
108
|
-
|
|
109
|
-
);
|
|
99
|
+
return () => sub.remove();
|
|
100
|
+
}, [onStateChange]);
|
|
101
|
+
|
|
102
|
+
return (
|
|
103
|
+
<NativePaymentMethodMessagingElement
|
|
104
|
+
appearance={appearance}
|
|
105
|
+
style={[{ width: '100%', height: height }]}
|
|
106
|
+
configuration={configuration}
|
|
107
|
+
{...props}
|
|
108
|
+
ref={viewRef}
|
|
109
|
+
/>
|
|
110
|
+
);
|
|
111
|
+
};
|
package/src/events.ts
CHANGED
|
@@ -66,6 +66,17 @@ type Events = {
|
|
|
66
66
|
onCustomPaymentMethodConfirmHandlerCallback: EventEmitter<UnsafeObject<any>>;
|
|
67
67
|
paymentMethodMessagingElementDidUpdateHeight: EventEmitter<UnsafeObject<any>>;
|
|
68
68
|
paymentMethodMessagingElementConfigureResult: EventEmitter<UnsafeObject<any>>;
|
|
69
|
+
/**
|
|
70
|
+
* Fired by native every time a `Checkout` instance's state transitions —
|
|
71
|
+
* regardless of whether the mutation was JS-driven (e.g. `applyPromotionCode`
|
|
72
|
+
* via `useCheckout`) or native-driven (e.g. `CurrencySelectorElement`).
|
|
73
|
+
* `useCheckout` mirrors this into its `state` so the entire React tree
|
|
74
|
+
* stays in sync with the underlying native session.
|
|
75
|
+
*/
|
|
76
|
+
checkoutSessionDidChangeState: EventEmitter<{
|
|
77
|
+
sessionKey: string;
|
|
78
|
+
state: UnsafeObject<any>;
|
|
79
|
+
}>;
|
|
69
80
|
};
|
|
70
81
|
|
|
71
82
|
export function addListener<EventT extends keyof Events>(
|
package/src/functions.ts
CHANGED
|
@@ -350,6 +350,33 @@ let financialConnectionsEventListener: EventSubscription | null = null;
|
|
|
350
350
|
let paymentSheetCustomPaymentMethodConfirmCallback: EventSubscription | null =
|
|
351
351
|
null;
|
|
352
352
|
|
|
353
|
+
type NativeCheckoutSetupParams = Omit<
|
|
354
|
+
PaymentSheet.CheckoutSetupParams,
|
|
355
|
+
'checkout'
|
|
356
|
+
> & {
|
|
357
|
+
checkout: {
|
|
358
|
+
sessionKey: string;
|
|
359
|
+
};
|
|
360
|
+
};
|
|
361
|
+
|
|
362
|
+
const toNativePaymentSheetSetupParams = (
|
|
363
|
+
params: PaymentSheet.SetupParams
|
|
364
|
+
): PaymentSheet.SetupParams => {
|
|
365
|
+
if (!('checkout' in params)) {
|
|
366
|
+
return params;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
const nativeCheckoutParams: NativeCheckoutSetupParams = {
|
|
370
|
+
...params,
|
|
371
|
+
// The native side already owns the Checkout instance, so only pass its opaque session key.
|
|
372
|
+
checkout: {
|
|
373
|
+
sessionKey: params.checkout.sessionKey,
|
|
374
|
+
},
|
|
375
|
+
};
|
|
376
|
+
|
|
377
|
+
return nativeCheckoutParams as PaymentSheet.SetupParams;
|
|
378
|
+
};
|
|
379
|
+
|
|
353
380
|
export const initPaymentSheet = async (
|
|
354
381
|
params: PaymentSheet.SetupParams
|
|
355
382
|
): Promise<InitPaymentSheetResult> => {
|
|
@@ -431,7 +458,9 @@ export const initPaymentSheet = async (
|
|
|
431
458
|
`[@stripe/stripe-react-native] You have not provided the 'returnURL' field to 'initPaymentSheet', so payment methods that require redirects will not be shown in your iOS Payment Sheet. Visit https://stripe.com/docs/payments/accept-a-payment?platform=react-native&ui=payment-sheet#react-native-set-up-return-url to learn more.`
|
|
432
459
|
);
|
|
433
460
|
}
|
|
434
|
-
result = await NativeStripeSdk.initPaymentSheet(
|
|
461
|
+
result = await NativeStripeSdk.initPaymentSheet(
|
|
462
|
+
toNativePaymentSheetSetupParams(params)
|
|
463
|
+
);
|
|
435
464
|
|
|
436
465
|
if (result.error) {
|
|
437
466
|
return {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { useState, useEffect, useCallback, useRef } from 'react';
|
|
1
|
+
import { useState, useEffect, useCallback, useMemo, useRef } from 'react';
|
|
2
2
|
import NativeStripeSdk from '../specs/NativeStripeSdkModule';
|
|
3
3
|
import type { Checkout } from '../types/Checkout';
|
|
4
|
+
import { addListener } from '../events';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Initializes a Stripe Checkout Session and returns a reactive handle.
|
|
@@ -55,9 +56,20 @@ export function useCheckout(
|
|
|
55
56
|
}
|
|
56
57
|
})();
|
|
57
58
|
|
|
59
|
+
// Listen for state changes from native (e.g. currency selector taps)
|
|
60
|
+
// so we stay in sync even when mutations don't originate from JS.
|
|
61
|
+
const sub = addListener(
|
|
62
|
+
'checkoutSessionDidChangeState',
|
|
63
|
+
({ sessionKey, state: nextState }) => {
|
|
64
|
+
if (sessionKey !== sessionKeyRef.current) return;
|
|
65
|
+
setState(nextState as Checkout.State);
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
|
|
58
69
|
// Ignore in-flight init if unmounted or clientSecret changed.
|
|
59
70
|
return () => {
|
|
60
71
|
cancelled = true;
|
|
72
|
+
sub.remove();
|
|
61
73
|
};
|
|
62
74
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
63
75
|
}, [clientSecret]);
|
|
@@ -89,80 +101,123 @@ export function useCheckout(
|
|
|
89
101
|
[]
|
|
90
102
|
);
|
|
91
103
|
|
|
92
|
-
// Mutation methods
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
104
|
+
// Mutation methods. Each is memoized so `checkout` has a stable identity.
|
|
105
|
+
const updateShippingAddress = useCallback<Checkout['updateShippingAddress']>(
|
|
106
|
+
(address, name, phone) =>
|
|
107
|
+
withLoading((key) =>
|
|
108
|
+
NativeStripeSdk.checkoutUpdateShippingAddress(
|
|
109
|
+
key,
|
|
110
|
+
address,
|
|
111
|
+
name ?? null,
|
|
112
|
+
phone ?? null
|
|
113
|
+
)
|
|
114
|
+
),
|
|
115
|
+
[withLoading]
|
|
116
|
+
);
|
|
117
|
+
const updateBillingAddress = useCallback<Checkout['updateBillingAddress']>(
|
|
118
|
+
(address, name, phone) =>
|
|
119
|
+
withLoading((key) =>
|
|
120
|
+
NativeStripeSdk.checkoutUpdateBillingAddress(
|
|
121
|
+
key,
|
|
122
|
+
address,
|
|
123
|
+
name ?? null,
|
|
124
|
+
phone ?? null
|
|
125
|
+
)
|
|
126
|
+
),
|
|
127
|
+
[withLoading]
|
|
128
|
+
);
|
|
129
|
+
const applyPromotionCode = useCallback<Checkout['applyPromotionCode']>(
|
|
130
|
+
(code) =>
|
|
131
|
+
withLoading((key) =>
|
|
132
|
+
NativeStripeSdk.checkoutApplyPromotionCode(key, code)
|
|
133
|
+
),
|
|
134
|
+
[withLoading]
|
|
135
|
+
);
|
|
136
|
+
const removePromotionCode = useCallback<Checkout['removePromotionCode']>(
|
|
137
|
+
() =>
|
|
138
|
+
withLoading((key) => NativeStripeSdk.checkoutRemovePromotionCode(key)),
|
|
139
|
+
[withLoading]
|
|
140
|
+
);
|
|
141
|
+
const updateLineItemQuantity = useCallback<
|
|
142
|
+
Checkout['updateLineItemQuantity']
|
|
143
|
+
>(
|
|
144
|
+
(lineItemId, quantity) =>
|
|
145
|
+
withLoading((key) =>
|
|
146
|
+
NativeStripeSdk.checkoutUpdateLineItemQuantity(
|
|
147
|
+
key,
|
|
148
|
+
lineItemId,
|
|
149
|
+
quantity
|
|
150
|
+
)
|
|
151
|
+
),
|
|
152
|
+
[withLoading]
|
|
153
|
+
);
|
|
154
|
+
const selectShippingOption = useCallback<Checkout['selectShippingOption']>(
|
|
155
|
+
(id) =>
|
|
156
|
+
withLoading((key) =>
|
|
157
|
+
NativeStripeSdk.checkoutSelectShippingOption(key, id)
|
|
158
|
+
),
|
|
159
|
+
[withLoading]
|
|
160
|
+
);
|
|
161
|
+
const updateTaxId = useCallback<Checkout['updateTaxId']>(
|
|
162
|
+
(type, value) =>
|
|
163
|
+
withLoading((key) =>
|
|
164
|
+
NativeStripeSdk.checkoutUpdateTaxId(key, type, value)
|
|
165
|
+
),
|
|
166
|
+
[withLoading]
|
|
167
|
+
);
|
|
168
|
+
const runServerUpdate = useCallback<Checkout['runServerUpdate']>(
|
|
169
|
+
(serverUpdate) =>
|
|
170
|
+
withLoading(async (key) => {
|
|
171
|
+
const startPromise = NativeStripeSdk.checkoutRunServerUpdateStart(key);
|
|
172
|
+
|
|
173
|
+
try {
|
|
174
|
+
await serverUpdate();
|
|
175
|
+
await NativeStripeSdk.checkoutRunServerUpdateComplete(key, null);
|
|
176
|
+
} catch (e: any) {
|
|
177
|
+
await NativeStripeSdk.checkoutRunServerUpdateComplete(
|
|
140
178
|
key,
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
179
|
+
e.message ?? 'Server update failed'
|
|
180
|
+
);
|
|
181
|
+
throw e;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
return await startPromise;
|
|
185
|
+
}),
|
|
186
|
+
[withLoading]
|
|
187
|
+
);
|
|
188
|
+
|
|
189
|
+
const checkout = useMemo<Checkout>(
|
|
190
|
+
() => ({
|
|
191
|
+
get sessionKey(): string {
|
|
192
|
+
if (!sessionKeyRef.current) {
|
|
193
|
+
throw new Error(
|
|
194
|
+
'Checkout session not initialized. Wait for `state.status === "loaded"` ' +
|
|
195
|
+
'before passing `checkout` to `useEmbeddedPaymentElement` or calling a ' +
|
|
196
|
+
'mutation method (e.g. `applyPromotionCode`).'
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
return sessionKeyRef.current;
|
|
200
|
+
},
|
|
201
|
+
updateShippingAddress,
|
|
202
|
+
updateBillingAddress,
|
|
203
|
+
applyPromotionCode,
|
|
204
|
+
removePromotionCode,
|
|
205
|
+
updateLineItemQuantity,
|
|
206
|
+
selectShippingOption,
|
|
207
|
+
updateTaxId,
|
|
208
|
+
runServerUpdate,
|
|
209
|
+
}),
|
|
210
|
+
[
|
|
211
|
+
updateShippingAddress,
|
|
212
|
+
updateBillingAddress,
|
|
213
|
+
applyPromotionCode,
|
|
214
|
+
removePromotionCode,
|
|
215
|
+
updateLineItemQuantity,
|
|
216
|
+
selectShippingOption,
|
|
217
|
+
updateTaxId,
|
|
218
|
+
runServerUpdate,
|
|
219
|
+
]
|
|
220
|
+
);
|
|
166
221
|
|
|
167
222
|
return { state, checkout, error };
|
|
168
223
|
}
|
package/src/hooks/useOnramp.tsx
CHANGED
|
@@ -75,6 +75,25 @@ export function useOnramp() {
|
|
|
75
75
|
[]
|
|
76
76
|
);
|
|
77
77
|
|
|
78
|
+
const _retrieveMissingIdentifiers =
|
|
79
|
+
useCallback(async (): Promise<Onramp.RetrieveMissingIdentifiersResult> => {
|
|
80
|
+
return requireOnrampModule().retrieveMissingIdentifiers();
|
|
81
|
+
}, []);
|
|
82
|
+
|
|
83
|
+
const _submitIdentifiers = useCallback(
|
|
84
|
+
async (
|
|
85
|
+
identifiers: Onramp.ComplianceIdentifier[]
|
|
86
|
+
): Promise<Onramp.SubmitIdentifiersResult> => {
|
|
87
|
+
return requireOnrampModule().submitIdentifiers(identifiers);
|
|
88
|
+
},
|
|
89
|
+
[]
|
|
90
|
+
);
|
|
91
|
+
|
|
92
|
+
const _presentCRSCARFDeclaration =
|
|
93
|
+
useCallback(async (): Promise<Onramp.CRSCARFDeclarationResult> => {
|
|
94
|
+
return requireOnrampModule().presentCRSCARFDeclaration();
|
|
95
|
+
}, []);
|
|
96
|
+
|
|
78
97
|
const _presentKycInfoVerification = useCallback(
|
|
79
98
|
async (updatedAddress: Address | null): Promise<Onramp.VerifyKycResult> => {
|
|
80
99
|
return requireOnrampModule().presentKycInfoVerification(updatedAddress);
|
|
@@ -244,6 +263,31 @@ export function useOnramp() {
|
|
|
244
263
|
*/
|
|
245
264
|
attachKycInfo: _attachKycInfo,
|
|
246
265
|
|
|
266
|
+
/**
|
|
267
|
+
* Retrieves any missing MiCA or CRS/CARF compliance identifiers for the current Link user.
|
|
268
|
+
* Requires an authenticated Link user.
|
|
269
|
+
*
|
|
270
|
+
* @returns Promise that resolves to identifier requirements and alternatives, or error
|
|
271
|
+
*/
|
|
272
|
+
retrieveMissingIdentifiers: _retrieveMissingIdentifiers,
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Submits MiCA or CRS/CARF compliance identifiers for the current Link user.
|
|
276
|
+
* Requires an authenticated Link user.
|
|
277
|
+
*
|
|
278
|
+
* @param identifiers The compliance identifiers to submit
|
|
279
|
+
* @returns Promise that resolves to whether the submission was valid, any remaining requirements, invalid identifiers, or error
|
|
280
|
+
*/
|
|
281
|
+
submitIdentifiers: _submitIdentifiers,
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Presents UI for the current Link user to accept the CRS/CARF declaration.
|
|
285
|
+
* Requires an authenticated Link user.
|
|
286
|
+
*
|
|
287
|
+
* @returns Promise that resolves to `Confirmed` when accepted, or error
|
|
288
|
+
*/
|
|
289
|
+
presentCRSCARFDeclaration: _presentCRSCARFDeclaration,
|
|
290
|
+
|
|
247
291
|
/**
|
|
248
292
|
* Presents UI to verify KYC information for the current Link user.
|
|
249
293
|
* Requires the user to be authenticated with prior calls to either `authenticateUserWithToken` or `authorize`,
|