@stripe/stripe-react-native 0.44.0 → 0.45.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.
Files changed (314) hide show
  1. package/.clang-format +90 -0
  2. package/.editorconfig +3 -0
  3. package/CHANGELOG.md +7 -1
  4. package/android/build.gradle +89 -18
  5. package/android/gradle.properties +1 -1
  6. package/android/src/main/java/com/reactnativestripesdk/AuBECSDebitFormViewManager.kt +15 -6
  7. package/android/src/main/java/com/reactnativestripesdk/CardChangeEvent.kt +56 -0
  8. package/android/src/main/java/com/reactnativestripesdk/CardFieldView.kt +4 -4
  9. package/android/src/main/java/com/reactnativestripesdk/CardFieldViewManager.kt +55 -45
  10. package/android/src/main/java/com/reactnativestripesdk/{CardFocusEvent.kt → CardFocusChangeEvent.kt} +2 -2
  11. package/android/src/main/java/com/reactnativestripesdk/CardFormCompleteEvent.kt +17 -16
  12. package/android/src/main/java/com/reactnativestripesdk/CardFormView.kt +5 -5
  13. package/android/src/main/java/com/reactnativestripesdk/CardFormViewManager.kt +39 -33
  14. package/android/src/main/java/com/reactnativestripesdk/CollectBankAccountLauncherFragment.kt +4 -2
  15. package/android/src/main/java/com/reactnativestripesdk/EmbeddedPaymentElementView.kt +182 -0
  16. package/android/src/main/java/com/reactnativestripesdk/EmbeddedPaymentElementViewManager.kt +231 -0
  17. package/android/src/main/java/com/reactnativestripesdk/FinancialConnectionsSheetFragment.kt +8 -5
  18. package/android/src/main/java/com/reactnativestripesdk/GooglePayButtonManager.kt +14 -6
  19. package/android/src/main/java/com/reactnativestripesdk/PaymentMethodCreateParamsFactory.kt +3 -1
  20. package/android/src/main/java/com/reactnativestripesdk/PaymentOptionDisplayDataMapper.kt +17 -0
  21. package/android/src/main/java/com/reactnativestripesdk/PaymentSheetAppearance.kt +266 -0
  22. package/android/src/main/java/com/reactnativestripesdk/PaymentSheetFragment.kt +8 -13
  23. package/android/src/main/java/com/reactnativestripesdk/StripeContainerManager.kt +11 -3
  24. package/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt +106 -59
  25. package/android/src/main/java/com/reactnativestripesdk/StripeSdkPackage.kt +34 -4
  26. package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressSheetView.kt +33 -27
  27. package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressSheetViewManager.kt +49 -24
  28. package/android/src/main/java/com/reactnativestripesdk/customersheet/CustomerSheetFragment.kt +16 -3
  29. package/android/src/main/java/com/reactnativestripesdk/customersheet/ReactNativeCustomerAdapter.kt +11 -29
  30. package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/AddToWalletButtonManager.kt +36 -12
  31. package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/AddToWalletButtonView.kt +5 -3
  32. package/android/src/main/java/com/reactnativestripesdk/utils/Extensions.kt +4 -0
  33. package/android/src/main/java/com/reactnativestripesdk/utils/Mappers.kt +21 -0
  34. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AddToWalletButtonManagerDelegate.java +49 -0
  35. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AddToWalletButtonManagerInterface.java +25 -0
  36. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AddressSheetViewManagerDelegate.java +64 -0
  37. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AddressSheetViewManagerInterface.java +30 -0
  38. package/android/src/oldarch/java/com/facebook/react/viewmanagers/ApplePayButtonManagerDelegate.java +41 -0
  39. package/android/src/oldarch/java/com/facebook/react/viewmanagers/ApplePayButtonManagerInterface.java +20 -0
  40. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AuBECSDebitFormManagerDelegate.java +36 -0
  41. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AuBECSDebitFormManagerInterface.java +20 -0
  42. package/android/src/oldarch/java/com/facebook/react/viewmanagers/CardFieldManagerDelegate.java +73 -0
  43. package/android/src/oldarch/java/com/facebook/react/viewmanagers/CardFieldManagerInterface.java +31 -0
  44. package/android/src/oldarch/java/com/facebook/react/viewmanagers/CardFormManagerDelegate.java +67 -0
  45. package/android/src/oldarch/java/com/facebook/react/viewmanagers/CardFormManagerInterface.java +29 -0
  46. package/android/src/oldarch/java/com/facebook/react/viewmanagers/EmbeddedPaymentElementViewManagerDelegate.java +49 -0
  47. package/android/src/oldarch/java/com/facebook/react/viewmanagers/EmbeddedPaymentElementViewManagerInterface.java +21 -0
  48. package/android/src/oldarch/java/com/facebook/react/viewmanagers/GooglePayButtonManagerDelegate.java +38 -0
  49. package/android/src/oldarch/java/com/facebook/react/viewmanagers/GooglePayButtonManagerInterface.java +19 -0
  50. package/android/src/oldarch/java/com/facebook/react/viewmanagers/StripeContainerManagerDelegate.java +32 -0
  51. package/android/src/oldarch/java/com/facebook/react/viewmanagers/StripeContainerManagerInterface.java +17 -0
  52. package/android/src/oldarch/java/com/reactnativestripesdk/NativeStripeSdkModuleSpec.java +311 -0
  53. package/ios/AddressSheet/AddressSheetUtils.swift +21 -19
  54. package/ios/AddressSheet/AddressSheetView.swift +23 -17
  55. package/ios/ApplePayButtonManager.m +0 -1
  56. package/ios/ApplePayButtonManager.swift +1 -3
  57. package/ios/ApplePayButtonView.swift +25 -20
  58. package/ios/ApplePayViewController.swift +22 -22
  59. package/ios/AuBECSDebitFormView.swift +14 -8
  60. package/ios/CardFieldManager.swift +1 -4
  61. package/ios/CardFieldView.swift +28 -25
  62. package/ios/CardFormManager.swift +1 -4
  63. package/ios/CardFormView.swift +25 -16
  64. package/ios/CustomerSheet/CustomerSheetUtils.swift +12 -16
  65. package/ios/CustomerSheet/ReactNativeCustomerAdapter.swift +8 -8
  66. package/ios/EmbeddedPaymentElementManager.m +6 -0
  67. package/ios/EmbeddedPaymentElementView.swift +48 -0
  68. package/ios/NewArch/AddToWalletButtonComponentView.h +10 -0
  69. package/ios/NewArch/AddToWalletButtonComponentView.mm +93 -0
  70. package/ios/NewArch/AddressSheetViewComponentView.h +10 -0
  71. package/ios/NewArch/AddressSheetViewComponentView.mm +109 -0
  72. package/ios/NewArch/ApplePayButtonComponentView.h +10 -0
  73. package/ios/NewArch/ApplePayButtonComponentView.mm +124 -0
  74. package/ios/NewArch/AuBECSDebitFormComponentView.h +10 -0
  75. package/ios/NewArch/AuBECSDebitFormComponentView.mm +95 -0
  76. package/ios/NewArch/CardFieldComponentView.h +10 -0
  77. package/ios/NewArch/CardFieldComponentView.mm +125 -0
  78. package/ios/NewArch/CardFormComponentView.h +10 -0
  79. package/ios/NewArch/CardFormComponentView.mm +108 -0
  80. package/ios/NewArch/StripeContainerComponentView.h +10 -0
  81. package/ios/NewArch/StripeContainerComponentView.mm +74 -0
  82. package/ios/NewArch/StripeNewArchConversions.h +20 -0
  83. package/ios/NewArch/StripeNewArchConversions.mm +47 -0
  84. package/ios/OldArch/StripeSdkEventEmitterCompat.h +27 -0
  85. package/ios/OldArch/StripeSdkEventEmitterCompat.m +105 -0
  86. package/ios/PaymentOptionDisplayData+ReactNative.swift +55 -0
  87. package/ios/PaymentSheetAppearance.swift +194 -1
  88. package/ios/PushProvisioning/AddToWalletButtonView.swift +19 -13
  89. package/ios/StripeContainerView.swift +5 -3
  90. package/ios/StripeSdk.h +21 -0
  91. package/ios/StripeSdk.mm +415 -0
  92. package/ios/StripeSdkEmitter.swift +19 -0
  93. package/ios/{StripeSdk+CustomerSheet.swift → StripeSdkImpl+CustomerSheet.swift} +24 -25
  94. package/ios/StripeSdkImpl+Embedded.swift +327 -0
  95. package/ios/{StripeSdk+PaymentSheet.swift → StripeSdkImpl+PaymentSheet.swift} +18 -29
  96. package/ios/{StripeSdk.swift → StripeSdkImpl.swift} +50 -72
  97. package/ios/StripeSwiftInterop.h +25 -0
  98. package/ios/stripe_react_native.h +2 -0
  99. package/lib/commonjs/components/AddToWalletButton.js +1 -1
  100. package/lib/commonjs/components/AddToWalletButton.js.map +1 -1
  101. package/lib/commonjs/components/AddressSheet.js +1 -1
  102. package/lib/commonjs/components/AddressSheet.js.map +1 -1
  103. package/lib/commonjs/components/AuBECSDebitForm.js +1 -1
  104. package/lib/commonjs/components/AuBECSDebitForm.js.map +1 -1
  105. package/lib/commonjs/components/CardField.js +1 -1
  106. package/lib/commonjs/components/CardField.js.map +1 -1
  107. package/lib/commonjs/components/CardForm.js +1 -1
  108. package/lib/commonjs/components/CardForm.js.map +1 -1
  109. package/lib/commonjs/components/CustomerSheet.js +1 -1
  110. package/lib/commonjs/components/CustomerSheet.js.map +1 -1
  111. package/lib/commonjs/components/PlatformPayButton.js +1 -1
  112. package/lib/commonjs/components/PlatformPayButton.js.map +1 -1
  113. package/lib/commonjs/components/StripeContainer.js +1 -1
  114. package/lib/commonjs/components/StripeContainer.js.map +1 -1
  115. package/lib/commonjs/components/StripeProvider.js +1 -1
  116. package/lib/commonjs/components/StripeProvider.js.map +1 -1
  117. package/lib/commonjs/events.js +2 -0
  118. package/lib/commonjs/events.js.map +1 -0
  119. package/lib/commonjs/functions.js +1 -1
  120. package/lib/commonjs/functions.js.map +1 -1
  121. package/lib/commonjs/index.js +1 -1
  122. package/lib/commonjs/index.js.map +1 -1
  123. package/lib/commonjs/specs/NativeAddToWalletButton.js +2 -0
  124. package/lib/commonjs/specs/NativeAddToWalletButton.js.map +1 -0
  125. package/lib/commonjs/specs/NativeAddressSheet.js +2 -0
  126. package/lib/commonjs/specs/NativeAddressSheet.js.map +1 -0
  127. package/lib/commonjs/specs/NativeApplePayButton.js +2 -0
  128. package/lib/commonjs/specs/NativeApplePayButton.js.map +1 -0
  129. package/lib/commonjs/specs/NativeAuBECSDebitForm.js +2 -0
  130. package/lib/commonjs/specs/NativeAuBECSDebitForm.js.map +1 -0
  131. package/lib/commonjs/specs/NativeCardField.js +2 -0
  132. package/lib/commonjs/specs/NativeCardField.js.map +1 -0
  133. package/lib/commonjs/specs/NativeCardForm.js +2 -0
  134. package/lib/commonjs/specs/NativeCardForm.js.map +1 -0
  135. package/lib/commonjs/specs/NativeEmbeddedPaymentElement.js +2 -0
  136. package/lib/commonjs/specs/NativeEmbeddedPaymentElement.js.map +1 -0
  137. package/lib/commonjs/specs/NativeGooglePayButton.js +2 -0
  138. package/lib/commonjs/specs/NativeGooglePayButton.js.map +1 -0
  139. package/lib/commonjs/specs/NativeStripeContainer.js +2 -0
  140. package/lib/commonjs/specs/NativeStripeContainer.js.map +1 -0
  141. package/lib/commonjs/specs/NativeStripeSdkModule.js +2 -0
  142. package/lib/commonjs/specs/NativeStripeSdkModule.js.map +1 -0
  143. package/lib/commonjs/specs/utils.js +2 -0
  144. package/lib/commonjs/specs/utils.js.map +1 -0
  145. package/lib/commonjs/types/EmbeddedPaymentElement.js +2 -0
  146. package/lib/commonjs/types/EmbeddedPaymentElement.js.map +1 -0
  147. package/lib/commonjs/types/PaymentSheet.js +1 -1
  148. package/lib/commonjs/types/PaymentSheet.js.map +1 -1
  149. package/lib/module/components/AddToWalletButton.js +1 -1
  150. package/lib/module/components/AddToWalletButton.js.map +1 -1
  151. package/lib/module/components/AddressSheet.js +1 -1
  152. package/lib/module/components/AddressSheet.js.map +1 -1
  153. package/lib/module/components/AuBECSDebitForm.js +1 -1
  154. package/lib/module/components/AuBECSDebitForm.js.map +1 -1
  155. package/lib/module/components/CardField.js +1 -1
  156. package/lib/module/components/CardField.js.map +1 -1
  157. package/lib/module/components/CardForm.js +1 -1
  158. package/lib/module/components/CardForm.js.map +1 -1
  159. package/lib/module/components/CustomerSheet.js +1 -1
  160. package/lib/module/components/CustomerSheet.js.map +1 -1
  161. package/lib/module/components/PlatformPayButton.js +1 -1
  162. package/lib/module/components/PlatformPayButton.js.map +1 -1
  163. package/lib/module/components/StripeContainer.js +1 -1
  164. package/lib/module/components/StripeContainer.js.map +1 -1
  165. package/lib/module/components/StripeProvider.js +1 -1
  166. package/lib/module/components/StripeProvider.js.map +1 -1
  167. package/lib/module/events.js +2 -0
  168. package/lib/module/events.js.map +1 -0
  169. package/lib/module/functions.js +1 -1
  170. package/lib/module/functions.js.map +1 -1
  171. package/lib/module/index.js +1 -1
  172. package/lib/module/index.js.map +1 -1
  173. package/lib/module/specs/NativeAddToWalletButton.js +2 -0
  174. package/lib/module/specs/NativeAddToWalletButton.js.map +1 -0
  175. package/lib/module/specs/NativeAddressSheet.js +2 -0
  176. package/lib/module/specs/NativeAddressSheet.js.map +1 -0
  177. package/lib/module/specs/NativeApplePayButton.js +2 -0
  178. package/lib/module/specs/NativeApplePayButton.js.map +1 -0
  179. package/lib/module/specs/NativeAuBECSDebitForm.js +2 -0
  180. package/lib/module/specs/NativeAuBECSDebitForm.js.map +1 -0
  181. package/lib/module/specs/NativeCardField.js +2 -0
  182. package/lib/module/specs/NativeCardField.js.map +1 -0
  183. package/lib/module/specs/NativeCardForm.js +2 -0
  184. package/lib/module/specs/NativeCardForm.js.map +1 -0
  185. package/lib/module/specs/NativeEmbeddedPaymentElement.js +2 -0
  186. package/lib/module/specs/NativeEmbeddedPaymentElement.js.map +1 -0
  187. package/lib/module/specs/NativeGooglePayButton.js +2 -0
  188. package/lib/module/specs/NativeGooglePayButton.js.map +1 -0
  189. package/lib/module/specs/NativeStripeContainer.js +2 -0
  190. package/lib/module/specs/NativeStripeContainer.js.map +1 -0
  191. package/lib/module/specs/NativeStripeSdkModule.js +2 -0
  192. package/lib/module/specs/NativeStripeSdkModule.js.map +1 -0
  193. package/lib/module/specs/utils.js +2 -0
  194. package/lib/module/specs/utils.js.map +1 -0
  195. package/lib/module/types/EmbeddedPaymentElement.js +2 -0
  196. package/lib/module/types/EmbeddedPaymentElement.js.map +1 -0
  197. package/lib/module/types/PaymentSheet.js +1 -1
  198. package/lib/module/types/PaymentSheet.js.map +1 -1
  199. package/lib/typescript/src/components/AddToWalletButton.d.ts.map +1 -1
  200. package/lib/typescript/src/components/AddressSheet.d.ts.map +1 -1
  201. package/lib/typescript/src/components/AuBECSDebitForm.d.ts.map +1 -1
  202. package/lib/typescript/src/components/CardField.d.ts +1 -1
  203. package/lib/typescript/src/components/CardField.d.ts.map +1 -1
  204. package/lib/typescript/src/components/CardForm.d.ts +1 -1
  205. package/lib/typescript/src/components/CardForm.d.ts.map +1 -1
  206. package/lib/typescript/src/components/CustomerSheet.d.ts +1 -1
  207. package/lib/typescript/src/components/CustomerSheet.d.ts.map +1 -1
  208. package/lib/typescript/src/components/StripeContainer.d.ts.map +1 -1
  209. package/lib/typescript/src/events.d.ts +13 -0
  210. package/lib/typescript/src/events.d.ts.map +1 -0
  211. package/lib/typescript/src/functions.d.ts.map +1 -1
  212. package/lib/typescript/src/hooks/useFinancialConnectionsSheet.d.ts +4 -4
  213. package/lib/typescript/src/hooks/useFinancialConnectionsSheet.d.ts.map +1 -1
  214. package/lib/typescript/src/hooks/useStripe.d.ts +2 -2
  215. package/lib/typescript/src/hooks/useStripe.d.ts.map +1 -1
  216. package/lib/typescript/src/index.d.ts +2 -0
  217. package/lib/typescript/src/index.d.ts.map +1 -1
  218. package/lib/typescript/src/specs/NativeAddToWalletButton.d.ts +27 -0
  219. package/lib/typescript/src/specs/NativeAddToWalletButton.d.ts.map +1 -0
  220. package/lib/typescript/src/specs/NativeAddressSheet.d.ts +34 -0
  221. package/lib/typescript/src/specs/NativeAddressSheet.d.ts.map +1 -0
  222. package/lib/typescript/src/specs/NativeApplePayButton.d.ts +28 -0
  223. package/lib/typescript/src/specs/NativeApplePayButton.d.ts.map +1 -0
  224. package/lib/typescript/src/specs/NativeAuBECSDebitForm.d.ts +19 -0
  225. package/lib/typescript/src/specs/NativeAuBECSDebitForm.d.ts.map +1 -0
  226. package/lib/typescript/src/specs/NativeCardField.d.ts +33 -0
  227. package/lib/typescript/src/specs/NativeCardField.d.ts.map +1 -0
  228. package/lib/typescript/src/specs/NativeCardForm.d.ts +31 -0
  229. package/lib/typescript/src/specs/NativeCardForm.d.ts.map +1 -0
  230. package/lib/typescript/src/specs/NativeEmbeddedPaymentElement.d.ts +22 -0
  231. package/lib/typescript/src/specs/NativeEmbeddedPaymentElement.d.ts.map +1 -0
  232. package/lib/typescript/src/specs/NativeGooglePayButton.d.ts +11 -0
  233. package/lib/typescript/src/specs/NativeGooglePayButton.d.ts.map +1 -0
  234. package/lib/typescript/src/specs/NativeStripeContainer.d.ts +8 -0
  235. package/lib/typescript/src/specs/NativeStripeContainer.d.ts.map +1 -0
  236. package/lib/typescript/src/specs/NativeStripeSdkModule.d.ts +93 -0
  237. package/lib/typescript/src/specs/NativeStripeSdkModule.d.ts.map +1 -0
  238. package/lib/typescript/src/specs/utils.d.ts +20 -0
  239. package/lib/typescript/src/specs/utils.d.ts.map +1 -0
  240. package/lib/typescript/src/types/CustomerSheet.d.ts +1 -5
  241. package/lib/typescript/src/types/CustomerSheet.d.ts.map +1 -1
  242. package/lib/typescript/src/types/EmbeddedPaymentElement.d.ts +161 -0
  243. package/lib/typescript/src/types/EmbeddedPaymentElement.d.ts.map +1 -0
  244. package/lib/typescript/src/types/PaymentSheet.d.ts +97 -4
  245. package/lib/typescript/src/types/PaymentSheet.d.ts.map +1 -1
  246. package/lib/typescript/src/types/components/CardFieldInput.d.ts +3 -2
  247. package/lib/typescript/src/types/components/CardFieldInput.d.ts.map +1 -1
  248. package/lib/typescript/src/types/components/CardFormView.d.ts +3 -1
  249. package/lib/typescript/src/types/components/CardFormView.d.ts.map +1 -1
  250. package/package.json +20 -1
  251. package/src/components/AddToWalletButton.tsx +2 -5
  252. package/src/components/AddressSheet.tsx +5 -16
  253. package/src/components/AuBECSDebitForm.tsx +3 -12
  254. package/src/components/CardField.tsx +20 -30
  255. package/src/components/CardForm.tsx +14 -29
  256. package/src/components/CustomerSheet.tsx +23 -25
  257. package/src/components/PlatformPayButton.tsx +6 -6
  258. package/src/components/StripeContainer.tsx +5 -12
  259. package/src/components/StripeProvider.tsx +1 -1
  260. package/src/events.ts +49 -0
  261. package/src/functions.ts +13 -24
  262. package/src/hooks/useFinancialConnectionsSheet.tsx +2 -2
  263. package/src/hooks/useStripe.tsx +2 -2
  264. package/src/index.tsx +3 -0
  265. package/src/specs/NativeAddToWalletButton.ts +40 -0
  266. package/src/specs/NativeAddressSheet.ts +50 -0
  267. package/src/specs/NativeApplePayButton.ts +40 -0
  268. package/src/specs/NativeAuBECSDebitForm.ts +24 -0
  269. package/src/specs/NativeCardField.ts +51 -0
  270. package/src/specs/NativeCardForm.ts +43 -0
  271. package/src/specs/NativeEmbeddedPaymentElement.ts +37 -0
  272. package/src/specs/NativeGooglePayButton.ts +20 -0
  273. package/src/specs/NativeStripeContainer.ts +12 -0
  274. package/src/specs/NativeStripeSdkModule.ts +219 -0
  275. package/src/specs/utils.ts +22 -0
  276. package/src/types/CustomerSheet.ts +1 -5
  277. package/src/types/EmbeddedPaymentElement.tsx +467 -0
  278. package/src/types/PaymentSheet.ts +114 -4
  279. package/src/types/components/CardFieldInput.ts +1 -2
  280. package/src/types/components/CardFormView.ts +1 -1
  281. package/stripe-react-native.podspec +27 -2
  282. package/android/.gradle/8.11.1/checksums/checksums.lock +0 -0
  283. package/android/.gradle/8.11.1/checksums/md5-checksums.bin +0 -0
  284. package/android/.gradle/8.11.1/checksums/sha1-checksums.bin +0 -0
  285. package/android/.gradle/8.11.1/executionHistory/executionHistory.lock +0 -0
  286. package/android/.gradle/8.11.1/fileChanges/last-build.bin +0 -0
  287. package/android/.gradle/8.11.1/fileHashes/fileHashes.lock +0 -0
  288. package/android/.gradle/8.11.1/gc.properties +0 -0
  289. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  290. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  291. package/android/.gradle/vcs-1/gc.properties +0 -0
  292. package/android/src/main/java/com/reactnativestripesdk/CardChangedEvent.kt +0 -54
  293. package/ios/StripeSdk.m +0 -244
  294. package/lib/commonjs/NativeStripeSdk.js +0 -2
  295. package/lib/commonjs/NativeStripeSdk.js.map +0 -1
  296. package/lib/commonjs/components/ApplePayButtonNative.js +0 -2
  297. package/lib/commonjs/components/ApplePayButtonNative.js.map +0 -1
  298. package/lib/commonjs/components/GooglePayButtonNative.js +0 -2
  299. package/lib/commonjs/components/GooglePayButtonNative.js.map +0 -1
  300. package/lib/module/NativeStripeSdk.js +0 -2
  301. package/lib/module/NativeStripeSdk.js.map +0 -1
  302. package/lib/module/components/ApplePayButtonNative.js +0 -2
  303. package/lib/module/components/ApplePayButtonNative.js.map +0 -1
  304. package/lib/module/components/GooglePayButtonNative.js +0 -2
  305. package/lib/module/components/GooglePayButtonNative.js.map +0 -1
  306. package/lib/typescript/src/NativeStripeSdk.d.ts +0 -58
  307. package/lib/typescript/src/NativeStripeSdk.d.ts.map +0 -1
  308. package/lib/typescript/src/components/ApplePayButtonNative.d.ts +0 -4
  309. package/lib/typescript/src/components/ApplePayButtonNative.d.ts.map +0 -1
  310. package/lib/typescript/src/components/GooglePayButtonNative.d.ts +0 -4
  311. package/lib/typescript/src/components/GooglePayButtonNative.d.ts.map +0 -1
  312. package/src/NativeStripeSdk.tsx +0 -159
  313. package/src/components/ApplePayButtonNative.tsx +0 -5
  314. package/src/components/GooglePayButtonNative.tsx +0 -7
