@stripe/stripe-react-native 0.44.0 → 0.46.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 (334) hide show
  1. package/.clang-format +90 -0
  2. package/.editorconfig +3 -0
  3. package/CHANGELOG.md +13 -1
  4. package/README.md +0 -3
  5. package/android/.gradle/8.11.1/checksums/checksums.lock +0 -0
  6. package/android/.gradle/8.11.1/checksums/md5-checksums.bin +0 -0
  7. package/android/.gradle/8.11.1/checksums/sha1-checksums.bin +0 -0
  8. package/android/.gradle/8.11.1/executionHistory/executionHistory.bin +0 -0
  9. package/android/.gradle/8.11.1/executionHistory/executionHistory.lock +0 -0
  10. package/android/.gradle/8.11.1/fileHashes/fileHashes.bin +0 -0
  11. package/android/.gradle/8.11.1/fileHashes/fileHashes.lock +0 -0
  12. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  13. package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
  14. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  15. package/android/.gradle/config.properties +2 -0
  16. package/android/.gradle/file-system.probe +0 -0
  17. package/android/.idea/caches/deviceStreaming.xml +619 -0
  18. package/android/.idea/compiler.xml +6 -0
  19. package/android/.idea/gradle.xml +19 -0
  20. package/android/.idea/migrations.xml +10 -0
  21. package/android/.idea/misc.xml +10 -0
  22. package/android/.idea/runConfigurations.xml +17 -0
  23. package/android/.idea/vcs.xml +6 -0
  24. package/android/build.gradle +90 -18
  25. package/android/gradle.properties +1 -1
  26. package/android/local.properties +8 -0
  27. package/android/src/main/java/com/reactnativestripesdk/AuBECSDebitFormViewManager.kt +15 -6
  28. package/android/src/main/java/com/reactnativestripesdk/CardChangeEvent.kt +56 -0
  29. package/android/src/main/java/com/reactnativestripesdk/CardFieldView.kt +4 -4
  30. package/android/src/main/java/com/reactnativestripesdk/CardFieldViewManager.kt +55 -45
  31. package/android/src/main/java/com/reactnativestripesdk/{CardFocusEvent.kt → CardFocusChangeEvent.kt} +2 -2
  32. package/android/src/main/java/com/reactnativestripesdk/CardFormCompleteEvent.kt +17 -16
  33. package/android/src/main/java/com/reactnativestripesdk/CardFormView.kt +5 -5
  34. package/android/src/main/java/com/reactnativestripesdk/CardFormViewManager.kt +39 -33
  35. package/android/src/main/java/com/reactnativestripesdk/CollectBankAccountLauncherFragment.kt +35 -36
  36. package/android/src/main/java/com/reactnativestripesdk/EmbeddedPaymentElementView.kt +224 -0
  37. package/android/src/main/java/com/reactnativestripesdk/EmbeddedPaymentElementViewManager.kt +238 -0
  38. package/android/src/main/java/com/reactnativestripesdk/FinancialConnectionsSheetFragment.kt +11 -26
  39. package/android/src/main/java/com/reactnativestripesdk/GooglePayButtonManager.kt +14 -6
  40. package/android/src/main/java/com/reactnativestripesdk/GooglePayLauncherFragment.kt +3 -17
  41. package/android/src/main/java/com/reactnativestripesdk/GooglePayPaymentMethodLauncherFragment.kt +20 -6
  42. package/android/src/main/java/com/reactnativestripesdk/PaymentLauncherFragment.kt +63 -44
  43. package/android/src/main/java/com/reactnativestripesdk/PaymentMethodCreateParamsFactory.kt +3 -1
  44. package/android/src/main/java/com/reactnativestripesdk/PaymentOptionDisplayDataMapper.kt +17 -0
  45. package/android/src/main/java/com/reactnativestripesdk/PaymentSheetAppearance.kt +266 -0
  46. package/android/src/main/java/com/reactnativestripesdk/PaymentSheetFragment.kt +25 -33
  47. package/android/src/main/java/com/reactnativestripesdk/StripeAbstractComposeView.kt +113 -0
  48. package/android/src/main/java/com/reactnativestripesdk/StripeContainerManager.kt +11 -3
  49. package/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt +180 -65
  50. package/android/src/main/java/com/reactnativestripesdk/StripeSdkPackage.kt +34 -4
  51. package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressLauncherFragment.kt +3 -17
  52. package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressSheetView.kt +33 -27
  53. package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressSheetViewManager.kt +49 -24
  54. package/android/src/main/java/com/reactnativestripesdk/customersheet/CustomerSheetFragment.kt +19 -24
  55. package/android/src/main/java/com/reactnativestripesdk/customersheet/ReactNativeCustomerAdapter.kt +11 -29
  56. package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/AddToWalletButtonManager.kt +36 -12
  57. package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/AddToWalletButtonView.kt +5 -3
  58. package/android/src/main/java/com/reactnativestripesdk/utils/Extensions.kt +4 -0
  59. package/android/src/main/java/com/reactnativestripesdk/utils/KeepJsAwakeTask.kt +2 -2
  60. package/android/src/main/java/com/reactnativestripesdk/utils/Mappers.kt +21 -0
  61. package/android/src/main/java/com/reactnativestripesdk/utils/StripeFragment.kt +52 -0
  62. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AddToWalletButtonManagerDelegate.java +49 -0
  63. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AddToWalletButtonManagerInterface.java +25 -0
  64. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AddressSheetViewManagerDelegate.java +64 -0
  65. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AddressSheetViewManagerInterface.java +30 -0
  66. package/android/src/oldarch/java/com/facebook/react/viewmanagers/ApplePayButtonManagerDelegate.java +41 -0
  67. package/android/src/oldarch/java/com/facebook/react/viewmanagers/ApplePayButtonManagerInterface.java +20 -0
  68. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AuBECSDebitFormManagerDelegate.java +36 -0
  69. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AuBECSDebitFormManagerInterface.java +20 -0
  70. package/android/src/oldarch/java/com/facebook/react/viewmanagers/CardFieldManagerDelegate.java +73 -0
  71. package/android/src/oldarch/java/com/facebook/react/viewmanagers/CardFieldManagerInterface.java +31 -0
  72. package/android/src/oldarch/java/com/facebook/react/viewmanagers/CardFormManagerDelegate.java +67 -0
  73. package/android/src/oldarch/java/com/facebook/react/viewmanagers/CardFormManagerInterface.java +29 -0
  74. package/android/src/oldarch/java/com/facebook/react/viewmanagers/EmbeddedPaymentElementViewManagerDelegate.java +49 -0
  75. package/android/src/oldarch/java/com/facebook/react/viewmanagers/EmbeddedPaymentElementViewManagerInterface.java +21 -0
  76. package/android/src/oldarch/java/com/facebook/react/viewmanagers/GooglePayButtonManagerDelegate.java +38 -0
  77. package/android/src/oldarch/java/com/facebook/react/viewmanagers/GooglePayButtonManagerInterface.java +19 -0
  78. package/android/src/oldarch/java/com/facebook/react/viewmanagers/StripeContainerManagerDelegate.java +32 -0
  79. package/android/src/oldarch/java/com/facebook/react/viewmanagers/StripeContainerManagerInterface.java +17 -0
  80. package/android/src/oldarch/java/com/reactnativestripesdk/NativeStripeSdkModuleSpec.java +310 -0
  81. package/ios/AddressSheet/AddressSheetUtils.swift +21 -19
  82. package/ios/AddressSheet/AddressSheetView.swift +23 -17
  83. package/ios/ApplePayButtonManager.m +0 -1
  84. package/ios/ApplePayButtonManager.swift +1 -3
  85. package/ios/ApplePayButtonView.swift +25 -20
  86. package/ios/ApplePayViewController.swift +22 -22
  87. package/ios/AuBECSDebitFormView.swift +14 -8
  88. package/ios/CardFieldManager.swift +1 -4
  89. package/ios/CardFieldView.swift +28 -25
  90. package/ios/CardFormManager.swift +1 -4
  91. package/ios/CardFormView.swift +25 -16
  92. package/ios/CustomerSheet/CustomerSheetUtils.swift +12 -16
  93. package/ios/CustomerSheet/ReactNativeCustomerAdapter.swift +8 -8
  94. package/ios/EmbeddedPaymentElementManager.m +6 -0
  95. package/ios/EmbeddedPaymentElementView.swift +49 -0
  96. package/ios/NewArch/AddToWalletButtonComponentView.h +10 -0
  97. package/ios/NewArch/AddToWalletButtonComponentView.mm +93 -0
  98. package/ios/NewArch/AddressSheetViewComponentView.h +10 -0
  99. package/ios/NewArch/AddressSheetViewComponentView.mm +109 -0
  100. package/ios/NewArch/ApplePayButtonComponentView.h +10 -0
  101. package/ios/NewArch/ApplePayButtonComponentView.mm +124 -0
  102. package/ios/NewArch/AuBECSDebitFormComponentView.h +10 -0
  103. package/ios/NewArch/AuBECSDebitFormComponentView.mm +95 -0
  104. package/ios/NewArch/CardFieldComponentView.h +10 -0
  105. package/ios/NewArch/CardFieldComponentView.mm +125 -0
  106. package/ios/NewArch/CardFormComponentView.h +10 -0
  107. package/ios/NewArch/CardFormComponentView.mm +108 -0
  108. package/ios/NewArch/EmbeddedPaymentElementViewComponentView.h +10 -0
  109. package/ios/NewArch/EmbeddedPaymentElementViewComponentView.mm +81 -0
  110. package/ios/NewArch/StripeContainerComponentView.h +10 -0
  111. package/ios/NewArch/StripeContainerComponentView.mm +74 -0
  112. package/ios/NewArch/StripeNewArchConversions.h +20 -0
  113. package/ios/NewArch/StripeNewArchConversions.mm +47 -0
  114. package/ios/OldArch/StripeSdkEventEmitterCompat.h +27 -0
  115. package/ios/OldArch/StripeSdkEventEmitterCompat.m +105 -0
  116. package/ios/PaymentOptionDisplayData+ReactNative.swift +55 -0
  117. package/ios/PaymentSheetAppearance.swift +194 -1
  118. package/ios/PushProvisioning/AddToWalletButtonView.swift +19 -13
  119. package/ios/StripeContainerView.swift +5 -3
  120. package/ios/StripeSdk.h +21 -0
  121. package/ios/StripeSdk.mm +415 -0
  122. package/ios/StripeSdkEmitter.swift +19 -0
  123. package/ios/{StripeSdk+CustomerSheet.swift → StripeSdkImpl+CustomerSheet.swift} +24 -25
  124. package/ios/StripeSdkImpl+Embedded.swift +327 -0
  125. package/ios/{StripeSdk+PaymentSheet.swift → StripeSdkImpl+PaymentSheet.swift} +18 -29
  126. package/ios/{StripeSdk.swift → StripeSdkImpl.swift} +50 -72
  127. package/ios/StripeSwiftInterop.h +25 -0
  128. package/ios/stripe_react_native.h +2 -0
  129. package/lib/commonjs/components/AddToWalletButton.js +1 -1
  130. package/lib/commonjs/components/AddToWalletButton.js.map +1 -1
  131. package/lib/commonjs/components/AddressSheet.js +1 -1
  132. package/lib/commonjs/components/AddressSheet.js.map +1 -1
  133. package/lib/commonjs/components/AuBECSDebitForm.js +1 -1
  134. package/lib/commonjs/components/AuBECSDebitForm.js.map +1 -1
  135. package/lib/commonjs/components/CardField.js +1 -1
  136. package/lib/commonjs/components/CardField.js.map +1 -1
  137. package/lib/commonjs/components/CardForm.js +1 -1
  138. package/lib/commonjs/components/CardForm.js.map +1 -1
  139. package/lib/commonjs/components/CustomerSheet.js +1 -1
  140. package/lib/commonjs/components/CustomerSheet.js.map +1 -1
  141. package/lib/commonjs/components/PlatformPayButton.js +1 -1
  142. package/lib/commonjs/components/PlatformPayButton.js.map +1 -1
  143. package/lib/commonjs/components/StripeContainer.js +1 -1
  144. package/lib/commonjs/components/StripeContainer.js.map +1 -1
  145. package/lib/commonjs/components/StripeProvider.js +1 -1
  146. package/lib/commonjs/components/StripeProvider.js.map +1 -1
  147. package/lib/commonjs/events.js +2 -0
  148. package/lib/commonjs/events.js.map +1 -0
  149. package/lib/commonjs/functions.js +1 -1
  150. package/lib/commonjs/functions.js.map +1 -1
  151. package/lib/commonjs/index.js +1 -1
  152. package/lib/commonjs/index.js.map +1 -1
  153. package/lib/commonjs/specs/NativeAddToWalletButton.js +2 -0
  154. package/lib/commonjs/specs/NativeAddToWalletButton.js.map +1 -0
  155. package/lib/commonjs/specs/NativeAddressSheet.js +2 -0
  156. package/lib/commonjs/specs/NativeAddressSheet.js.map +1 -0
  157. package/lib/commonjs/specs/NativeApplePayButton.js +2 -0
  158. package/lib/commonjs/specs/NativeApplePayButton.js.map +1 -0
  159. package/lib/commonjs/specs/NativeAuBECSDebitForm.js +2 -0
  160. package/lib/commonjs/specs/NativeAuBECSDebitForm.js.map +1 -0
  161. package/lib/commonjs/specs/NativeCardField.js +2 -0
  162. package/lib/commonjs/specs/NativeCardField.js.map +1 -0
  163. package/lib/commonjs/specs/NativeCardForm.js +2 -0
  164. package/lib/commonjs/specs/NativeCardForm.js.map +1 -0
  165. package/lib/commonjs/specs/NativeEmbeddedPaymentElement.js +2 -0
  166. package/lib/commonjs/specs/NativeEmbeddedPaymentElement.js.map +1 -0
  167. package/lib/commonjs/specs/NativeGooglePayButton.js +2 -0
  168. package/lib/commonjs/specs/NativeGooglePayButton.js.map +1 -0
  169. package/lib/commonjs/specs/NativeStripeContainer.js +2 -0
  170. package/lib/commonjs/specs/NativeStripeContainer.js.map +1 -0
  171. package/lib/commonjs/specs/NativeStripeSdkModule.js +2 -0
  172. package/lib/commonjs/specs/NativeStripeSdkModule.js.map +1 -0
  173. package/lib/commonjs/specs/utils.js +2 -0
  174. package/lib/commonjs/specs/utils.js.map +1 -0
  175. package/lib/commonjs/types/EmbeddedPaymentElement.js +2 -0
  176. package/lib/commonjs/types/EmbeddedPaymentElement.js.map +1 -0
  177. package/lib/commonjs/types/PaymentSheet.js +1 -1
  178. package/lib/commonjs/types/PaymentSheet.js.map +1 -1
  179. package/lib/module/components/AddToWalletButton.js +1 -1
  180. package/lib/module/components/AddToWalletButton.js.map +1 -1
  181. package/lib/module/components/AddressSheet.js +1 -1
  182. package/lib/module/components/AddressSheet.js.map +1 -1
  183. package/lib/module/components/AuBECSDebitForm.js +1 -1
  184. package/lib/module/components/AuBECSDebitForm.js.map +1 -1
  185. package/lib/module/components/CardField.js +1 -1
  186. package/lib/module/components/CardField.js.map +1 -1
  187. package/lib/module/components/CardForm.js +1 -1
  188. package/lib/module/components/CardForm.js.map +1 -1
  189. package/lib/module/components/CustomerSheet.js +1 -1
  190. package/lib/module/components/CustomerSheet.js.map +1 -1
  191. package/lib/module/components/PlatformPayButton.js +1 -1
  192. package/lib/module/components/PlatformPayButton.js.map +1 -1
  193. package/lib/module/components/StripeContainer.js +1 -1
  194. package/lib/module/components/StripeContainer.js.map +1 -1
  195. package/lib/module/components/StripeProvider.js +1 -1
  196. package/lib/module/components/StripeProvider.js.map +1 -1
  197. package/lib/module/events.js +2 -0
  198. package/lib/module/events.js.map +1 -0
  199. package/lib/module/functions.js +1 -1
  200. package/lib/module/functions.js.map +1 -1
  201. package/lib/module/index.js +1 -1
  202. package/lib/module/index.js.map +1 -1
  203. package/lib/module/specs/NativeAddToWalletButton.js +2 -0
  204. package/lib/module/specs/NativeAddToWalletButton.js.map +1 -0
  205. package/lib/module/specs/NativeAddressSheet.js +2 -0
  206. package/lib/module/specs/NativeAddressSheet.js.map +1 -0
  207. package/lib/module/specs/NativeApplePayButton.js +2 -0
  208. package/lib/module/specs/NativeApplePayButton.js.map +1 -0
  209. package/lib/module/specs/NativeAuBECSDebitForm.js +2 -0
  210. package/lib/module/specs/NativeAuBECSDebitForm.js.map +1 -0
  211. package/lib/module/specs/NativeCardField.js +2 -0
  212. package/lib/module/specs/NativeCardField.js.map +1 -0
  213. package/lib/module/specs/NativeCardForm.js +2 -0
  214. package/lib/module/specs/NativeCardForm.js.map +1 -0
  215. package/lib/module/specs/NativeEmbeddedPaymentElement.js +2 -0
  216. package/lib/module/specs/NativeEmbeddedPaymentElement.js.map +1 -0
  217. package/lib/module/specs/NativeGooglePayButton.js +2 -0
  218. package/lib/module/specs/NativeGooglePayButton.js.map +1 -0
  219. package/lib/module/specs/NativeStripeContainer.js +2 -0
  220. package/lib/module/specs/NativeStripeContainer.js.map +1 -0
  221. package/lib/module/specs/NativeStripeSdkModule.js +2 -0
  222. package/lib/module/specs/NativeStripeSdkModule.js.map +1 -0
  223. package/lib/module/specs/utils.js +2 -0
  224. package/lib/module/specs/utils.js.map +1 -0
  225. package/lib/module/types/EmbeddedPaymentElement.js +2 -0
  226. package/lib/module/types/EmbeddedPaymentElement.js.map +1 -0
  227. package/lib/module/types/PaymentSheet.js +1 -1
  228. package/lib/module/types/PaymentSheet.js.map +1 -1
  229. package/lib/typescript/src/components/AddToWalletButton.d.ts.map +1 -1
  230. package/lib/typescript/src/components/AddressSheet.d.ts.map +1 -1
  231. package/lib/typescript/src/components/AuBECSDebitForm.d.ts.map +1 -1
  232. package/lib/typescript/src/components/CardField.d.ts +1 -1
  233. package/lib/typescript/src/components/CardField.d.ts.map +1 -1
  234. package/lib/typescript/src/components/CardForm.d.ts +1 -1
  235. package/lib/typescript/src/components/CardForm.d.ts.map +1 -1
  236. package/lib/typescript/src/components/CustomerSheet.d.ts +1 -1
  237. package/lib/typescript/src/components/CustomerSheet.d.ts.map +1 -1
  238. package/lib/typescript/src/components/StripeContainer.d.ts.map +1 -1
  239. package/lib/typescript/src/events.d.ts +13 -0
  240. package/lib/typescript/src/events.d.ts.map +1 -0
  241. package/lib/typescript/src/functions.d.ts.map +1 -1
  242. package/lib/typescript/src/hooks/useFinancialConnectionsSheet.d.ts +4 -4
  243. package/lib/typescript/src/hooks/useFinancialConnectionsSheet.d.ts.map +1 -1
  244. package/lib/typescript/src/hooks/useStripe.d.ts +2 -2
  245. package/lib/typescript/src/hooks/useStripe.d.ts.map +1 -1
  246. package/lib/typescript/src/index.d.ts +2 -0
  247. package/lib/typescript/src/index.d.ts.map +1 -1
  248. package/lib/typescript/src/specs/NativeAddToWalletButton.d.ts +27 -0
  249. package/lib/typescript/src/specs/NativeAddToWalletButton.d.ts.map +1 -0
  250. package/lib/typescript/src/specs/NativeAddressSheet.d.ts +34 -0
  251. package/lib/typescript/src/specs/NativeAddressSheet.d.ts.map +1 -0
  252. package/lib/typescript/src/specs/NativeApplePayButton.d.ts +28 -0
  253. package/lib/typescript/src/specs/NativeApplePayButton.d.ts.map +1 -0
  254. package/lib/typescript/src/specs/NativeAuBECSDebitForm.d.ts +19 -0
  255. package/lib/typescript/src/specs/NativeAuBECSDebitForm.d.ts.map +1 -0
  256. package/lib/typescript/src/specs/NativeCardField.d.ts +33 -0
  257. package/lib/typescript/src/specs/NativeCardField.d.ts.map +1 -0
  258. package/lib/typescript/src/specs/NativeCardForm.d.ts +31 -0
  259. package/lib/typescript/src/specs/NativeCardForm.d.ts.map +1 -0
  260. package/lib/typescript/src/specs/NativeEmbeddedPaymentElement.d.ts +17 -0
  261. package/lib/typescript/src/specs/NativeEmbeddedPaymentElement.d.ts.map +1 -0
  262. package/lib/typescript/src/specs/NativeGooglePayButton.d.ts +11 -0
  263. package/lib/typescript/src/specs/NativeGooglePayButton.d.ts.map +1 -0
  264. package/lib/typescript/src/specs/NativeStripeContainer.d.ts +8 -0
  265. package/lib/typescript/src/specs/NativeStripeContainer.d.ts.map +1 -0
  266. package/lib/typescript/src/specs/NativeStripeSdkModule.d.ts +93 -0
  267. package/lib/typescript/src/specs/NativeStripeSdkModule.d.ts.map +1 -0
  268. package/lib/typescript/src/specs/utils.d.ts +20 -0
  269. package/lib/typescript/src/specs/utils.d.ts.map +1 -0
  270. package/lib/typescript/src/types/CustomerSheet.d.ts +1 -5
  271. package/lib/typescript/src/types/CustomerSheet.d.ts.map +1 -1
  272. package/lib/typescript/src/types/EmbeddedPaymentElement.d.ts +161 -0
  273. package/lib/typescript/src/types/EmbeddedPaymentElement.d.ts.map +1 -0
  274. package/lib/typescript/src/types/PaymentSheet.d.ts +97 -4
  275. package/lib/typescript/src/types/PaymentSheet.d.ts.map +1 -1
  276. package/lib/typescript/src/types/components/CardFieldInput.d.ts +3 -2
  277. package/lib/typescript/src/types/components/CardFieldInput.d.ts.map +1 -1
  278. package/lib/typescript/src/types/components/CardFormView.d.ts +3 -1
  279. package/lib/typescript/src/types/components/CardFormView.d.ts.map +1 -1
  280. package/package.json +22 -2
  281. package/src/components/AddToWalletButton.tsx +2 -5
  282. package/src/components/AddressSheet.tsx +5 -16
  283. package/src/components/AuBECSDebitForm.tsx +3 -12
  284. package/src/components/CardField.tsx +20 -30
  285. package/src/components/CardForm.tsx +14 -29
  286. package/src/components/CustomerSheet.tsx +23 -25
  287. package/src/components/PlatformPayButton.tsx +6 -6
  288. package/src/components/StripeContainer.tsx +5 -12
  289. package/src/components/StripeProvider.tsx +1 -1
  290. package/src/events.ts +49 -0
  291. package/src/functions.ts +13 -24
  292. package/src/hooks/useFinancialConnectionsSheet.tsx +2 -2
  293. package/src/hooks/useStripe.tsx +2 -2
  294. package/src/index.tsx +3 -0
  295. package/src/specs/NativeAddToWalletButton.ts +40 -0
  296. package/src/specs/NativeAddressSheet.ts +50 -0
  297. package/src/specs/NativeApplePayButton.ts +40 -0
  298. package/src/specs/NativeAuBECSDebitForm.ts +24 -0
  299. package/src/specs/NativeCardField.ts +51 -0
  300. package/src/specs/NativeCardForm.ts +43 -0
  301. package/src/specs/NativeEmbeddedPaymentElement.ts +28 -0
  302. package/src/specs/NativeGooglePayButton.ts +20 -0
  303. package/src/specs/NativeStripeContainer.ts +12 -0
  304. package/src/specs/NativeStripeSdkModule.ts +219 -0
  305. package/src/specs/utils.ts +22 -0
  306. package/src/types/CustomerSheet.ts +1 -5
  307. package/src/types/EmbeddedPaymentElement.tsx +467 -0
  308. package/src/types/PaymentSheet.ts +114 -4
  309. package/src/types/components/CardFieldInput.ts +1 -2
  310. package/src/types/components/CardFormView.ts +1 -1
  311. package/stripe-react-native.podspec +27 -2
  312. package/android/src/main/java/com/reactnativestripesdk/CardChangedEvent.kt +0 -54
  313. package/ios/StripeSdk.m +0 -244
  314. package/lib/commonjs/NativeStripeSdk.js +0 -2
  315. package/lib/commonjs/NativeStripeSdk.js.map +0 -1
  316. package/lib/commonjs/components/ApplePayButtonNative.js +0 -2
  317. package/lib/commonjs/components/ApplePayButtonNative.js.map +0 -1
  318. package/lib/commonjs/components/GooglePayButtonNative.js +0 -2
  319. package/lib/commonjs/components/GooglePayButtonNative.js.map +0 -1
  320. package/lib/module/NativeStripeSdk.js +0 -2
  321. package/lib/module/NativeStripeSdk.js.map +0 -1
  322. package/lib/module/components/ApplePayButtonNative.js +0 -2
  323. package/lib/module/components/ApplePayButtonNative.js.map +0 -1
  324. package/lib/module/components/GooglePayButtonNative.js +0 -2
  325. package/lib/module/components/GooglePayButtonNative.js.map +0 -1
  326. package/lib/typescript/src/NativeStripeSdk.d.ts +0 -58
  327. package/lib/typescript/src/NativeStripeSdk.d.ts.map +0 -1
  328. package/lib/typescript/src/components/ApplePayButtonNative.d.ts +0 -4
  329. package/lib/typescript/src/components/ApplePayButtonNative.d.ts.map +0 -1
  330. package/lib/typescript/src/components/GooglePayButtonNative.d.ts +0 -4
  331. package/lib/typescript/src/components/GooglePayButtonNative.d.ts.map +0 -1
  332. package/src/NativeStripeSdk.tsx +0 -159
  333. package/src/components/ApplePayButtonNative.tsx +0 -5
  334. package/src/components/GooglePayButtonNative.tsx +0 -7
