@primer-io/react-native 2.28.0-beta.1 → 2.29.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 (110) hide show
  1. package/android/.settings/org.eclipse.buildship.core.prefs +2 -2
  2. package/android/build.gradle +1 -1
  3. package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +4 -4
  4. package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckout.kt +1 -1
  5. package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt +5 -5
  6. package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +8 -2
  7. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/cardRedirect/PrimerRNCardRedirectData.kt +1 -1
  8. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/phoneNumber/PrimerRNPhoneNumberData.kt +1 -1
  9. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/retailOutlets/PrimerRNRetailOutletData.kt +1 -1
  10. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/retailOutlets/RNRetailOutletsList.kt +1 -1
  11. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/{asset/PrimerRNAsset.kt → resource/Resources.kt} +41 -9
  12. package/android/src/main/java/com/primerioreactnative/components/manager/NativeViewContainer.kt +35 -0
  13. package/android/src/main/java/com/primerioreactnative/components/manager/ach/PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent.kt +4 -4
  14. package/android/src/main/java/com/primerioreactnative/components/manager/asset/PrimerRNHeadlessUniversalCheckoutAssetManager.kt +84 -2
  15. package/android/src/main/java/com/primerioreactnative/components/manager/banks/PrimerRNHeadlessUniversalCheckoutBanksComponent.kt +1 -1
  16. package/android/src/main/java/com/primerioreactnative/components/manager/googlePay/PrimerGooglePayButtonConstantsModule.kt +39 -0
  17. package/android/src/main/java/com/primerioreactnative/components/manager/googlePay/PrimerGooglePayButtonManager.kt +38 -0
  18. package/android/src/main/java/com/primerioreactnative/components/manager/klarna/PrimerKlarnaPaymentViewManager.kt +15 -78
  19. package/android/src/main/java/com/primerioreactnative/components/manager/klarna/PrimerRNHeadlessUniversalCheckoutKlarnaComponent.kt +4 -4
  20. package/android/src/main/java/com/primerioreactnative/components/manager/nativeUi/PrimerRNHeadlessUniversalCheckoutNativeUiManager.kt +1 -1
  21. package/android/src/main/java/com/primerioreactnative/components/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManager.kt +2 -2
  22. package/android/src/main/java/com/primerioreactnative/components/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManagerListener.kt +1 -1
  23. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerClientSessionRN.kt +1 -1
  24. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +1 -1
  25. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerPaymentInstrumentTokenRN.kt +5 -10
  26. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerSettingsRN.kt +49 -37
  27. package/android/src/main/java/com/primerioreactnative/datamodels/extensions/ach/AchUserDetailsCollectableData.kt +1 -1
  28. package/android/src/main/java/com/primerioreactnative/datamodels/extensions/ach/AchUserDetailsStep.kt +1 -1
  29. package/android/src/main/java/com/primerioreactnative/extensions/PaymentInstrumentData.kt +29 -16
  30. package/android/src/main/java/com/primerioreactnative/extensions/PrimerCheckoutAdditionalInfo.kt +7 -7
  31. package/android/src/main/java/com/primerioreactnative/extensions/PrimerIssuingBank.kt +1 -1
  32. package/android/src/main/java/com/primerioreactnative/extensions/PrimerOrder.kt +4 -2
  33. package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodOptionsRN.kt +48 -35
  34. package/android/src/main/java/com/primerioreactnative/extensions/PrimerUIOptionsRN.kt +11 -0
  35. package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCategory.kt +1 -1
  36. package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCategoryRN.kt +1 -1
  37. package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCollectableData.kt +2 -2
  38. package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentStep.kt +4 -4
  39. package/ios/Sources/DataModels/PrimerSettings+Extensions.swift +50 -7
  40. package/ios/Sources/Headless Universal Checkout/Managers/Assets Manager/RNTAssetsManager.m +7 -0
  41. package/ios/Sources/Headless Universal Checkout/Managers/Assets Manager/RNTAssetsManager.swift +162 -88
  42. package/ios/Sources/version.swift +1 -1
  43. package/lib/commonjs/HeadlessUniversalCheckout/Components/NativeResourceView.js +30 -0
  44. package/lib/commonjs/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +1 -0
  45. package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js +9 -0
  46. package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +1 -0
  47. package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js +32 -0
  48. package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
  49. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +6 -0
  50. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
  51. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js +6 -0
  52. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -1
  53. package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js +24 -1
  54. package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
  55. package/lib/commonjs/index.js +20 -0
  56. package/lib/commonjs/index.js.map +1 -1
  57. package/lib/commonjs/models/PrimerPaymentMethodResource.js +2 -0
  58. package/lib/{module/models/PrimerAsset.js.map → commonjs/models/PrimerPaymentMethodResource.js.map} +1 -1
  59. package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js +22 -0
  60. package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +1 -0
  61. package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js +3 -0
  62. package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +1 -0
  63. package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js +32 -0
  64. package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
  65. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +6 -0
  66. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
  67. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js +6 -0
  68. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -1
  69. package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js +24 -1
  70. package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
  71. package/lib/module/index.js +6 -0
  72. package/lib/module/index.js.map +1 -1
  73. package/lib/module/models/PrimerPaymentMethodResource.js +2 -0
  74. package/lib/{commonjs/models/PrimerAsset.js.map → module/models/PrimerPaymentMethodResource.js.map} +1 -1
  75. package/lib/typescript/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts +11 -0
  76. package/lib/typescript/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts.map +1 -0
  77. package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts +6 -0
  78. package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts.map +1 -0
  79. package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts +10 -1
  80. package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts.map +1 -1
  81. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.d.ts +16 -1
  82. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.d.ts.map +1 -1
  83. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.d.ts +14 -1
  84. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.d.ts.map +1 -1
  85. package/lib/typescript/HeadlessUniversalCheckout/Managers/VaultManager.d.ts.map +1 -1
  86. package/lib/typescript/index.d.ts +8 -1
  87. package/lib/typescript/index.d.ts.map +1 -1
  88. package/lib/typescript/models/PrimerPaymentMethodResource.d.ts +19 -0
  89. package/lib/typescript/models/PrimerPaymentMethodResource.d.ts.map +1 -0
  90. package/lib/typescript/models/PrimerPaymentMethodTokenData.d.ts +10 -49
  91. package/lib/typescript/models/PrimerPaymentMethodTokenData.d.ts.map +1 -1
  92. package/lib/typescript/models/PrimerSettings.d.ts +17 -4
  93. package/lib/typescript/models/PrimerSettings.d.ts.map +1 -1
  94. package/package.json +1 -1
  95. package/primer-io-react-native.podspec +1 -1
  96. package/src/HeadlessUniversalCheckout/Components/NativeResourceView.tsx +31 -0
  97. package/src/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.tsx +8 -0
  98. package/src/HeadlessUniversalCheckout/Managers/AssetsManager.ts +34 -1
  99. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.ts +24 -1
  100. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.ts +22 -1
  101. package/src/HeadlessUniversalCheckout/Managers/VaultManager.ts +22 -1
  102. package/src/index.tsx +9 -3
  103. package/src/models/PrimerPaymentMethodResource.ts +21 -0
  104. package/src/models/PrimerPaymentMethodTokenData.ts +10 -53
  105. package/src/models/PrimerSettings.ts +20 -5
  106. package/lib/commonjs/models/PrimerAsset.js +0 -2
  107. package/lib/module/models/PrimerAsset.js +0 -2
  108. package/lib/typescript/models/PrimerAsset.d.ts +0 -15
  109. package/lib/typescript/models/PrimerAsset.d.ts.map +0 -1
  110. package/src/models/PrimerAsset.ts +0 -14
