@primer-io/react-native 2.27.2 → 2.28.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/android/.settings/org.eclipse.buildship.core.prefs +2 -2
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +4 -4
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt +5 -5
- package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +8 -2
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/cardRedirect/PrimerRNCardRedirectData.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/phoneNumber/PrimerRNPhoneNumberData.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/retailOutlets/PrimerRNRetailOutletData.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/retailOutlets/RNRetailOutletsList.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/{asset/PrimerRNAsset.kt → resource/Resources.kt} +41 -9
- package/android/src/main/java/com/primerioreactnative/components/manager/NativeViewContainer.kt +35 -0
- package/android/src/main/java/com/primerioreactnative/components/manager/ach/PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent.kt +4 -4
- package/android/src/main/java/com/primerioreactnative/components/manager/asset/PrimerRNHeadlessUniversalCheckoutAssetManager.kt +83 -1
- package/android/src/main/java/com/primerioreactnative/components/manager/banks/PrimerRNHeadlessUniversalCheckoutBanksComponent.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/components/manager/googlePay/PrimerGooglePayButtonConstantsModule.kt +39 -0
- package/android/src/main/java/com/primerioreactnative/components/manager/googlePay/PrimerGooglePayButtonManager.kt +38 -0
- package/android/src/main/java/com/primerioreactnative/components/manager/klarna/PrimerKlarnaPaymentViewManager.kt +15 -78
- package/android/src/main/java/com/primerioreactnative/components/manager/klarna/PrimerRNHeadlessUniversalCheckoutKlarnaComponent.kt +4 -4
- package/android/src/main/java/com/primerioreactnative/components/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManager.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerClientSessionRN.kt +10 -1
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerPaymentInstrumentTokenRN.kt +5 -10
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerSettingsRN.kt +54 -33
- package/android/src/main/java/com/primerioreactnative/datamodels/extensions/ach/AchUserDetailsCollectableData.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/datamodels/extensions/ach/AchUserDetailsStep.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/extensions/PaymentInstrumentData.kt +29 -16
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerCheckoutAdditionalInfo.kt +7 -7
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerIssuingBank.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerOrder.kt +7 -1
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodOptionsRN.kt +51 -32
- package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCategory.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCategoryRN.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCollectableData.kt +2 -2
- package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentStep.kt +4 -4
- package/ios/Sources/DataModels/PrimerSettings+Extensions.swift +60 -3
- package/ios/Sources/Headless Universal Checkout/Managers/Assets Manager/RNTAssetsManager.m +7 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Assets Manager/RNTAssetsManager.swift +62 -0
- package/ios/Sources/version.swift +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Components/NativeResourceView.js +30 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +1 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js +9 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +1 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js +32 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +6 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js +6 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js +24 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
- package/lib/commonjs/index.js +20 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/PrimerPaymentMethodResource.js +2 -0
- package/lib/{module/models/PrimerAsset.js.map → commonjs/models/PrimerPaymentMethodResource.js.map} +1 -1
- package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js +22 -0
- package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js +3 -0
- package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js +32 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +6 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js +6 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js +24 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/PrimerPaymentMethodResource.js +2 -0
- package/lib/{commonjs/models/PrimerAsset.js.map → module/models/PrimerPaymentMethodResource.js.map} +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts +11 -0
- package/lib/typescript/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts.map +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts +6 -0
- package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts.map +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts +10 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.d.ts +16 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.d.ts +14 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/VaultManager.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +8 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/models/PrimerClientSession.d.ts +7 -0
- package/lib/typescript/models/PrimerClientSession.d.ts.map +1 -1
- package/lib/typescript/models/PrimerPaymentMethodResource.d.ts +19 -0
- package/lib/typescript/models/PrimerPaymentMethodResource.d.ts.map +1 -0
- package/lib/typescript/models/PrimerPaymentMethodTokenData.d.ts +10 -49
- package/lib/typescript/models/PrimerPaymentMethodTokenData.d.ts.map +1 -1
- package/lib/typescript/models/PrimerSettings.d.ts +38 -2
- package/lib/typescript/models/PrimerSettings.d.ts.map +1 -1
- package/package.json +1 -1
- package/primer-io-react-native.podspec +1 -1
- package/src/HeadlessUniversalCheckout/Components/NativeResourceView.tsx +31 -0
- package/src/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.tsx +8 -0
- package/src/HeadlessUniversalCheckout/Managers/AssetsManager.ts +34 -1
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.ts +24 -1
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.ts +22 -1
- package/src/HeadlessUniversalCheckout/Managers/VaultManager.ts +22 -1
- package/src/index.tsx +9 -3
- package/src/models/PrimerClientSession.ts +9 -1
- package/src/models/PrimerPaymentMethodResource.ts +21 -0
- package/src/models/PrimerPaymentMethodTokenData.ts +10 -53
- package/src/models/PrimerSettings.ts +42 -4
- package/lib/commonjs/models/PrimerAsset.js +0 -2
- package/lib/module/models/PrimerAsset.js +0 -2
- package/lib/typescript/models/PrimerAsset.d.ts +0 -15
- package/lib/typescript/models/PrimerAsset.d.ts.map +0 -1
- package/src/models/PrimerAsset.ts +0 -14
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
arguments=--init-script /var/folders/wt/mqwpc4jx2kjgqf88mzm5qvx40000gn/T/
|
|
1
|
+
arguments=--init-script /var/folders/wt/mqwpc4jx2kjgqf88mzm5qvx40000gn/T/db3b08fc4a9ef609cb16b96b200fa13e563f396e9bb1ed0905fdab7bc3bc513b.gradle --init-script /var/folders/wt/mqwpc4jx2kjgqf88mzm5qvx40000gn/T/52cde0cfcf3e28b8b7510e992210d9614505e0911af0c190bd590d7158574963.gradle
|
|
2
2
|
auto.sync=true
|
|
3
3
|
build.scans.enabled=false
|
|
4
4
|
connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
|
|
5
|
-
connection.project.dir
|
|
5
|
+
connection.project.dir=
|
|
6
6
|
eclipse.preferences.version=1
|
|
7
7
|
gradle.user.home=
|
|
8
8
|
java.home=/Applications/Android Studio.app/Contents/jbr/Contents/Home
|
package/android/build.gradle
CHANGED
|
@@ -154,7 +154,7 @@ dependencies {
|
|
|
154
154
|
api 'com.facebook.react:react-native:+'
|
|
155
155
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
156
156
|
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1"
|
|
157
|
-
implementation 'io.primer:android:2.
|
|
157
|
+
implementation 'io.primer:android:2.33.1'
|
|
158
158
|
testImplementation 'io.mockk:mockk:1.13.11'
|
|
159
159
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2'
|
|
160
160
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2'
|
|
@@ -15,9 +15,9 @@ import io.primer.android.completion.PrimerResumeDecisionHandler
|
|
|
15
15
|
import io.primer.android.domain.PrimerCheckoutData
|
|
16
16
|
import io.primer.android.domain.action.models.PrimerClientSession
|
|
17
17
|
import io.primer.android.domain.error.models.PrimerError
|
|
18
|
-
import io.primer.android.
|
|
19
|
-
import io.primer.android.
|
|
20
|
-
import io.primer.android.
|
|
18
|
+
import io.primer.android.vouchers.multibanco.MultibancoCheckoutAdditionalInfo
|
|
19
|
+
import io.primer.android.payments.core.additionalInfo.PrimerCheckoutAdditionalInfo
|
|
20
|
+
import io.primer.android.qrcode.QrCodeCheckoutAdditionalInfo
|
|
21
21
|
import io.primer.android.domain.tokenization.models.PrimerPaymentMethodData
|
|
22
22
|
import io.primer.android.domain.tokenization.models.PrimerPaymentMethodTokenData
|
|
23
23
|
import kotlinx.serialization.encodeToString
|
|
@@ -173,7 +173,7 @@ class PrimerRNEventListener : PrimerCheckoutListener {
|
|
|
173
173
|
|
|
174
174
|
override fun onAdditionalInfoReceived(additionalInfo: PrimerCheckoutAdditionalInfo) {
|
|
175
175
|
if (implementedRNCallbacks?.isOnCheckoutAdditionalInfoImplemented == true) {
|
|
176
|
-
if (additionalInfo is
|
|
176
|
+
if (additionalInfo is QrCodeCheckoutAdditionalInfo) {
|
|
177
177
|
sendEvent?.invoke(
|
|
178
178
|
PrimerEvents.ON_CHECKOUT_RECEIVED_ADDITIONAL_INFO.eventName,
|
|
179
179
|
JSONObject(Json.encodeToString(additionalInfo.toCheckoutAdditionalInfoRN())).apply {
|
package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt
CHANGED
|
@@ -24,10 +24,10 @@ import io.primer.android.components.domain.core.models.PrimerHeadlessUniversalCh
|
|
|
24
24
|
import io.primer.android.domain.PrimerCheckoutData
|
|
25
25
|
import io.primer.android.domain.action.models.PrimerClientSession
|
|
26
26
|
import io.primer.android.domain.error.models.PrimerError
|
|
27
|
-
import io.primer.android.
|
|
28
|
-
import io.primer.android.
|
|
29
|
-
import io.primer.android.
|
|
30
|
-
import io.primer.android.
|
|
27
|
+
import io.primer.android.vouchers.multibanco.MultibancoCheckoutAdditionalInfo
|
|
28
|
+
import io.primer.android.payments.core.additionalInfo.PrimerCheckoutAdditionalInfo
|
|
29
|
+
import io.primer.android.qrcode.QrCodeCheckoutAdditionalInfo
|
|
30
|
+
import io.primer.android.stripe.ach.api.additionalInfo.AchAdditionalInfo
|
|
31
31
|
import io.primer.android.domain.tokenization.models.PrimerPaymentMethodData
|
|
32
32
|
import io.primer.android.domain.tokenization.models.PrimerPaymentMethodTokenData
|
|
33
33
|
import io.primer.android.Primer
|
|
@@ -250,7 +250,7 @@ class PrimerRNHeadlessUniversalCheckoutListener(
|
|
|
250
250
|
override fun onCheckoutAdditionalInfoReceived(additionalInfo: PrimerCheckoutAdditionalInfo) {
|
|
251
251
|
if (implementedRNCallbacks?.isOnCheckoutAdditionalInfoImplemented == true) {
|
|
252
252
|
when (additionalInfo) {
|
|
253
|
-
is
|
|
253
|
+
is QrCodeCheckoutAdditionalInfo -> {
|
|
254
254
|
sendEvent?.invoke(
|
|
255
255
|
PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_ADDITIONAL_INFO.eventName,
|
|
256
256
|
JSONObject(json.encodeToString(additionalInfo.toCheckoutAdditionalInfoRN())).apply {
|
|
@@ -11,8 +11,10 @@ import com.primerioreactnative.components.manager.vault.PrimerRNHeadlessUniversa
|
|
|
11
11
|
import com.primerioreactnative.components.manager.redirect.PrimerRNHeadlessUniversalCheckoutBanksComponent
|
|
12
12
|
import com.primerioreactnative.components.manager.klarna.PrimerRNHeadlessUniversalCheckoutKlarnaComponent
|
|
13
13
|
import com.primerioreactnative.components.manager.klarna.PrimerKlarnaPaymentViewManager
|
|
14
|
+
import com.primerioreactnative.components.manager.googlePay.PrimerGooglePayButtonManager
|
|
14
15
|
import com.primerioreactnative.components.manager.ach.PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent
|
|
15
16
|
import com.primerioreactnative.components.manager.ach.PrimerRNAchMandateManager
|
|
17
|
+
import com.primerioreactnative.components.manager.googlePay.PrimerGooglePayButtonConstantsModule
|
|
16
18
|
import kotlinx.serialization.json.Json
|
|
17
19
|
|
|
18
20
|
class ReactNativePackage : ReactPackage {
|
|
@@ -31,14 +33,18 @@ class ReactNativePackage : ReactPackage {
|
|
|
31
33
|
PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent(reactContext),
|
|
32
34
|
PrimerRNAchMandateManager(reactContext),
|
|
33
35
|
//region Component with redirect components
|
|
34
|
-
PrimerRNHeadlessUniversalCheckoutBanksComponent(reactContext)
|
|
36
|
+
PrimerRNHeadlessUniversalCheckoutBanksComponent(reactContext),
|
|
35
37
|
//endregion
|
|
38
|
+
// region Google Pay Helpers
|
|
39
|
+
PrimerGooglePayButtonConstantsModule(reactContext),
|
|
40
|
+
// endregion
|
|
36
41
|
)
|
|
37
42
|
}
|
|
38
43
|
|
|
39
44
|
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
|
|
40
45
|
return mutableListOf(
|
|
41
|
-
PrimerKlarnaPaymentViewManager(
|
|
46
|
+
PrimerKlarnaPaymentViewManager(),
|
|
47
|
+
PrimerGooglePayButtonManager()
|
|
42
48
|
)
|
|
43
49
|
}
|
|
44
50
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
package com.primerioreactnative.components.datamodels.manager.raw.cardRedirect
|
|
2
2
|
|
|
3
|
-
import io.primer.android.
|
|
3
|
+
import io.primer.android.bancontact.PrimerBancontactCardData
|
|
4
4
|
import kotlinx.serialization.Serializable
|
|
5
5
|
|
|
6
6
|
@Serializable
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
package com.primerioreactnative.components.datamodels.manager.raw.phoneNumber
|
|
2
2
|
|
|
3
|
-
import io.primer.android.
|
|
3
|
+
import io.primer.android.phoneNumber.PrimerPhoneNumberData
|
|
4
4
|
import kotlinx.serialization.Serializable
|
|
5
5
|
|
|
6
6
|
@Serializable
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
package com.primerioreactnative.components.datamodels.manager.raw.retailOutlets
|
|
2
2
|
|
|
3
|
-
import io.primer.android.
|
|
3
|
+
import io.primer.android.PrimerRetailerData
|
|
4
4
|
import kotlinx.serialization.Serializable
|
|
5
5
|
|
|
6
6
|
@Serializable
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
package com.primerioreactnative.components.datamodels.manager.raw.retailOutlets
|
|
2
2
|
|
|
3
|
-
import io.primer.android.
|
|
3
|
+
import io.primer.android.RetailOutletsList
|
|
4
4
|
import kotlinx.serialization.Serializable
|
|
5
5
|
|
|
6
6
|
@Serializable
|
|
@@ -6,24 +6,48 @@ import com.primerioreactnative.components.assets.AssetsManager
|
|
|
6
6
|
import com.primerioreactnative.components.assets.AssetsManager.drawableToBitmap
|
|
7
7
|
import com.primerioreactnative.components.assets.PaymentMethodAssetFileProvider.getFileForPaymentMethodAsset
|
|
8
8
|
import io.primer.android.components.ui.assets.PrimerPaymentMethodAsset
|
|
9
|
+
import io.primer.android.components.ui.assets.PrimerPaymentMethodNativeView
|
|
9
10
|
import kotlinx.serialization.Serializable
|
|
10
11
|
|
|
12
|
+
@Serializable
|
|
13
|
+
sealed interface PrimerRNPaymentMethodResource {
|
|
14
|
+
val paymentMethodType: String
|
|
15
|
+
val paymentMethodName: String
|
|
16
|
+
|
|
17
|
+
@Serializable
|
|
18
|
+
data class PrimerRNPaymentMethodAsset(
|
|
19
|
+
override val paymentMethodType: String,
|
|
20
|
+
override val paymentMethodName: String,
|
|
21
|
+
val paymentMethodLogo: PrimerRNPaymentMethodLogo,
|
|
22
|
+
val paymentMethodBackgroundColor: PrimerRNPaymentMethodBackgroundColor
|
|
23
|
+
) : PrimerRNPaymentMethodResource
|
|
24
|
+
|
|
25
|
+
@Serializable
|
|
26
|
+
data class PrimerRNPaymentMethodNativeView(
|
|
27
|
+
override val paymentMethodType: String,
|
|
28
|
+
override val paymentMethodName: String,
|
|
29
|
+
val nativeViewName: String
|
|
30
|
+
) : PrimerRNPaymentMethodResource
|
|
31
|
+
}
|
|
32
|
+
|
|
11
33
|
@Serializable
|
|
12
34
|
data class PrimerRNPaymentMethodAssets(
|
|
13
|
-
val paymentMethodAssets: List<PrimerRNPaymentMethodAsset>
|
|
35
|
+
val paymentMethodAssets: List<PrimerRNPaymentMethodResource.PrimerRNPaymentMethodAsset>
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
@Serializable
|
|
39
|
+
data class PrimerRNPaymentMethodResources(
|
|
40
|
+
val paymentMethodResources: List<PrimerRNPaymentMethodResource>
|
|
14
41
|
)
|
|
15
42
|
|
|
16
43
|
@Serializable
|
|
17
44
|
data class PrimerRNPaymentMethodAssetWrapper(
|
|
18
|
-
val paymentMethodAsset: PrimerRNPaymentMethodAsset
|
|
45
|
+
val paymentMethodAsset: PrimerRNPaymentMethodResource.PrimerRNPaymentMethodAsset
|
|
19
46
|
)
|
|
20
47
|
|
|
21
48
|
@Serializable
|
|
22
|
-
data class
|
|
23
|
-
val
|
|
24
|
-
val paymentMethodName: String,
|
|
25
|
-
val paymentMethodLogo: PrimerRNPaymentMethodLogo,
|
|
26
|
-
val paymentMethodBackgroundColor: PrimerRNPaymentMethodBackgroundColor
|
|
49
|
+
data class PrimerRNPaymentMethodResourceWrapper(
|
|
50
|
+
val paymentMethodResource: PrimerRNPaymentMethodResource
|
|
27
51
|
)
|
|
28
52
|
|
|
29
53
|
@Serializable
|
|
@@ -45,10 +69,10 @@ data class PrimerCardNetworkAsset(
|
|
|
45
69
|
val cardNetworkImageURL: String
|
|
46
70
|
)
|
|
47
71
|
|
|
48
|
-
|
|
72
|
+
fun PrimerPaymentMethodAsset.toPrimerRNPaymentMethodAsset(
|
|
49
73
|
reactContext: ReactApplicationContext,
|
|
50
74
|
paymentMethodType: String,
|
|
51
|
-
) = PrimerRNPaymentMethodAsset(
|
|
75
|
+
) = PrimerRNPaymentMethodResource.PrimerRNPaymentMethodAsset(
|
|
52
76
|
paymentMethodType,
|
|
53
77
|
paymentMethodName,
|
|
54
78
|
PrimerRNPaymentMethodLogo(
|
|
@@ -90,6 +114,14 @@ internal fun PrimerPaymentMethodAsset.toPrimerRNPaymentMethodAsset(
|
|
|
90
114
|
)
|
|
91
115
|
)
|
|
92
116
|
|
|
117
|
+
fun PrimerPaymentMethodNativeView.toPrimerRNPaymentMethodNativeView(paymentMethodType: String) = PrimerRNPaymentMethodResource.PrimerRNPaymentMethodNativeView(
|
|
118
|
+
paymentMethodType = paymentMethodType,
|
|
119
|
+
paymentMethodName = paymentMethodName,
|
|
120
|
+
nativeViewName = when (paymentMethodType) {
|
|
121
|
+
"GOOGLE_PAY" -> "PrimerGooglePayButton"
|
|
122
|
+
else -> error("Native view for '$paymentMethodType'is not supported")
|
|
123
|
+
}
|
|
124
|
+
)
|
|
93
125
|
|
|
94
126
|
private fun getFileUrl(
|
|
95
127
|
reactContext: ReactApplicationContext,
|
package/android/src/main/java/com/primerioreactnative/components/manager/NativeViewContainer.kt
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
package com.primerioreactnative.components.manager
|
|
2
|
+
|
|
3
|
+
import android.util.Log
|
|
4
|
+
import android.view.View
|
|
5
|
+
import android.widget.FrameLayout
|
|
6
|
+
import com.facebook.react.uimanager.ThemedReactContext
|
|
7
|
+
|
|
8
|
+
class NativeViewContainer(private val context: ThemedReactContext) : FrameLayout(context) {
|
|
9
|
+
fun addViewImpl(view: View) {
|
|
10
|
+
addView(view)
|
|
11
|
+
view.setOnClickListener {
|
|
12
|
+
(this.parent as? View)?.performClick()
|
|
13
|
+
?: run {
|
|
14
|
+
Log.e(
|
|
15
|
+
"NativeViewContainer",
|
|
16
|
+
"Unable to find parent of NativeViewContainer."
|
|
17
|
+
)
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
viewTreeObserver.addOnGlobalLayoutListener { requestLayout() }
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
override fun requestLayout() {
|
|
24
|
+
super.requestLayout()
|
|
25
|
+
post(mLayoutRunnable)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
private val mLayoutRunnable = Runnable {
|
|
29
|
+
measure(
|
|
30
|
+
MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
|
|
31
|
+
MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)
|
|
32
|
+
)
|
|
33
|
+
layout(left, top, right, bottom)
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -24,11 +24,11 @@ import com.primerioreactnative.datamodels.extensions.ach.toUserDetailsRetrievedR
|
|
|
24
24
|
import com.primerioreactnative.utils.convertJsonToArray
|
|
25
25
|
import com.primerioreactnative.utils.convertJsonToMap
|
|
26
26
|
import com.primerioreactnative.utils.errorTo
|
|
27
|
-
import io.primer.android.components.
|
|
27
|
+
import io.primer.android.components.ach.PrimerHeadlessUniversalCheckoutAchManager
|
|
28
28
|
import io.primer.android.components.manager.core.composable.PrimerValidationStatus
|
|
29
|
-
import io.primer.android.
|
|
30
|
-
import io.primer.android.
|
|
31
|
-
import io.primer.android.
|
|
29
|
+
import io.primer.android.stripe.ach.api.component.StripeAchUserDetailsComponent
|
|
30
|
+
import io.primer.android.stripe.ach.api.composable.AchUserDetailsCollectableData
|
|
31
|
+
import io.primer.android.stripe.ach.api.composable.AchUserDetailsStep
|
|
32
32
|
import io.primer.android.domain.error.models.PrimerError
|
|
33
33
|
import com.primerioreactnative.utils.toWritableArray
|
|
34
34
|
import com.primerioreactnative.utils.toWritableMap
|
|
@@ -5,23 +5,29 @@ import com.facebook.react.bridge.Promise
|
|
|
5
5
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
6
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
7
7
|
import com.facebook.react.bridge.ReactMethod
|
|
8
|
+
import io.primer.android.components.ui.assets.PrimerPaymentMethodAsset
|
|
9
|
+
import io.primer.android.components.ui.assets.PrimerPaymentMethodNativeView
|
|
8
10
|
import com.primerioreactnative.components.assets.AssetsManager
|
|
9
11
|
import com.primerioreactnative.components.assets.AssetsManager.drawableToBitmap
|
|
10
12
|
import com.primerioreactnative.components.assets.CardNetworkImageFileProvider.getFileForCardNetworkAsset
|
|
11
13
|
import com.primerioreactnative.components.datamodels.manager.asset.PrimerCardNetworkAsset
|
|
12
14
|
import com.primerioreactnative.components.datamodels.manager.asset.PrimerRNPaymentMethodAssetWrapper
|
|
15
|
+
import com.primerioreactnative.components.datamodels.manager.asset.PrimerRNPaymentMethodResourceWrapper
|
|
13
16
|
import com.primerioreactnative.components.datamodels.manager.asset.PrimerRNPaymentMethodAssets
|
|
14
17
|
import com.primerioreactnative.components.datamodels.manager.asset.toPrimerRNPaymentMethodAsset
|
|
18
|
+
import com.primerioreactnative.components.datamodels.manager.asset.toPrimerRNPaymentMethodNativeView
|
|
19
|
+
import com.primerioreactnative.components.datamodels.manager.asset.PrimerRNPaymentMethodResources
|
|
15
20
|
import com.primerioreactnative.datamodels.ErrorTypeRN
|
|
16
21
|
import com.primerioreactnative.utils.errorTo
|
|
17
22
|
import com.primerioreactnative.utils.toWritableMap
|
|
18
23
|
import io.primer.android.ExperimentalPrimerApi
|
|
19
24
|
import io.primer.android.components.SdkUninitializedException
|
|
20
25
|
import io.primer.android.components.ui.assets.PrimerHeadlessUniversalCheckoutAssetsManager
|
|
21
|
-
import io.primer.android.
|
|
26
|
+
import io.primer.android.configuration.data.model.CardNetwork
|
|
22
27
|
import kotlinx.serialization.encodeToString
|
|
23
28
|
import kotlinx.serialization.json.Json
|
|
24
29
|
import org.json.JSONObject
|
|
30
|
+
import com.primerioreactnative.components.manager.googlePay.PrimerGooglePayButtonManager
|
|
25
31
|
|
|
26
32
|
@ExperimentalPrimerApi
|
|
27
33
|
internal class PrimerRNHeadlessUniversalCheckoutAssetManager(
|
|
@@ -123,4 +129,80 @@ internal class PrimerRNHeadlessUniversalCheckoutAssetManager(
|
|
|
123
129
|
promise.reject(ErrorTypeRN.UnitializedSdkSession.errorId, e.message, e)
|
|
124
130
|
}
|
|
125
131
|
}
|
|
132
|
+
|
|
133
|
+
@ReactMethod
|
|
134
|
+
fun getPaymentMethodResources(promise: Promise) {
|
|
135
|
+
try {
|
|
136
|
+
val paymentMethodResources =
|
|
137
|
+
PrimerHeadlessUniversalCheckoutAssetsManager.getPaymentMethodResources(reactContext)
|
|
138
|
+
if (paymentMethodResources.isEmpty()) {
|
|
139
|
+
val exception =
|
|
140
|
+
ErrorTypeRN.NativeBridgeFailed errorTo "Failed to find resources for this session"
|
|
141
|
+
promise.reject(exception.errorId, exception.description)
|
|
142
|
+
}
|
|
143
|
+
promise.resolve(
|
|
144
|
+
JSONObject(
|
|
145
|
+
Json.encodeToString(
|
|
146
|
+
PrimerRNPaymentMethodResources(paymentMethodResources.map {
|
|
147
|
+
when (it) {
|
|
148
|
+
is PrimerPaymentMethodAsset -> {
|
|
149
|
+
it.toPrimerRNPaymentMethodAsset(
|
|
150
|
+
reactContext = reactContext,
|
|
151
|
+
paymentMethodType = it.paymentMethodType
|
|
152
|
+
)
|
|
153
|
+
}
|
|
154
|
+
is PrimerPaymentMethodNativeView -> {
|
|
155
|
+
PrimerGooglePayButtonManager.updatePrimerGooglePayButtonCreator {
|
|
156
|
+
context -> it.createView(context)
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
it.toPrimerRNPaymentMethodNativeView(
|
|
160
|
+
paymentMethodType = it.paymentMethodType
|
|
161
|
+
)
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
)
|
|
166
|
+
)
|
|
167
|
+
).toWritableMap()
|
|
168
|
+
)
|
|
169
|
+
} catch (e: SdkUninitializedException) {
|
|
170
|
+
promise.reject(ErrorTypeRN.UnitializedSdkSession.errorId, e.message, e)
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
@ReactMethod
|
|
175
|
+
fun getPaymentMethodResource(paymentMethodTypeStr: String, promise: Promise) {
|
|
176
|
+
try {
|
|
177
|
+
val paymentMethodResource =
|
|
178
|
+
PrimerHeadlessUniversalCheckoutAssetsManager.getPaymentMethodResource(reactContext, paymentMethodTypeStr)
|
|
179
|
+
promise.resolve(
|
|
180
|
+
JSONObject(
|
|
181
|
+
Json.encodeToString(
|
|
182
|
+
PrimerRNPaymentMethodResourceWrapper(
|
|
183
|
+
when (paymentMethodResource) {
|
|
184
|
+
is PrimerPaymentMethodAsset -> {
|
|
185
|
+
paymentMethodResource.toPrimerRNPaymentMethodAsset(
|
|
186
|
+
reactContext = reactContext,
|
|
187
|
+
paymentMethodType = paymentMethodResource.paymentMethodType
|
|
188
|
+
)
|
|
189
|
+
}
|
|
190
|
+
is PrimerPaymentMethodNativeView -> {
|
|
191
|
+
PrimerGooglePayButtonManager.updatePrimerGooglePayButtonCreator {
|
|
192
|
+
context -> paymentMethodResource.createView(context)
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
paymentMethodResource.toPrimerRNPaymentMethodNativeView(
|
|
196
|
+
paymentMethodType = paymentMethodResource.paymentMethodType
|
|
197
|
+
)
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
)
|
|
201
|
+
)
|
|
202
|
+
).toWritableMap()
|
|
203
|
+
)
|
|
204
|
+
} catch (e: SdkUninitializedException) {
|
|
205
|
+
promise.reject(ErrorTypeRN.UnitializedSdkSession.errorId, e.message, e)
|
|
206
|
+
}
|
|
207
|
+
}
|
|
126
208
|
}
|
|
@@ -26,7 +26,7 @@ import com.primerioreactnative.utils.convertJsonToArray
|
|
|
26
26
|
import com.primerioreactnative.utils.errorTo
|
|
27
27
|
import io.primer.android.components.manager.banks.composable.BanksCollectableData
|
|
28
28
|
import io.primer.android.components.manager.banks.composable.BanksStep
|
|
29
|
-
import io.primer.android.components.
|
|
29
|
+
import io.primer.android.components.componentWithRedirect.PrimerHeadlessUniversalCheckoutComponentWithRedirectManager
|
|
30
30
|
import io.primer.android.components.manager.componentWithRedirect.component.BanksComponent
|
|
31
31
|
import io.primer.android.components.manager.core.composable.PrimerValidationStatus
|
|
32
32
|
import com.primerioreactnative.utils.toWritableArray
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
package com.primerioreactnative.components.manager.googlePay
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
5
|
+
import com.google.android.gms.wallet.button.ButtonConstants
|
|
6
|
+
|
|
7
|
+
internal object PrimerGooglePayButtonOptionsMapping {
|
|
8
|
+
|
|
9
|
+
fun getOptions(): Map<String, Map<String, Int>> {
|
|
10
|
+
val themes = hashMapOf<String, Int>()
|
|
11
|
+
themes["Dark"] = ButtonConstants.ButtonTheme.DARK
|
|
12
|
+
themes["Light"] = ButtonConstants.ButtonTheme.LIGHT
|
|
13
|
+
|
|
14
|
+
val types = hashMapOf<String, Int>()
|
|
15
|
+
types["Book"] = ButtonConstants.ButtonType.BOOK
|
|
16
|
+
types["Buy"] = ButtonConstants.ButtonType.BUY
|
|
17
|
+
types["Checkout"] = ButtonConstants.ButtonType.CHECKOUT
|
|
18
|
+
types["Donate"] = ButtonConstants.ButtonType.DONATE
|
|
19
|
+
types["Order"] = ButtonConstants.ButtonType.ORDER
|
|
20
|
+
types["Pay"] = ButtonConstants.ButtonType.PAY
|
|
21
|
+
types["Plain"] = ButtonConstants.ButtonType.PLAIN
|
|
22
|
+
types["Subscribe"] = ButtonConstants.ButtonType.SUBSCRIBE
|
|
23
|
+
|
|
24
|
+
return hashMapOf("Themes" to themes, "Types" to types)
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
class PrimerGooglePayButtonConstantsModule(reactContext: ReactApplicationContext) :
|
|
29
|
+
ReactContextBaseJavaModule(reactContext) {
|
|
30
|
+
|
|
31
|
+
override fun getConstants(): Map<String, Any> =
|
|
32
|
+
PrimerGooglePayButtonOptionsMapping.getOptions()
|
|
33
|
+
|
|
34
|
+
override fun getName() = NAME
|
|
35
|
+
|
|
36
|
+
companion object {
|
|
37
|
+
private const val NAME = "PrimerGooglePayButtonConstants"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
package com.primerioreactnative.components.manager.googlePay
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import android.view.View
|
|
5
|
+
import android.widget.TextView
|
|
6
|
+
import com.facebook.react.uimanager.SimpleViewManager
|
|
7
|
+
import com.facebook.react.uimanager.ThemedReactContext
|
|
8
|
+
import com.primerioreactnative.components.manager.NativeViewContainer
|
|
9
|
+
|
|
10
|
+
class PrimerGooglePayButtonManager : SimpleViewManager<NativeViewContainer>() {
|
|
11
|
+
override fun getName() = REACT_CLASS
|
|
12
|
+
|
|
13
|
+
override fun createViewInstance(reactContext: ThemedReactContext): NativeViewContainer =
|
|
14
|
+
NativeViewContainer(reactContext)
|
|
15
|
+
|
|
16
|
+
override fun onAfterUpdateTransaction(view: NativeViewContainer) {
|
|
17
|
+
super.onAfterUpdateTransaction(view)
|
|
18
|
+
view.addViewImpl(
|
|
19
|
+
getPrimerGooglePayButtonOrNull(view.context)
|
|
20
|
+
?: TextView(view.context).apply { text = "Error loading Google Pay button" }
|
|
21
|
+
)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
private fun getPrimerGooglePayButtonOrNull(context: Context): View? {
|
|
25
|
+
return createPrimerGooglePayButton?.invoke(context) ?: return null
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
companion object {
|
|
29
|
+
var createPrimerGooglePayButton: ((context: Context) -> View)? = null
|
|
30
|
+
private set
|
|
31
|
+
|
|
32
|
+
fun updatePrimerGooglePayButtonCreator(creator: (context: Context) -> View) {
|
|
33
|
+
this.createPrimerGooglePayButton = creator
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const val REACT_CLASS = "PrimerGooglePayButton"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -1,97 +1,34 @@
|
|
|
1
1
|
package com.primerioreactnative.components.manager.klarna
|
|
2
2
|
|
|
3
|
-
import android.os.Handler
|
|
4
|
-
import android.os.Looper
|
|
5
3
|
import android.view.View
|
|
6
4
|
import android.view.ViewGroup
|
|
7
|
-
import android.widget.FrameLayout
|
|
8
5
|
import android.widget.TextView
|
|
9
|
-
import com.facebook.react.
|
|
6
|
+
import com.facebook.react.uimanager.SimpleViewManager
|
|
10
7
|
import com.facebook.react.uimanager.ThemedReactContext
|
|
11
|
-
import com.
|
|
12
|
-
import io.primer.android.
|
|
8
|
+
import com.primerioreactnative.components.manager.NativeViewContainer
|
|
9
|
+
import io.primer.android.klarna.api.ui.PrimerKlarnaPaymentView
|
|
13
10
|
import java.lang.ref.WeakReference
|
|
14
|
-
import java.util.Timer
|
|
15
|
-
import java.util.TimerTask
|
|
16
11
|
|
|
17
|
-
class PrimerKlarnaPaymentViewManager
|
|
18
|
-
ViewGroupManager<ViewGroup>() {
|
|
12
|
+
class PrimerKlarnaPaymentViewManager : SimpleViewManager<NativeViewContainer>() {
|
|
19
13
|
override fun getName() = REACT_CLASS
|
|
20
14
|
|
|
21
|
-
override fun createViewInstance(reactContext: ThemedReactContext) =
|
|
22
|
-
|
|
23
|
-
addView(
|
|
24
|
-
getPrimerKlarnaPaymentViewOrNull(this)
|
|
25
|
-
?: PrimerKlarnaPaymentView(context).apply {
|
|
26
|
-
addView(TextView(context).apply { text = "Error loading Klarna payment view" })
|
|
27
|
-
}
|
|
28
|
-
)
|
|
29
|
-
alpha = 0f
|
|
30
|
-
}
|
|
15
|
+
override fun createViewInstance(reactContext: ThemedReactContext): NativeViewContainer =
|
|
16
|
+
NativeViewContainer(reactContext)
|
|
31
17
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
override fun onLayoutChange(
|
|
40
|
-
v: View?,
|
|
41
|
-
left: Int,
|
|
42
|
-
top: Int,
|
|
43
|
-
right: Int,
|
|
44
|
-
bottom: Int,
|
|
45
|
-
oldLeft: Int,
|
|
46
|
-
oldTop: Int,
|
|
47
|
-
oldRight: Int,
|
|
48
|
-
oldBottom: Int
|
|
49
|
-
) {
|
|
50
|
-
val listener = this
|
|
51
|
-
timer?.cancel()
|
|
52
|
-
timer =
|
|
53
|
-
Timer().apply {
|
|
54
|
-
schedule(
|
|
55
|
-
object : TimerTask() {
|
|
56
|
-
override fun run() {
|
|
57
|
-
timer?.cancel()
|
|
58
|
-
timer = null
|
|
59
|
-
handler.post(
|
|
60
|
-
Runnable {
|
|
61
|
-
view.removeOnLayoutChangeListener(listener)
|
|
62
|
-
// Re-layout parent once KlarnaPaymentView loads
|
|
63
|
-
layout(view)
|
|
64
|
-
parent.alpha = 1f
|
|
65
|
-
}
|
|
66
|
-
)
|
|
67
|
-
}
|
|
68
|
-
},
|
|
69
|
-
300L
|
|
70
|
-
)
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
view.addOnLayoutChangeListener(listener)
|
|
75
|
-
|
|
76
|
-
return view
|
|
18
|
+
override fun onAfterUpdateTransaction(view: NativeViewContainer) {
|
|
19
|
+
super.onAfterUpdateTransaction(view)
|
|
20
|
+
view.addViewImpl(
|
|
21
|
+
getPrimerKlarnaPaymentViewOrNull()
|
|
22
|
+
?: TextView(view.context).apply { text = "Error loading Klarna payment view" }
|
|
23
|
+
)
|
|
77
24
|
}
|
|
78
25
|
|
|
79
|
-
private fun
|
|
80
|
-
|
|
81
|
-
val oldY = view.getY().toInt()
|
|
82
|
-
val parent = (view.parent as? View)
|
|
83
|
-
val fallbackWidth = parent?.width ?: Int.MAX_VALUE
|
|
84
|
-
val fallbackHeight = parent?.height ?: Int.MAX_VALUE
|
|
85
|
-
view.measure(
|
|
86
|
-
View.MeasureSpec.makeMeasureSpec(fallbackWidth, View.MeasureSpec.EXACTLY),
|
|
87
|
-
View.MeasureSpec.makeMeasureSpec(fallbackHeight, View.MeasureSpec.EXACTLY)
|
|
88
|
-
)
|
|
89
|
-
view.layout(oldX, oldY, oldX + fallbackWidth, oldY + fallbackHeight)
|
|
26
|
+
private fun getPrimerKlarnaPaymentViewOrNull(): View? {
|
|
27
|
+
return primerKlarnaPaymentView.get() ?: return null
|
|
90
28
|
}
|
|
91
29
|
|
|
92
30
|
companion object {
|
|
93
|
-
private var primerKlarnaPaymentView: WeakReference<PrimerKlarnaPaymentView?> =
|
|
94
|
-
WeakReference(null)
|
|
31
|
+
private var primerKlarnaPaymentView: WeakReference<PrimerKlarnaPaymentView?> = WeakReference(null)
|
|
95
32
|
private set
|
|
96
33
|
|
|
97
34
|
fun updatePrimerKlarnaPaymentView(view: PrimerKlarnaPaymentView) {
|
|
@@ -29,10 +29,10 @@ import com.primerioreactnative.extensions.putErrors
|
|
|
29
29
|
import com.primerioreactnative.extensions.putValidationErrors
|
|
30
30
|
import io.primer.android.PrimerSessionIntent
|
|
31
31
|
import io.primer.android.components.manager.core.composable.PrimerValidationStatus
|
|
32
|
-
import io.primer.android.
|
|
33
|
-
import io.primer.android.
|
|
34
|
-
import io.primer.android.
|
|
35
|
-
import io.primer.android.
|
|
32
|
+
import io.primer.android.klarna.PrimerHeadlessUniversalCheckoutKlarnaManager
|
|
33
|
+
import io.primer.android.klarna.api.component.KlarnaComponent
|
|
34
|
+
import io.primer.android.klarna.api.composable.KlarnaPaymentCollectableData
|
|
35
|
+
import io.primer.android.klarna.api.composable.KlarnaPaymentStep
|
|
36
36
|
import kotlinx.coroutines.CoroutineScope
|
|
37
37
|
import kotlinx.coroutines.Dispatchers
|
|
38
38
|
import kotlinx.coroutines.Job
|
|
@@ -19,7 +19,7 @@ import io.primer.android.components.SdkUninitializedException
|
|
|
19
19
|
import io.primer.android.components.domain.exception.UnsupportedPaymentMethodManagerException
|
|
20
20
|
import io.primer.android.components.manager.raw.PrimerHeadlessUniversalCheckoutRawDataManager
|
|
21
21
|
import io.primer.android.components.manager.raw.PrimerHeadlessUniversalCheckoutRawDataManagerInterface
|
|
22
|
-
import io.primer.android.
|
|
22
|
+
import io.primer.android.RetailOutletsList
|
|
23
23
|
import kotlinx.serialization.decodeFromString
|
|
24
24
|
import kotlinx.serialization.encodeToString
|
|
25
25
|
import kotlinx.serialization.json.Json
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
package com.primerioreactnative.datamodels
|
|
2
2
|
|
|
3
|
-
import io.primer.android.data.
|
|
3
|
+
import io.primer.android.configuration.data.model.CountryCode
|
|
4
4
|
import io.primer.android.domain.action.models.*
|
|
5
5
|
import kotlinx.serialization.Serializable
|
|
6
6
|
|
|
@@ -28,6 +28,15 @@ data class PrimerCustomerRN(
|
|
|
28
28
|
@Serializable
|
|
29
29
|
data class PrimerOrderRN(
|
|
30
30
|
val countryCode: CountryCode?,
|
|
31
|
+
val shipping: PrimerShippingRN?
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
@Serializable
|
|
35
|
+
data class PrimerShippingRN(
|
|
36
|
+
val amount: Int?,
|
|
37
|
+
val methodId: String?,
|
|
38
|
+
val methodName: String?,
|
|
39
|
+
val methodDescription: String?
|
|
31
40
|
)
|
|
32
41
|
|
|
33
42
|
@Serializable
|