@primer-io/react-native 0.12.4 → 0.13.0-beta.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.
Files changed (66) hide show
  1. package/android/build.gradle +2 -2
  2. package/android/src/main/java/com/primerioreactnative/PrimerCardNumberEditTextManager.kt +83 -0
  3. package/android/src/main/java/com/primerioreactnative/PrimerHeadlessUniversalCheckout.kt +201 -0
  4. package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +3 -3
  5. package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +14 -3
  6. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +2 -0
  7. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerSettingsRN.kt +3 -4
  8. package/android/src/main/java/com/primerioreactnative/huc/assets/AssetsManager.kt +56 -0
  9. package/android/src/main/java/com/primerioreactnative/huc/events/PrimerHeadlessUniversalCheckoutEvent.kt +11 -0
  10. package/android/src/main/java/com/primerioreactnative/huc/extensions/Map.kt +10 -0
  11. package/ios/{PrimerRN+PrimerDelegate.swift → Core/PrimerRN+PrimerDelegate.swift} +4 -3
  12. package/ios/{ReactNative.m → Core/PrimerRN.m} +1 -1
  13. package/ios/{PrimerRN.swift → Core/PrimerRN.swift} +26 -24
  14. package/ios/{ReactNative-Bridging-Header.h → Core/ReactNative-Bridging-Header.h} +2 -0
  15. package/ios/DataModels/PrimerErrorRN.swift +32 -2
  16. package/ios/DataModels/PrimerSettingsRN.swift +0 -6
  17. package/ios/Headless Universal Checkout/RNTPrimerCardNumberInputElementManager.m +23 -0
  18. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.m +30 -0
  19. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +241 -0
  20. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.m +14 -0
  21. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.swift +117 -0
  22. package/lib/commonjs/Primer.js +2 -1
  23. package/lib/commonjs/Primer.js.map +1 -1
  24. package/lib/commonjs/PrimerInput.js +80 -0
  25. package/lib/commonjs/PrimerInput.js.map +1 -0
  26. package/lib/commonjs/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js +14 -0
  27. package/lib/commonjs/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +1 -0
  28. package/lib/commonjs/headless_checkout/NativePrimerHeadlessUniversalCheckout.js +73 -0
  29. package/lib/commonjs/headless_checkout/NativePrimerHeadlessUniversalCheckout.js.map +1 -0
  30. package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js +119 -0
  31. package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +1 -0
  32. package/lib/commonjs/headless_checkout/types.js +2 -0
  33. package/lib/commonjs/headless_checkout/types.js.map +1 -0
  34. package/lib/commonjs/index.js +28 -0
  35. package/lib/commonjs/index.js.map +1 -1
  36. package/lib/module/Primer.js +1 -1
  37. package/lib/module/Primer.js.map +1 -1
  38. package/lib/module/PrimerInput.js +46 -0
  39. package/lib/module/PrimerInput.js.map +1 -0
  40. package/lib/module/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js +5 -0
  41. package/lib/module/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +1 -0
  42. package/lib/module/headless_checkout/NativePrimerHeadlessUniversalCheckout.js +64 -0
  43. package/lib/module/headless_checkout/NativePrimerHeadlessUniversalCheckout.js.map +1 -0
  44. package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js +104 -0
  45. package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +1 -0
  46. package/lib/module/headless_checkout/types.js +2 -0
  47. package/lib/module/headless_checkout/types.js.map +1 -0
  48. package/lib/module/index.js +3 -1
  49. package/lib/module/index.js.map +1 -1
  50. package/lib/typescript/PrimerInput.d.ts +15 -0
  51. package/lib/typescript/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.d.ts +1 -0
  52. package/lib/typescript/headless_checkout/NativePrimerHeadlessUniversalCheckout.d.ts +10 -0
  53. package/lib/typescript/headless_checkout/PrimerHeadlessUniversalCheckout.d.ts +14 -0
  54. package/lib/typescript/headless_checkout/types.d.ts +16 -0
  55. package/lib/typescript/index.d.ts +3 -1
  56. package/lib/typescript/models/primer-settings.d.ts +1 -2
  57. package/package.json +1 -1
  58. package/primer-io-react-native.podspec +1 -1
  59. package/src/Primer.ts +2 -0
  60. package/src/PrimerInput.tsx +73 -0
  61. package/src/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.tsx +2 -0
  62. package/src/headless_checkout/NativePrimerHeadlessUniversalCheckout.ts +94 -0
  63. package/src/headless_checkout/PrimerHeadlessUniversalCheckout.ts +136 -0
  64. package/src/headless_checkout/types.ts +18 -0
  65. package/src/index.tsx +3 -1
  66. package/src/models/primer-settings.ts +1 -2