@@ -0,0 +1,93 @@
1
+ #import "AddToWalletButtonComponentView.h"
2
+
3
+ #import <react/renderer/components/rnstripe/ComponentDescriptors.h>
4
+ #import <react/renderer/components/rnstripe/EventEmitters.h>
5
+ #import <react/renderer/components/rnstripe/Props.h>
6
+ #import <react/renderer/components/rnstripe/RCTComponentViewHelpers.h>
7
+
8
+ #import <React/RCTConversions.h>
9
+ #import <React/RCTFabricComponentsPlugins.h>
10
+
11
+ #import "RCTFollyConvert.h"
12
+ #import "StripeNewArchConversions.h"
13
+ #import "StripeSwiftInterop.h"
14
+
15
+ using namespace facebook::react;
16
+ using namespace stripe::react;
17
+
18
+ @interface AddToWalletButtonComponentView () <RCTAddToWalletButtonViewProtocol>
19
+ @end
20
+
21
+ @implementation AddToWalletButtonComponentView {
22
+ AddToWalletButtonView *_view;
23
+ }
24
+
25
+ // Needed because of this: https://github.com/facebook/react-native/pull/37274
26
+ + (void)load
27
+ {
28
+ [super load];
29
+ }
30
+
31
+ - (instancetype)initWithFrame:(CGRect)frame
32
+ {
33
+ if (self = [super initWithFrame:frame]) {
34
+ static const auto defaultProps = std::make_shared<const AddToWalletButtonProps>();
35
+ _props = defaultProps;
36
+ [self prepareView];
37
+ }
38
+
39
+ return self;
40
+ }
41
+
42
+ - (void)prepareView
43
+ {
44
+ _view = [[AddToWalletButtonView alloc] initWithFrame:self.frame];
45
+ self.contentView = _view;
46
+
47
+ __weak __typeof(self) weakSelf = self;
48
+
49
+ _view.onCompleteAction = ^(NSDictionary *event) {
50
+ __typeof(self) strongSelf = weakSelf;
51
+ if (!strongSelf || !strongSelf->_eventEmitter) {
52
+ return;
53
+ }
54
+ AddToWalletButtonEventEmitter::OnCompleteAction emitterEvent = {.error = convertIdToFollyDynamic(event[@"error"])};
55
+ std::static_pointer_cast<const AddToWalletButtonEventEmitter>(strongSelf->_eventEmitter)
56
+ ->onCompleteAction(std::move(emitterEvent));
57
+ };
58
+ }
59
+
60
+ - (void)updateProps:(const facebook::react::Props::Shared &)props
61
+ oldProps:(const facebook::react::Props::Shared &)oldProps
62
+ {
63
+ const auto &newViewProps = *std::static_pointer_cast<const AddToWalletButtonProps>(props);
64
+
65
+ _view.iOSButtonStyle = RCTNSStringFromStringNilIfEmpty(newViewProps.iOSButtonStyle);
66
+ _view.testEnv = newViewProps.testEnv;
67
+ _view.cardDetails = convertFollyDynamicToNSDictionaryOrNil(newViewProps.cardDetails);
68
+ _view.ephemeralKey = convertFollyDynamicToNSDictionaryOrNil(newViewProps.ephemeralKey);
69
+
70
+ [super updateProps:props oldProps:oldProps];
71
+
72
+ [_view didSetProps];
73
+ }
74
+
75
+ #pragma mark - RCTComponentViewProtocol
76
+
77
+ + (ComponentDescriptorProvider)componentDescriptorProvider
78
+ {
79
+ return concreteComponentDescriptorProvider<AddToWalletButtonComponentDescriptor>();
80
+ }
81
+
82
+ - (void)prepareForRecycle
83
+ {
84
+ [super prepareForRecycle];
85
+ [self prepareView];
86
+ }
87
+
88
+ @end
89
+
90
+ Class<RCTComponentViewProtocol> AddToWalletButtonCls(void)
91
+ {
92
+ return AddToWalletButtonComponentView.class;
93
+ }
@@ -0,0 +1,10 @@
1
+ #import <UIKit/UIKit.h>
2
+ #import <React/RCTViewComponentView.h>
3
+
4
+ NS_ASSUME_NONNULL_BEGIN
5
+
6
+ @interface AddressSheetViewComponentView : RCTViewComponentView
7
+
8
+ @end
9
+
10
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,109 @@
1
+ #import "AddressSheetViewComponentView.h"
2
+
3
+ #import <react/renderer/components/rnstripe/ComponentDescriptors.h>
4
+ #import <react/renderer/components/rnstripe/EventEmitters.h>
5
+ #import <react/renderer/components/rnstripe/Props.h>
6
+ #import <react/renderer/components/rnstripe/RCTComponentViewHelpers.h>
7
+
8
+ #import <React/RCTConversions.h>
9
+ #import <React/RCTFabricComponentsPlugins.h>
10
+
11
+ #import "RCTFollyConvert.h"
12
+ #import "StripeNewArchConversions.h"
13
+ #import "StripeSwiftInterop.h"
14
+
15
+ using namespace facebook::react;
16
+ using namespace stripe::react;
17
+
18
+ @interface AddressSheetViewComponentView () <RCTAddressSheetViewViewProtocol>
19
+ @end
20
+
21
+ @implementation AddressSheetViewComponentView {
22
+ AddressSheetView *_view;
23
+ }
24
+
25
+ // Needed because of this: https://github.com/facebook/react-native/pull/37274
26
+ + (void)load
27
+ {
28
+ [super load];
29
+ }
30
+
31
+ - (instancetype)initWithFrame:(CGRect)frame
32
+ {
33
+ if (self = [super initWithFrame:frame]) {
34
+ static const auto defaultProps = std::make_shared<const AddressSheetViewProps>();
35
+ _props = defaultProps;
36
+ [self prepareView];
37
+ }
38
+
39
+ return self;
40
+ }
41
+
42
+ - (void)prepareView
43
+ {
44
+ _view = [[AddressSheetView alloc] initWithFrame:self.frame];
45
+ self.contentView = _view;
46
+
47
+ __weak __typeof(self) weakSelf = self;
48
+
49
+ _view.onSubmitAction = ^(NSDictionary *event) {
50
+ __typeof(self) strongSelf = weakSelf;
51
+ if (!strongSelf || !strongSelf->_eventEmitter) {
52
+ return;
53
+ }
54
+ AddressSheetViewEventEmitter::OnSubmitAction emitterEvent = {.result = convertIdToFollyDynamic(event[@"result"])};
55
+ std::static_pointer_cast<const AddressSheetViewEventEmitter>(strongSelf->_eventEmitter)
56
+ ->onSubmitAction(std::move(emitterEvent));
57
+ };
58
+
59
+ _view.onErrorAction = ^(NSDictionary *event) {
60
+ __typeof(self) strongSelf = weakSelf;
61
+ if (!strongSelf || !strongSelf->_eventEmitter) {
62
+ return;
63
+ }
64
+ AddressSheetViewEventEmitter::OnErrorAction emitterEvent = {.error = convertIdToFollyDynamic(event[@"error"])};
65
+ std::static_pointer_cast<const AddressSheetViewEventEmitter>(strongSelf->_eventEmitter)
66
+ ->onErrorAction(std::move(emitterEvent));
67
+ };
68
+ }
69
+
70
+ - (void)updateProps:(const facebook::react::Props::Shared &)props
71
+ oldProps:(const facebook::react::Props::Shared &)oldProps
72
+ {
73
+ const auto &newViewProps = *std::static_pointer_cast<const AddressSheetViewProps>(props);
74
+
75
+ _view.visible = newViewProps.visible;
76
+ _view.presentationStyle = RCTNSStringFromString(newViewProps.presentationStyle);
77
+ _view.animationStyle = RCTNSStringFromString(newViewProps.animationStyle);
78
+ _view.appearance = convertFollyDynamicToNSDictionaryOrNil(newViewProps.appearance);
79
+ _view.defaultValues = convertFollyDynamicToNSDictionaryOrNil(newViewProps.defaultValues);
80
+ _view.additionalFields = convertFollyDynamicToNSDictionaryOrNil(newViewProps.additionalFields);
81
+ _view.allowedCountries = convertStringVectorToNSArray(newViewProps.allowedCountries);
82
+ _view.autocompleteCountries = convertStringVectorToNSArray(newViewProps.autocompleteCountries);
83
+ _view.primaryButtonTitle = RCTNSStringFromStringNilIfEmpty(newViewProps.primaryButtonTitle);
84
+ _view.sheetTitle = RCTNSStringFromStringNilIfEmpty(newViewProps.sheetTitle);
85
+
86
+ [super updateProps:props oldProps:oldProps];
87
+
88
+ [_view didSetProps];
89
+ }
90
+
91
+ #pragma mark - RCTComponentViewProtocol
92
+
93
+ + (ComponentDescriptorProvider)componentDescriptorProvider
94
+ {
95
+ return concreteComponentDescriptorProvider<AddressSheetViewComponentDescriptor>();
96
+ }
97
+
98
+ - (void)prepareForRecycle
99
+ {
100
+ [super prepareForRecycle];
101
+ [self prepareView];
102
+ }
103
+
104
+ @end
105
+
106
+ Class<RCTComponentViewProtocol> AddressSheetViewCls(void)
107
+ {
108
+ return AddressSheetViewComponentView.class;
109
+ }
@@ -0,0 +1,10 @@
1
+ #import <UIKit/UIKit.h>
2
+ #import <React/RCTViewComponentView.h>
3
+
4
+ NS_ASSUME_NONNULL_BEGIN
5
+
6
+ @interface ApplePayButtonComponentView : RCTViewComponentView
7
+
8
+ @end
9
+
10
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,124 @@
1
+ #import "ApplePayButtonComponentView.h"
2
+
3
+ #import <react/renderer/components/rnstripe/ComponentDescriptors.h>
4
+ #import <react/renderer/components/rnstripe/EventEmitters.h>
5
+ #import <react/renderer/components/rnstripe/Props.h>
6
+ #import <react/renderer/components/rnstripe/RCTComponentViewHelpers.h>
7
+
8
+ #import <React/RCTConversions.h>
9
+ #import <React/RCTFabricComponentsPlugins.h>
10
+
11
+ #import "RCTFollyConvert.h"
12
+ #import "StripeSwiftInterop.h"
13
+
14
+ using namespace facebook::react;
15
+
16
+ @interface ApplePayButtonComponentView () <RCTApplePayButtonViewProtocol>
17
+ @end
18
+
19
+ @implementation ApplePayButtonComponentView {
20
+ ApplePayButtonView *_view;
21
+ }
22
+
23
+ // Needed because of this: https://github.com/facebook/react-native/pull/37274
24
+ + (void)load
25
+ {
26
+ [super load];
27
+ }
28
+
29
+ - (instancetype)initWithFrame:(CGRect)frame
30
+ {
31
+ if (self = [super initWithFrame:frame]) {
32
+ static const auto defaultProps = std::make_shared<const ApplePayButtonProps>();
33
+ _props = defaultProps;
34
+ [self prepareView];
35
+ }
36
+
37
+ return self;
38
+ }
39
+
40
+ - (void)prepareView
41
+ {
42
+ _view = [[ApplePayButtonView alloc] initWithFrame:self.frame];
43
+ self.contentView = _view;
44
+
45
+ __weak __typeof(self) weakSelf = self;
46
+
47
+ _view.onShippingMethodSelectedAction = ^(NSDictionary *event) {
48
+ __typeof(self) strongSelf = weakSelf;
49
+ if (!strongSelf || !strongSelf->_eventEmitter) {
50
+ return;
51
+ }
52
+ ApplePayButtonEventEmitter::OnShippingMethodSelectedAction emitterEvent = {
53
+ .shippingMethod = convertIdToFollyDynamic(event[@"shippingMethod"])};
54
+ std::static_pointer_cast<const ApplePayButtonEventEmitter>(strongSelf->_eventEmitter)
55
+ ->onShippingMethodSelectedAction(std::move(emitterEvent));
56
+ };
57
+
58
+ _view.onShippingContactSelectedAction = ^(NSDictionary *event) {
59
+ __typeof(self) strongSelf = weakSelf;
60
+ if (!strongSelf || !strongSelf->_eventEmitter) {
61
+ return;
62
+ }
63
+ ApplePayButtonEventEmitter::OnShippingContactSelectedAction emitterEvent = {
64
+ .shippingContact = convertIdToFollyDynamic(event[@"shippingContact"])};
65
+ std::static_pointer_cast<const ApplePayButtonEventEmitter>(strongSelf->_eventEmitter)
66
+ ->onShippingContactSelectedAction(std::move(emitterEvent));
67
+ };
68
+
69
+ _view.onCouponCodeEnteredAction = ^(NSDictionary *event) {
70
+ __typeof(self) strongSelf = weakSelf;
71
+ if (!strongSelf || !strongSelf->_eventEmitter) {
72
+ return;
73
+ }
74
+ ApplePayButtonEventEmitter::OnCouponCodeEnteredAction emitterEvent = {
75
+ .couponCode = RCTStringFromNSString(event[@"couponCode"])};
76
+ std::static_pointer_cast<const ApplePayButtonEventEmitter>(strongSelf->_eventEmitter)
77
+ ->onCouponCodeEnteredAction(std::move(emitterEvent));
78
+ };
79
+
80
+ _view.onOrderTrackingAction = ^(NSDictionary *event) {
81
+ __typeof(self) strongSelf = weakSelf;
82
+ if (!strongSelf || !strongSelf->_eventEmitter) {
83
+ return;
84
+ }
85
+ ApplePayButtonEventEmitter::OnOrderTrackingAction emitterEvent = {};
86
+ std::static_pointer_cast<const ApplePayButtonEventEmitter>(strongSelf->_eventEmitter)
87
+ ->onOrderTrackingAction(std::move(emitterEvent));
88
+ };
89
+ }
90
+
91
+ - (void)updateProps:(const facebook::react::Props::Shared &)props
92
+ oldProps:(const facebook::react::Props::Shared &)oldProps
93
+ {
94
+ const auto &newViewProps = *std::static_pointer_cast<const ApplePayButtonProps>(props);
95
+
96
+ _view.type = @(newViewProps.type);
97
+ _view.buttonStyle = @(newViewProps.buttonStyle);
98
+ _view.disabled = newViewProps.disabled;
99
+ _view.borderRadius = @(newViewProps.borderRadius);
100
+
101
+ [super updateProps:props oldProps:oldProps];
102
+
103
+ [_view didSetProps];
104
+ }
105
+
106
+ #pragma mark - RCTComponentViewProtocol
107
+
108
+ + (ComponentDescriptorProvider)componentDescriptorProvider
109
+ {
110
+ return concreteComponentDescriptorProvider<ApplePayButtonComponentDescriptor>();
111
+ }
112
+
113
+ - (void)prepareForRecycle
114
+ {
115
+ [super prepareForRecycle];
116
+ [self prepareView];
117
+ }
118
+
119
+ @end
120
+
121
+ Class<RCTComponentViewProtocol> ApplePayButtonCls(void)
122
+ {
123
+ return ApplePayButtonComponentView.class;
124
+ }
@@ -0,0 +1,10 @@
1
+ #import <UIKit/UIKit.h>
2
+ #import <React/RCTViewComponentView.h>
3
+
4
+ NS_ASSUME_NONNULL_BEGIN
5
+
6
+ @interface AuBECSDebitFormComponentView : RCTViewComponentView
7
+
8
+ @end
9
+
10
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,95 @@
1
+ #import "AuBECSDebitFormComponentView.h"
2
+
3
+ #import <react/renderer/components/rnstripe/ComponentDescriptors.h>
4
+ #import <react/renderer/components/rnstripe/EventEmitters.h>
5
+ #import <react/renderer/components/rnstripe/Props.h>
6
+ #import <react/renderer/components/rnstripe/RCTComponentViewHelpers.h>
7
+
8
+ #import <React/RCTConversions.h>
9
+ #import <React/RCTFabricComponentsPlugins.h>
10
+
11
+ #import "RCTFollyConvert.h"
12
+ #import "StripeNewArchConversions.h"
13
+ #import "StripeSwiftInterop.h"
14
+
15
+ using namespace facebook::react;
16
+ using namespace stripe::react;
17
+
18
+ @interface AuBECSDebitFormComponentView () <RCTAuBECSDebitFormViewProtocol>
19
+ @end
20
+
21
+ @implementation AuBECSDebitFormComponentView {
22
+ AuBECSDebitFormView *_view;
23
+ }
24
+
25
+ // Needed because of this: https://github.com/facebook/react-native/pull/37274
26
+ + (void)load
27
+ {
28
+ [super load];
29
+ }
30
+
31
+ - (instancetype)initWithFrame:(CGRect)frame
32
+ {
33
+ if (self = [super initWithFrame:frame]) {
34
+ static const auto defaultProps = std::make_shared<const AuBECSDebitFormProps>();
35
+ _props = defaultProps;
36
+ [self prepareView];
37
+ }
38
+
39
+ return self;
40
+ }
41
+
42
+ - (void)prepareView
43
+ {
44
+ _view = [[AuBECSDebitFormView alloc] initWithFrame:self.frame];
45
+ self.contentView = _view;
46
+
47
+ __weak __typeof(self) weakSelf = self;
48
+
49
+ _view.onCompleteAction = ^(NSDictionary *event) {
50
+ __typeof(self) strongSelf = weakSelf;
51
+ if (!strongSelf || !strongSelf->_eventEmitter) {
52
+ return;
53
+ }
54
+ AuBECSDebitFormEventEmitter::OnCompleteAction emitterEvent = {
55
+ .name = RCTStringFromNSString(event[@"name"]),
56
+ .accountNumber = RCTStringFromNSString(event[@"accountNumber"]),
57
+ .bsbNumber = RCTStringFromNSString(event[@"bsbNumber"]),
58
+ .email = RCTStringFromNSString(event[@"email"])};
59
+ std::static_pointer_cast<const AuBECSDebitFormEventEmitter>(strongSelf->_eventEmitter)
60
+ ->onCompleteAction(std::move(emitterEvent));
61
+ };
62
+ }
63
+
64
+ - (void)updateProps:(const facebook::react::Props::Shared &)props
65
+ oldProps:(const facebook::react::Props::Shared &)oldProps
66
+ {
67
+ const auto &newViewProps = *std::static_pointer_cast<const AuBECSDebitFormProps>(props);
68
+
69
+ _view.companyName = RCTNSStringFromStringNilIfEmpty(newViewProps.companyName);
70
+ _view.formStyle = convertFollyDynamicToNSDictionaryOrNil(newViewProps.formStyle);
71
+
72
+ [super updateProps:props oldProps:oldProps];
73
+
74
+ [_view didSetProps];
75
+ }
76
+
77
+ #pragma mark - RCTComponentViewProtocol
78
+
79
+ + (ComponentDescriptorProvider)componentDescriptorProvider
80
+ {
81
+ return concreteComponentDescriptorProvider<AuBECSDebitFormComponentDescriptor>();
82
+ }
83
+
84
+ - (void)prepareForRecycle
85
+ {
86
+ [super prepareForRecycle];
87
+ [self prepareView];
88
+ }
89
+
90
+ @end
91
+
92
+ Class<RCTComponentViewProtocol> AuBECSDebitFormCls(void)
93
+ {
94
+ return AuBECSDebitFormComponentView.class;
95
+ }
@@ -0,0 +1,10 @@
1
+ #import <UIKit/UIKit.h>
2
+ #import <React/RCTViewComponentView.h>
3
+
4
+ NS_ASSUME_NONNULL_BEGIN
5
+
6
+ @interface CardFieldComponentView : RCTViewComponentView
7
+
8
+ @end
9
+
10
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,125 @@
1
+ #import "CardFieldComponentView.h"
2
+
3
+ #import <react/renderer/components/rnstripe/ComponentDescriptors.h>
4
+ #import <react/renderer/components/rnstripe/EventEmitters.h>
5
+ #import <react/renderer/components/rnstripe/Props.h>
6
+ #import <react/renderer/components/rnstripe/RCTComponentViewHelpers.h>
7
+
8
+ #import <React/RCTConversions.h>
9
+ #import <React/RCTFabricComponentsPlugins.h>
10
+ #import "RCTFollyConvert.h"
11
+ #import "StripeNewArchConversions.h"
12
+ #import "StripeSwiftInterop.h"
13
+
14
+ using namespace facebook::react;
15
+ using namespace stripe::react;
16
+
17
+ @interface CardFieldComponentView () <RCTCardFieldViewProtocol>
18
+ @end
19
+
20
+ @implementation CardFieldComponentView {
21
+ CardFieldView *_view;
22
+ }
23
+
24
+ // Needed because of this: https://github.com/facebook/react-native/pull/37274
25
+ + (void)load
26
+ {
27
+ [super load];
28
+ }
29
+
30
+ - (instancetype)initWithFrame:(CGRect)frame
31
+ {
32
+ if (self = [super initWithFrame:frame]) {
33
+ static const auto defaultProps = std::make_shared<const CardFieldProps>();
34
+ _props = defaultProps;
35
+ [self prepareView];
36
+ }
37
+
38
+ return self;
39
+ }
40
+
41
+ - (void)prepareView
42
+ {
43
+ _view = [[CardFieldView alloc] initWithFrame:self.frame];
44
+ self.contentView = _view;
45
+
46
+ __weak __typeof(self) weakSelf = self;
47
+
48
+ _view.onCardChange = ^(NSDictionary *event) {
49
+ __typeof(self) strongSelf = weakSelf;
50
+ if (!strongSelf || !strongSelf->_eventEmitter) {
51
+ return;
52
+ }
53
+ CardFieldEventEmitter::OnCardChange emitterEvent = {.card = convertIdToFollyDynamic(event[@"card"])};
54
+ std::static_pointer_cast<const CardFieldEventEmitter>(strongSelf->_eventEmitter)
55
+ ->onCardChange(std::move(emitterEvent));
56
+ };
57
+
58
+ _view.onFocusChange = ^(NSDictionary *event) {
59
+ __typeof(self) strongSelf = weakSelf;
60
+ if (!strongSelf || !strongSelf->_eventEmitter) {
61
+ return;
62
+ }
63
+ CardFieldEventEmitter::OnFocusChange emitterEvent = {.focusedField = RCTStringFromNSString(event[@"focusedField"])};
64
+ std::static_pointer_cast<const CardFieldEventEmitter>(strongSelf->_eventEmitter)
65
+ ->onFocusChange(std::move(emitterEvent));
66
+ };
67
+ }
68
+
69
+ - (void)updateProps:(const facebook::react::Props::Shared &)props
70
+ oldProps:(const facebook::react::Props::Shared &)oldProps
71
+ {
72
+ const auto &newViewProps = *std::static_pointer_cast<const CardFieldProps>(props);
73
+
74
+ _view.autofocus = newViewProps.autofocus;
75
+ _view.cardStyle = convertFollyDynamicToNSDictionary(newViewProps.cardStyle);
76
+ _view.countryCode = RCTNSStringFromStringNilIfEmpty(newViewProps.countryCode);
77
+ _view.dangerouslyGetFullCardDetails = newViewProps.dangerouslyGetFullCardDetails;
78
+ _view.disabled = newViewProps.disabled;
79
+ _view.onBehalfOf = RCTNSStringFromStringNilIfEmpty(newViewProps.onBehalfOf);
80
+ _view.placeholders = convertFollyDynamicToNSDictionary(newViewProps.placeholders);
81
+ _view.postalCodeEnabled = newViewProps.postalCodeEnabled;
82
+ _view.preferredNetworks = convertIntVectorToNSArray(newViewProps.preferredNetworks);
83
+
84
+ [super updateProps:props oldProps:oldProps];
85
+ }
86
+
87
+ #pragma mark - RCTComponentViewProtocol
88
+
89
+ + (ComponentDescriptorProvider)componentDescriptorProvider
90
+ {
91
+ return concreteComponentDescriptorProvider<CardFieldComponentDescriptor>();
92
+ }
93
+
94
+ - (void)prepareForRecycle
95
+ {
96
+ [super prepareForRecycle];
97
+ [self prepareView];
98
+ }
99
+
100
+ - (void)handleCommand:(const NSString *)commandName args:(const NSArray *)args
101
+ {
102
+ RCTCardFieldHandleCommand(self, commandName, args);
103
+ }
104
+
105
+ - (void)blur
106
+ {
107
+ [_view blur];
108
+ }
109
+
110
+ - (void)focus
111
+ {
112
+ [_view focus];
113
+ }
114
+
115
+ - (void)clear
116
+ {
117
+ [_view clear];
118
+ }
119
+
120
+ @end
121
+
122
+ Class<RCTComponentViewProtocol> CardFieldCls(void)
123
+ {
124
+ return CardFieldComponentView.class;
125
+ }
@@ -0,0 +1,10 @@
1
+ #import <UIKit/UIKit.h>
2
+ #import <React/RCTViewComponentView.h>
3
+
4
+ NS_ASSUME_NONNULL_BEGIN
5
+
6
+ @interface CardFormComponentView : RCTViewComponentView
7
+
8
+ @end
9
+
10
+ NS_ASSUME_NONNULL_END