@stripe/stripe-react-native 0.59.0 → 0.59.2
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 +5 -2
- package/android/gradle.properties +1 -1
- package/android/src/main/AndroidManifest.xml +2 -2
- package/android/src/main/java/com/reactnativestripesdk/FakeOnrampSdkModule.kt +0 -5
- package/android/src/main/java/com/reactnativestripesdk/PaymentElementConfig.kt +17 -5
- package/android/src/main/java/com/reactnativestripesdk/PaymentMethodMessagingElementConfig.kt +1 -1
- package/android/src/main/java/com/reactnativestripesdk/PaymentSheetManager.kt +1 -8
- package/android/src/main/java/com/reactnativestripesdk/StripeFileProvider.kt +17 -0
- package/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt +1 -1
- package/android/src/oldarch/java/com/reactnativestripesdk/NativeOnrampSdkModuleSpec.java +0 -4
- package/android/src/onramp/java/com/reactnativestripesdk/OnrampMappers.kt +103 -0
- package/android/src/onramp/java/com/reactnativestripesdk/OnrampSdkModule.kt +97 -187
- package/android/src/test/java/com/reactnativestripesdk/PaymentElementConfigTest.kt +52 -17
- package/android/src/test/java/com/reactnativestripesdk/PaymentMethodMessagingElementConfigTest.kt +3 -3
- package/android/src/test/java/com/reactnativestripesdk/mappers/OnrampMappersTest.kt +219 -0
- package/ios/PaymentMethodMessagingElementConfig.swift +3 -3
- package/ios/StripeOnrampSdk.mm +0 -6
- package/ios/StripeSdkImpl+PaymentSheet.swift +20 -7
- package/ios/StripeSdkImpl.swift +2 -36
- package/jest/setup.js +0 -1
- package/lib/commonjs/components/AddToWalletButton.js +1 -1
- package/lib/commonjs/components/AddressSheet.js +1 -1
- package/lib/commonjs/components/AuBECSDebitForm.js +1 -1
- package/lib/commonjs/components/CardField.js +1 -1
- package/lib/commonjs/components/CardForm.js +1 -1
- package/lib/commonjs/components/PlatformPayButton.js +1 -1
- package/lib/commonjs/components/StripeContainer.js +1 -1
- package/lib/commonjs/connect/Components.js +1 -1
- package/lib/commonjs/connect/ConnectComponentsProvider.js +1 -1
- package/lib/commonjs/connect/EmbeddedComponent.js +1 -1
- package/lib/commonjs/connect/ModalCloseButton.js +1 -1
- package/lib/commonjs/connect/NavigationBar.js +1 -1
- package/lib/commonjs/helpers.js +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/NativeCardForm.js +1 -1
- package/lib/commonjs/specs/NativeConnectAccountOnboardingView.js +1 -1
- package/lib/commonjs/specs/NativeEmbeddedPaymentElement.js +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/types/EmbeddedPaymentElement.js +1 -1
- package/lib/commonjs/types/PaymentSheet.js +1 -1
- package/lib/commonjs/types/PaymentSheet.js.map +1 -1
- package/lib/module/components/AddToWalletButton.js +1 -1
- package/lib/module/components/AddressSheet.js +1 -1
- package/lib/module/components/AuBECSDebitForm.js +1 -1
- package/lib/module/components/CardField.js +1 -1
- package/lib/module/components/CardForm.js +1 -1
- package/lib/module/components/PlatformPayButton.js +1 -1
- package/lib/module/components/StripeContainer.js +1 -1
- package/lib/module/connect/Components.js +1 -1
- package/lib/module/connect/ConnectComponentsProvider.js +1 -1
- package/lib/module/connect/EmbeddedComponent.js +1 -1
- package/lib/module/connect/ModalCloseButton.js +1 -1
- package/lib/module/connect/NavigationBar.js +1 -1
- package/lib/module/helpers.js +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/NativeCardForm.js +1 -1
- package/lib/module/specs/NativeConnectAccountOnboardingView.js +1 -1
- package/lib/module/specs/NativeEmbeddedPaymentElement.js +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/types/EmbeddedPaymentElement.js +1 -1
- package/lib/module/types/PaymentSheet.js +1 -1
- package/lib/module/types/PaymentSheet.js.map +1 -1
- package/lib/typescript/src/hooks/useOnramp.d.ts +2 -8
- package/lib/typescript/src/hooks/useOnramp.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativeOnrampSdkModule.d.ts +0 -1
- package/lib/typescript/src/specs/NativeOnrampSdkModule.d.ts.map +1 -1
- package/lib/typescript/src/types/Onramp.d.ts +0 -12
- package/lib/typescript/src/types/Onramp.d.ts.map +1 -1
- package/lib/typescript/src/types/PaymentSheet.d.ts +22 -0
- package/lib/typescript/src/types/PaymentSheet.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/hooks/useOnramp.tsx +2 -14
- package/src/specs/NativeOnrampSdkModule.ts +0 -1
- package/src/types/Onramp.ts +0 -15
- package/src/types/PaymentSheet.ts +23 -0
- package/stripe-react-native.podspec +1 -1
|
@@ -1100,39 +1100,74 @@ class PaymentElementConfigTest {
|
|
|
1100
1100
|
}
|
|
1101
1101
|
|
|
1102
1102
|
// ============================================
|
|
1103
|
-
//
|
|
1103
|
+
// mapToTermsDisplay Tests
|
|
1104
1104
|
// ============================================
|
|
1105
1105
|
|
|
1106
1106
|
@Test
|
|
1107
|
-
fun
|
|
1108
|
-
val result =
|
|
1109
|
-
|
|
1110
|
-
|
|
1107
|
+
fun mapToTermsDisplay_NullParams_ReturnsNull() {
|
|
1108
|
+
val result = mapToTermsDisplay(null)
|
|
1109
|
+
assertNull(result)
|
|
1110
|
+
}
|
|
1111
|
+
|
|
1112
|
+
@Test
|
|
1113
|
+
fun mapToTermsDisplay_NoTermsDisplayKey_ReturnsNull() {
|
|
1114
|
+
val params = readableMapOf("someOtherKey" to "value")
|
|
1115
|
+
val result = mapToTermsDisplay(params)
|
|
1116
|
+
assertNull(result)
|
|
1111
1117
|
}
|
|
1112
1118
|
|
|
1113
1119
|
@Test
|
|
1114
|
-
fun
|
|
1115
|
-
val
|
|
1116
|
-
|
|
1120
|
+
fun mapToTermsDisplay_CardNever_ReturnsSingleEntry() {
|
|
1121
|
+
val params =
|
|
1122
|
+
readableMapOf(
|
|
1123
|
+
"termsDisplay" to readableMapOf("card" to "never"),
|
|
1124
|
+
)
|
|
1125
|
+
val result = mapToTermsDisplay(params)
|
|
1126
|
+
assertNotNull(result)
|
|
1127
|
+
assertEquals(1, result!!.size)
|
|
1117
1128
|
assertEquals(PaymentSheet.TermsDisplay.NEVER, result[PaymentMethod.Type.Card])
|
|
1118
1129
|
}
|
|
1119
1130
|
|
|
1120
1131
|
@Test
|
|
1121
|
-
fun
|
|
1122
|
-
val
|
|
1123
|
-
|
|
1132
|
+
fun mapToTermsDisplay_CardAutomatic_ReturnsSingleEntry() {
|
|
1133
|
+
val params =
|
|
1134
|
+
readableMapOf(
|
|
1135
|
+
"termsDisplay" to readableMapOf("card" to "automatic"),
|
|
1136
|
+
)
|
|
1137
|
+
val result = mapToTermsDisplay(params)
|
|
1138
|
+
assertNotNull(result)
|
|
1139
|
+
assertEquals(1, result!!.size)
|
|
1140
|
+
assertEquals(PaymentSheet.TermsDisplay.AUTOMATIC, result[PaymentMethod.Type.Card])
|
|
1124
1141
|
}
|
|
1125
1142
|
|
|
1126
1143
|
@Test
|
|
1127
|
-
fun
|
|
1128
|
-
val
|
|
1129
|
-
|
|
1144
|
+
fun mapToTermsDisplay_InvalidValue_Skipped() {
|
|
1145
|
+
val params =
|
|
1146
|
+
readableMapOf(
|
|
1147
|
+
"termsDisplay" to readableMapOf("card" to "invalid"),
|
|
1148
|
+
)
|
|
1149
|
+
val result = mapToTermsDisplay(params)
|
|
1150
|
+
assertNull(result)
|
|
1151
|
+
}
|
|
1152
|
+
|
|
1153
|
+
@Test
|
|
1154
|
+
fun mapToTermsDisplay_InvalidPaymentMethodType_Skipped() {
|
|
1155
|
+
val params =
|
|
1156
|
+
readableMapOf(
|
|
1157
|
+
"termsDisplay" to readableMapOf("foobar" to "never"),
|
|
1158
|
+
)
|
|
1159
|
+
val result = mapToTermsDisplay(params)
|
|
1160
|
+
assertNull(result)
|
|
1130
1161
|
}
|
|
1131
1162
|
|
|
1132
1163
|
@Test
|
|
1133
|
-
fun
|
|
1134
|
-
val
|
|
1135
|
-
|
|
1164
|
+
fun mapToTermsDisplay_EmptyMap_ReturnsNull() {
|
|
1165
|
+
val params =
|
|
1166
|
+
readableMapOf(
|
|
1167
|
+
"termsDisplay" to readableMapOf(),
|
|
1168
|
+
)
|
|
1169
|
+
val result = mapToTermsDisplay(params)
|
|
1170
|
+
assertNull(result)
|
|
1136
1171
|
}
|
|
1137
1172
|
|
|
1138
1173
|
@Test
|
package/android/src/test/java/com/reactnativestripesdk/PaymentMethodMessagingElementConfigTest.kt
CHANGED
|
@@ -365,7 +365,7 @@ class PaymentMethodMessagingElementConfigTest {
|
|
|
365
365
|
val colors =
|
|
366
366
|
PaymentMethodMessagingElement.Appearance
|
|
367
367
|
.Colors()
|
|
368
|
-
.
|
|
368
|
+
.linkTextColor("#0000FF".toColorInt())
|
|
369
369
|
colors(colors)
|
|
370
370
|
}
|
|
371
371
|
|
|
@@ -391,7 +391,7 @@ class PaymentMethodMessagingElementConfigTest {
|
|
|
391
391
|
val colors =
|
|
392
392
|
PaymentMethodMessagingElement.Appearance
|
|
393
393
|
.Colors()
|
|
394
|
-
.
|
|
394
|
+
.linkTextColor("#0000FF".toColorInt())
|
|
395
395
|
colors(colors)
|
|
396
396
|
}
|
|
397
397
|
|
|
@@ -526,7 +526,7 @@ class PaymentMethodMessagingElementConfigTest {
|
|
|
526
526
|
expected: Any,
|
|
527
527
|
actual: Any,
|
|
528
528
|
) {
|
|
529
|
-
val fieldNames = listOf("textColor", "
|
|
529
|
+
val fieldNames = listOf("textColor", "linkTextColor")
|
|
530
530
|
|
|
531
531
|
for (fieldName in fieldNames) {
|
|
532
532
|
val expectedField = expected.javaClass.getDeclaredField(fieldName)
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
package com.reactnativestripesdk.mappers
|
|
2
|
+
|
|
3
|
+
import android.annotation.SuppressLint
|
|
4
|
+
import androidx.compose.ui.graphics.toArgb
|
|
5
|
+
import com.reactnativestripesdk.mapAppearance
|
|
6
|
+
import com.reactnativestripesdk.mapConfig
|
|
7
|
+
import com.reactnativestripesdk.utils.readableMapOf
|
|
8
|
+
import com.stripe.android.link.LinkAppearance.Style
|
|
9
|
+
import org.junit.Assert.assertEquals
|
|
10
|
+
import org.junit.Assert.assertNotNull
|
|
11
|
+
import org.junit.Assert.assertNull
|
|
12
|
+
import org.junit.Test
|
|
13
|
+
import org.junit.runner.RunWith
|
|
14
|
+
import org.robolectric.RobolectricTestRunner
|
|
15
|
+
|
|
16
|
+
@SuppressLint("RestrictedApi")
|
|
17
|
+
@RunWith(RobolectricTestRunner::class)
|
|
18
|
+
class OnrampMappersTest {
|
|
19
|
+
@Test
|
|
20
|
+
fun mapConfig_WithAppearance() {
|
|
21
|
+
val appearance =
|
|
22
|
+
readableMapOf(
|
|
23
|
+
"style" to "ALWAYS_DARK",
|
|
24
|
+
)
|
|
25
|
+
val config =
|
|
26
|
+
readableMapOf(
|
|
27
|
+
"merchantDisplayName" to "Test",
|
|
28
|
+
"appearance" to appearance,
|
|
29
|
+
"cryptoCustomerId" to "cust_abc",
|
|
30
|
+
)
|
|
31
|
+
val result = mapConfig(config, "pk_test_123")
|
|
32
|
+
|
|
33
|
+
assertNotNull(result)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@Test
|
|
37
|
+
fun mapAppearance_EmptyMap_ReturnsDefaultValue() {
|
|
38
|
+
val appearanceMap = readableMapOf()
|
|
39
|
+
val result = mapAppearance(appearanceMap).build()
|
|
40
|
+
|
|
41
|
+
assertEquals(Style.AUTOMATIC, result.style)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@Test
|
|
45
|
+
fun mapAppearance_StyleAlwaysLight() {
|
|
46
|
+
val appearanceMap =
|
|
47
|
+
readableMapOf(
|
|
48
|
+
"style" to "ALWAYS_LIGHT",
|
|
49
|
+
)
|
|
50
|
+
val result = mapAppearance(appearanceMap).build()
|
|
51
|
+
|
|
52
|
+
assertEquals(Style.ALWAYS_LIGHT, result.style)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@Test
|
|
56
|
+
fun mapAppearance_StyleAlwaysDark() {
|
|
57
|
+
val appearanceMap =
|
|
58
|
+
readableMapOf(
|
|
59
|
+
"style" to "ALWAYS_DARK",
|
|
60
|
+
)
|
|
61
|
+
val result = mapAppearance(appearanceMap).build()
|
|
62
|
+
|
|
63
|
+
assertEquals(Style.ALWAYS_DARK, result.style)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
@Test
|
|
67
|
+
fun mapAppearance_StyleUnknown_DefaultsToAutomatic() {
|
|
68
|
+
val appearanceMap =
|
|
69
|
+
readableMapOf(
|
|
70
|
+
"style" to "SOMETHING_UNKNOWN",
|
|
71
|
+
)
|
|
72
|
+
val result = mapAppearance(appearanceMap).build()
|
|
73
|
+
|
|
74
|
+
assertEquals(Style.AUTOMATIC, result.style)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@Test
|
|
78
|
+
fun mapAppearance_WithLightColors() {
|
|
79
|
+
val lightColors =
|
|
80
|
+
readableMapOf(
|
|
81
|
+
"primary" to "#FF0000",
|
|
82
|
+
"contentOnPrimary" to "#FFFFFF",
|
|
83
|
+
"borderSelected" to "#00FF00",
|
|
84
|
+
)
|
|
85
|
+
val appearanceMap =
|
|
86
|
+
readableMapOf(
|
|
87
|
+
"lightColors" to lightColors,
|
|
88
|
+
)
|
|
89
|
+
val state = mapAppearance(appearanceMap).build()
|
|
90
|
+
|
|
91
|
+
assertEquals(0xFFFF0000.toInt(), state.lightColors.primary.toArgb())
|
|
92
|
+
assertEquals(0xFFFFFFFF.toInt(), state.lightColors.contentOnPrimary.toArgb())
|
|
93
|
+
assertEquals(0xFF00FF00.toInt(), state.lightColors.borderSelected.toArgb())
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@Test
|
|
97
|
+
fun mapAppearance_WithDarkColors() {
|
|
98
|
+
val darkColors =
|
|
99
|
+
readableMapOf(
|
|
100
|
+
"primary" to "#0000FF",
|
|
101
|
+
"contentOnPrimary" to "#000000",
|
|
102
|
+
"borderSelected" to "#FF00FF",
|
|
103
|
+
)
|
|
104
|
+
val appearanceMap =
|
|
105
|
+
readableMapOf(
|
|
106
|
+
"darkColors" to darkColors,
|
|
107
|
+
)
|
|
108
|
+
val state = mapAppearance(appearanceMap).build()
|
|
109
|
+
|
|
110
|
+
assertEquals(0xFF0000FF.toInt(), state.darkColors.primary.toArgb())
|
|
111
|
+
assertEquals(0xFF000000.toInt(), state.darkColors.contentOnPrimary.toArgb())
|
|
112
|
+
assertEquals(0xFFFF00FF.toInt(), state.darkColors.borderSelected.toArgb())
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
@Test
|
|
116
|
+
fun mapAppearance_WithLightAndDarkColors() {
|
|
117
|
+
val lightColors =
|
|
118
|
+
readableMapOf(
|
|
119
|
+
"primary" to "#FF0000",
|
|
120
|
+
"contentOnPrimary" to "#FFFFFF",
|
|
121
|
+
"borderSelected" to "#00FF00",
|
|
122
|
+
)
|
|
123
|
+
val darkColors =
|
|
124
|
+
readableMapOf(
|
|
125
|
+
"primary" to "#0000FF",
|
|
126
|
+
"contentOnPrimary" to "#000000",
|
|
127
|
+
"borderSelected" to "#FF00FF",
|
|
128
|
+
)
|
|
129
|
+
val appearanceMap =
|
|
130
|
+
readableMapOf(
|
|
131
|
+
"lightColors" to lightColors,
|
|
132
|
+
"darkColors" to darkColors,
|
|
133
|
+
)
|
|
134
|
+
val state = mapAppearance(appearanceMap).build()
|
|
135
|
+
|
|
136
|
+
assertEquals(0xFFFF0000.toInt(), state.lightColors.primary.toArgb())
|
|
137
|
+
assertEquals(0xFFFFFFFF.toInt(), state.lightColors.contentOnPrimary.toArgb())
|
|
138
|
+
assertEquals(0xFF00FF00.toInt(), state.lightColors.borderSelected.toArgb())
|
|
139
|
+
|
|
140
|
+
assertEquals(0xFF0000FF.toInt(), state.darkColors.primary.toArgb())
|
|
141
|
+
assertEquals(0xFF000000.toInt(), state.darkColors.contentOnPrimary.toArgb())
|
|
142
|
+
assertEquals(0xFFFF00FF.toInt(), state.darkColors.borderSelected.toArgb())
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
@Test
|
|
146
|
+
fun mapAppearance_WithPrimaryButton() {
|
|
147
|
+
val primaryButton =
|
|
148
|
+
readableMapOf(
|
|
149
|
+
"cornerRadius" to 8.0,
|
|
150
|
+
"height" to 48.0,
|
|
151
|
+
)
|
|
152
|
+
val appearanceMap =
|
|
153
|
+
readableMapOf(
|
|
154
|
+
"primaryButton" to primaryButton,
|
|
155
|
+
)
|
|
156
|
+
val state = mapAppearance(appearanceMap).build()
|
|
157
|
+
|
|
158
|
+
assertEquals(8f, state.primaryButton.cornerRadiusDp)
|
|
159
|
+
assertEquals(48f, state.primaryButton.heightDp)
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
@Test
|
|
163
|
+
fun mapAppearance_WithPrimaryButtonPartialFields() {
|
|
164
|
+
val primaryButton =
|
|
165
|
+
readableMapOf(
|
|
166
|
+
"cornerRadius" to 12.0,
|
|
167
|
+
)
|
|
168
|
+
val appearanceMap =
|
|
169
|
+
readableMapOf(
|
|
170
|
+
"primaryButton" to primaryButton,
|
|
171
|
+
)
|
|
172
|
+
val state = mapAppearance(appearanceMap).build()
|
|
173
|
+
|
|
174
|
+
assertEquals(12f, state.primaryButton.cornerRadiusDp)
|
|
175
|
+
assertNull(state.primaryButton.heightDp)
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
@Test
|
|
179
|
+
fun mapAppearance_FullConfig() {
|
|
180
|
+
val lightColors =
|
|
181
|
+
readableMapOf(
|
|
182
|
+
"primary" to "#FF0000",
|
|
183
|
+
"contentOnPrimary" to "#FFFFFF",
|
|
184
|
+
"borderSelected" to "#00FF00",
|
|
185
|
+
)
|
|
186
|
+
val darkColors =
|
|
187
|
+
readableMapOf(
|
|
188
|
+
"primary" to "#0000FF",
|
|
189
|
+
"contentOnPrimary" to "#000000",
|
|
190
|
+
"borderSelected" to "#FF00FF",
|
|
191
|
+
)
|
|
192
|
+
val primaryButton =
|
|
193
|
+
readableMapOf(
|
|
194
|
+
"cornerRadius" to 8.0,
|
|
195
|
+
"height" to 48.0,
|
|
196
|
+
)
|
|
197
|
+
val appearanceMap =
|
|
198
|
+
readableMapOf(
|
|
199
|
+
"style" to "ALWAYS_LIGHT",
|
|
200
|
+
"lightColors" to lightColors,
|
|
201
|
+
"darkColors" to darkColors,
|
|
202
|
+
"primaryButton" to primaryButton,
|
|
203
|
+
)
|
|
204
|
+
val state = mapAppearance(appearanceMap).build()
|
|
205
|
+
|
|
206
|
+
assertEquals(Style.ALWAYS_LIGHT, state.style)
|
|
207
|
+
|
|
208
|
+
assertEquals(0xFFFF0000.toInt(), state.lightColors.primary.toArgb())
|
|
209
|
+
assertEquals(0xFFFFFFFF.toInt(), state.lightColors.contentOnPrimary.toArgb())
|
|
210
|
+
assertEquals(0xFF00FF00.toInt(), state.lightColors.borderSelected.toArgb())
|
|
211
|
+
|
|
212
|
+
assertEquals(0xFF0000FF.toInt(), state.darkColors.primary.toArgb())
|
|
213
|
+
assertEquals(0xFF000000.toInt(), state.darkColors.contentOnPrimary.toArgb())
|
|
214
|
+
assertEquals(0xFFFF00FF.toInt(), state.darkColors.borderSelected.toArgb())
|
|
215
|
+
|
|
216
|
+
assertEquals(8f, state.primaryButton.cornerRadiusDp)
|
|
217
|
+
assertEquals(48f, state.primaryButton.heightDp)
|
|
218
|
+
}
|
|
219
|
+
}
|
|
@@ -42,7 +42,7 @@ internal class PaymentMethodMessagingElementConfig {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
if let linkTextColorHex = parseThemedColor(params: params, key: "linkTextColor") {
|
|
45
|
-
appearance.
|
|
45
|
+
appearance.linkTextColor = linkTextColorHex
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
return appearance
|
|
@@ -103,12 +103,12 @@ internal class PaymentMethodMessagingElementConfig {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
|
|
106
|
+
let configuration = PaymentMethodMessagingElement.Configuration(
|
|
107
107
|
amount: amount,
|
|
108
108
|
currency: currency,
|
|
109
109
|
locale: locale,
|
|
110
110
|
countryCode: country,
|
|
111
|
-
paymentMethodTypes: paymentMethodTypes
|
|
111
|
+
paymentMethodTypes: paymentMethodTypes
|
|
112
112
|
)
|
|
113
113
|
|
|
114
114
|
return (nil, configuration)
|
package/ios/StripeOnrampSdk.mm
CHANGED
|
@@ -43,12 +43,6 @@ RCT_EXPORT_METHOD(registerLinkUser:(nonnull NSDictionary *)info
|
|
|
43
43
|
[StripeSdkImpl.shared registerLinkUser:info resolver:resolve rejecter:reject];
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
RCT_EXPORT_METHOD(authenticateUser:(nonnull RCTPromiseResolveBlock)resolve
|
|
47
|
-
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
48
|
-
{
|
|
49
|
-
[StripeSdkImpl.shared authenticateUser:resolve rejecter:reject];
|
|
50
|
-
}
|
|
51
|
-
|
|
52
46
|
RCT_EXPORT_METHOD(authenticateUserWithToken:(nonnull NSString *)linkAuthTokenClientSecret
|
|
53
47
|
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
54
48
|
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
@@ -152,9 +152,8 @@ extension StripeSdkImpl {
|
|
|
152
152
|
)
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
let
|
|
156
|
-
|
|
157
|
-
configuration.termsDisplay = userKeyTermsDisplay
|
|
155
|
+
if let termsDisplay = StripeSdkImpl.mapToTermsDisplay(params: params) {
|
|
156
|
+
configuration.termsDisplay = termsDisplay
|
|
158
157
|
}
|
|
159
158
|
|
|
160
159
|
return (nil, configuration)
|
|
@@ -486,11 +485,25 @@ extension StripeSdkImpl {
|
|
|
486
485
|
}
|
|
487
486
|
}
|
|
488
487
|
|
|
489
|
-
internal static func
|
|
490
|
-
|
|
491
|
-
return
|
|
488
|
+
internal static func mapToTermsDisplay(params: NSDictionary) -> [STPPaymentMethodType: PaymentSheet.TermsDisplay]? {
|
|
489
|
+
guard let termsDisplayDict = params["termsDisplay"] as? [String: String] else {
|
|
490
|
+
return nil
|
|
492
491
|
}
|
|
493
|
-
|
|
492
|
+
|
|
493
|
+
var result: [STPPaymentMethodType: PaymentSheet.TermsDisplay] = [:]
|
|
494
|
+
for (code, value) in termsDisplayDict {
|
|
495
|
+
let paymentMethodType = STPPaymentMethodType.fromIdentifier(code)
|
|
496
|
+
let termsDisplay: PaymentSheet.TermsDisplay? = switch value {
|
|
497
|
+
case "never": .never
|
|
498
|
+
case "automatic": .automatic
|
|
499
|
+
default: nil
|
|
500
|
+
}
|
|
501
|
+
if paymentMethodType != .unknown, let termsDisplay {
|
|
502
|
+
result[paymentMethodType] = termsDisplay
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
return result.isEmpty ? nil : result
|
|
494
507
|
}
|
|
495
508
|
|
|
496
509
|
internal static func mapToLinkDisplay(value: String?) -> PaymentSheet.LinkConfiguration.Display {
|
package/ios/StripeSdkImpl.swift
CHANGED
|
@@ -1332,35 +1332,6 @@ public class StripeSdkImpl: NSObject, UIAdaptivePresentationControllerDelegate {
|
|
|
1332
1332
|
}
|
|
1333
1333
|
}
|
|
1334
1334
|
|
|
1335
|
-
@objc(authenticateUser:rejecter:)
|
|
1336
|
-
public func authenticateUser(
|
|
1337
|
-
resolver resolve: @escaping RCTPromiseResolveBlock,
|
|
1338
|
-
rejecter reject: @escaping RCTPromiseRejectBlock
|
|
1339
|
-
) {
|
|
1340
|
-
guard isPublishableKeyAvailable(resolve), let coordinator = requireOnrampCoordinator(resolve) else {
|
|
1341
|
-
return
|
|
1342
|
-
}
|
|
1343
|
-
|
|
1344
|
-
Task {
|
|
1345
|
-
do {
|
|
1346
|
-
let presentingViewController = await MainActor.run {
|
|
1347
|
-
findViewControllerPresenter(from: RCTKeyWindow()?.rootViewController ?? UIViewController())
|
|
1348
|
-
}
|
|
1349
|
-
let result = try await coordinator.authenticateUser(from: presentingViewController)
|
|
1350
|
-
switch result {
|
|
1351
|
-
case let .completed(customerId):
|
|
1352
|
-
resolve(["customerId": customerId])
|
|
1353
|
-
case .canceled:
|
|
1354
|
-
let errorResult = Errors.createError(ErrorType.Canceled, "Authentication was cancelled")
|
|
1355
|
-
resolve(["error": errorResult["error"]!])
|
|
1356
|
-
}
|
|
1357
|
-
} catch {
|
|
1358
|
-
let errorResult = Errors.createError(ErrorType.Failed, error)
|
|
1359
|
-
resolve(["error": errorResult["error"]!])
|
|
1360
|
-
}
|
|
1361
|
-
}
|
|
1362
|
-
}
|
|
1363
|
-
|
|
1364
1335
|
@objc(authenticateUserWithToken:resolver:rejecter:)
|
|
1365
1336
|
public func authenticateUserWithToken(
|
|
1366
1337
|
_ linkAuthTokenClientSecret: String,
|
|
@@ -1739,7 +1710,7 @@ public class StripeSdkImpl: NSObject, UIAdaptivePresentationControllerDelegate {
|
|
|
1739
1710
|
let formattedBrandName = String(format: mappedFunding.displayNameWithBrand, brandName ?? "")
|
|
1740
1711
|
let sublabel = "\(formattedBrandName) •••• \(last4)"
|
|
1741
1712
|
|
|
1742
|
-
let result = PaymentMethodDisplayData(icon: icon, label: label, sublabel: sublabel)
|
|
1713
|
+
let result = PaymentMethodDisplayData(paymentMethodType: .card, icon: icon, label: label, sublabel: sublabel)
|
|
1743
1714
|
let displayData = Mappers.paymentMethodDisplayDataToMap(result)
|
|
1744
1715
|
|
|
1745
1716
|
resolve(["displayData": displayData])
|
|
@@ -1751,7 +1722,7 @@ public class StripeSdkImpl: NSObject, UIAdaptivePresentationControllerDelegate {
|
|
|
1751
1722
|
let icon = PaymentSheetImageLibrary.bankIcon(for: iconCode, iconStyle: .filled)
|
|
1752
1723
|
let sublabel = "\(bankName) •••• \(last4)"
|
|
1753
1724
|
|
|
1754
|
-
let result = PaymentMethodDisplayData(icon: icon, label: label, sublabel: sublabel)
|
|
1725
|
+
let result = PaymentMethodDisplayData(paymentMethodType: .bankAccount, icon: icon, label: label, sublabel: sublabel)
|
|
1755
1726
|
let displayData = Mappers.paymentMethodDisplayDataToMap(result)
|
|
1756
1727
|
|
|
1757
1728
|
resolve(["displayData": displayData])
|
|
@@ -1801,11 +1772,6 @@ public class StripeSdkImpl: NSObject, UIAdaptivePresentationControllerDelegate {
|
|
|
1801
1772
|
resolveWithCryptoOnrampNotAvailableError(resolve)
|
|
1802
1773
|
}
|
|
1803
1774
|
|
|
1804
|
-
@objc(authenticateUser:rejecter:)
|
|
1805
|
-
public func authenticateUser(resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
|
|
1806
|
-
resolveWithCryptoOnrampNotAvailableError(resolve)
|
|
1807
|
-
}
|
|
1808
|
-
|
|
1809
1775
|
@objc(authenticateUserWithToken:resolver:rejecter:)
|
|
1810
1776
|
public func authenticateUserWithToken(
|
|
1811
1777
|
_ linkAuthTokenClientSecret: String,
|
package/jest/setup.js
CHANGED
|
@@ -15,7 +15,6 @@ jest.mock('../src/specs/NativeOnrampSdkModule', () => ({
|
|
|
15
15
|
attachKycInfo: jest.fn(),
|
|
16
16
|
presentKycInfoVerification: jest.fn(),
|
|
17
17
|
updatePhoneNumber: jest.fn(),
|
|
18
|
-
authenticateUser: jest.fn(),
|
|
19
18
|
authenticateUserWithToken: jest.fn(),
|
|
20
19
|
verifyIdentity: jest.fn(),
|
|
21
20
|
collectPaymentMethod: jest.fn(),
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.AddToWalletButton=AddToWalletButton;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _NativeAddToWalletButton=_interopRequireDefault(require("../specs/NativeAddToWalletButton"));var _jsxRuntime=require("react/jsx-runtime");var _jsxFileName="/Users/
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.AddToWalletButton=AddToWalletButton;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _NativeAddToWalletButton=_interopRequireDefault(require("../specs/NativeAddToWalletButton"));var _jsxRuntime=require("react/jsx-runtime");var _jsxFileName="/Users/mats/stripe/stripe-react-native/src/components/AddToWalletButton.tsx";var _excluded=["onComplete"];function AddToWalletButton(_ref){var onComplete=_ref.onComplete,props=(0,_objectWithoutProperties2.default)(_ref,_excluded);return(0,_jsxRuntime.jsx)(_NativeAddToWalletButton.default,Object.assign({},props,{onCompleteAction:function onCompleteAction(value){return onComplete(value.nativeEvent);}}));}
|
|
2
2
|
//# sourceMappingURL=AddToWalletButton.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.AddressSheet=AddressSheet;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _NativeAddressSheet=_interopRequireDefault(require("../specs/NativeAddressSheet"));var _jsxRuntime=require("react/jsx-runtime");var _jsxFileName="/Users/
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.AddressSheet=AddressSheet;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _NativeAddressSheet=_interopRequireDefault(require("../specs/NativeAddressSheet"));var _jsxRuntime=require("react/jsx-runtime");var _jsxFileName="/Users/mats/stripe/stripe-react-native/src/components/AddressSheet.tsx";var _excluded=["onSubmit","onError"];function AddressSheet(_ref){var onSubmit=_ref.onSubmit,onError=_ref.onError,props=(0,_objectWithoutProperties2.default)(_ref,_excluded);return(0,_jsxRuntime.jsx)(_NativeAddressSheet.default,Object.assign({},props,{onSubmitAction:function onSubmitAction(event){return onSubmit(event.nativeEvent.result);},onErrorAction:function onErrorAction(event){return onError(event.nativeEvent.error);}}));}
|
|
2
2
|
//# sourceMappingURL=AddressSheet.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.AuBECSDebitForm=AuBECSDebitForm;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _NativeAuBECSDebitForm=_interopRequireDefault(require("../specs/NativeAuBECSDebitForm"));var _jsxRuntime=require("react/jsx-runtime");var _jsxFileName="/Users/
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.AuBECSDebitForm=AuBECSDebitForm;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _NativeAuBECSDebitForm=_interopRequireDefault(require("../specs/NativeAuBECSDebitForm"));var _jsxRuntime=require("react/jsx-runtime");var _jsxFileName="/Users/mats/stripe/stripe-react-native/src/components/AuBECSDebitForm.tsx";var _excluded=["onComplete","companyName","formStyle"];function AuBECSDebitForm(_ref){var onComplete=_ref.onComplete,companyName=_ref.companyName,formStyle=_ref.formStyle,props=(0,_objectWithoutProperties2.default)(_ref,_excluded);return(0,_jsxRuntime.jsx)(_NativeAuBECSDebitForm.default,Object.assign({onCompleteAction:function onCompleteAction(value){return onComplete(value.nativeEvent);},companyName:companyName,formStyle:Object.assign({},formStyle)},props));}
|
|
2
2
|
//# sourceMappingURL=AuBECSDebitForm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.CardField=void 0;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireWildcard(require("react"));var _helpers=require("../helpers");var _NativeCardField=_interopRequireWildcard(require("../specs/NativeCardField"));var _jsxRuntime=require("react/jsx-runtime");var _excluded=["onCardChange","onFocus","onBlur","cardStyle","placeholders","autofocus","postalCodeEnabled","disabled","dangerouslyGetFullCardDetails"];var _this=this,_jsxFileName="/Users/
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.CardField=void 0;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireWildcard(require("react"));var _helpers=require("../helpers");var _NativeCardField=_interopRequireWildcard(require("../specs/NativeCardField"));var _jsxRuntime=require("react/jsx-runtime");var _excluded=["onCardChange","onFocus","onBlur","cardStyle","placeholders","autofocus","postalCodeEnabled","disabled","dangerouslyGetFullCardDetails"];var _this=this,_jsxFileName="/Users/mats/stripe/stripe-react-native/src/components/CardField.tsx";function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap(),n=new WeakMap();return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f);}for(var _t in e)"default"!==_t&&{}.hasOwnProperty.call(e,_t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t))&&(i.get||i.set)?o(f,_t,i):f[_t]=e[_t]);return f;})(e,t);}var CardField=exports.CardField=(0,_react.forwardRef)(function(_ref,ref){var onCardChange=_ref.onCardChange,onFocus=_ref.onFocus,onBlur=_ref.onBlur,cardStyle=_ref.cardStyle,placeholders=_ref.placeholders,autofocus=_ref.autofocus,postalCodeEnabled=_ref.postalCodeEnabled,disabled=_ref.disabled,dangerouslyGetFullCardDetails=_ref.dangerouslyGetFullCardDetails,props=(0,_objectWithoutProperties2.default)(_ref,_excluded);var inputRef=(0,_react.useRef)(null);var onCardChangeHandler=(0,_react.useCallback)(function(event){var card=event.nativeEvent.card;var data={last4:card.last4,expiryMonth:card.expiryMonth,expiryYear:card.expiryYear,complete:card.complete,brand:card.brand,validExpiryDate:card.validExpiryDate,validNumber:card.validNumber,validCVC:card.validCVC};if(card.hasOwnProperty('postalCode')){data.postalCode=card.postalCode||'';}if(card.hasOwnProperty('number')||card.hasOwnProperty('cvc')){data.number=card.number||'';data.cvc=card.cvc||'';if(__DEV__&&onCardChange&&card.complete){console.warn(`[stripe-react-native] ⚠️ WARNING: You've enabled \`dangerouslyGetFullCardDetails\`, meaning full card details are being returned. Only do this if you're certain that you fulfill the necessary PCI compliance requirements. Make sure that you're not mistakenly logging or storing full card details! See the docs for details: https://stripe.com/docs/security/guide#validating-pci-compliance`);}}onCardChange==null||onCardChange(data);},[onCardChange]);var onFocusHandler=(0,_react.useCallback)(function(event){var focusedField=event.nativeEvent.focusedField;if(focusedField){(0,_helpers.focusInput)(inputRef.current);onFocus==null||onFocus(focusedField);}else{onBlur==null||onBlur();}},[onFocus,onBlur]);var focus=function focus(){_NativeCardField.Commands.focus(inputRef.current);};var blur=function blur(){_NativeCardField.Commands.blur(inputRef.current);};var clear=function clear(){_NativeCardField.Commands.clear(inputRef.current);};(0,_react.useImperativeHandle)(ref,function(){return{focus:focus,blur:blur,clear:clear};});(0,_react.useLayoutEffect)(function(){var inputRefValue=inputRef.current;if(inputRefValue!==null){(0,_helpers.registerInput)(inputRefValue);return function(){(0,_helpers.unregisterInput)(inputRefValue);if((0,_helpers.currentlyFocusedInput)()===inputRefValue){inputRefValue.blur();}};}return function(){};},[inputRef]);return(0,_jsxRuntime.jsx)(_NativeCardField.default,Object.assign({ref:inputRef,onCardChange:onCardChangeHandler,onFocusChange:onFocusHandler,cardStyle:{backgroundColor:cardStyle==null?void 0:cardStyle.backgroundColor,borderColor:cardStyle==null?void 0:cardStyle.borderColor,borderWidth:cardStyle==null?void 0:cardStyle.borderWidth,borderRadius:cardStyle==null?void 0:cardStyle.borderRadius,cursorColor:cardStyle==null?void 0:cardStyle.cursorColor,fontSize:cardStyle==null?void 0:cardStyle.fontSize,placeholderColor:cardStyle==null?void 0:cardStyle.placeholderColor,textColor:cardStyle==null?void 0:cardStyle.textColor,textErrorColor:cardStyle==null?void 0:cardStyle.textErrorColor,fontFamily:cardStyle==null?void 0:cardStyle.fontFamily},placeholders:{number:placeholders==null?void 0:placeholders.number,expiration:placeholders==null?void 0:placeholders.expiration,cvc:placeholders==null?void 0:placeholders.cvc,postalCode:placeholders==null?void 0:placeholders.postalCode},autofocus:autofocus!=null?autofocus:false,postalCodeEnabled:postalCodeEnabled!=null?postalCodeEnabled:true,disabled:disabled!=null?disabled:false,dangerouslyGetFullCardDetails:dangerouslyGetFullCardDetails!=null?dangerouslyGetFullCardDetails:false},props));});
|
|
2
2
|
//# sourceMappingURL=CardField.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.CardForm=void 0;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireWildcard(require("react"));var _NativeCardForm=_interopRequireWildcard(require("../specs/NativeCardForm"));var _helpers=require("../helpers");var _jsxRuntime=require("react/jsx-runtime");var _excluded=["onFormComplete","cardStyle","placeholders","defaultValues","autofocus","dangerouslyGetFullCardDetails","disabled"];var _this=this,_jsxFileName="/Users/
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.CardForm=void 0;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireWildcard(require("react"));var _NativeCardForm=_interopRequireWildcard(require("../specs/NativeCardForm"));var _helpers=require("../helpers");var _jsxRuntime=require("react/jsx-runtime");var _excluded=["onFormComplete","cardStyle","placeholders","defaultValues","autofocus","dangerouslyGetFullCardDetails","disabled"];var _this=this,_jsxFileName="/Users/mats/stripe/stripe-react-native/src/components/CardForm.tsx";function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap(),n=new WeakMap();return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f);}for(var _t in e)"default"!==_t&&{}.hasOwnProperty.call(e,_t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t))&&(i.get||i.set)?o(f,_t,i):f[_t]=e[_t]);return f;})(e,t);}var CardForm=exports.CardForm=(0,_react.forwardRef)(function(_ref,ref){var onFormComplete=_ref.onFormComplete,cardStyle=_ref.cardStyle,placeholders=_ref.placeholders,defaultValues=_ref.defaultValues,autofocus=_ref.autofocus,dangerouslyGetFullCardDetails=_ref.dangerouslyGetFullCardDetails,disabled=_ref.disabled,props=(0,_objectWithoutProperties2.default)(_ref,_excluded);var inputRef=(0,_react.useRef)(null);var onFormCompleteHandler=(0,_react.useCallback)(function(event){var card=event.nativeEvent.card;var data={last4:card.last4,expiryMonth:card.expiryMonth,expiryYear:card.expiryYear,complete:card.complete,brand:card.brand,country:card.country,postalCode:card.postalCode};if(card.hasOwnProperty('number')||card.hasOwnProperty('cvc')){data.number=card.number||'';data.cvc=card.cvc||'';if(__DEV__&&onFormComplete&&card.complete){console.warn(`[stripe-react-native] ⚠️ WARNING: You've enabled \`dangerouslyGetFullCardDetails\`, meaning full card details are being returned. Only do this if you're certain that you fulfill the necessary PCI compliance requirements. Make sure that you're not mistakenly logging or storing full card details! See the docs for details: https://stripe.com/docs/security/guide#validating-pci-compliance`);}}onFormComplete==null||onFormComplete(data);},[onFormComplete]);var focus=function focus(){_NativeCardForm.Commands.focus(inputRef.current);};var blur=function blur(){_NativeCardForm.Commands.blur(inputRef.current);};(0,_react.useImperativeHandle)(ref,function(){return{focus:focus,blur:blur};});var onFocusHandler=(0,_react.useCallback)(function(event){var focusedField=event.nativeEvent.focusedField;if(focusedField){(0,_helpers.focusInput)(inputRef.current);}},[]);(0,_react.useLayoutEffect)(function(){var inputRefValue=inputRef.current;if(inputRefValue!==null){(0,_helpers.registerInput)(inputRefValue);return function(){(0,_helpers.unregisterInput)(inputRefValue);if((0,_helpers.currentlyFocusedInput)()===inputRefValue){inputRefValue.blur();}};}return function(){};},[inputRef]);return(0,_jsxRuntime.jsx)(_NativeCardForm.default,Object.assign({ref:inputRef,onFormComplete:onFormCompleteHandler,cardStyle:{backgroundColor:cardStyle==null?void 0:cardStyle.backgroundColor,borderColor:cardStyle==null?void 0:cardStyle.borderColor,borderWidth:cardStyle==null?void 0:cardStyle.borderWidth,borderRadius:cardStyle==null?void 0:cardStyle.borderRadius,cursorColor:cardStyle==null?void 0:cardStyle.cursorColor,fontSize:cardStyle==null?void 0:cardStyle.fontSize,placeholderColor:cardStyle==null?void 0:cardStyle.placeholderColor,textColor:cardStyle==null?void 0:cardStyle.textColor,textErrorColor:cardStyle==null?void 0:cardStyle.textErrorColor,fontFamily:cardStyle==null?void 0:cardStyle.fontFamily},placeholders:{number:placeholders==null?void 0:placeholders.number,expiration:placeholders==null?void 0:placeholders.expiration,cvc:placeholders==null?void 0:placeholders.cvc,postalCode:placeholders==null?void 0:placeholders.postalCode},defaultValues:Object.assign({},defaultValues!=null?defaultValues:{}),onFocusChange:onFocusHandler,autofocus:autofocus!=null?autofocus:false,dangerouslyGetFullCardDetails:dangerouslyGetFullCardDetails!=null?dangerouslyGetFullCardDetails:false,disabled:disabled!=null?disabled:false,postalCodeEnabled:true},props));});
|
|
2
2
|
//# sourceMappingURL=CardForm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.PlatformPayButton=PlatformPayButton;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _NativeStripeSdkModule=_interopRequireDefault(require("../specs/NativeStripeSdkModule"));var _PlatformPay=require("../types/PlatformPay");var _NativeApplePayButton=_interopRequireDefault(require("../specs/NativeApplePayButton"));var _NativeGooglePayButton=_interopRequireDefault(require("../specs/NativeGooglePayButton"));var _jsxRuntime=require("react/jsx-runtime");var _jsxFileName="/Users/
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.PlatformPayButton=PlatformPayButton;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _NativeStripeSdkModule=_interopRequireDefault(require("../specs/NativeStripeSdkModule"));var _PlatformPay=require("../types/PlatformPay");var _NativeApplePayButton=_interopRequireDefault(require("../specs/NativeApplePayButton"));var _NativeGooglePayButton=_interopRequireDefault(require("../specs/NativeGooglePayButton"));var _jsxRuntime=require("react/jsx-runtime");var _jsxFileName="/Users/mats/stripe/stripe-react-native/src/components/PlatformPayButton.tsx";var _excluded=["type","appearance","onPress","disabled","borderRadius","onShippingMethodSelected","onShippingContactSelected","onCouponCodeEntered","setOrderTracking","style"];function PlatformPayButton(_ref){var _ref$type=_ref.type,type=_ref$type===void 0?_PlatformPay.ButtonType.Default:_ref$type,_ref$appearance=_ref.appearance,appearance=_ref$appearance===void 0?_PlatformPay.ButtonStyle.Automatic:_ref$appearance,onPress=_ref.onPress,disabled=_ref.disabled,borderRadius=_ref.borderRadius,onShippingMethodSelected=_ref.onShippingMethodSelected,onShippingContactSelected=_ref.onShippingContactSelected,onCouponCodeEntered=_ref.onCouponCodeEntered,setOrderTracking=_ref.setOrderTracking,style=_ref.style,props=(0,_objectWithoutProperties2.default)(_ref,_excluded);var shippingMethodCallback=onShippingMethodSelected?function(value){onShippingMethodSelected&&onShippingMethodSelected(value.nativeEvent);}:undefined;var shippingContactCallback=onShippingContactSelected?function(value){onShippingContactSelected(value.nativeEvent);}:undefined;var couponCodeCallback=onCouponCodeEntered?function(value){onCouponCodeEntered&&onCouponCodeEntered(value.nativeEvent);}:undefined;var orderTrackingCallback=setOrderTracking?function(){setOrderTracking(_NativeStripeSdkModule.default.configureOrderTracking);}:undefined;var callbackProps={onShippingMethodSelectedAction:shippingMethodCallback,onShippingContactSelectedAction:shippingContactCallback,onCouponCodeEnteredAction:couponCodeCallback,onOrderTrackingAction:orderTrackingCallback,hasShippingMethodCallback:!!onShippingMethodSelected,hasShippingContactCallback:!!onShippingContactSelected,hasCouponCodeCallback:!!onCouponCodeEntered,hasOrderTrackingCallback:!!setOrderTracking};return(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{disabled:disabled,activeOpacity:disabled?0.3:1,onPress:onPress,style:[disabled?styles.disabled:styles.notDisabled,style],children:_reactNative.Platform.OS==='ios'?(0,_jsxRuntime.jsx)(_NativeApplePayButton.default,Object.assign({type:type,buttonStyle:appearance,buttonBorderRadius:borderRadius,disabled:disabled!=null?disabled:false,style:styles.nativeButtonStyle},callbackProps,props)):(0,_jsxRuntime.jsx)(_NativeGooglePayButton.default,Object.assign({type:type,appearance:appearance,borderRadius:borderRadius,style:styles.nativeButtonStyle},props))});}var styles=_reactNative.StyleSheet.create({disabled:{flex:0,opacity:0.4},notDisabled:{flex:0},nativeButtonStyle:{flex:1}});
|
|
2
2
|
//# sourceMappingURL=PlatformPayButton.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.StripeContainer=StripeContainer;var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _NativeStripeContainer=_interopRequireDefault(require("../specs/NativeStripeContainer"));var _jsxRuntime=require("react/jsx-runtime");var _jsxFileName="/Users/
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.StripeContainer=StripeContainer;var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _NativeStripeContainer=_interopRequireDefault(require("../specs/NativeStripeContainer"));var _jsxRuntime=require("react/jsx-runtime");var _jsxFileName="/Users/mats/stripe/stripe-react-native/src/components/StripeContainer.tsx";function StripeContainer(_ref){var keyboardShouldPersistTaps=_ref.keyboardShouldPersistTaps,children=_ref.children;return(0,_jsxRuntime.jsx)(_NativeStripeContainer.default,{keyboardShouldPersistTaps:keyboardShouldPersistTaps!=null?keyboardShouldPersistTaps:true,style:styles.container,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.container,accessible:false,children:children})});}var styles=_reactNative.StyleSheet.create({container:{flex:1}});
|
|
2
2
|
//# sourceMappingURL=StripeContainer.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ConnectAccountOnboarding=ConnectAccountOnboarding;exports.ConnectPaymentDetails=ConnectPaymentDetails;exports.ConnectPayments=ConnectPayments;exports.ConnectPayouts=ConnectPayouts;Object.defineProperty(exports,"NavigationBar",{enumerable:true,get:function get(){return _NavigationBar.NavigationBar;}});var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _EmbeddedComponent=require("./EmbeddedComponent");var _NavigationBar=require("./NavigationBar");var _NativeConnectAccountOnboardingView=_interopRequireDefault(require("../specs/NativeConnectAccountOnboardingView"));var _ConnectComponentsProvider=require("./ConnectComponentsProvider");var _jsxRuntime=require("react/jsx-runtime");var _jsxFileName="/Users/
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ConnectAccountOnboarding=ConnectAccountOnboarding;exports.ConnectPaymentDetails=ConnectPaymentDetails;exports.ConnectPayments=ConnectPayments;exports.ConnectPayouts=ConnectPayouts;Object.defineProperty(exports,"NavigationBar",{enumerable:true,get:function get(){return _NavigationBar.NavigationBar;}});var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _EmbeddedComponent=require("./EmbeddedComponent");var _NavigationBar=require("./NavigationBar");var _NativeConnectAccountOnboardingView=_interopRequireDefault(require("../specs/NativeConnectAccountOnboardingView"));var _ConnectComponentsProvider=require("./ConnectComponentsProvider");var _jsxRuntime=require("react/jsx-runtime");var _jsxFileName="/Users/mats/stripe/stripe-react-native/src/connect/Components.tsx";function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap(),n=new WeakMap();return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f);}for(var _t in e)"default"!==_t&&{}.hasOwnProperty.call(e,_t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t))&&(i.get||i.set)?o(f,_t,i):f[_t]=e[_t]);return f;})(e,t);}function ConnectAccountOnboarding(_ref){var title=_ref.title,onExit=_ref.onExit,onStepChange=_ref.onStepChange,recipientTermsOfServiceUrl=_ref.recipientTermsOfServiceUrl,fullTermsOfServiceUrl=_ref.fullTermsOfServiceUrl,privacyPolicyUrl=_ref.privacyPolicyUrl,collectionOptions=_ref.collectionOptions,onLoaderStart=_ref.onLoaderStart,onLoadError=_ref.onLoadError,onPageDidLoad=_ref.onPageDidLoad;var _useState=(0,_react.useState)(true),_useState2=(0,_slicedToArray2.default)(_useState,2),visible=_useState2[0],setVisible=_useState2[1];var _useState3=(0,_react.useState)(true),_useState4=(0,_slicedToArray2.default)(_useState3,2),loading=_useState4[0],setLoading=_useState4[1];var _useConnectComponents=(0,_ConnectComponentsProvider.useConnectComponents)(),appearance=_useConnectComponents.appearance;var backgroundColor=(0,_react.useMemo)(function(){var _appearance$variables;return(appearance==null||(_appearance$variables=appearance.variables)==null?void 0:_appearance$variables.colorBackground)||'#FFFFFF';},[appearance]);var loadingIndicatorColor=(0,_react.useMemo)(function(){var _appearance$variables2;return(appearance==null||(_appearance$variables2=appearance.variables)==null?void 0:_appearance$variables2.colorSecondaryText)||'#888888';},[appearance]);var componentProps=(0,_react.useMemo)(function(){return{setFullTermsOfServiceUrl:fullTermsOfServiceUrl,setRecipientTermsOfServiceUrl:recipientTermsOfServiceUrl,setPrivacyPolicyUrl:privacyPolicyUrl,setCollectionOptions:collectionOptions};},[fullTermsOfServiceUrl,recipientTermsOfServiceUrl,privacyPolicyUrl,collectionOptions]);var onExitCallback=(0,_react.useCallback)(function(){setVisible(false);setTimeout(onExit);},[onExit]);var callbacks=(0,_react.useMemo)(function(){return{onExit:onExitCallback,onStepChange:onStepChange,onCloseWebView:onExitCallback};},[onExitCallback,onStepChange]);var onLoaderStartCallback=(0,_react.useCallback)(function(event){setLoading(false);if(onLoaderStart){onLoaderStart(event);}},[onLoaderStart]);var _useWindowDimensions=(0,_reactNative.useWindowDimensions)(),width=_useWindowDimensions.width,height=_useWindowDimensions.height;var containerStyle=(0,_react.useMemo)(function(){return{width:width,height:height,position:'absolute'};},[width,height]);if(_reactNative.Platform.OS==='ios'){return(0,_jsxRuntime.jsxs)(_NativeConnectAccountOnboardingView.default,{visible:visible,title:title,backgroundColor:backgroundColor,onExitAction:onExitCallback,style:containerStyle,children:[loading?(0,_jsxRuntime.jsx)(_reactNative.ActivityIndicator,{size:"large",color:loadingIndicatorColor,style:styles.iosActivityIndicator}):null,(0,_jsxRuntime.jsx)(_EmbeddedComponent.EmbeddedComponent,{component:"account-onboarding",componentProps:componentProps,onLoaderStart:onLoaderStartCallback,onLoadError:onLoadError,onPageDidLoad:onPageDidLoad,callbacks:callbacks,style:styles.flex1})]});}return(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:visible,animationType:"slide",presentationStyle:"fullScreen",children:(0,_jsxRuntime.jsxs)(_reactNative.SafeAreaView,{style:styles.flex1,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[_reactNative.Platform.OS==='android'&&{paddingTop:_reactNative.StatusBar.currentHeight||0}],children:(0,_jsxRuntime.jsx)(_NavigationBar.NavigationBar,{title:title,onCloseButtonPress:onExitCallback,style:styles.navBar})}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.onboardingWrapper,children:[loading?(0,_jsxRuntime.jsx)(_reactNative.ActivityIndicator,{size:"large",color:loadingIndicatorColor,style:styles.activityIndicator}):null,(0,_jsxRuntime.jsx)(_EmbeddedComponent.EmbeddedComponent,{component:"account-onboarding",componentProps:componentProps,onLoaderStart:onLoaderStartCallback,onLoadError:onLoadError,onPageDidLoad:onPageDidLoad,callbacks:callbacks,style:[styles.flex1,{backgroundColor:backgroundColor}]})]})]})});}function ConnectPayments(_ref2){var defaultFilters=_ref2.defaultFilters,onLoaderStart=_ref2.onLoaderStart,onLoadError=_ref2.onLoadError,onPageDidLoad=_ref2.onPageDidLoad,style=_ref2.style;var componentProps=(0,_react.useMemo)(function(){return{setDefaultFilters:defaultFilters};},[defaultFilters]);return(0,_jsxRuntime.jsx)(_EmbeddedComponent.EmbeddedComponent,{component:"payments",onLoaderStart:onLoaderStart,onLoadError:onLoadError,onPageDidLoad:onPageDidLoad,componentProps:componentProps,style:style});}function ConnectPayouts(_ref3){var onLoaderStart=_ref3.onLoaderStart,onLoadError=_ref3.onLoadError,onPageDidLoad=_ref3.onPageDidLoad,style=_ref3.style;return(0,_jsxRuntime.jsx)(_EmbeddedComponent.EmbeddedComponent,{component:"payouts",onLoaderStart:onLoaderStart,onLoadError:onLoadError,onPageDidLoad:onPageDidLoad,style:style});}function ConnectPaymentDetails(_ref4){var payment=_ref4.payment,onClose=_ref4.onClose,onLoaderStart=_ref4.onLoaderStart,onLoadError=_ref4.onLoadError,onPageDidLoad=_ref4.onPageDidLoad,style=_ref4.style;var componentProps=(0,_react.useMemo)(function(){return{setPayment:payment};},[payment]);var callbacks=(0,_react.useMemo)(function(){return{onClose:onClose};},[onClose]);return(0,_jsxRuntime.jsx)(_EmbeddedComponent.EmbeddedComponent,{component:"payment-details",componentProps:componentProps,callbacks:callbacks,onLoaderStart:onLoaderStart,onLoadError:onLoadError,onPageDidLoad:onPageDidLoad,style:style});}var styles=_reactNative.StyleSheet.create({navBar:{height:56},flex1:{flex:1},activityIndicator:{zIndex:1,position:'absolute',left:0,right:0,top:48},iosActivityIndicator:{zIndex:1,position:'absolute',left:0,right:0,top:160},onboardingWrapper:{position:'relative',flex:1}});
|
|
2
2
|
//# sourceMappingURL=Components.js.map
|