@@ -72,7 +72,10 @@ interface IPrimerApplePayOptions {
72
72
  * @deprecated Use Client Session API to provide merchant name value: https://primer.io/docs/payment-methods/apple-pay/direct-integration#prepare-the-client-session
73
73
  */
74
74
  merchantName?: string;
75
- isCaptureBillingAddressEnabled?: boolean;
75
+ /**
76
+ * @deprecated Use BillingOptions to configure required billing fields.
77
+ */
78
+ isCaptureBillingAddressEnabled: boolean;
76
79
  /**
77
80
  * If you don't want to present the Apple Pay option when the device doesn't support it, set this to `false`.
78
81
  * Default value is `true`.
@@ -85,13 +88,16 @@ interface IPrimerApplePayOptions {
85
88
  */
86
89
  checkProvidedNetworks?: boolean;
87
90
  shippingOptions?: IShippingOptions;
91
+ billingOptions?: IBillingOptions;
88
92
  }
89
93
  interface IShippingOptions {
90
- isCaptureShippingAddressEnabled: boolean;
91
- additionalShippingContactFields?: AdditionalShippingContactField[];
94
+ shippingContactFields?: RequiredContactField[];
92
95
  requireShippingMethod: boolean;
93
96
  }
94
- declare type AdditionalShippingContactField = 'name' | 'emailAddress' | 'phoneNumber';
97
+ interface IBillingOptions {
98
+ requiredBillingContactFields?: RequiredContactField[];
99
+ }
100
+ declare type RequiredContactField = 'name' | 'emailAddress' | 'phoneNumber' | 'postalAddress';
95
101
  interface IPrimerCardPaymentOptions {
96
102
  is3DSOnVaultingEnabled: boolean;
97
103
  }