@@ -0,0 +1,23 @@
1
+ //
2
+ // RNTPrimerCardNumberInputElementManager.m
3
+ // primer-io-react-native
4
+ //
5
+ // Created by Evangelos on 3/3/22.
6
+ //
7
+
8
+ #import <React/RCTViewManager.h>
9
+ @import PrimerSDK;
10
+
11
+ @interface RNTPrimerCardNumberInputElementManager : RCTViewManager
12
+ @end
13
+
14
+ @implementation RNTPrimerCardNumberInputElementManager
15
+
16
+ RCT_EXPORT_MODULE(PrimerCardNumberEditText)
17
+
18
+ - (UIView *)view
19
+ {
20
+ return [[PrimerCardNumberInputElement alloc] init];
21
+ }
22
+
23
+ @end
@@ -0,0 +1,30 @@
1
+ //
2
+ // RNTPrimerHeadlessUniversalCheckout.m
3
+ // primer-io-react-native
4
+ //
5
+ // Created by Evangelos on 8/3/22.
6
+ //
7
+
8
+ #import <React/RCTBridgeModule.h>
9
+ #import <React/RCTEventEmitter.h>
10
+
11
+ @interface RCT_EXTERN_MODULE(PrimerHeadlessUniversalCheckout, RCTEventEmitter)
12
+
13
+ RCT_EXTERN_METHOD(startWithClientToken:(NSString *)clientToken settingsStr:(NSString *)settingsStr errorCallback:(RCTResponseSenderBlock)errorCallback successCallback: (RCTResponseSenderBlock)successCallback)
14
+
15
+ RCT_EXTERN_METHOD(resumeWithClientToken:(NSString *)resumeToken)
16
+
17
+ RCT_EXTERN_METHOD(showPaymentMethod:(NSString *)paymentMethodTypeStr)
18
+
19
+ RCT_EXTERN_METHOD(getAssetForPaymentMethodType:(NSString *)paymentMethodTypeStr
20
+ assetType:(NSString *)assetTypeStr
21
+ errorCallback:(RCTResponseSenderBlock)errorCallback
22
+ successCallback: (RCTResponseSenderBlock)successCallback)
23
+
24
+ RCT_EXTERN_METHOD(getAssetForCardNetwork:(NSString *)cardNetworkStr
25
+ assetType:(NSString *)assetTypeStr
26
+ errorCallback:(RCTResponseSenderBlock)errorCallback
27
+ successCallback: (RCTResponseSenderBlock)successCallback)
28
+
29
+
30
+ @end
@@ -0,0 +1,241 @@
1
+ //
2
+ // RNTPrimerHeadlessUniversalCheckout.swift
3
+ // primer-io-react-native
4
+ //
5
+ // Created by Evangelos on 8/3/22.
6
+ //
7
+
8
+ import Foundation
9
+ import PrimerSDK
10
+
11
+ @objc
12
+ enum PrimerHeadlessUniversalCheckoutEvents: Int, CaseIterable {
13
+ case clientSessionDidSetUpSuccessfully = 0
14
+ case preparationStarted
15
+ case paymentMethodPresented
16
+ case tokenizationStarted
17
+ case tokenizationSucceeded
18
+ case resume
19
+ case error
20
+
21
+ var stringValue: String {
22
+ switch self {
23
+ case .clientSessionDidSetUpSuccessfully:
24
+ return "clientSessionDidSetUpSuccessfully"
25
+ case .preparationStarted:
26
+ return "preparationStarted"
27
+ case .paymentMethodPresented:
28
+ return "paymentMethodPresented"
29
+ case .tokenizationStarted:
30
+ return "tokenizationStarted"
31
+ case .tokenizationSucceeded:
32
+ return "tokenizationSucceeded"
33
+ case .resume:
34
+ return "resume"
35
+ case .error:
36
+ return "error"
37
+ }
38
+ }
39
+ }
40
+
41
+ @objc(PrimerHeadlessUniversalCheckout)
42
+ class RNTPrimerHeadlessUniversalCheckout: RCTEventEmitter {
43
+
44
+ private var resumeTokenCompletion: ((_ resumeToken: String) -> Void)?
45
+
46
+ override class func requiresMainQueueSetup() -> Bool {
47
+ return true
48
+ }
49
+
50
+ override init() {
51
+ super.init()
52
+ PrimerHeadlessUniversalCheckout.current.delegate = self
53
+ }
54
+
55
+ override func supportedEvents() -> [String]! {
56
+ return PrimerHeadlessUniversalCheckoutEvents.allCases.compactMap({ $0.stringValue })
57
+ }
58
+
59
+ // MARK: - API
60
+
61
+ @objc
62
+ public func startWithClientToken(_ clientToken: String,
63
+ settingsStr: String?,
64
+ errorCallback: @escaping RCTResponseSenderBlock,
65
+ successCallback: @escaping RCTResponseSenderBlock)
66
+ {
67
+ var settings: PrimerSettings?
68
+ if let settingsStr = settingsStr {
69
+ do {
70
+ let settingsData = settingsStr.data(using: .utf8)!
71
+ let settingsRN = try JSONDecoder().decode(PrimerSettingsRN.self, from: settingsData)
72
+ settings = settingsRN.asPrimerSettings()
73
+ } catch {
74
+ errorCallback([error.rnError])
75
+ return
76
+ }
77
+ }
78
+
79
+ PrimerHeadlessUniversalCheckout.current.start(withClientToken: clientToken, settings: settings, delegate: self) { paymentMethodTypes, err in
80
+ if let err = err {
81
+ errorCallback([err.rnError])
82
+ } else if let paymentMethodTypes = paymentMethodTypes {
83
+ successCallback([paymentMethodTypes.compactMap({$0.rawValue})])
84
+ }
85
+ }
86
+ }
87
+
88
+ @objc
89
+ public func resumeWithClientToken(_ resumeToken: String) {
90
+ self.resumeTokenCompletion?(resumeToken)
91
+ }
92
+
93
+ @objc
94
+ public func getAssetForPaymentMethodType(_ paymentMethodTypeStr: String,
95
+ assetType assetTypeStr: String,
96
+ errorCallback: @escaping RCTResponseSenderBlock,
97
+ successCallback: @escaping RCTResponseSenderBlock)
98
+ {
99
+ do {
100
+ try validate(assetStr: paymentMethodTypeStr, assetTypeStr: assetTypeStr)
101
+ let paymentMethodType = PaymentMethodConfigType(rawValue: paymentMethodTypeStr)
102
+
103
+ guard let image = PrimerHeadlessUniversalCheckout.getAsset(for: paymentMethodType, assetType: PrimerAsset.ImageType(rawValue: assetTypeStr)!) else {
104
+ let err = NativeError(errorId: "missing-asset", errorDescription: "Failed to find \(assetTypeStr) for \(paymentMethodTypeStr)", recoverySuggestion: nil)
105
+ errorCallback([err.rnError])
106
+ return
107
+ }
108
+
109
+
110
+ let imageURL = try self.tempStoreImage(image: image, name: paymentMethodTypeStr)
111
+ successCallback([imageURL.absoluteString])
112
+ } catch {
113
+ errorCallback([error.rnError])
114
+ }
115
+ }
116
+
117
+ @objc
118
+ public func getAssetForCardNetwork(_ cardNetworkStr: String,
119
+ assetType assetTypeStr: String,
120
+ errorCallback: @escaping RCTResponseSenderBlock,
121
+ successCallback: @escaping RCTResponseSenderBlock)
122
+ {
123
+ do {
124
+ try validate(assetStr: cardNetworkStr, assetTypeStr: assetTypeStr)
125
+ guard let cardNetwork = CardNetwork(rawValue: cardNetworkStr) else {
126
+ let err = NativeError(errorId: "invalid-card-network", errorDescription: "Card network for \(cardNetworkStr) does not exist, make sure you don't have any typos.", recoverySuggestion: nil)
127
+ errorCallback([err.rnError])
128
+ return
129
+ }
130
+
131
+ guard let image = PrimerHeadlessUniversalCheckout.getAsset(for: cardNetwork, assetType: PrimerAsset.ImageType(rawValue: assetTypeStr)!) else {
132
+ let err = NativeError(errorId: "missing-asset", errorDescription: "Failed to find \(assetTypeStr) for \(cardNetworkStr)", recoverySuggestion: nil)
133
+ errorCallback([err.rnError])
134
+ return
135
+ }
136
+
137
+
138
+ let imageURL = try self.tempStoreImage(image: image, name: cardNetworkStr)
139
+ successCallback([imageURL.absoluteString])
140
+ } catch {
141
+ errorCallback([error.rnError])
142
+ }
143
+ }
144
+
145
+ @objc
146
+ public func showPaymentMethod(_ paymentMethodTypeStr: String) {
147
+ let paymentMethodType = PrimerPaymentMethodType(rawValue: paymentMethodTypeStr)
148
+ PrimerHeadlessUniversalCheckout.current.showPaymentMethod(paymentMethodType)
149
+ }
150
+
151
+ // MARK: - HELPERS
152
+
153
+ private func validate(assetStr: String, assetTypeStr: String) throws {
154
+ var errors: [NativeError] = []
155
+
156
+ if PaymentMethodConfigType(rawValue: assetStr) != .other(rawValue: assetStr) {
157
+ // ...
158
+ } else if CardNetwork(rawValue: assetStr) != nil {
159
+ // ...
160
+ } else {
161
+ let err = NativeError(errorId: "invalid-payment-method-type", errorDescription: "Asset for \(assetStr) does not exist, make sure you don't have any typos.", recoverySuggestion: nil)
162
+ errors.append(err)
163
+ }
164
+
165
+
166
+ if PrimerAsset.ImageType(rawValue: assetTypeStr) == nil {
167
+ let err = NativeError(errorId: "mismatch", errorDescription: "You have provided assetType=\(assetTypeStr), which is not valid", recoverySuggestion: "Use one of the following values: \(PrimerAsset.ImageType.allCases.compactMap({ $0.rawValue }))")
168
+ errors.append(err)
169
+ }
170
+
171
+ if errors.isEmpty {
172
+ return
173
+ } else if errors.count == 1 {
174
+ throw errors.first!
175
+ } else {
176
+ let errorDescription: String = errors.compactMap({ $0.errorDescription }).joined(separator: "/n")
177
+ let recoverySuggestion = errors.compactMap({ $0.recoverySuggestion }).joined(separator: "/n")
178
+ let err = NativeError(errorId: "underlying-errors", errorDescription: errorDescription, recoverySuggestion: recoverySuggestion)
179
+ throw err
180
+ }
181
+ }
182
+
183
+ private func tempStoreImage(image: UIImage, name: String) throws -> URL {
184
+ guard let imageURL = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("\(name).png") else {
185
+ let err = NativeError(errorId: "error", errorDescription: "Failed to create URL for asset", recoverySuggestion: nil)
186
+ throw err
187
+ }
188
+
189
+ guard let pngData = image.pngData() else {
190
+ let err = NativeError(errorId: "error", errorDescription: "Failed to get image's PNG data", recoverySuggestion: nil)
191
+ throw err
192
+ }
193
+
194
+ try pngData.write(to: imageURL)
195
+ return imageURL
196
+ }
197
+ }
198
+
199
+ // MARK: - EVENTS
200
+
201
+ extension RNTPrimerHeadlessUniversalCheckout: PrimerHeadlessUniversalCheckoutDelegate {
202
+ func primerHeadlessUniversalCheckoutClientSessionDidSetUpSuccessfully() {
203
+ sendEvent(withName: PrimerHeadlessUniversalCheckoutEvents.clientSessionDidSetUpSuccessfully.stringValue, body: nil)
204
+ }
205
+
206
+ func primerHeadlessUniversalCheckoutPreparationStarted() {
207
+ sendEvent(withName: PrimerHeadlessUniversalCheckoutEvents.preparationStarted.stringValue, body: nil)
208
+ }
209
+
210
+ func primerHeadlessUniversalCheckoutTokenizationStarted() {
211
+ sendEvent(withName: PrimerHeadlessUniversalCheckoutEvents.tokenizationStarted.stringValue, body: nil)
212
+ }
213
+
214
+ func primerHeadlessUniversalCheckoutPaymentMethodPresented() {
215
+ sendEvent(withName: PrimerHeadlessUniversalCheckoutEvents.paymentMethodPresented.stringValue, body: nil)
216
+ }
217
+
218
+ func primerHeadlessUniversalCheckoutTokenizationSucceeded(paymentMethodToken: PaymentMethodToken, resumeHandler: ResumeHandlerProtocol?) {
219
+ do {
220
+ let paymentMethodTokenData = try JSONEncoder().encode(paymentMethodToken)
221
+ let paymentMethodTokenStr = String(data: paymentMethodTokenData, encoding: .utf8)!
222
+
223
+ self.resumeTokenCompletion = { (resumeToken) in
224
+ resumeHandler?.handle(newClientToken: resumeToken)
225
+ }
226
+
227
+ sendEvent(withName: PrimerHeadlessUniversalCheckoutEvents.tokenizationSucceeded.stringValue, body: ["paymentMethodToken": paymentMethodTokenStr])
228
+
229
+ } catch {
230
+ self.primerHeadlessUniversalCheckoutUniversalCheckoutDidFail(withError: error)
231
+ }
232
+ }
233
+
234
+ func primerHeadlessUniversalCheckoutResume(withResumeToken resumeToken: String, resumeHandler: ResumeHandlerProtocol?) {
235
+ sendEvent(withName: PrimerHeadlessUniversalCheckoutEvents.resume.stringValue, body: ["resumeToken": resumeToken])
236
+ }
237
+
238
+ func primerHeadlessUniversalCheckoutUniversalCheckoutDidFail(withError err: Error) {
239
+ sendEvent(withName: PrimerHeadlessUniversalCheckoutEvents.error.stringValue, body: ["error": err.rnError])
240
+ }
241
+ }
@@ -0,0 +1,14 @@
1
+ #import <React/RCTBridgeModule.h>
2
+ #import <React/RCTViewManager.h>
3
+ #import <React/RCTUIManager.h>
4
+ #import <React/RCTView.h>
5
+
6
+ @interface RCT_EXTERN_MODULE(PrimerHeadlessUniversalCheckoutCardFormUIManager, NSObject)
7
+
8
+ RCT_EXTERN_METHOD(setInputElements:(NSString *)inputElements errorCallback: (RCTResponseSenderBlock)errorCallback successCallback: (RCTResponseSenderBlock)successCallback)
9
+
10
+ RCT_EXTERN_METHOD(tokenize)
11
+
12
+ RCT_EXTERN_METHOD(addInput:(NSNumber* __nonnull)tag)
13
+
14
+ @end
@@ -0,0 +1,117 @@
1
+ //
2
+ // RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.swift
3
+ // primer-io-react-native
4
+ //
5
+ // Created by Evangelos on 4/3/22.
6
+ //
7
+
8
+ import Foundation
9
+ import PrimerSDK
10
+
11
+ @objc(PrimerHeadlessUniversalCheckoutCardFormUIManager)
12
+ class RNTPrimerHeadlessUniversalCheckoutCardFormUIManager: RCTViewManager {
13
+
14
+ @objc
15
+ override static func requiresMainQueueSetup() -> Bool {
16
+ return true
17
+ }
18
+
19
+ private lazy var cardFormUIManager: PrimerHeadlessUniversalCheckout.CardFormUIManager = {
20
+ return try! PrimerHeadlessUniversalCheckout.CardFormUIManager()
21
+ }()
22
+ private var successCallback: RCTResponseSenderBlock? {
23
+ didSet {
24
+
25
+ }
26
+ }
27
+
28
+ deinit {
29
+ print("🧨 deinit: \(self) \(Unmanaged.passUnretained(self).toOpaque())")
30
+ }
31
+
32
+ override init() {
33
+ super.init()
34
+ do {
35
+ self.cardFormUIManager = try PrimerHeadlessUniversalCheckout.CardFormUIManager()
36
+ self.cardFormUIManager.cardFormUIManagerDelegate = self
37
+ } catch {
38
+
39
+ }
40
+
41
+ print("⭐ init: \(self) \(Unmanaged.passUnretained(self).toOpaque())")
42
+ }
43
+
44
+ @objc
45
+ override func constantsToExport() -> [AnyHashable : Any]! {
46
+ return ["message": "Hello from native code"]
47
+ }
48
+
49
+ func cardFormUIManager(_ cardFormUIManager: PrimerHeadlessUniversalCheckout.CardFormUIManager, isCardFormValid: Bool) {
50
+
51
+ }
52
+
53
+ @objc
54
+ func setInputElements(_ inputElements: String, errorCallback: RCTResponseSenderBlock, successCallback: @escaping RCTResponseSenderBlock) {
55
+ print("RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.setInputElements\n\(inputElements)")
56
+ print("⭐ \(self) \(Unmanaged.passUnretained(self).toOpaque())")
57
+ self.successCallback = successCallback
58
+ self.successCallback?(["what??"])
59
+ }
60
+
61
+ @objc
62
+ func setInputElementsWithTags(_ tags: [NSNumber]) {
63
+ RCTUnsafeExecuteOnMainQueueSync {
64
+ guard let rctUIManager = self.bridge.module(for: RCTUIManager.self) as? RCTUIManager else {
65
+ return
66
+ }
67
+
68
+ for tag in tags {
69
+ if let view = rctUIManager.view(forReactTag: tag) {
70
+ if let inputElement = view as? PrimerInputElement {
71
+ self.cardFormUIManager.inputElements = [inputElement]
72
+ }
73
+ }
74
+ }
75
+ }
76
+ }
77
+
78
+ @objc
79
+ func addInput(_ tag: NSNumber) {
80
+ RCTUnsafeExecuteOnMainQueueSync {
81
+ guard let rctUIManager = self.bridge.module(for: RCTUIManager.self) as? RCTUIManager else {
82
+ return
83
+ }
84
+
85
+ if let view = rctUIManager.view(forReactTag: tag) {
86
+ if let inputElement = view as? PrimerInputElement {
87
+ self.cardFormUIManager.inputElements = [inputElement]
88
+ }
89
+ }
90
+
91
+ }
92
+ }
93
+
94
+ @objc
95
+ func tokenize() {
96
+ print("RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.tokenize")
97
+ }
98
+
99
+ }
100
+
101
+ extension RNTPrimerHeadlessUniversalCheckoutCardFormUIManager: PrimerInputElementDelegate {
102
+
103
+ func inputElementDidFocus(_ sender: PrimerInputElement) {
104
+
105
+ }
106
+
107
+ func inputElementDidBlur(_ sender: PrimerInputElement) {
108
+
109
+ }
110
+
111
+ }
112
+
113
+ extension RNTPrimerHeadlessUniversalCheckoutCardFormUIManager: PrimerCardFormDelegate {
114
+
115
+
116
+
117
+ }
@@ -46,7 +46,8 @@ const PrimerNativeMapping = {
46
46
  NativeModule.dispose();
47
47
  }