package/.clang-format ADDED
@@ -0,0 +1,90 @@
1
+ ---
2
+ AccessModifierOffset: -1
3
+ AlignAfterOpenBracket: AlwaysBreak
4
+ AlignConsecutiveAssignments: false
5
+ AlignConsecutiveDeclarations: false
6
+ AlignEscapedNewlinesLeft: true
7
+ AlignOperands: false
8
+ AlignTrailingComments: false
9
+ AllowAllParametersOfDeclarationOnNextLine: false
10
+ AllowShortBlocksOnASingleLine: false
11
+ AllowShortCaseLabelsOnASingleLine: false
12
+ AllowShortFunctionsOnASingleLine: Empty
13
+ AllowShortIfStatementsOnASingleLine: false
14
+ AllowShortLoopsOnASingleLine: false
15
+ AlwaysBreakAfterReturnType: None
16
+ AlwaysBreakBeforeMultilineStrings: true
17
+ AlwaysBreakTemplateDeclarations: true
18
+ BinPackArguments: false
19
+ BinPackParameters: false
20
+ BraceWrapping:
21
+ AfterClass: false
22
+ AfterControlStatement: false
23
+ AfterEnum: false
24
+ AfterFunction: false
25
+ AfterNamespace: false
26
+ AfterObjCDeclaration: false
27
+ AfterStruct: false
28
+ AfterUnion: false
29
+ BeforeCatch: false
30
+ BeforeElse: false
31
+ IndentBraces: false
32
+ BreakBeforeBinaryOperators: None
33
+ BreakBeforeBraces: Attach
34
+ BreakBeforeTernaryOperators: true
35
+ BreakConstructorInitializersBeforeComma: false
36
+ BreakAfterJavaFieldAnnotations: false
37
+ BreakStringLiterals: false
38
+ ColumnLimit: 80
39
+ CommentPragmas: '^ IWYU pragma:'
40
+ ConstructorInitializerAllOnOneLineOrOnePerLine: true
41
+ ConstructorInitializerIndentWidth: 4
42
+ ContinuationIndentWidth: 4
43
+ Cpp11BracedListStyle: true
44
+ DerivePointerAlignment: false
45
+ DisableFormat: false
46
+ ForEachMacros: [FOR_EACH_RANGE, FOR_EACH]
47
+ IncludeCategories:
48
+ - Regex: '^<.*\.h(pp)?>'
49
+ Priority: 1
50
+ - Regex: '^<.*'
51
+ Priority: 2
52
+ - Regex: '.*'
53
+ Priority: 3
54
+ IndentCaseLabels: true
55
+ IndentWidth: 2
56
+ IndentWrappedFunctionNames: false
57
+ KeepEmptyLinesAtTheStartOfBlocks: false
58
+ MacroBlockBegin: ''
59
+ MacroBlockEnd: ''
60
+ MaxEmptyLinesToKeep: 1
61
+ NamespaceIndentation: None
62
+ ObjCBlockIndentWidth: 2
63
+ ObjCSpaceAfterProperty: true
64
+ ObjCSpaceBeforeProtocolList: true
65
+ PenaltyBreakBeforeFirstCallParameter: 1
66
+ PenaltyBreakComment: 300
67
+ PenaltyBreakFirstLessLess: 120
68
+ PenaltyBreakString: 1000
69
+ PenaltyExcessCharacter: 1000000
70
+ PenaltyReturnTypeOnItsOwnLine: 200
71
+ PointerAlignment: Right
72
+ ReflowComments: true
73
+ SortIncludes: true
74
+ SpaceAfterCStyleCast: false
75
+ SpaceBeforeAssignmentOperators: true
76
+ SpaceBeforeParens: ControlStatements
77
+ SpaceInEmptyParentheses: false
78
+ SpacesBeforeTrailingComments: 1
79
+ SpacesInAngles: false
80
+ SpacesInContainerLiterals: true
81
+ SpacesInCStyleCastParentheses: false
82
+ SpacesInParentheses: false
83
+ SpacesInSquareBrackets: false
84
+ Standard: Cpp11
85
+ TabWidth: 8
86
+ UseTab: Never
87
+ ---
88
+ Language: ObjC
89
+ ColumnLimit: 120
90
+ BreakBeforeBraces: WebKit
package/.editorconfig CHANGED
@@ -13,3 +13,6 @@ end_of_line = lf
13
13
  charset = utf-8