@@ -107,6 +113,11 @@ interface IPrimerGooglePayOptions {
107
113
  shippingAddressParameters?: IPrimerGoogleShippingAddressParameters;
108
114
  requireShippingMethod?: boolean;
109
115
  emailAddressRequired?: boolean;
116
+ buttonOptions?: IPrimerGooglePayButtonOptions;
117
+ }
118
+ interface IPrimerGooglePayButtonOptions {
119
+ buttonType?: number;
120
+ buttonTheme?: number;
110
121
  }
111
122
  interface IPrimerGoogleShippingAddressParameters {
112
123
  isPhoneNumberRequired?: boolean;
@@ -119,8 +130,10 @@ interface IPrimerUIOptions {
119
130
  isInitScreenEnabled?: boolean;
120
131
  isSuccessScreenEnabled?: boolean;
121
132
  isErrorScreenEnabled?: boolean;
133
+ dismissalMechanism?: DismissalMechanism[];
122
134
  theme?: IPrimerTheme;
123
135
  }
136
+ export declare type DismissalMechanism = 'gestures' | 'closeButton';
124
137
  interface IPrimerDebugOptions {
125
138
  is3DSSanityCheckEnabled?: boolean;
126
139
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PrimerSettings.d.ts","sourceRoot":"","sources":["../../../src/models/PrimerSettings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PrimerSettings.d.ts","sourceRoot":"","sources":["../../../src/models/PrimerSettings.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer-io/react-native",
3
- "version": "2.28.0-beta.1",
3
+ "version": "2.29.0",
4
4
  "description": "Primer SDK for RN",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -16,5 +16,5 @@ Pod::Spec.new do |s|
16
16
  s.source_files = "ios/**/*.{h,m,mm,swift}"
17
17
 
18
18
  s.dependency "React-Core"
19
- s.dependency "PrimerSDK", "2.32.0-express-checkout.1"
19
+ s.dependency "PrimerSDK", "2.34.0"
20
20
  end
@@ -0,0 +1,31 @@
1
+ import { GestureResponderEvent, StyleSheet, TouchableOpacity, ViewStyle, NativeModules } from "react-native";
2
+ import { PrimerGooglePayButton } from "./PrimerGooglePayButton";
3
+ import React from "react";
4
+
5
+ interface NativeResourceViewProps {
6
+ nativeViewName: string;
7
+ style?: ViewStyle;
8
+ onPress?: (event: GestureResponderEvent) => void;
9
+ }
10
+
11
+ export const NativeResourceView: React.FC<NativeResourceViewProps> = ({
12
+ nativeViewName,
13
+ style,
14
+ onPress,
15
+ }) => {
16
+ return (
17
+ <TouchableOpacity onPress={onPress}>
18
+ {nativeViewName === 'PrimerGooglePayButton' ? (
19
+ <PrimerGooglePayButton style={[styles.defaultContainer, style]} />
20
+ ) : null}
21
+ </TouchableOpacity>
22
+ );
23
+ };
24
+
25
+ export const PrimerGooglePayButtonConstants = NativeModules.PrimerGooglePayButtonConstants?.getConstants();
26
+
27
+ const styles = StyleSheet.create({
28
+ defaultContainer: {
29
+ minHeight: 75
30
+ }
31
+ });
@@ -0,0 +1,8 @@
1
+ import { requireNativeComponent, ViewProps } from "react-native";
2
+
3
+ interface PrimerGooglePayButtonProps extends ViewProps {
4
+ }
5
+
6
+ export const PrimerGooglePayButton = requireNativeComponent<PrimerGooglePayButtonProps>(
7
+ 'PrimerGooglePayButton'
8
+ );
@@ -1,4 +1,5 @@
1
- import { IPrimerAsset as Asset } from '../../models/PrimerAsset';
1
+ import { Resource } from 'src';
2
+ import { IPrimerAsset as Asset } from '../../models/PrimerPaymentMethodResource';
2
3
  import { NativeModules } from 'react-native';
3
4
 
4
5
  const { RNTPrimerHeadlessUniversalCheckoutAssetsManager } = NativeModules;
@@ -26,6 +27,9 @@ class PrimerHeadlessUniversalCheckoutAssetsManager {
26
27
  });
27
28
  }