48
48
 
49
- };
49
+ }; //
50
+
50
51
  exports.PrimerNativeMapping = PrimerNativeMapping;
51
52
 
52
53
  function configure(config) {
@@ -1 +1 @@
1
- {"version":3,"sources":["Primer.ts"],"names":["PrimerRN","NativeModule","NativeModules","PrimerNativeMapping","showUniversalCheckout","token","config","configureIntent","vault","paymentMethod","configure","initialize","showVaultManager","showPaymentMethod","intent","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnClientSessionActions","onClientSessionActions","configureOnResumeSuccess","onResumeSuccess","data","JSON","stringify","resume","request","callback","_","__","parsedData","parse","handleError","error","handleSuccess","handleNewClientToken","resumeWithError","resumeWithSuccess","e","console","log","actionResume","paymentMethodToken","configureOnPrimerError"],"mappings":"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","sourcesContent":["import { NativeModules } from 'react-native';\nimport type { ClientSessionActionsRequest } from './models/client-session-actions-request';\nimport type { PaymentInstrumentToken } from './models/payment-instrument-token';\nimport type { IPrimer } from './models/primer';\nimport type {\n OnClientSessionActionsCallback,\n OnDismissCallback,\n OnPrimerErrorCallback,\n OnTokenAddedToVaultCallback,\n OnTokenizeSuccessCallback,\n} from './models/primer-callbacks';\nimport type { PrimerConfig } from './models/primer-config';\nimport type { PrimerError } from './models/primer-error';\nimport type {\n PrimerIntent,\n PrimerPaymentMethodIntent,\n} from './models/primer-intent';\nimport type { PrimerSettings } from './models/primer-settings';\nimport type { PrimerTheme } from './models/primer-theme';\nimport { parseCallback } from './utils';\n\nconst { PrimerRN: NativeModule } = NativeModules;\n\nexport const PrimerNativeMapping: IPrimer = {\n showUniversalCheckout(token: String, config: PrimerConfig): void {\n configureIntent({ vault: false, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showVaultManager(token: String, config: PrimerConfig): void {\n configureIntent({ vault: true, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showPaymentMethod(\n token: String,\n intent: PrimerPaymentMethodIntent,\n config: PrimerConfig\n ): void {\n configureIntent(intent);\n configure(config);\n NativeModule.initialize(token);\n },\n\n // todo: refactor\n // fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {\n // configure(config);\n // NativeModule.fetchSavedPaymentInstruments(token);\n // },\n\n dispose(): void {\n NativeModule.dispose();\n },\n};\n\nfunction configure(config: PrimerConfig): void {\n configureTheme(config.theme);\n configureSettings(config.settings);\n configureOnVaultSuccess(config.onTokenAddedToVault);\n configureOnDismiss(config.onDismiss);\n configureOnError(config.onError);\n configureOnTokenizeSuccess(config.onTokenizeSuccess);\n configureOnClientSessionActions(config.onClientSessionActions);\n configureOnResumeSuccess(config.onResumeSuccess);\n}\n\nfunction configureSettings(settings: PrimerSettings = {}): void {\n const data = JSON.stringify(settings);\n NativeModule.configureSettings(data);\n}\n\nfunction configureTheme(theme: PrimerTheme = {}): void {\n const data = JSON.stringify(theme);\n NativeModule.configureTheme(data);\n}\n\nfunction configureIntent(\n intent: PrimerIntent = { vault: false, paymentMethod: 'Any' }\n): void {\n const data = JSON.stringify(intent);\n NativeModule.configureIntent(data);\n}\n\nfunction resume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.resume(data);\n}\n\nfunction configureOnTokenizeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnTokenizeSuccess((data: any) => {\n try {\n const parsedData = JSON.parse(data) as PaymentInstrumentToken;\n callback(parsedData, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction actionResume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.actionResume(data);\n}\n\n/**\n * Call @method configureOnClientSessionActions on the native bridge, passing\n * in a callback that the native side will call every time a client session\n * action is triggered.\n */\nfunction configureOnClientSessionActions(\n callback?: OnClientSessionActionsCallback // defined by integrating developer.\n) {\n NativeModule.configureOnClientSessionActions((data: any) => {\n try {\n // parse the client session action JSON string.\n const parsedData = JSON.parse(data) as ClientSessionActionsRequest;\n\n if (!callback) {\n /**\n * if @param callback is undefined immediately call the native bridge\n * and resume with null values. This will resume the SDK flow without\n * triggering extra configuration API fetch calls.\n */\n actionResume({ error: null, token: null });\n } else {\n /**\n * send the parsed data back to the developer through the defined callback.\n * The developer will determine how to resume the flow using one of the provided\n * resume handlers.\n */\n callback(parsedData, {\n handleError: (error) => actionResume({ error, token: null }),\n handleSuccess: () => actionResume({ error: null, token: null }),\n handleNewClientToken: (token) => actionResume({ error: null, token }),\n // deprecated, remove in next major version update.\n resumeWithError: (error) => actionResume({ error, token: null }),\n resumeWithSuccess: (token) => actionResume({ error: null, token }),\n });\n }\n\n // reset the client session action callback (native bridge callbacks are disposed once they're invoked).\n configureOnClientSessionActions(callback);\n } catch (e) {\n // log error if the client session action JSON string cannot be parsed (this should never happen!).\n console.error('[OnClientSessionActions]', 'failed to parse json', e);\n }\n });\n}\n\nfunction configureOnResumeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnResumeSuccess((paymentMethodToken: any) => {\n try {\n callback(paymentMethodToken, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction configureOnVaultSuccess(\n callback: OnTokenAddedToVaultCallback = (_) => {}\n) {\n NativeModule.configureOnVaultSuccess((data: any) => {\n parseCallback<PaymentInstrumentToken>(data, callback);\n });\n}\n\nfunction configureOnDismiss(callback: OnDismissCallback = () => {}) {\n NativeModule.configureOnDismiss((_: any) => callback());\n}\n\nfunction configureOnError(callback: OnPrimerErrorCallback = (_) => {}) {\n NativeModule.configureOnPrimerError((data: any) => {\n parseCallback<PrimerError>(data, callback);\n });\n}\n\ninterface ResumeRequest {\n error: string | null;\n token: string | null;\n}\n"]}
1
+ {"version":3,"sources":["Primer.ts"],"names":["PrimerRN","NativeModule","NativeModules","PrimerNativeMapping","showUniversalCheckout","token","config","configureIntent","vault","paymentMethod","configure","initialize","showVaultManager","showPaymentMethod","intent","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnClientSessionActions","onClientSessionActions","configureOnResumeSuccess","onResumeSuccess","data","JSON","stringify","resume","request","callback","_","__","parsedData","parse","handleError","error","handleSuccess","handleNewClientToken","resumeWithError","resumeWithSuccess","e","console","log","actionResume","paymentMethodToken","configureOnPrimerError"],"mappings":"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","sourcesContent":["import { NativeModules } from 'react-native';\nimport type { ClientSessionActionsRequest } from './models/client-session-actions-request';\nimport type { PaymentInstrumentToken } from './models/payment-instrument-token';\nimport type { IPrimer } from './models/primer';\nimport type {\n OnClientSessionActionsCallback,\n OnDismissCallback,\n OnPrimerErrorCallback,\n OnTokenAddedToVaultCallback,\n OnTokenizeSuccessCallback,\n} from './models/primer-callbacks';\nimport type { PrimerConfig } from './models/primer-config';\nimport type { PrimerError } from './models/primer-error';\nimport type {\n PrimerIntent,\n PrimerPaymentMethodIntent,\n} from './models/primer-intent';\nimport type { PrimerSettings } from './models/primer-settings';\nimport type { PrimerTheme } from './models/primer-theme';\nimport { parseCallback } from './utils';\n\nconst { PrimerRN: NativeModule } = NativeModules;\n\nexport const PrimerNativeMapping: IPrimer = {\n showUniversalCheckout(token: String, config: PrimerConfig): void {\n configureIntent({ vault: false, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showVaultManager(token: String, config: PrimerConfig): void {\n configureIntent({ vault: true, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showPaymentMethod(\n token: String,\n intent: PrimerPaymentMethodIntent,\n config: PrimerConfig\n ): void {\n configureIntent(intent);\n configure(config);\n NativeModule.initialize(token);\n },\n\n // todo: refactor\n // fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {\n // configure(config);\n // NativeModule.fetchSavedPaymentInstruments(token);\n // },\n\n dispose(): void {\n NativeModule.dispose();\n },\n};\n\n//\n\nfunction configure(config: PrimerConfig): void {\n configureTheme(config.theme);\n configureSettings(config.settings);\n configureOnVaultSuccess(config.onTokenAddedToVault);\n configureOnDismiss(config.onDismiss);\n configureOnError(config.onError);\n configureOnTokenizeSuccess(config.onTokenizeSuccess);\n configureOnClientSessionActions(config.onClientSessionActions);\n configureOnResumeSuccess(config.onResumeSuccess);\n}\n\nfunction configureSettings(settings: PrimerSettings = {}): void {\n const data = JSON.stringify(settings);\n NativeModule.configureSettings(data);\n}\n\nfunction configureTheme(theme: PrimerTheme = {}): void {\n const data = JSON.stringify(theme);\n NativeModule.configureTheme(data);\n}\n\nfunction configureIntent(\n intent: PrimerIntent = { vault: false, paymentMethod: 'Any' }\n): void {\n const data = JSON.stringify(intent);\n NativeModule.configureIntent(data);\n}\n\nfunction resume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.resume(data);\n}\n\nfunction configureOnTokenizeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnTokenizeSuccess((data: any) => {\n try {\n const parsedData = JSON.parse(data) as PaymentInstrumentToken;\n callback(parsedData, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction actionResume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.actionResume(data);\n}\n\n/**\n * Call @method configureOnClientSessionActions on the native bridge, passing\n * in a callback that the native side will call every time a client session\n * action is triggered.\n */\nfunction configureOnClientSessionActions(\n callback?: OnClientSessionActionsCallback // defined by integrating developer.\n) {\n NativeModule.configureOnClientSessionActions((data: any) => {\n try {\n // parse the client session action JSON string.\n const parsedData = JSON.parse(data) as ClientSessionActionsRequest;\n\n if (!callback) {\n /**\n * if @param callback is undefined immediately call the native bridge\n * and resume with null values. This will resume the SDK flow without\n * triggering extra configuration API fetch calls.\n */\n actionResume({ error: null, token: null });\n } else {\n /**\n * send the parsed data back to the developer through the defined callback.\n * The developer will determine how to resume the flow using one of the provided\n * resume handlers.\n */\n callback(parsedData, {\n handleError: (error) => actionResume({ error, token: null }),\n handleSuccess: () => actionResume({ error: null, token: null }),\n handleNewClientToken: (token) => actionResume({ error: null, token }),\n // deprecated, remove in next major version update.\n resumeWithError: (error) => actionResume({ error, token: null }),\n resumeWithSuccess: (token) => actionResume({ error: null, token }),\n });\n }\n\n // reset the client session action callback (native bridge callbacks are disposed once they're invoked).\n configureOnClientSessionActions(callback);\n } catch (e) {\n // log error if the client session action JSON string cannot be parsed (this should never happen!).\n console.error('[OnClientSessionActions]', 'failed to parse json', e);\n }\n });\n}\n\nfunction configureOnResumeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnResumeSuccess((paymentMethodToken: any) => {\n try {\n callback(paymentMethodToken, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction configureOnVaultSuccess(\n callback: OnTokenAddedToVaultCallback = (_) => {}\n) {\n NativeModule.configureOnVaultSuccess((data: any) => {\n parseCallback<PaymentInstrumentToken>(data, callback);\n });\n}\n\nfunction configureOnDismiss(callback: OnDismissCallback = () => {}) {\n NativeModule.configureOnDismiss((_: any) => callback());\n}\n\nfunction configureOnError(callback: OnPrimerErrorCallback = (_) => {}) {\n NativeModule.configureOnPrimerError((data: any) => {\n parseCallback<PrimerError>(data, callback);\n });\n}\n\ninterface ResumeRequest {\n error: string | null;\n token: string | null;\n}\n"]}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PrimerCvvEditText = exports.PrimerCvvEditTextRaw = exports.PrimerExpiryEditText = exports.PrimerExpiryEditTextRaw = exports.PrimerCardholderNameEditText = exports.PrimerCardholderNameEditTextRaw = exports.PrimerCardNumberEditText = exports.PrimerCardNumberEditTextRaw = void 0;
7
+
8
+ var _RNTPrimerHeadlessUniversalCheckoutCardFormUIManager = require("./RNTPrimerHeadlessUniversalCheckoutCardFormUIManager");
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _reactNative = require("react-native");
13
+
14
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
15
+
16
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+
18
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
19
+
20
+ // PrimerCardNumberEditText
21
+ const PrimerCardNumberEditTextRaw = (0, _reactNative.requireNativeComponent)('PrimerCardNumberEditText');
22
+ exports.PrimerCardNumberEditTextRaw = PrimerCardNumberEditTextRaw;
23
+ const {
24
+ PrimerRN
25
+ } = _reactNative.NativeModules;
26
+
27
+ const PrimerCardNumberEditText = props => {
28
+ const ref = (0, _react.useRef)( /*#__PURE__*/_react.default.createRef());
29
+ (0, _react.useEffect)(() => {
30
+ const tag = ref.current.current._nativeTag;
31
+
32
+ _RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.PrimerHeadlessUniversalCheckoutCardFormUIManager.addInput(tag);
33
+
34
+ return () => PrimerRN.removeInput(tag);
35
+ }, []);
36
+
37
+ const rawComponent = /*#__PURE__*/_react.default.createElement(PrimerCardNumberEditTextRaw, _extends({
38
+ ref: ref.current
39
+ }, props));
40
+
41
+ return rawComponent;
42
+ }; // PrimerCardholderNameEditText
43
+
44
+
45
+ exports.PrimerCardNumberEditText = PrimerCardNumberEditText;
46
+ const PrimerCardholderNameEditTextRaw = (0, _reactNative.requireNativeComponent)('PrimerCardholderNameEditText');
47
+ exports.PrimerCardholderNameEditTextRaw = PrimerCardholderNameEditTextRaw;
48
+
49
+ const PrimerCardholderNameEditText = props => {
50
+ const ref = (0, _react.useRef)( /*#__PURE__*/_react.default.createRef());
51
+ (0, _react.useEffect)(() => {
52
+ const tag = ref.current.current._nativeTag;
53
+ PrimerRN.addInput(tag);
54
+ return () => PrimerRN.removeInput(tag);
55
+ }, []);
56
+ return /*#__PURE__*/_react.default.createElement(PrimerCardholderNameEditTextRaw, _extends({
57
+ ref: ref.current
58
+ }, props));
59
+ }; // PrimerExpiryEditText
60
+
61
+
62
+ exports.PrimerCardholderNameEditText = PrimerCardholderNameEditText;
63
+ const PrimerExpiryEditTextRaw = (0, _reactNative.requireNativeComponent)('PrimerExpiryEditText');
64
+ exports.PrimerExpiryEditTextRaw = PrimerExpiryEditTextRaw;
65
+
66
+ const PrimerExpiryEditText = props => {
67
+ return /*#__PURE__*/_react.default.createElement(PrimerExpiryEditTextRaw, props);
68
+ }; // cvv
69
+
70
+
71
+ exports.PrimerExpiryEditText = PrimerExpiryEditText;
72
+ const PrimerCvvEditTextRaw = (0, _reactNative.requireNativeComponent)('PrimerCvvEditText');
73
+ exports.PrimerCvvEditTextRaw = PrimerCvvEditTextRaw;
74
+
75
+ const PrimerCvvEditText = props => {
76
+ return /*#__PURE__*/_react.default.createElement(PrimerCvvEditTextRaw, props);
77
+ };
78
+
79
+ exports.PrimerCvvEditText = PrimerCvvEditText;
80
+ //# sourceMappingURL=PrimerInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["PrimerInput.tsx"],"names":["PrimerCardNumberEditTextRaw","PrimerRN","NativeModules","PrimerCardNumberEditText","props","ref","React","createRef","tag","current","_nativeTag","PrimerHeadlessUniversalCheckoutCardFormUIManager","addInput","removeInput","rawComponent","PrimerCardholderNameEditTextRaw","PrimerCardholderNameEditText","PrimerExpiryEditTextRaw","PrimerExpiryEditText","PrimerCvvEditTextRaw","PrimerCvvEditText"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAGA;AACO,MAAMA,2BAA2B,GAAG,yCACzC,0BADyC,CAApC;;AAMP,MAAM;AAAEC,EAAAA;AAAF,IAAeC,0BAArB;;AAEO,MAAMC,wBAAiE,GAAIC,KAAD,IAAW;AAC1F,QAAMC,GAAG,GAAG,iCAAOC,eAAMC,SAAN,EAAP,CAAZ;AAEA,wBAAU,MAAM;AACd,UAAMC,GAAG,GAAGH,GAAG,CAACI,OAAJ,CAAYA,OAAZ,CAAoBC,UAAhC;;AACAC,0GAAiDC,QAAjD,CAA0DJ,GAA1D;;AACA,WAAO,MAAMP,QAAQ,CAACY,WAAT,CAAqBL,GAArB,CAAb;AACD,GAJD,EAIG,EAJH;;AAMA,QAAMM,YAAY,gBAChB,6BAAC,2BAAD;AAA6B,IAAA,GAAG,EAAET,GAAG,CAACI;AAAtC,KAAmDL,KAAnD,EADF;;AAIA,SAAOU,YAAP;AACD,CAdM,C,CAgBP;;;;AACO,MAAMC,+BAA+B,GAAG,yCAC7C,8BAD6C,CAAxC;;;AAMA,MAAMC,4BAAyE,GACpFZ,KADuF,IAEpF;AACH,QAAMC,GAAG,GAAG,iCAAOC,eAAMC,SAAN,EAAP,CAAZ;AAEA,wBAAU,MAAM;AACd,UAAMC,GAAG,GAAGH,GAAG,CAACI,OAAJ,CAAYA,OAAZ,CAAoBC,UAAhC;AACAT,IAAAA,QAAQ,CAACW,QAAT,CAAkBJ,GAAlB;AACA,WAAO,MAAMP,QAAQ,CAACY,WAAT,CAAqBL,GAArB,CAAb;AACD,GAJD,EAIG,EAJH;AAKA,sBAAO,6BAAC,+BAAD;AAAiC,IAAA,GAAG,EAAEH,GAAG,CAACI;AAA1C,KAAuDL,KAAvD,EAAP;AACD,CAXM,C,CAaP;;;;AACO,MAAMa,uBAAuB,GAAG,yCACrC,sBADqC,CAAhC;;;AAMA,MAAMC,oBAAyD,GACpEd,KADuE,IAEpE;AACH,sBAAO,6BAAC,uBAAD,EAA6BA,KAA7B,CAAP;AACD,CAJM,C,CAMP;;;;AACO,MAAMe,oBAAoB,GAAG,yCAClC,mBADkC,CAA7B;;;AAMA,MAAMC,iBAAmD,GAAIhB,KAAD,IAAW;AAC5E,sBAAO,6BAAC,oBAAD,EAA0BA,KAA1B,CAAP;AACD,CAFM","sourcesContent":["import { PrimerHeadlessUniversalCheckoutCardFormUIManager } from './RNTPrimerHeadlessUniversalCheckoutCardFormUIManager';\nimport React, { useEffect, useRef } from 'react';\nimport { NativeModules, requireNativeComponent, ViewProps } from 'react-native';\n\n\n// PrimerCardNumberEditText\nexport const PrimerCardNumberEditTextRaw = requireNativeComponent<{}>(\n 'PrimerCardNumberEditText'\n);\n\ntype PrimerCardNumberEditTextProps = ViewProps;\n\nconst { PrimerRN } = NativeModules;\n\nexport const PrimerCardNumberEditText: React.FC<PrimerCardNumberEditTextProps> = (props) => {\n const ref = useRef(React.createRef<any>());\n\n useEffect(() => {\n const tag = ref.current.current._nativeTag;\n PrimerHeadlessUniversalCheckoutCardFormUIManager.addInput(tag);\n return () => PrimerRN.removeInput(tag);\n }, []);\n\n const rawComponent = (\n <PrimerCardNumberEditTextRaw ref={ref.current} {...props} />\n );\n\n return rawComponent;\n};\n\n// PrimerCardholderNameEditText\nexport const PrimerCardholderNameEditTextRaw = requireNativeComponent<{}>(\n 'PrimerCardholderNameEditText'\n);\n\ntype PrimerCardholderNameEditTextProps = ViewProps;\n\nexport const PrimerCardholderNameEditText: React.FC<PrimerCardholderNameEditTextProps> = (\n props\n) => {\n const ref = useRef(React.createRef<any>());\n\n useEffect(() => {\n const tag = ref.current.current._nativeTag;\n PrimerRN.addInput(tag);\n return () => PrimerRN.removeInput(tag);\n }, []);\n return <PrimerCardholderNameEditTextRaw ref={ref.current} {...props} />;\n};\n\n// PrimerExpiryEditText\nexport const PrimerExpiryEditTextRaw = requireNativeComponent<{}>(\n 'PrimerExpiryEditText'\n);\n\ntype PrimerExpiryEditTextProps = ViewProps;\n\nexport const PrimerExpiryEditText: React.FC<PrimerExpiryEditTextProps> = (\n props\n) => {\n return <PrimerExpiryEditTextRaw {...props} />;\n};\n\n// cvv\nexport const PrimerCvvEditTextRaw = requireNativeComponent<{}>(\n 'PrimerCvvEditText'\n);\n\ntype PrimerCvvEditTextProps = ViewProps;\n\nexport const PrimerCvvEditText: React.FC<PrimerCvvEditTextProps> = (props) => {\n return <PrimerCvvEditTextRaw {...props} />;\n};\n"]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PrimerHeadlessUniversalCheckoutCardFormUIManager = void 0;
7
+
8
+ var _reactNative = require("react-native");
9
+
10
+ const {
11
+ PrimerHeadlessUniversalCheckoutCardFormUIManager
12
+ } = _reactNative.NativeModules;
13
+ exports.PrimerHeadlessUniversalCheckoutCardFormUIManager = PrimerHeadlessUniversalCheckoutCardFormUIManager;
14
+ //# sourceMappingURL=RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.tsx"],"names":["PrimerHeadlessUniversalCheckoutCardFormUIManager","NativeModules"],"mappings":";;;;;;;AAAA;;AACO,MAAM;AAAEA,EAAAA;AAAF,IAAuDC,0BAA7D","sourcesContent":["import { NativeModules } from 'react-native';\nexport const { PrimerHeadlessUniversalCheckoutCardFormUIManager } = NativeModules;"]}