14
14
  trim_trailing_whitespace = true
15
15
  insert_final_newline = true
16
+
17
+ [*.swift]
18
+ indent_size = 4
package/CHANGELOG.md CHANGED
@@ -1,7 +1,13 @@
1
1
  # CHANGELOG
2
-
3
2
  ## Unreleased
4
3
 
4
+ ** Features **
5
+ - Ability to update saved cards when using CustomerSessions (private preview)
6
+
7
+ **Fixes**
8
+ - Updated `stripe-ios` to 24.12.\*
9
+ - Updated `stripe-android` to 21.12.\*
10
+
5
11
  ## 0.44.0 - 2025-04-15
6
12
 
7
13
  **Features**
@@ -1,6 +1,10 @@
1
1
  buildscript {
2
2
  // Buildscript is evaluated before everything else so we can't use getExtOrDefault
3
- def kotlin_version = rootProject.ext.has('kotlinVersion') ? rootProject.ext.get('kotlinVersion') : project.properties['StripeSdk_kotlinVersion']
3
+ def kotlin_version = rootProject.ext.has('kotlinVersion')
4
+ ? rootProject.ext.get('kotlinVersion')
5
+ : project.properties['StripeSdk_kotlinVersion']
6
+
7
+ def kotlinMajor = kotlin_version.tokenize('\\.')[0].toInteger()
4
8
 
5
9
  repositories {
6
10
  google()
@@ -12,19 +16,18 @@ buildscript {
12
16
  // noinspection DifferentKotlinGradleVersion
13
17
  classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
14
18
  classpath 'com.diffplug.spotless:spotless-plugin-gradle:6.25.0'
19
+ // only use this old compose-compiler plugin when Kotlin >= 2.0
20
+ if (kotlinMajor >= 2) {
21
+ classpath "org.jetbrains.kotlin:compose-compiler-gradle-plugin:$kotlin_version"
22
+ }
15
23
  }
16
24
  }
17
25
 
18
26
  if (project == rootProject) {
19
- apply from: 'spotless.gradle'
20
- return
27
+ apply from: 'spotless.gradle'
28
+ return
21
29
  }
22
30
 
23
- apply plugin: 'com.android.library'
24
- apply plugin: 'kotlin-android'
25
- apply plugin: 'kotlin-parcelize'
26
- //apply plugin: 'kotlin-android-extensions'
27
-
28
31
  def getExtOrDefault(name) {
29
32
  return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['StripeSdk_' + name]
30
33
  }
@@ -33,8 +36,59 @@ def getExtOrIntegerDefault(name) {
33
36
  return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties['StripeSdk_' + name]).toInteger()
34
37
  }