28
29
 
30
+ /**
31
+ * @deprecated Use getPaymentMethodResource instead
32
+ */
29
33
  async getPaymentMethodAsset(paymentMethodType: string): Promise<Asset> {
30
34
  return new Promise(async (resolve, reject) => {
31
35
  try {
@@ -39,6 +43,9 @@ class PrimerHeadlessUniversalCheckoutAssetsManager {
39
43
  });
40
44
  }
41
45
 
46
+ /**
47
+ * @deprecated Use getPaymentMethodResources instead
48
+ */
42
49
  async getPaymentMethodAssets(): Promise<Asset[]> {
43
50
  return new Promise(async (resolve, reject) => {
44
51
  try {
@@ -51,6 +58,32 @@ class PrimerHeadlessUniversalCheckoutAssetsManager {
51
58
  }
52
59
  });
53
60
  }
61
+
62
+ async getPaymentMethodResources(): Promise<Resource[]> {
63
+ return new Promise(async (resolve, reject) => {
64
+ try {
65
+ const data = await RNTPrimerHeadlessUniversalCheckoutAssetsManager.getPaymentMethodResources();
66
+ const paymentMethodResources: Resource[] = data.paymentMethodResources;
67
+ resolve(paymentMethodResources);
68
+ } catch (err) {
69
+ console.error(err);
70
+ reject(err);
71
+ }
72
+ });
73
+ }
74
+
75
+ async getPaymentMethodResource(paymentMethodType: string): Promise<Resource> {
76
+ return new Promise(async (resolve, reject) => {
77
+ try {
78
+ const data = await RNTPrimerHeadlessUniversalCheckoutAssetsManager.getPaymentMethodResource(paymentMethodType);
79
+ const paymentMethodResource: Resource = data.paymentMethodResource;
80
+ resolve(paymentMethodResource);
81
+ } catch (err) {
82
+ console.error(err);
83
+ reject(err);
84
+ }
85
+ });
86
+ }
54
87
  }
55
88
 
56
89
  export default PrimerHeadlessUniversalCheckoutAssetsManager;
@@ -42,21 +42,38 @@ export interface BanksComponent {
42
42
  * Selects the bank with the given {@link bankId}, triggering the
43
43
  * validation flow.
44
44
  * @param bankId The id of the selected bank.
45
+ * @deprecated use handleBankChange function instead.
45
46
  */
46
47
  onBankSelected(bankId: string): Promise<void>;
47
48
 
49
+ /**
50
+ * Selects the bank with the given {@link bankId}, triggering the
51
+ * validation flow.
52
+ * @param bankId The id of the selected bank.
53
+ */
54
+ handleBankChange(bankId: string): Promise<void>;
55
+
48
56
  /**
49
57
  * Filters down the bank list with the given {@link filter}, triggering
50
58
  * the validation flow and a new step emission that contains the filtered
51
59
  * list of banks in the form of an {@link IssuingBank} array.
52
60
  * @param filter The text to filter the bank list by.
61
+ * @deprecated use handleBankFilterChange function instead.
53
62
  */
54
63
  onBankFilterChange(filter: string): Promise<void>;
55
64
 
65
+ /**
66
+ * Filters down the bank list with the given {@link filter}, triggering
67
+ * the validation flow and a new step emission that contains the filtered
68
+ * list of banks in the form of an {@link IssuingBank} array.
69
+ * @param filter The text to filter the bank list by.
70
+ */
71
+ handleBankFilterChange(filter: string): Promise<void>;
72
+
56
73
  /**
57
74
  * Submits the component, triggering tokenization and a redirect to the
58
75
  * bank's page for finalizing the payment. This function should only be
59
- * called after selecting a bank via {@link onBankSelected}.
76
+ * called after selecting a bank via {@link handleBankChange}.
60
77
  */
61
78
  submit(): Promise<void>;
62
79
  }
@@ -85,9 +102,15 @@ export class PrimerHeadlessUniversalCheckoutComponentWithRedirectManager {
85
102
  onBankFilterChange: async (filter: String) => {
86
103
  RNTPrimerHeadlessUniversalCheckoutBanksComponent.onBankFilterChange(filter);
87
104
  },
105
+ handleBankFilterChange: async (filter: String) => {
106
+ RNTPrimerHeadlessUniversalCheckoutBanksComponent.onBankFilterChange(filter);
107
+ },
88
108
  onBankSelected: async (bankId: String) => {
89
109
  RNTPrimerHeadlessUniversalCheckoutBanksComponent.onBankSelected(bankId);
90
110
  },
111
+ handleBankChange: async (bankId: String) => {
112
+ RNTPrimerHeadlessUniversalCheckoutBanksComponent.onBankSelected(bankId);
113
+ },
91
114
  }
92
115
  await RNTPrimerHeadlessUniversalCheckoutBanksComponent.configure(props.paymentMethodType);
93
116
  return banksComponent;
@@ -35,18 +35,33 @@ export interface KlarnaComponent {
35
35
  * triggering the validation flow.
36
36
  * @param paymentOptions The options to use when initializing the Klarna
37
37
  * payment view.
38
+ * @deprecated use handlePaymentOptionsChange function instead.
38
39
  */
39
40
  onSetPaymentOptions(paymentOptions: KlarnaPaymentOptions): Promise<void>;
40
41
 
42
+ /**
43
+ * Sets the options to use when initializing the Klarna payment view,
44
+ * triggering the validation flow.
45
+ * @param paymentOptions The options to use when initializing the Klarna
46
+ * payment view.
47
+ */
48
+ handlePaymentOptionsChange(paymentOptions: KlarnaPaymentOptions): Promise<void>;
49
+
41
50
  /**
42
51
  * Finalizes the payment.
52
+ * @deprecated use finalizePayment function instead.
43
53
  */
44
54
  onFinalizePayment(): Promise<void>;
45
55
 
56
+ /**
57
+ * Finalizes the payment.
58
+ */
59
+ finalizePayment(): Promise<void>;
60
+
46
61
  /**
47
62
  * Submits the component, initiating the payment authorization process.
48
63
  * This function should only be called after setting the payment options
49
- * {@link onSetPaymentOptions}.
64
+ * {@link handlePaymentOptionsChange}.
50
65
  */
51
66
  submit(): Promise<void>;
52
67
  }
@@ -74,9 +89,15 @@ export class PrimerHeadlessUniversalCheckoutKlarnaManager {
74
89
  onSetPaymentOptions: async (paymentOptions: KlarnaPaymentOptions) => {
75
90
  RNTPrimerHeadlessUniversalCheckoutKlarnaComponent.onSetPaymentOptions(paymentOptions);
76
91
  },
92
+ handlePaymentOptionsChange: async (paymentOptions: KlarnaPaymentOptions) => {
93
+ RNTPrimerHeadlessUniversalCheckoutKlarnaComponent.onSetPaymentOptions(paymentOptions);
94
+ },
77
95
  onFinalizePayment: async () => {
78
96
  RNTPrimerHeadlessUniversalCheckoutKlarnaComponent.onFinalizePayment();
79
97
  },
98
+ finalizePayment: async () => {
99
+ RNTPrimerHeadlessUniversalCheckoutKlarnaComponent.onFinalizePayment();
100
+ },
80
101
  }
81
102
  await RNTPrimerHeadlessUniversalCheckoutKlarnaComponent.configure(props.primerSessionIntent);
82
103
  return klarnaComponent;
@@ -36,7 +36,8 @@ class PrimerHeadlessUniversalCheckoutVaultManager {
36
36
  const data: PrimerVaultedPaymentMethodResult =
37
37
  await RNPrimerHeadlessUniversalCheckoutVaultManager.fetchVaultedPaymentMethods();
38
38
  const paymentMethods: VaultedPaymentMethod[] = data.paymentMethods;
39
- resolve(paymentMethods);
39
+ const mappedPaymentMethods = sanitizePaymentMethods(paymentMethods);
40
+ resolve(mappedPaymentMethods);
40
41
  } catch (err) {
41
42
  console.error(err);
42
43
  reject(err);
@@ -87,4 +88,24 @@ class PrimerHeadlessUniversalCheckoutVaultManager {
87
88
  }
88
89
  }
89
90
 
91
+ // Convert accountNumberLastFourDigits to accountNumberLast4Digits when present
92
+ // Overcomes an iOS limitation of toJsonObject()
93
+ function sanitizePaymentMethods(paymentMethods: VaultedPaymentMethod[]): VaultedPaymentMethod[] {
94
+ return paymentMethods.map(method => {
95
+ const unwrappedInstrumentData = method.paymentInstrumentData as any;
96
+ if (unwrappedInstrumentData?.accountNumberLastFourDigits !== undefined) {
97
+ const { accountNumberLastFourDigits, ...rest } = unwrappedInstrumentData;
98
+ return {
99
+ ...method,
100
+ paymentInstrumentData: {
101
+ ...rest,
102
+ accountNumberLast4Digits: accountNumberLastFourDigits
103
+ }
104
+ };
105
+ }
106
+ return method;
107
+ });
108
+ }
109
+
110
+
90
111
  export default PrimerHeadlessUniversalCheckoutVaultManager;
package/src/index.tsx CHANGED
@@ -34,10 +34,10 @@ export {
34
34
  } from './models/PrimerCheckoutData';
35
35
  export { PrimerCheckoutPaymentMethodData as CheckoutPaymentMethodData } from './models/PrimerCheckoutPaymentMethodData';
36
36
  export { PrimerError } from './models/PrimerError';
37
- export type { IPrimerAsset as Asset } from './models/PrimerAsset';
37
+ export type { PrimerPaymentMethodAsset as Asset} from './models/PrimerPaymentMethodResource';
38
+ export type { IPrimerPaymentMethodResource as Resource, PrimerPaymentMethodAsset as AssetResource, PrimerPaymentMethodNativeView as NativeViewResource, IPrimerAsset as AssetResourceColors } from './models/PrimerPaymentMethodResource';
38
39
  export { PrimerHeadlessUniversalCheckout as HeadlessUniversalCheckout } from './HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout';
39
40
  export type { IPrimerHeadlessUniversalCheckoutPaymentMethod as PaymentMethod } from './models/PrimerHeadlessUniversalCheckoutPaymentMethod';
40
-
41
41
  import PrimerHeadlessUniversalCheckoutAssetsManager from './HeadlessUniversalCheckout/Managers/AssetsManager';
42
42
  export { PrimerHeadlessUniversalCheckoutAssetsManager as AssetsManager };
43
43
  import PrimerHeadlessUniversalCheckoutPaymentMethodNativeUIManager from './HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager';
@@ -76,6 +76,12 @@ import { PaymentSessionCreated, PaymentSessionAuthorized, PaymentSessionFinalize
76
76
  export { PaymentSessionCreated, PaymentSessionAuthorized, PaymentSessionFinalized, PaymentViewLoaded, KlarnaPaymentStep };
77
77
  import { PrimerKlarnaPaymentView } from './HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView'
78
78
  export { PrimerKlarnaPaymentView }
79
+ import { NativeResourceView } from './HeadlessUniversalCheckout/Components/NativeResourceView'
80
+ export { NativeResourceView }
81
+ import { PrimerGooglePayButtonConstants } from './HeadlessUniversalCheckout/Components/NativeResourceView'
82
+ export { PrimerGooglePayButtonConstants }
83
+ import { PrimerGooglePayButton } from './HeadlessUniversalCheckout/Components/PrimerGooglePayButton'
84
+ export { PrimerGooglePayButton }
79
85
  import { UserDetailsRetrieved, UserDetailsCollected, AchStep } from './models/ach/AchSteps';
80
86
  export { UserDetailsRetrieved as CollectUserDetails, UserDetailsCollected, AchStep }
81
87
  import { AchFirstName, AchLastName, AchEmailAddress, AchValidatableData } from './models/ach/AchCollectableData';
@@ -94,4 +100,4 @@ export { BankId, BankListFilter, BanksValidatableData };
94
100
  import { BanksLoading, BanksRetrieved, BanksStep } from './models/banks/BanksSteps';
95
101
  export { BanksLoading, BanksRetrieved, BanksStep };
96
102
  import { NamedComponentValidatableData } from './models/NamedComponentValidatableData';
97
- export { NamedComponentValidatableData };
103
+ export { NamedComponentValidatableData };
@@ -0,0 +1,21 @@
1
+ export interface IPrimerPaymentMethodResource {
2
+ paymentMethodType: string;
3
+ paymentMethodName: string;
4
+ nativeViewName?: string;
5
+ }
6
+
7
+ export interface PrimerPaymentMethodAsset extends IPrimerPaymentMethodResource {
8
+ paymentMethodLogo: IPrimerAsset
9
+ paymentMethodBackgroundColor: IPrimerAsset
10
+ nativeViewName?: undefined
11
+ }
12
+
13
+ export interface PrimerPaymentMethodNativeView extends IPrimerPaymentMethodResource {
14
+ nativeViewName: string
15
+ }
16
+
17
+ export interface IPrimerAsset {
18
+ colored?: string;
19
+ dark?: string;
20
+ light?: string;
21
+ }
@@ -30,76 +30,33 @@ export interface IPrimerVaultData {
30
30
  }
31
31
 
32
32
  export interface IPrimerPaymentInstrumentData {
33
- paypalBillingAgreementId?: string;
34
- first6Digits?: string;
35
- last4Digits?: string;
36
- expirationMonth?: string;
37
- expirationYear?: string;
38
- cardholderName?: string;
39
33
  network?: string;
40
- isNetworkTokenized?: boolean;
34
+ cardholderName?: string;
35
+ first6Digits?: number;
36
+ last4Digits?: number;
37
+ accountNumberLast4Digits?: number;
38
+ expirationMonth?: number;
39
+ expirationYear?: number;
40
+ externalPayerInfo?: IExternalPayerInfo;
41
41
  klarnaCustomerToken?: string;
42
-
43
42
  sessionData?: IKlarnaSessionData;
44
- externalPayerInfo?: IExternalPayerInfo;
45
- shippingAddress?: IShippingAddress;
43
+ paymentMethodType?: string;
46
44
  binData?: IBinData;
47
-
48
- gocardlessMandateId?: string;
49
- authorizationToken?: string;
50
- hashedIdentifier?: string;
51
- mcc?: string;
52
- mnc?: string;
53
- mx?: string;
54
- currencyCode?: string;
55
- productId?: string;
45
+ bankName?: string;
56
46
  }
57
47
 
58
48
  export interface IKlarnaSessionData {
59
49
  recurringDescription?: string;
60
- purchaseCountry?: string;
61
- purchaseCurrency?: string;
62
- locale?: string;
63
- orderAmount?: string;
64
- orderLines?: IKlarnaSessionOrderLines[];
65
50
  billingAddress?: IKlarnaBillingAddress;
66
- tokenDetails?: IKlarnaSessionDataTokenDetails;
67
- }
68
-
69
- export interface IKlarnaSessionOrderLines {
70
- type?: string;
71
- name?: string;
72
- quantity?: number;
73
- unitPrice?: number;
74
- totalAmount?: number;
75
- totalDiscountAmount?: number;
76
51
  }
77
52
 
78
53
  export interface IKlarnaBillingAddress {
79
- addressLine1?: string;
80
- addressLine2?: string;
81
- addressLine3?: string;
82
- city?: string;
83
- countryCode?: string;
84
54
  email?: string;
85
- firstName?: string;
86
- lastName?: string;
87
- phoneNumber?: string;
88
- postalCode?: string;
89
- state?: string;
90
- title?: string;
91
- }
92
-
93
- export interface IKlarnaSessionDataTokenDetails {
94
- brand?: string;
95
- maskedNumber?: string;
96
- type: string;
97
- expiryDate?: string;
98
55
  }
99
56
 
100
57
  export interface IExternalPayerInfo {
58
+ email: string;
101
59
  externalPayerId?: string;
102
- email?: string;
103
60
  firstName?: string;
104
61
  lastName?: string;
105
62
  }
@@ -1,4 +1,3 @@
1
-
2
1
  import type { PrimerCheckoutData } from "./PrimerCheckoutData";
3
2
  import type { PrimerCheckoutAdditionalInfo } from "./PrimerCheckoutAdditionalInfo";
4
3
  import type { PrimerCheckoutPaymentMethodData } from "./PrimerCheckoutPaymentMethodData";
@@ -98,7 +97,10 @@ interface IPrimerApplePayOptions {
98
97
  * @deprecated Use Client Session API to provide merchant name value: https://primer.io/docs/payment-methods/apple-pay/direct-integration#prepare-the-client-session
99
98
  */
100
99
  merchantName?: string;
101
- isCaptureBillingAddressEnabled?: boolean;
100
+ /**
101
+ * @deprecated Use BillingOptions to configure required billing fields.
102
+ */
103
+ isCaptureBillingAddressEnabled: boolean;
102
104
  /**
103
105
  * If you don't want to present the Apple Pay option when the device doesn't support it, set this to `false`.
104
106
  * Default value is `true`.
@@ -111,13 +113,17 @@ interface IPrimerApplePayOptions {
111
113
  */
112
114
  checkProvidedNetworks?: boolean;
113
115
  shippingOptions?: IShippingOptions;
116
+ billingOptions?: IBillingOptions;
114
117
  }
115
118
  interface IShippingOptions {
116
- isCaptureShippingAddressEnabled: boolean;
117
- additionalShippingContactFields?: AdditionalShippingContactField[];
119
+ shippingContactFields?: RequiredContactField[];
118
120
  requireShippingMethod: boolean;
119
121
  }
120
- type AdditionalShippingContactField = 'name' | 'emailAddress' | 'phoneNumber';
122
+ interface IBillingOptions {
123
+ requiredBillingContactFields?: RequiredContactField[];
124
+ }
125
+
126
+ type RequiredContactField = 'name' | 'emailAddress' | 'phoneNumber' | 'postalAddress';
121
127
 
122
128
  interface IPrimerCardPaymentOptions {
123
129
  is3DSOnVaultingEnabled: boolean;
@@ -136,6 +142,12 @@ interface IPrimerGooglePayOptions {
136
142
  shippingAddressParameters?: IPrimerGoogleShippingAddressParameters;
137
143
  requireShippingMethod?: boolean;
138
144
  emailAddressRequired?: boolean;
145
+ buttonOptions?: IPrimerGooglePayButtonOptions;
146
+ }
147
+
148
+ interface IPrimerGooglePayButtonOptions {
149
+ buttonType?: number;
150
+ buttonTheme?: number;
139
151
  }
140
152
 
141
153
  interface IPrimerGoogleShippingAddressParameters {
@@ -153,9 +165,12 @@ interface IPrimerUIOptions {
153
165
  isInitScreenEnabled?: boolean;
154
166
  isSuccessScreenEnabled?: boolean;
155
167
  isErrorScreenEnabled?: boolean;
168
+ dismissalMechanism?: DismissalMechanism[];
156
169
  theme?: IPrimerTheme;
157
170
  }
158
171
 
172
+ export type DismissalMechanism = 'gestures' | 'closeButton';
173
+
159
174
  //----------------------------------------
160
175
 
161
176
  interface IPrimerDebugOptions {
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=PrimerAsset.js.map
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=PrimerAsset.js.map
@@ -1,15 +0,0 @@
1
- export interface IPrimerAsset {
2
- paymentMethodType: string;
3
- paymentMethodName: string;
4
- paymentMethodLogo: {
5
- colored?: string;
6
- dark?: string;
7
- light?: string;
8
- };
9
- paymentMethodBackgroundColor: {
10
- colored?: string;
11
- dark?: string;
12
- light?: string;
13
- };
14
- }
15
- //# sourceMappingURL=PrimerAsset.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PrimerAsset.d.ts","sourceRoot":"","sources":["../../../src/models/PrimerAsset.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAA;IACD,4BAA4B,EAAE;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAA;CACJ"}
@@ -1,14 +0,0 @@
1
- export interface IPrimerAsset {
2
- paymentMethodType: string;
3
- paymentMethodName: string;
4
- paymentMethodLogo: {
5
- colored?: string;
6
- dark?: string;
7
- light?: string;
8
- }
9
- paymentMethodBackgroundColor: {
10
- colored?: string;
11
- dark?: string;
12
- light?: string;
13
- }
14
- }