@primer-io/react-native 2.39.0 → 2.39.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +12 -17
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckout.kt +4 -1
- package/android/src/main/java/com/primerioreactnative/PrimerSdkPackage.kt +117 -0
- package/android/src/main/java/com/primerioreactnative/components/manager/ach/PrimerRNAchMandateManager.kt +4 -1
- package/android/src/main/java/com/primerioreactnative/components/manager/ach/PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent.kt +8 -4
- package/android/src/main/java/com/primerioreactnative/components/manager/asset/PrimerRNHeadlessUniversalCheckoutAssetManager.kt +6 -0
- package/android/src/main/java/com/primerioreactnative/components/manager/banks/PrimerRNHeadlessUniversalCheckoutBanksComponent.kt +7 -4
- package/android/src/main/java/com/primerioreactnative/components/manager/googlePay/PrimerGooglePayButtonConstantsModule.kt +3 -1
- package/android/src/main/java/com/primerioreactnative/components/manager/klarna/PrimerRNHeadlessUniversalCheckoutKlarnaComponent.kt +9 -5
- package/android/src/main/java/com/primerioreactnative/components/manager/nativeUi/PrimerRNHeadlessUniversalCheckoutNativeUiManager.kt +7 -1
- package/android/src/main/java/com/primerioreactnative/components/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManager.kt +7 -3
- package/android/src/main/java/com/primerioreactnative/components/manager/vault/PrimerRNHeadlessUniversalCheckoutVaultManager.kt +7 -1
- package/android/src/newarch/java/com/primerioreactnative/NativePrimerModule.kt +3 -3
- package/android/src/oldarch/java/com/primerioreactnative/NativePrimerModule.kt +3 -2
- package/ios/Sources/version.swift +1 -1
- package/package.json +1 -1
- package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +0 -77
package/android/build.gradle
CHANGED
|
@@ -21,9 +21,15 @@ buildscript {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
def isNewArchitectureEnabled() {
|
|
25
|
+
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
|
|
26
|
+
}
|
|
27
|
+
|
|
24
28
|
apply plugin: 'com.android.library'
|
|
25
29
|
apply plugin: 'kotlin-android'
|
|
26
|
-
|
|
30
|
+
if (isNewArchitectureEnabled()) {
|
|
31
|
+
apply plugin: "com.facebook.react"
|
|
32
|
+
}
|
|
27
33
|
apply plugin: 'kotlinx-serialization'
|
|
28
34
|
apply plugin: 'io.gitlab.arturbosch.detekt'
|
|
29
35
|
apply from: "./config/coverage-scripts/kover.gradle"
|
|
@@ -36,10 +42,6 @@ def getExtOrIntegerDefault(name) {
|
|
|
36
42
|
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties['ReactNative_' + name]).toInteger()
|
|
37
43
|
}
|
|
38
44
|
|
|
39
|
-
def isNewArchitectureEnabled() {
|
|
40
|
-
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
|
|
41
|
-
}
|
|
42
|
-
|
|
43
45
|
java {
|
|
44
46
|
toolchain {
|
|
45
47
|
languageVersion.set(JavaLanguageVersion.of(17))
|
|
@@ -86,18 +88,11 @@ android {
|
|
|
86
88
|
}
|
|
87
89
|
}
|
|
88
90
|
|
|
89
|
-
sourceSets {
|
|
90
|
-
|
|
91
|
-
java.srcDirs += [
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
]
|
|
95
|
-
|
|
96
|
-
if (isNewArchitectureEnabled()) {
|
|
97
|
-
java.srcDirs += ['src/newarch']
|
|
98
|
-
} else {
|
|
99
|
-
java.srcDirs += ['src/oldarch']
|
|
100
|
-
}
|
|
91
|
+
sourceSets.main {
|
|
92
|
+
if (isNewArchitectureEnabled()) {
|
|
93
|
+
java.srcDirs += ['src/newarch']
|
|
94
|
+
} else {
|
|
95
|
+
java.srcDirs += ['src/oldarch']
|
|
101
96
|
}
|
|
102
97
|
}
|
|
103
98
|
}
|
|
@@ -7,6 +7,7 @@ import com.facebook.react.bridge.ReactApplicationContext
|
|
|
7
7
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
8
8
|
import com.facebook.react.bridge.ReactMethod
|
|
9
9
|
import com.facebook.react.bridge.WritableMap
|
|
10
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
10
11
|
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
11
12
|
import com.primerioreactnative.components.events.PrimerHeadlessUniversalCheckoutEvent
|
|
12
13
|
import com.primerioreactnative.datamodels.ErrorTypeRN
|
|
@@ -26,6 +27,7 @@ import org.json.JSONObject
|
|
|
26
27
|
|
|
27
28
|
@Suppress("TooManyFunctions")
|
|
28
29
|
@ExperimentalPrimerApi
|
|
30
|
+
@ReactModule(name = PrimerRNHeadlessUniversalCheckout.NAME)
|
|
29
31
|
class PrimerRNHeadlessUniversalCheckout(
|
|
30
32
|
private val reactContext: ReactApplicationContext,
|
|
31
33
|
private val json: Json,
|
|
@@ -193,7 +195,8 @@ class PrimerRNHeadlessUniversalCheckout(
|
|
|
193
195
|
return data.toWritableMap()
|
|
194
196
|
}
|
|
195
197
|
|
|
196
|
-
|
|
198
|
+
companion object {
|
|
197
199
|
const val TAG = "PrimerHUC"
|
|
200
|
+
const val NAME = "PrimerHeadlessUniversalCheckout"
|
|
198
201
|
}
|
|
199
202
|
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
package com.primerioreactnative
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.BaseReactPackage
|
|
4
|
+
import com.facebook.react.bridge.NativeModule
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
7
|
+
import com.facebook.react.module.annotations.ReactModuleList
|
|
8
|
+
import com.facebook.react.module.model.ReactModuleInfo
|
|
9
|
+
import com.facebook.react.module.model.ReactModuleInfoProvider
|
|
10
|
+
import com.facebook.react.uimanager.ViewManager
|
|
11
|
+
import com.primerioreactnative.components.manager.ach.PrimerRNAchMandateManager
|
|
12
|
+
import com.primerioreactnative.components.manager.ach.PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent
|
|
13
|
+
import com.primerioreactnative.components.manager.asset.PrimerRNHeadlessUniversalCheckoutAssetManager
|
|
14
|
+
import com.primerioreactnative.components.manager.banks.PrimerRNHeadlessUniversalCheckoutBanksComponent
|
|
15
|
+
import com.primerioreactnative.components.manager.googlePay.PrimerGooglePayButtonConstantsModule
|
|
16
|
+
import com.primerioreactnative.components.manager.googlePay.PrimerGooglePayButtonManager
|
|
17
|
+
import com.primerioreactnative.components.manager.klarna.PrimerKlarnaPaymentViewManager
|
|
18
|
+
import com.primerioreactnative.components.manager.klarna.PrimerRNHeadlessUniversalCheckoutKlarnaComponent
|
|
19
|
+
import com.primerioreactnative.components.manager.nativeUi.PrimerRNHeadlessUniversalCheckoutNativeUiManager
|
|
20
|
+
import com.primerioreactnative.components.manager.raw.PrimerRNHeadlessUniversalCheckoutRawManager
|
|
21
|
+
import com.primerioreactnative.components.manager.vault.PrimerRNHeadlessUniversalCheckoutVaultManager
|
|
22
|
+
import kotlinx.serialization.json.Json
|
|
23
|
+
|
|
24
|
+
@ReactModuleList(
|
|
25
|
+
nativeModules = [
|
|
26
|
+
NativePrimerModule::class,
|
|
27
|
+
],
|
|
28
|
+
)
|
|
29
|
+
class PrimerSdkPackage : BaseReactPackage() {
|
|
30
|
+
|
|
31
|
+
private val json = Json { ignoreUnknownKeys = true }
|
|
32
|
+
|
|
33
|
+
// Old Architecture modules
|
|
34
|
+
private val oldArchModules: Array<Class<out NativeModule>> = arrayOf(
|
|
35
|
+
PrimerRNHeadlessUniversalCheckout::class.java,
|
|
36
|
+
PrimerRNHeadlessUniversalCheckoutRawManager::class.java,
|
|
37
|
+
PrimerRNHeadlessUniversalCheckoutNativeUiManager::class.java,
|
|
38
|
+
PrimerRNHeadlessUniversalCheckoutAssetManager::class.java,
|
|
39
|
+
PrimerRNHeadlessUniversalCheckoutVaultManager::class.java,
|
|
40
|
+
PrimerRNHeadlessUniversalCheckoutKlarnaComponent::class.java,
|
|
41
|
+
PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent::class.java,
|
|
42
|
+
PrimerRNAchMandateManager::class.java,
|
|
43
|
+
PrimerRNHeadlessUniversalCheckoutBanksComponent::class.java,
|
|
44
|
+
PrimerGooglePayButtonConstantsModule::class.java,
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
// New Architecture modules
|
|
48
|
+
private val newArchModules: Array<Class<out NativeModule>> = arrayOf(
|
|
49
|
+
NativePrimerModule::class.java,
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? =
|
|
53
|
+
when (name) {
|
|
54
|
+
DefaultNativePrimerModule.NAME -> NativePrimerModule(reactContext, json)
|
|
55
|
+
PrimerRNHeadlessUniversalCheckout.NAME -> PrimerRNHeadlessUniversalCheckout(reactContext, json)
|
|
56
|
+
PrimerRNHeadlessUniversalCheckoutRawManager.NAME -> PrimerRNHeadlessUniversalCheckoutRawManager(
|
|
57
|
+
reactContext,
|
|
58
|
+
json,
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
PrimerRNHeadlessUniversalCheckoutNativeUiManager.NAME -> PrimerRNHeadlessUniversalCheckoutNativeUiManager(
|
|
62
|
+
reactContext,
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
PrimerRNHeadlessUniversalCheckoutAssetManager.NAME -> PrimerRNHeadlessUniversalCheckoutAssetManager(
|
|
66
|
+
reactContext,
|
|
67
|
+
)
|
|
68
|
+
PrimerRNHeadlessUniversalCheckoutVaultManager.NAME -> PrimerRNHeadlessUniversalCheckoutVaultManager(
|
|
69
|
+
reactContext,
|
|
70
|
+
json,
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
PrimerRNHeadlessUniversalCheckoutKlarnaComponent.NAME -> PrimerRNHeadlessUniversalCheckoutKlarnaComponent(
|
|
74
|
+
reactContext,
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent.NAME ->
|
|
78
|
+
PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent(
|
|
79
|
+
reactContext,
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
PrimerRNAchMandateManager.NAME -> PrimerRNAchMandateManager(reactContext)
|
|
83
|
+
PrimerRNHeadlessUniversalCheckoutBanksComponent.NAME -> PrimerRNHeadlessUniversalCheckoutBanksComponent(
|
|
84
|
+
reactContext,
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
PrimerGooglePayButtonConstantsModule.NAME -> PrimerGooglePayButtonConstantsModule(reactContext)
|
|
88
|
+
else -> null
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
override fun getReactModuleInfoProvider() = ReactModuleInfoProvider {
|
|
92
|
+
val moduleList = newArchModules + oldArchModules
|
|
93
|
+
|
|
94
|
+
val reactModuleInfoMap: MutableMap<String, ReactModuleInfo> = HashMap()
|
|
95
|
+
for (moduleClass in moduleList) {
|
|
96
|
+
val reactModule = moduleClass.getAnnotation(ReactModule::class.java) ?: continue
|
|
97
|
+
reactModuleInfoMap[reactModule.name] = ReactModuleInfo(
|
|
98
|
+
reactModule.name,
|
|
99
|
+
moduleClass.name,
|
|
100
|
+
reactModule.canOverrideExistingModule,
|
|
101
|
+
reactModule.needsEagerInit,
|
|
102
|
+
reactModule.isCxxModule,
|
|
103
|
+
newArchModules.any {
|
|
104
|
+
it.name == moduleClass.name
|
|
105
|
+
}, // isTurboModule
|
|
106
|
+
)
|
|
107
|
+
}
|
|
108
|
+
reactModuleInfoMap
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
|
|
112
|
+
return mutableListOf(
|
|
113
|
+
PrimerKlarnaPaymentViewManager(),
|
|
114
|
+
PrimerGooglePayButtonManager(),
|
|
115
|
+
)
|
|
116
|
+
}
|
|
117
|
+
}
|
|
@@ -6,14 +6,16 @@ import com.facebook.react.bridge.Promise
|
|
|
6
6
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
7
7
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
8
8
|
import com.facebook.react.bridge.ReactMethod
|
|
9
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
9
10
|
import com.primerioreactnative.datamodels.ErrorTypeRN
|
|
10
11
|
import com.primerioreactnative.utils.errorTo
|
|
11
12
|
import kotlinx.coroutines.launch
|
|
12
13
|
|
|
14
|
+
@ReactModule(name = PrimerRNAchMandateManager.NAME)
|
|
13
15
|
class PrimerRNAchMandateManager(
|
|
14
16
|
private val reactContext: ReactApplicationContext,
|
|
15
17
|
) : ReactContextBaseJavaModule(reactContext) {
|
|
16
|
-
override fun getName() =
|
|
18
|
+
override fun getName() = NAME
|
|
17
19
|
|
|
18
20
|
@ReactMethod
|
|
19
21
|
fun acceptMandate(promise: Promise) {
|
|
@@ -69,5 +71,6 @@ class PrimerRNAchMandateManager(
|
|
|
69
71
|
"""
|
|
70
72
|
Unitialized 'declineMandate' property.
|
|
71
73
|
""".trimIndent()
|
|
74
|
+
const val NAME = "RNTAchMandateManager"
|
|
72
75
|
}
|
|
73
76
|
}
|
|
@@ -8,6 +8,7 @@ import com.facebook.react.bridge.Promise
|
|
|
8
8
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
9
9
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
10
10
|
import com.facebook.react.bridge.ReactMethod
|
|
11
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
11
12
|
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
12
13
|
import com.primerioreactnative.PrimerRNViewModelStoreOwner
|
|
13
14
|
import com.primerioreactnative.components.events.PrimerHeadlessUniversalCheckoutComponentEvent
|
|
@@ -37,10 +38,11 @@ import org.json.JSONArray
|
|
|
37
38
|
import org.json.JSONObject
|
|
38
39
|
|
|
39
40
|
@Suppress("TooManyFunctions")
|
|
41
|
+
@ReactModule(name = PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent.NAME)
|
|
40
42
|
class PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent(
|
|
41
43
|
private val reactContext: ReactApplicationContext,
|
|
42
44
|
) : ReactContextBaseJavaModule(reactContext) {
|
|
43
|
-
override fun getName() =
|
|
45
|
+
override fun getName() = NAME
|
|
44
46
|
|
|
45
47
|
private var job: Job? = null
|
|
46
48
|
private var viewModelStoreOwner: ViewModelStoreOwner? = null
|
|
@@ -277,11 +279,13 @@ class PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent(
|
|
|
277
279
|
}
|
|
278
280
|
|
|
279
281
|
companion object {
|
|
280
|
-
|
|
282
|
+
private val json = Json { encodeDefaults = true }
|
|
283
|
+
|
|
284
|
+
private const val INITIALIZATION_ERROR = """
|
|
281
285
|
An error occurred during component initialization.
|
|
282
286
|
"""
|
|
283
287
|
|
|
284
|
-
const val UNINITIALIZED_ERROR =
|
|
288
|
+
private const val UNINITIALIZED_ERROR =
|
|
285
289
|
"""
|
|
286
290
|
The component has not been initialized.
|
|
287
291
|
Make sure you have initialized the `component` first.
|
|
@@ -293,6 +297,6 @@ class PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent(
|
|
|
293
297
|
Make sure your root activity extends ComponentActivity.
|
|
294
298
|
"""
|
|
295
299
|
|
|
296
|
-
val
|
|
300
|
+
const val NAME = "RNTPrimerHeadlessUniversalCheckoutStripeAchUserDetailsComponent"
|
|
297
301
|
}
|
|
298
302
|
}
|
|
@@ -5,6 +5,7 @@ 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 com.facebook.react.module.annotations.ReactModule
|
|
8
9
|
import com.primerioreactnative.components.assets.AssetsManager
|
|
9
10
|
import com.primerioreactnative.components.assets.AssetsManager.drawableToBitmap
|
|
10
11
|
import com.primerioreactnative.components.assets.CardNetworkImageFileProvider.getFileForCardNetworkAsset
|
|
@@ -30,6 +31,7 @@ import kotlinx.serialization.json.Json
|
|
|
30
31
|
import org.json.JSONObject
|
|
31
32
|
|
|
32
33
|
@ExperimentalPrimerApi
|
|
34
|
+
@ReactModule(name = PrimerRNHeadlessUniversalCheckoutAssetManager.NAME)
|
|
33
35
|
internal class PrimerRNHeadlessUniversalCheckoutAssetManager(
|
|
34
36
|
private val reactContext: ReactApplicationContext,
|
|
35
37
|
) : ReactContextBaseJavaModule(reactContext) {
|
|
@@ -220,4 +222,8 @@ internal class PrimerRNHeadlessUniversalCheckoutAssetManager(
|
|
|
220
222
|
promise.reject(ErrorTypeRN.UnitializedSdkSession.errorId, e.message, e)
|
|
221
223
|
}
|
|
222
224
|
}
|
|
225
|
+
|
|
226
|
+
companion object {
|
|
227
|
+
const val NAME = "RNTPrimerHeadlessUniversalCheckoutAssetsManager"
|
|
228
|
+
}
|
|
223
229
|
}
|
|
@@ -7,6 +7,7 @@ import com.facebook.react.bridge.Promise
|
|
|
7
7
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
8
8
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
9
9
|
import com.facebook.react.bridge.ReactMethod
|
|
10
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
10
11
|
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
11
12
|
import com.primerioreactnative.PrimerRNViewModelStoreOwner
|
|
12
13
|
import com.primerioreactnative.components.events.PrimerHeadlessUniversalCheckoutComponentEvent
|
|
@@ -38,10 +39,11 @@ import org.json.JSONArray
|
|
|
38
39
|
import org.json.JSONObject
|
|
39
40
|
|
|
40
41
|
@Suppress("TooManyFunctions")
|
|
42
|
+
@ReactModule(name = PrimerRNHeadlessUniversalCheckoutBanksComponent.NAME)
|
|
41
43
|
class PrimerRNHeadlessUniversalCheckoutBanksComponent(
|
|
42
44
|
private val reactContext: ReactApplicationContext,
|
|
43
45
|
) : ReactContextBaseJavaModule(reactContext) {
|
|
44
|
-
override fun getName() =
|
|
46
|
+
override fun getName() = NAME
|
|
45
47
|
|
|
46
48
|
private var job: Job? = null
|
|
47
49
|
private var banksComponent: BanksComponent? = null
|
|
@@ -255,13 +257,14 @@ class PrimerRNHeadlessUniversalCheckoutBanksComponent(
|
|
|
255
257
|
promise.resolve(null)
|
|
256
258
|
}
|
|
257
259
|
|
|
258
|
-
|
|
259
|
-
const val UNINITIALIZED_ERROR =
|
|
260
|
+
companion object {
|
|
261
|
+
private const val UNINITIALIZED_ERROR =
|
|
260
262
|
"""
|
|
261
263
|
The BanksComponent has not been initialized.
|
|
262
264
|
Make sure you have initialized the `BanksComponent` first.
|
|
263
265
|
"""
|
|
264
266
|
|
|
265
|
-
val json = Json { encodeDefaults = true }
|
|
267
|
+
private val json = Json { encodeDefaults = true }
|
|
268
|
+
const val NAME = "RNTPrimerHeadlessUniversalCheckoutBanksComponent"
|
|
266
269
|
}
|
|
267
270
|
}
|
|
@@ -2,6 +2,7 @@ package com.primerioreactnative.components.manager.googlePay
|
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
4
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
5
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
5
6
|
import com.google.android.gms.wallet.button.ButtonConstants
|
|
6
7
|
|
|
7
8
|
internal object PrimerGooglePayButtonOptionsMapping {
|
|
@@ -24,6 +25,7 @@ internal object PrimerGooglePayButtonOptionsMapping {
|
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
|
|
28
|
+
@ReactModule(name = PrimerGooglePayButtonConstantsModule.NAME)
|
|
27
29
|
class PrimerGooglePayButtonConstantsModule(reactContext: ReactApplicationContext) :
|
|
28
30
|
ReactContextBaseJavaModule(reactContext) {
|
|
29
31
|
override fun getConstants(): Map<String, Any> = PrimerGooglePayButtonOptionsMapping.getOptions()
|
|
@@ -31,6 +33,6 @@ class PrimerGooglePayButtonConstantsModule(reactContext: ReactApplicationContext
|
|
|
31
33
|
override fun getName() = NAME
|
|
32
34
|
|
|
33
35
|
companion object {
|
|
34
|
-
|
|
36
|
+
const val NAME = "PrimerGooglePayButtonConstants"
|
|
35
37
|
}
|
|
36
38
|
}
|
|
@@ -8,6 +8,7 @@ import com.facebook.react.bridge.ReactApplicationContext
|
|
|
8
8
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
9
9
|
import com.facebook.react.bridge.ReactMethod
|
|
10
10
|
import com.facebook.react.bridge.ReadableMap
|
|
11
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
11
12
|
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
12
13
|
import com.primerioreactnative.PrimerRNViewModelStoreOwner
|
|
13
14
|
import com.primerioreactnative.components.events.PrimerHeadlessUniversalCheckoutComponentEvent
|
|
@@ -45,10 +46,11 @@ import org.json.JSONArray
|
|
|
45
46
|
import org.json.JSONObject
|
|
46
47
|
|
|
47
48
|
@Suppress("TooManyFunctions")
|
|
49
|
+
@ReactModule(name = PrimerRNHeadlessUniversalCheckoutKlarnaComponent.NAME)
|
|
48
50
|
class PrimerRNHeadlessUniversalCheckoutKlarnaComponent(
|
|
49
51
|
private val reactContext: ReactApplicationContext,
|
|
50
52
|
) : ReactContextBaseJavaModule(reactContext) {
|
|
51
|
-
override fun getName(): String =
|
|
53
|
+
override fun getName(): String = NAME
|
|
52
54
|
|
|
53
55
|
private var job: Job? = null
|
|
54
56
|
private var viewModelStoreOwner: ViewModelStoreOwner? = null
|
|
@@ -314,17 +316,19 @@ class PrimerRNHeadlessUniversalCheckoutKlarnaComponent(
|
|
|
314
316
|
promise.resolve(null)
|
|
315
317
|
}
|
|
316
318
|
|
|
317
|
-
|
|
318
|
-
const val UNINITIALIZED_ERROR =
|
|
319
|
+
companion object {
|
|
320
|
+
private const val UNINITIALIZED_ERROR =
|
|
319
321
|
"""
|
|
320
322
|
The KlarnaComponent has not been initialized.
|
|
321
323
|
Make sure you have initialized the `KlarnaComponent` first.
|
|
322
324
|
"""
|
|
323
|
-
const val MISSING_ACTIVITY_ERROR =
|
|
325
|
+
private const val MISSING_ACTIVITY_ERROR =
|
|
324
326
|
"""
|
|
325
327
|
Could not retrieve running activity from context.
|
|
326
328
|
"""
|
|
327
329
|
|
|
328
|
-
val json by lazy { Json { encodeDefaults = true } }
|
|
330
|
+
private val json by lazy { Json { encodeDefaults = true } }
|
|
331
|
+
|
|
332
|
+
const val NAME = "RNTPrimerHeadlessUniversalCheckoutKlarnaComponent"
|
|
329
333
|
}
|
|
330
334
|
}
|
|
@@ -4,6 +4,7 @@ import com.facebook.react.bridge.Promise
|
|
|
4
4
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
5
5
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
6
6
|
import com.facebook.react.bridge.ReactMethod
|
|
7
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
7
8
|
import com.primerioreactnative.datamodels.ErrorTypeRN
|
|
8
9
|
import com.primerioreactnative.datamodels.PrimerErrorRN
|
|
9
10
|
import com.primerioreactnative.utils.errorTo
|
|
@@ -16,13 +17,14 @@ import io.primer.android.core.ExperimentalPrimerApi
|
|
|
16
17
|
import io.primer.android.domain.exception.UnsupportedPaymentIntentException
|
|
17
18
|
|
|
18
19
|
@ExperimentalPrimerApi
|
|
20
|
+
@ReactModule(name = PrimerRNHeadlessUniversalCheckoutNativeUiManager.NAME)
|
|
19
21
|
internal class PrimerRNHeadlessUniversalCheckoutNativeUiManager(
|
|
20
22
|
private val reactContext: ReactApplicationContext,
|
|
21
23
|
) : ReactContextBaseJavaModule(reactContext) {
|
|
22
24
|
private lateinit var nativeUiManager: PrimerHeadlessUniversalCheckoutNativeUiManagerInterface
|
|
23
25
|
private var paymentMethodTypeStr: String? = null
|
|
24
26
|
|
|
25
|
-
override fun getName() =
|
|
27
|
+
override fun getName() = NAME
|
|
26
28
|
|
|
27
29
|
@ReactMethod
|
|
28
30
|
fun configure(
|
|
@@ -91,4 +93,8 @@ internal class PrimerRNHeadlessUniversalCheckoutNativeUiManager(
|
|
|
91
93
|
}
|
|
92
94
|
}
|
|
93
95
|
}
|
|
96
|
+
|
|
97
|
+
companion object {
|
|
98
|
+
const val NAME = "RNTPrimerHeadlessUniversalPaymentMethodNativeUIManager"
|
|
99
|
+
}
|
|
94
100
|
}
|
|
@@ -6,6 +6,7 @@ import com.facebook.react.bridge.ReactApplicationContext
|
|
|
6
6
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
7
7
|
import com.facebook.react.bridge.ReactMethod
|
|
8
8
|
import com.facebook.react.bridge.WritableMap
|
|
9
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
9
10
|
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
10
11
|
import com.primerioreactnative.Keys
|
|
11
12
|
import com.primerioreactnative.components.datamodels.core.PrimerRawPaymentMethodType
|
|
@@ -33,6 +34,7 @@ import org.json.JSONObject
|
|
|
33
34
|
|
|
34
35
|
@Suppress("TooManyFunctions")
|
|
35
36
|
@ExperimentalPrimerApi
|
|
37
|
+
@ReactModule(name = PrimerRNHeadlessUniversalCheckoutRawManager.NAME)
|
|
36
38
|
internal class PrimerRNHeadlessUniversalCheckoutRawManager(
|
|
37
39
|
reactContext: ReactApplicationContext,
|
|
38
40
|
private val json: Json,
|
|
@@ -45,7 +47,7 @@ internal class PrimerRNHeadlessUniversalCheckoutRawManager(
|
|
|
45
47
|
listener.sendEvent = { eventName, paramsJson -> sendEvent(eventName, paramsJson) }
|
|
46
48
|
}
|
|
47
49
|
|
|
48
|
-
override fun getName() =
|
|
50
|
+
override fun getName() = NAME
|
|
49
51
|
|
|
50
52
|
@ReactMethod
|
|
51
53
|
fun configure(
|
|
@@ -221,11 +223,13 @@ internal class PrimerRNHeadlessUniversalCheckoutRawManager(
|
|
|
221
223
|
sendEvent(PrimerHeadlessUniversalCheckoutEvent.ON_ERROR.eventName, params)
|
|
222
224
|
}
|
|
223
225
|
|
|
224
|
-
|
|
225
|
-
const val UNINITIALIZED_ERROR =
|
|
226
|
+
companion object {
|
|
227
|
+
private const val UNINITIALIZED_ERROR =
|
|
226
228
|
"""
|
|
227
229
|
The RawDataManager has not been initialized.
|
|
228
230
|
Make sure you have initialized the `RawDataManager' first.
|
|
229
231
|
"""
|
|
232
|
+
|
|
233
|
+
const val NAME = "RNTPrimerHeadlessUniversalCheckoutRawDataManager"
|
|
230
234
|
}
|
|
231
235
|
}
|
|
@@ -4,6 +4,7 @@ import com.facebook.react.bridge.Promise
|
|
|
4
4
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
5
5
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
6
6
|
import com.facebook.react.bridge.ReactMethod
|
|
7
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
7
8
|
import com.primerioreactnative.components.datamodels.manager.vault.PrimerRNValidationErrors
|
|
8
9
|
import com.primerioreactnative.components.datamodels.manager.vault.PrimerRNVaultedPaymentMethodAdditionalData
|
|
9
10
|
import com.primerioreactnative.components.datamodels.manager.vault.PrimerRNVaultedPaymentMethods
|
|
@@ -23,6 +24,7 @@ import kotlinx.serialization.encodeToString
|
|
|
23
24
|
import kotlinx.serialization.json.Json
|
|
24
25
|
import org.json.JSONObject
|
|
25
26
|
|
|
27
|
+
@ReactModule(name = PrimerRNHeadlessUniversalCheckoutVaultManager.NAME)
|
|
26
28
|
class PrimerRNHeadlessUniversalCheckoutVaultManager(
|
|
27
29
|
reactContext: ReactApplicationContext,
|
|
28
30
|
private val json: Json,
|
|
@@ -30,7 +32,7 @@ class PrimerRNHeadlessUniversalCheckoutVaultManager(
|
|
|
30
32
|
private val vaultScope = CoroutineScope(SupervisorJob())
|
|
31
33
|
private lateinit var nativeVaultManager: PrimerHeadlessUniversalCheckoutVaultManagerInterface
|
|
32
34
|
|
|
33
|
-
override fun getName() =
|
|
35
|
+
override fun getName() = NAME
|
|
34
36
|
|
|
35
37
|
@ReactMethod
|
|
36
38
|
fun configure(promise: Promise) {
|
|
@@ -168,4 +170,8 @@ class PrimerRNHeadlessUniversalCheckoutVaultManager(
|
|
|
168
170
|
}
|
|
169
171
|
}
|
|
170
172
|
}
|
|
173
|
+
|
|
174
|
+
companion object {
|
|
175
|
+
const val NAME = "RNPrimerHeadlessUniversalCheckoutVaultManager"
|
|
176
|
+
}
|
|
171
177
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
package
|
|
1
|
+
package com.primerioreactnative
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.Arguments
|
|
4
4
|
import com.facebook.react.bridge.Promise
|
|
5
5
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
-
import com.
|
|
7
|
-
import com.primerioreactnative.NativePrimerSpec
|
|
6
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
8
7
|
import kotlinx.serialization.json.Json
|
|
9
8
|
|
|
9
|
+
@ReactModule(name = DefaultNativePrimerModule.NAME)
|
|
10
10
|
class NativePrimerModule(private val reactContext: ReactApplicationContext, private val json: Json) :
|
|
11
11
|
NativePrimerSpec(reactContext) {
|
|
12
12
|
private val implementation by lazy {
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
package
|
|
1
|
+
package com.primerioreactnative
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.Promise
|
|
4
4
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
5
5
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
6
6
|
import com.facebook.react.bridge.ReactMethod
|
|
7
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
7
8
|
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
8
|
-
import com.primerioreactnative.DefaultNativePrimerModule
|
|
9
9
|
import kotlinx.serialization.json.Json
|
|
10
10
|
|
|
11
|
+
@ReactModule(name = DefaultNativePrimerModule.NAME)
|
|
11
12
|
class NativePrimerModule(private val reactContext: ReactApplicationContext, private val json: Json) :
|
|
12
13
|
ReactContextBaseJavaModule(reactContext) {
|
|
13
14
|
private val implementation by lazy {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// swiftlint:disable:next identifier_name
|
|
2
|
-
public let PrimerReactNativeSDKVersion = "2.39.
|
|
2
|
+
public let PrimerReactNativeSDKVersion = "2.39.1"
|
package/package.json
CHANGED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
package com.primerioreactnative
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.BaseReactPackage
|
|
4
|
-
import com.facebook.react.ReactPackage
|
|
5
|
-
import com.facebook.react.bridge.NativeModule
|
|
6
|
-
import com.facebook.react.bridge.ReactApplicationContext
|
|
7
|
-
import com.facebook.react.module.model.ReactModuleInfo
|
|
8
|
-
import com.facebook.react.module.model.ReactModuleInfoProvider
|
|
9
|
-
import com.facebook.react.uimanager.ViewManager
|
|
10
|
-
import com.primerioreactnative.components.manager.ach.PrimerRNAchMandateManager
|
|
11
|
-
import com.primerioreactnative.components.manager.ach.PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent
|
|
12
|
-
import com.primerioreactnative.components.manager.asset.PrimerRNHeadlessUniversalCheckoutAssetManager
|
|
13
|
-
import com.primerioreactnative.components.manager.banks.PrimerRNHeadlessUniversalCheckoutBanksComponent
|
|
14
|
-
import com.primerioreactnative.components.manager.googlePay.PrimerGooglePayButtonConstantsModule
|
|
15
|
-
import com.primerioreactnative.components.manager.googlePay.PrimerGooglePayButtonManager
|
|
16
|
-
import com.primerioreactnative.components.manager.klarna.PrimerKlarnaPaymentViewManager
|
|
17
|
-
import com.primerioreactnative.components.manager.klarna.PrimerRNHeadlessUniversalCheckoutKlarnaComponent
|
|
18
|
-
import com.primerioreactnative.components.manager.nativeUi.PrimerRNHeadlessUniversalCheckoutNativeUiManager
|
|
19
|
-
import com.primerioreactnative.components.manager.raw.PrimerRNHeadlessUniversalCheckoutRawManager
|
|
20
|
-
import com.primerioreactnative.components.manager.vault.PrimerRNHeadlessUniversalCheckoutVaultManager
|
|
21
|
-
import kotlinx.serialization.json.Json
|
|
22
|
-
import java.com.primerioreactnative.NativePrimerModule
|
|
23
|
-
|
|
24
|
-
class ReactNativePackage : ReactPackage {
|
|
25
|
-
private val json = Json { ignoreUnknownKeys = true }
|
|
26
|
-
|
|
27
|
-
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
|
|
28
|
-
return listOf(
|
|
29
|
-
PrimerRNHeadlessUniversalCheckout(reactContext, json),
|
|
30
|
-
PrimerRNHeadlessUniversalCheckoutRawManager(reactContext, json),
|
|
31
|
-
PrimerRNHeadlessUniversalCheckoutNativeUiManager(reactContext),
|
|
32
|
-
PrimerRNHeadlessUniversalCheckoutAssetManager(reactContext),
|
|
33
|
-
PrimerRNHeadlessUniversalCheckoutVaultManager(reactContext, json),
|
|
34
|
-
PrimerRNHeadlessUniversalCheckoutKlarnaComponent(reactContext),
|
|
35
|
-
PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent(reactContext),
|
|
36
|
-
PrimerRNAchMandateManager(reactContext),
|
|
37
|
-
// region Component with redirect components
|
|
38
|
-
PrimerRNHeadlessUniversalCheckoutBanksComponent(reactContext),
|
|
39
|
-
// endregion
|
|
40
|
-
// region Google Pay Helpers
|
|
41
|
-
PrimerGooglePayButtonConstantsModule(reactContext),
|
|
42
|
-
// endregion
|
|
43
|
-
)
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
|
|
47
|
-
return mutableListOf(
|
|
48
|
-
PrimerKlarnaPaymentViewManager(),
|
|
49
|
-
PrimerGooglePayButtonManager(),
|
|
50
|
-
)
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
class ReactNativeTurboPackage : BaseReactPackage() {
|
|
55
|
-
|
|
56
|
-
private val json = Json { ignoreUnknownKeys = true }
|
|
57
|
-
|
|
58
|
-
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? =
|
|
59
|
-
if (name == DefaultNativePrimerModule.NAME) {
|
|
60
|
-
NativePrimerModule(reactContext, json)
|
|
61
|
-
} else {
|
|
62
|
-
null
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
override fun getReactModuleInfoProvider() = ReactModuleInfoProvider {
|
|
66
|
-
mapOf(
|
|
67
|
-
DefaultNativePrimerModule.NAME to ReactModuleInfo(
|
|
68
|
-
name = DefaultNativePrimerModule.NAME,
|
|
69
|
-
className = DefaultNativePrimerModule.NAME,
|
|
70
|
-
canOverrideExistingModule = false,
|
|
71
|
-
needsEagerInit = false,
|
|
72
|
-
isCxxModule = false,
|
|
73
|
-
isTurboModule = true,
|
|
74
|
-
),
|
|
75
|
-
)
|
|
76
|
-
}
|
|
77
|
-
}
|