35
38
 
39
+ def isNewArchitectureEnabled() {
40
+ // To opt-in for the New Architecture, you can either:
41
+ // - Set `newArchEnabled` to true inside the `gradle.properties` file
42
+ // - Invoke gradle with `-newArchEnabled=true`
43
+ // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`
44
+ return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
45
+ }
46
+
47
+ def reactNativeArchitectures() {
48
+ def value = project.getProperties().get("reactNativeArchitectures")
49
+ return value ? value.split(",") : [
50
+ "armeabi-v7a",
51
+ "x86",
52
+ "x86_64",
53
+ "arm64-v8a"
54
+ ]
55
+ }
56
+
57
+ def kotlin_version = rootProject.ext.has('kotlinVersion')
58
+ ? rootProject.ext.get('kotlinVersion')
59
+ : project.properties['StripeSdk_kotlinVersion']
60
+ def kotlinMajor = kotlin_version.tokenize('\\.')[0].toInteger()
61
+
62
+ apply plugin: 'com.android.library'
63
+ apply plugin: 'kotlin-android'
64
+ apply plugin: 'kotlin-parcelize'
65
+ // Only apply the compose plugin if we have the old compose-compiler on the classpath
66
+ if (kotlinMajor >= 2) {
67
+ apply plugin: 'org.jetbrains.kotlin.plugin.compose'
68
+ }
69
+ //apply plugin: 'kotlin-android-extensions'
70
+
71
+ if (isNewArchitectureEnabled()) {
72
+ apply plugin: 'com.facebook.react'
73
+ }
74
+
36
75
  android {
76
+ namespace "com.reactnativestripesdk"
77
+ buildFeatures {
78
+ buildConfig true
79
+ }
80
+
37
81
  compileSdkVersion getExtOrIntegerDefault('compileSdkVersion')
82
+
83
+ // Used to override the NDK path/version on internal CI or by allowing
84
+ // users to customize the NDK path/version from their root project (e.g. for M1 support)
85
+ if (rootProject.hasProperty("ndkPath")) {
86
+ ndkPath rootProject.ext.ndkPath
87
+ }
88
+ if (rootProject.hasProperty("ndkVersion")) {
89
+ ndkVersion rootProject.ext.ndkVersion
90
+ }
91
+
38
92
  defaultConfig {
39
93
  minSdkVersion getExtOrIntegerDefault('minSdkVersion')
40
94
  targetSdkVersion getExtOrIntegerDefault('targetSdkVersion')
@@ -43,6 +97,11 @@ android {
43
97
  vectorDrawables.useSupportLibrary = true
44
98
  testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
45
99
  consumerProguardFiles 'proguard-rules.txt'
100
+ buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
101
+
102
+ ndk {
103
+ abiFilters(*reactNativeArchitectures())
104
+ }
46
105
  }
47
106
 
48
107
  buildTypes {
@@ -50,9 +109,11 @@ android {
50
109
  minifyEnabled false
51
110
  }
52
111
  }
112
+
53
113
  lintOptions {
54
114
  disable 'GradleCompatible'
55
115
  }
116
+
56
117
  compileOptions {
57
118
  sourceCompatibility JavaVersion.VERSION_1_8
58
119
  targetCompatibility JavaVersion.VERSION_1_8
@@ -60,6 +121,15 @@ android {
60
121
 
61
122
  buildFeatures {
62
123
  viewBinding true
124
+ compose true
125
+ }
126
+
127
+ sourceSets.main {
128
+ java {
129
+ if (!isNewArchitectureEnabled()) {
130
+ srcDirs += ["src/oldarch/java"]
131
+ }
132
+ }
63
133
  }
64
134
  }
65
135
 
@@ -75,8 +145,8 @@ repositories {
75
145
  defaultDir = rootProject.ext.get('reactNativeAndroidRoot')
76
146
  } else {
77
147
  defaultDir = new File(
78
- projectDir,
79
- '/../../../node_modules/react-native/android'
148
+ projectDir,
149
+ '/../../../node_modules/react-native/android'
80
150
  )
81
151
  }
82
152
 
@@ -96,13 +166,13 @@ repositories {
96
166
  parentDir = parentDir.parentFile
97
167
 
98
168
  def androidSourcesDir = new File(
99
- parentDir,
100
- 'node_modules/react-native'
169
+ parentDir,
170
+ 'node_modules/react-native'
101
171
  )
102
172
 
103
173
  def androidPrebuiltBinaryDir = new File(
104
- parentDir,
105
- 'node_modules/react-native/android'
174
+ parentDir,
175
+ 'node_modules/react-native/android'
106
176
  )
107
177
 
108
178
  if (androidPrebuiltBinaryDir.exists()) {
@@ -127,13 +197,12 @@ repositories {
127
197
 
128
198
  if (!found) {
129
199
  throw new GradleException(
130
- "${project.name}: unable to locate React Native android sources. " +
131
- "Ensure you have you installed React Native as a dependency in your project and try again."
200
+ "${project.name}: unable to locate React Native android sources. " +
201
+ "Ensure you have you installed React Native as a dependency in your project and try again."
132
202
  )
133
203
  }
134
204
  }
135
205
 
136
- def kotlin_version = getExtOrDefault('kotlinVersion')
137
206
  def stripe_version = getExtOrDefault('stripeVersion')
138
207
 
139
208
  dependencies {
@@ -145,7 +214,7 @@ dependencies {
145
214
  implementation("com.stripe:stripe-android:$stripe_version") {
146
215
  exclude group: 'androidx.emoji2', module: 'emoji2'
147
216
  }
148
- implementation ("com.stripe:financial-connections:$stripe_version") {
217
+ implementation("com.stripe:financial-connections:$stripe_version") {
149
218
  exclude group: 'androidx.emoji2', module: 'emoji2'
150
219
  }
151
220
  implementation('androidx.emoji2:emoji2:1.3.0').force // Avoid using 1.4.0 since that requires targetSdkVersion 34
@@ -164,4 +233,6 @@ dependencies {
164
233
  androidTestImplementation "androidx.test:core:1.4.0"
165
234
  androidTestImplementation 'androidx.test:runner:1.1.0'
166
235
  androidTestImplementation "org.mockito:mockito-core:3.+"
236
+
237
+ implementation "androidx.compose.ui:ui:1.7.8"
167
238
  }
@@ -3,4 +3,4 @@ StripeSdk_compileSdkVersion=30
3
3
  StripeSdk_targetSdkVersion=28
4
4
  StripeSdk_minSdkVersion=21
5
5
  # Keep StripeSdk_stripeVersion in sync with https://github.com/stripe/stripe-identity-react-native/blob/main/android/gradle.properties
6
- StripeSdk_stripeVersion=21.10.+
6
+ StripeSdk_stripeVersion=21.12.+
@@ -1,15 +1,24 @@
1
1
  package com.reactnativestripesdk
2
2
 
3
- import com.facebook.react.bridge.ReadableMap
3
+ import com.facebook.react.bridge.Dynamic
4
4
  import com.facebook.react.module.annotations.ReactModule
5
5
  import com.facebook.react.uimanager.SimpleViewManager
6
6
  import com.facebook.react.uimanager.ThemedReactContext
7
7
  import com.facebook.react.uimanager.annotations.ReactProp
8
+ import com.facebook.react.viewmanagers.AuBECSDebitFormManagerDelegate
9
+ import com.facebook.react.viewmanagers.AuBECSDebitFormManagerInterface
10
+ import com.reactnativestripesdk.utils.asMapOrNull
8
11
 
9
12
  @ReactModule(name = AuBECSDebitFormViewManager.REACT_CLASS)
10
- class AuBECSDebitFormViewManager : SimpleViewManager<AuBECSDebitFormView>() {
13
+ class AuBECSDebitFormViewManager :
14
+ SimpleViewManager<AuBECSDebitFormView>(),
15
+ AuBECSDebitFormManagerInterface<AuBECSDebitFormView> {
16
+ private val delegate = AuBECSDebitFormManagerDelegate(this)
17
+
11
18
  override fun getName() = REACT_CLASS
12
19
 
20
+ override fun getDelegate() = delegate
21
+
13
22
  override fun getExportedCustomDirectEventTypeConstants(): MutableMap<String, Any> =
14
23
  mutableMapOf(
15
24
  FormCompleteEvent.EVENT_NAME to
@@ -17,7 +26,7 @@ class AuBECSDebitFormViewManager : SimpleViewManager<AuBECSDebitFormView>() {
17
26
  )
18
27
 
19
28
  @ReactProp(name = "companyName")
20
- fun setCompanyName(
29
+ override fun setCompanyName(
21
30
  view: AuBECSDebitFormView,
22
31
  name: String?,
23
32
  ) {
@@ -25,11 +34,11 @@ class AuBECSDebitFormViewManager : SimpleViewManager<AuBECSDebitFormView>() {
25
34
  }
26
35
 
27
36
  @ReactProp(name = "formStyle")
28
- fun setFormStyle(
37
+ override fun setFormStyle(
29
38
  view: AuBECSDebitFormView,
30
- style: ReadableMap,
39
+ style: Dynamic,
31
40
  ) {
32
- view.setFormStyle(style)
41
+ view.setFormStyle(style.asMapOrNull())
33
42
  }
34
43
 
35
44
  override fun createViewInstance(reactContext: ThemedReactContext): AuBECSDebitFormView = AuBECSDebitFormView(reactContext)
@@ -0,0 +1,56 @@
1
+ package com.reactnativestripesdk
2
+
3
+ import com.facebook.react.bridge.Arguments
4
+ import com.facebook.react.bridge.WritableMap
5
+ import com.facebook.react.uimanager.events.Event
6
+
7
+ internal class CardChangeEvent(
8
+ surfaceId: Int,
9
+ viewTag: Int,
10
+ private val cardDetails: MutableMap<String, Any?>,
11
+ private val postalCodeEnabled: Boolean,
12
+ private val complete: Boolean,
13
+ private val dangerouslyGetFullCardDetails: Boolean,
14
+ ) : Event<CardChangeEvent>(surfaceId, viewTag) {
15
+ override fun getEventName(): String = EVENT_NAME
16
+
17
+ override fun getEventData(): WritableMap? {
18
+ val cardData = Arguments.createMap()
19
+ cardData.putString("brand", cardDetails["brand"]?.toString())
20
+ cardData.putString("last4", cardDetails["last4"]?.toString())
21
+
22
+ (cardDetails["expiryMonth"] as Int?)?.let {
23
+ cardData.putInt("expiryMonth", it)
24
+ } ?: run {
25
+ cardData.putNull("expiryMonth")
26
+ }
27
+
28
+ (cardDetails["expiryYear"] as Int?)?.let {
29
+ cardData.putInt("expiryYear", it)
30
+ } ?: run {
31
+ cardData.putNull("expiryYear")
32
+ }
33
+
34
+ cardData.putBoolean("complete", complete)
35
+ cardData.putString("validNumber", cardDetails["validNumber"]?.toString())
36
+ cardData.putString("validCVC", cardDetails["validCVC"]?.toString())
37
+ cardData.putString("validExpiryDate", cardDetails["validExpiryDate"]?.toString())
38
+
39
+ if (postalCodeEnabled) {
40
+ cardData.putString("postalCode", cardDetails["postalCode"]?.toString())
41
+ }
42
+
43
+ if (dangerouslyGetFullCardDetails) {
44
+ cardData.putString("number", cardDetails["number"]?.toString()?.replace(" ", ""))
45
+ cardData.putString("cvc", cardDetails["cvc"]?.toString())
46
+ }
47
+
48
+ return Arguments.createMap().apply {
49
+ putMap("card", cardData)
50
+ }
51
+ }
52
+
53
+ companion object {
54
+ const val EVENT_NAME = "topCardChange"
55
+ }
56
+ }
@@ -99,10 +99,10 @@ class CardFieldView(
99
99
  private fun onChangeFocus() {
100
100
  UIManagerHelper
101
101
  .getEventDispatcherForReactTag(context, id)
102
- ?.dispatchEvent(CardFocusEvent(context.surfaceId, id, currentFocusedField))
102
+ ?.dispatchEvent(CardFocusChangeEvent(context.surfaceId, id, currentFocusedField))
103
103
  }
104
104
 
105
- fun setCardStyle(value: ReadableMap) {
105
+ fun setCardStyle(value: ReadableMap?) {
106
106
  val borderWidth = getIntOrNull(value, "borderWidth")
107
107
  val backgroundColor = getValOr(value, "backgroundColor", null)
108
108
  val borderColor = getValOr(value, "borderColor", null)
@@ -206,7 +206,7 @@ class CardFieldView(
206
206
  }
207
207
  }
208
208
 
209
- fun setPlaceHolders(value: ReadableMap) {
209
+ fun setPlaceHolders(value: ReadableMap?) {
210
210
  val numberPlaceholder = getValOr(value, "number", null)
211
211
  val expirationPlaceholder = getValOr(value, "expiration", null)
212
212
  val cvcPlaceholder = getValOr(value, "cvc", null)
@@ -295,7 +295,7 @@ class CardFieldView(
295
295
  UIManagerHelper
296
296
  .getEventDispatcherForReactTag(context, id)
297
297
  ?.dispatchEvent(
298
- CardChangedEvent(
298
+ CardChangeEvent(
299
299
  context.surfaceId,
300
300
  id,
301
301
  cardDetails,
@@ -1,70 +1,86 @@
1
1
  package com.reactnativestripesdk
2
2
 
3
+ import com.facebook.react.bridge.Dynamic
3
4
  import com.facebook.react.bridge.ReadableArray
4
- import com.facebook.react.bridge.ReadableMap
5
5
  import com.facebook.react.module.annotations.ReactModule
6
6
  import com.facebook.react.uimanager.SimpleViewManager
7
7
  import com.facebook.react.uimanager.ThemedReactContext
8
8
  import com.facebook.react.uimanager.annotations.ReactProp
9
+ import com.facebook.react.viewmanagers.CardFieldManagerDelegate
10
+ import com.facebook.react.viewmanagers.CardFieldManagerInterface
11
+ import com.reactnativestripesdk.utils.asMapOrNull
9
12
 
10
13
  @ReactModule(name = CardFieldViewManager.REACT_CLASS)
11
- class CardFieldViewManager : SimpleViewManager<CardFieldView>() {
14
+ class CardFieldViewManager :
15
+ SimpleViewManager<CardFieldView>(),
16
+ CardFieldManagerInterface<CardFieldView> {
17
+ private val delegate = CardFieldManagerDelegate(this)
18
+ private var reactContextRef: ThemedReactContext? = null
19
+
12
20
  override fun getName() = REACT_CLASS
13
21
 
14
- private var reactContextRef: ThemedReactContext? = null
22
+ override fun getDelegate() = delegate
15
23
 
16
24
  override fun getExportedCustomDirectEventTypeConstants() =
17
25
  mutableMapOf(
18
- CardFocusEvent.EVENT_NAME to mutableMapOf("registrationName" to "onFocusChange"),
19
- CardChangedEvent.EVENT_NAME to mutableMapOf("registrationName" to "onCardChange"),
26
+ CardFocusChangeEvent.EVENT_NAME to mutableMapOf("registrationName" to "onFocusChange"),
27
+ CardChangeEvent.EVENT_NAME to mutableMapOf("registrationName" to "onCardChange"),
20
28
  )
21
29
 
22
- override fun receiveCommand(
23
- root: CardFieldView,
24
- commandId: String?,
25
- args: ReadableArray?,
26
- ) {
27
- when (commandId) {
28
- "focus" -> root.requestFocusFromJS()
29
- "blur" -> root.requestBlurFromJS()
30
- "clear" -> root.requestClearFromJS()
31
- }
30
+ override fun createViewInstance(reactContext: ThemedReactContext): CardFieldView {
31
+ val stripeSdkModule: StripeSdkModule? =
32
+ reactContext.getNativeModule(StripeSdkModule::class.java)
33
+ val view = CardFieldView(reactContext)
34
+
35
+ reactContextRef = reactContext
36
+
37
+ stripeSdkModule?.cardFieldView = view
38
+ return view
39
+ }
40
+
41
+ override fun onDropViewInstance(view: CardFieldView) {
42
+ super.onDropViewInstance(view)
43
+
44
+ val stripeSdkModule: StripeSdkModule? =
45
+ reactContextRef?.getNativeModule(StripeSdkModule::class.java)
46
+ stripeSdkModule?.cardFieldView = null
47
+ reactContextRef = null
32
48
  }
33
49
 
34
50
  @ReactProp(name = "dangerouslyGetFullCardDetails")
35
- fun setDangerouslyGetFullCardDetails(
51
+ override fun setDangerouslyGetFullCardDetails(
36
52
  view: CardFieldView,
37
- dangerouslyGetFullCardDetails: Boolean = false,
53
+ dangerouslyGetFullCardDetails: Boolean,
38
54
  ) {
39
55
  view.setDangerouslyGetFullCardDetails(dangerouslyGetFullCardDetails)
40
56
  }
41
57
 
42
58
  @ReactProp(name = "postalCodeEnabled")
43
- fun setPostalCodeEnabled(
59
+ override fun setPostalCodeEnabled(
44
60
  view: CardFieldView,
45
- postalCodeEnabled: Boolean = true,
61
+ postalCodeEnabled: Boolean,
46
62
  ) {
47
63
  view.setPostalCodeEnabled(postalCodeEnabled)
48
64
  }
49
65
 
50
66
  @ReactProp(name = "autofocus")
51
- fun setAutofocus(
67
+ override fun setAutofocus(
52
68
  view: CardFieldView,
53
- autofocus: Boolean = false,
69
+ autofocus: Boolean,
54
70
  ) {
55
71
  view.setAutofocus(autofocus)
56
72
  }
57
73
 
58
74
  @ReactProp(name = "cardStyle")
59
- fun setCardStyle(
75
+ override fun setCardStyle(
60
76
  view: CardFieldView,
61
- cardStyle: ReadableMap,
77
+ cardStyle: Dynamic,
62
78
  ) {
63
- view.setCardStyle(cardStyle)
79
+ view.setCardStyle(cardStyle.asMapOrNull())
64
80
  }
65
81
 
66
82
  @ReactProp(name = "countryCode")
67
- fun setCountryCode(
83
+ override fun setCountryCode(
68
84
  view: CardFieldView,
69
85
  countryCode: String?,
70
86
  ) {
@@ -72,7 +88,7 @@ class CardFieldViewManager : SimpleViewManager<CardFieldView>() {
72
88
  }
73
89
 
74
90
  @ReactProp(name = "onBehalfOf")
75
- fun setOnBehalfOf(
91
+ override fun setOnBehalfOf(
76
92
  view: CardFieldView,
77
93
  onBehalfOf: String?,
78
94
  ) {
@@ -80,15 +96,15 @@ class CardFieldViewManager : SimpleViewManager<CardFieldView>() {
80
96
  }
81
97
 
82
98
  @ReactProp(name = "placeholders")
83
- fun setPlaceHolders(
99
+ override fun setPlaceholders(
84
100
  view: CardFieldView,
85
- placeholders: ReadableMap,
101
+ placeholders: Dynamic,
86
102
  ) {
87
- view.setPlaceHolders(placeholders)
103
+ view.setPlaceHolders(placeholders.asMapOrNull())
88
104
  }
89
105
 
90
106
  @ReactProp(name = "disabled")
91
- fun setDisabled(
107
+ override fun setDisabled(
92
108
  view: CardFieldView,
93
109
  isDisabled: Boolean,
94
110
  ) {
@@ -96,7 +112,7 @@ class CardFieldViewManager : SimpleViewManager<CardFieldView>() {
96
112
  }
97
113
 
98
114
  @ReactProp(name = "preferredNetworks")
99
- fun setPreferredNetworks(
115
+ override fun setPreferredNetworks(
100
116
  view: CardFieldView,
101
117
  preferredNetworks: ReadableArray?,
102
118
  ) {
@@ -104,24 +120,18 @@ class CardFieldViewManager : SimpleViewManager<CardFieldView>() {
104
120
  view.setPreferredNetworks(networks)
105
121
  }
106
122
 
107
- override fun createViewInstance(reactContext: ThemedReactContext): CardFieldView {
108
- val stripeSdkModule: StripeSdkModule? =
109
- reactContext.getNativeModule(StripeSdkModule::class.java)
110
- val view = CardFieldView(reactContext)
111
-
112
- reactContextRef = reactContext
123
+ // Native commands
113
124
 
114
- stripeSdkModule?.cardFieldView = view
115
- return view
125
+ override fun blur(view: CardFieldView) {
126
+ view.requestBlurFromJS()
116
127
  }
117
128
 
118
- override fun onDropViewInstance(view: CardFieldView) {
119
- super.onDropViewInstance(view)
129
+ override fun focus(view: CardFieldView) {
130
+ view.requestFocusFromJS()
131
+ }
120
132
 
121
- val stripeSdkModule: StripeSdkModule? =
122
- reactContextRef?.getNativeModule(StripeSdkModule::class.java)
123
- stripeSdkModule?.cardFieldView = null
124
- reactContextRef = null
133
+ override fun clear(view: CardFieldView) {
134
+ view.requestClearFromJS()
125
135
  }
126
136
 
127
137
  companion object {
@@ -4,11 +4,11 @@ import com.facebook.react.bridge.Arguments
4
4
  import com.facebook.react.bridge.WritableMap
5
5
  import com.facebook.react.uimanager.events.Event
6
6
 
7
- internal class CardFocusEvent(
7
+ internal class CardFocusChangeEvent(
8
8
  surfaceId: Int,
9
9
  viewTag: Int,
10
10
  private val focusField: String?,
11
- ) : Event<CardFocusEvent>(surfaceId, viewTag) {
11
+ ) : Event<CardFocusChangeEvent>(surfaceId, viewTag) {
12
12
  override fun getEventName() = EVENT_NAME
13
13
 
14
14
  override fun getEventData(): WritableMap? {