@primer-io/react-native 2.6.1 → 2.7.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 (58) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +1 -0
  3. package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +24 -1
  4. package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt +24 -1
  5. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerCheckoutAdditionalInfoRN.kt +13 -0
  6. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerCheckoutDataRN.kt +4 -1
  7. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerEvents.kt +1 -0
  8. package/android/src/main/java/com/primerioreactnative/extensions/PrimerCheckoutAdditionalInfo.kt +12 -0
  9. package/android/src/main/java/com/primerioreactnative/extensions/PrimerCheckoutData.kt +1 -1
  10. package/android/src/main/java/com/primerioreactnative/utils/PrimerHeadlessUniversalCheckoutImplementedRNCallbacks.kt +2 -0
  11. package/android/src/main/java/com/primerioreactnative/utils/PrimerImplementedRNCallbacks.kt +2 -0
  12. package/ios/DataModels/ImplementedRNCallbacks.swift +6 -3
  13. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +23 -1
  14. package/ios/RNTPrimer.swift +72 -49
  15. package/lib/commonjs/Primer.js +14 -3
  16. package/lib/commonjs/Primer.js.map +1 -1
  17. package/lib/commonjs/RNPrimer.js +1 -1
  18. package/lib/commonjs/RNPrimer.js.map +1 -1
  19. package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js +17 -6
  20. package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +1 -1
  21. package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckout.js +1 -1
  22. package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
  23. package/lib/commonjs/index.js +14 -0
  24. package/lib/commonjs/index.js.map +1 -1
  25. package/lib/commonjs/models/PrimerCheckoutAdditionalInfo.js +2 -0
  26. package/lib/commonjs/models/PrimerCheckoutAdditionalInfo.js.map +1 -0
  27. package/lib/commonjs/models/PrimerCheckoutData.js +3 -0
  28. package/lib/commonjs/models/PrimerCheckoutData.js.map +1 -1
  29. package/lib/module/Primer.js +14 -3
  30. package/lib/module/Primer.js.map +1 -1
  31. package/lib/module/RNPrimer.js +1 -1
  32. package/lib/module/RNPrimer.js.map +1 -1
  33. package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js +17 -6
  34. package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +1 -1
  35. package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckout.js +1 -1
  36. package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
  37. package/lib/module/index.js +1 -0
  38. package/lib/module/index.js.map +1 -1
  39. package/lib/module/models/PrimerCheckoutAdditionalInfo.js +2 -0
  40. package/lib/module/models/PrimerCheckoutAdditionalInfo.js.map +1 -0
  41. package/lib/module/models/PrimerCheckoutData.js +2 -0
  42. package/lib/module/models/PrimerCheckoutData.js.map +1 -1
  43. package/lib/typescript/src/RNPrimer.d.ts +1 -1
  44. package/lib/typescript/src/headless_checkout/RNPrimerHeadlessUniversalCheckout.d.ts +1 -1
  45. package/lib/typescript/src/index.d.ts +1 -0
  46. package/lib/typescript/src/models/PrimerCheckoutAdditionalInfo.d.ts +10 -0
  47. package/lib/typescript/src/models/PrimerCheckoutData.d.ts +3 -1
  48. package/lib/typescript/src/models/PrimerSettings.d.ts +2 -0
  49. package/package.json +1 -1
  50. package/primer-io-react-native.podspec +1 -1
  51. package/src/Primer.ts +16 -0
  52. package/src/RNPrimer.ts +2 -0
  53. package/src/headless_checkout/PrimerHeadlessUniversalCheckout.ts +16 -0
  54. package/src/headless_checkout/RNPrimerHeadlessUniversalCheckout.ts +2 -0
  55. package/src/index.tsx +5 -1
  56. package/src/models/PrimerCheckoutAdditionalInfo.ts +11 -0
  57. package/src/models/PrimerCheckoutData.ts +5 -2
  58. package/src/models/PrimerSettings.ts +8 -6
package/src/RNPrimer.ts CHANGED
@@ -14,6 +14,7 @@ type EventType =
14
14
  | 'onDismiss'
15
15
  | 'onTokenizeSuccess'
16
16
  | 'onResumeSuccess'
17
+ | 'onResumePending'
17
18
  | 'detectImplementedRNCallbacks';
18
19
 
19
20
  export interface IPrimerError {
@@ -31,6 +32,7 @@ const eventTypes: EventType[] = [
31
32
  'onDismiss',
32
33
  'onTokenizeSuccess',
33
34
  'onResumeSuccess',
35
+ 'onResumePending',
34
36
  'detectImplementedRNCallbacks'
35
37
  ];
36
38
 
@@ -1,5 +1,6 @@
1
1
  import RNPrimerHeadlessUniversalCheckout from './RNPrimerHeadlessUniversalCheckout';
2
2
  import type { PrimerCheckoutData } from '../models/PrimerCheckoutData';
3
+ import type { PrimerCheckoutAdditionalInfo } from '../models/PrimerCheckoutAdditionalInfo';
3
4
  import type { PrimerCheckoutPaymentMethodData } from '../models/PrimerCheckoutPaymentMethodData';
4
5
  import type { PrimerTokenizationHandler, PrimerResumeHandler, PrimerPaymentCreationHandler } from '../models/PrimerInterfaces';
5
6
  import type { PrimerHeadlessUniversalCheckoutStartResponse } from './types';
@@ -102,6 +103,7 @@ async function configureListeners(): Promise<void> {
102
103
  onClientSessionUpdate: (primerSettings?.onClientSessionUpdate !== undefined),
103
104
  onTokenizeSuccess: (primerSettings?.onTokenizeSuccess !== undefined),
104
105
  onResumeSuccess: (primerSettings?.onResumeSuccess !== undefined),
106
+ onResumePending: (primerSettings?.onResumePending !== undefined),
105
107
  onDismiss: false,
106
108
  onError: (primerSettings?.onError !== undefined),
107
109
  onHUCAvailablePaymentMethodsLoaded: (primerSettings?.onAvailablePaymentMethodsLoad !== undefined),
@@ -127,6 +129,20 @@ async function configureListeners(): Promise<void> {
127
129
  );
128
130
  }
129
131
 
132
+ if (implementedRNCallbacks.onResumePending) {
133
+ RNPrimerHeadlessUniversalCheckout.addListener(
134
+ 'onResumePending',
135
+ (additionalInfo) => {
136
+ if (primerSettings && primerSettings.onResumePending) {
137
+ const checkoutAdditionalInfo: PrimerCheckoutAdditionalInfo = additionalInfo;
138
+ primerSettings.onResumePending(checkoutAdditionalInfo);
139
+ } else {
140
+ // Ignore!
141
+ }
142
+ }
143
+ );
144
+ }
145
+
130
146
  if (implementedRNCallbacks.onHUCPrepareStart) {
131
147
  RNPrimerHeadlessUniversalCheckout.addListener(
132
148
  'onHUCPrepareStart',
@@ -11,6 +11,7 @@ type EventType =
11
11
  | 'onHUCPaymentMethodShow'
12
12
  | 'onTokenizeSuccess'
13
13
  | 'onResumeSuccess'
14
+ | 'onResumePending'
14
15
  | 'onBeforePaymentCreate'
15
16
  | 'onBeforeClientSessionUpdate'
16
17
  | 'onClientSessionUpdate'
@@ -24,6 +25,7 @@ const eventTypes: EventType[] = [
24
25
  'onHUCPaymentMethodShow',
25
26
  'onTokenizeSuccess',
26
27
  'onResumeSuccess',
28
+ 'onResumePending',
27
29
  'onBeforePaymentCreate',
28
30
  'onBeforeClientSessionUpdate',
29
31
  'onClientSessionUpdate',
package/src/index.tsx CHANGED
@@ -25,7 +25,11 @@ export {
25
25
  PrimerRawData,
26
26
  PrimerRawCardData
27
27
  } from './models/PrimerRawData';
28
- export {
28
+ export {
29
+ PrimerCheckoutAdditionalInfo,
30
+ MultibancoCheckoutAdditionalInfo
31
+ } from './models/PrimerCheckoutAdditionalInfo';
32
+ export {
29
33
  PrimerCheckoutData,
30
34
  PrimerCheckoutDataPayment,
31
35
  } from './models/PrimerCheckoutData';
@@ -0,0 +1,11 @@
1
+ export type PrimerCheckoutAdditionalInfo = IPrimerCheckoutAdditionalInfo;
2
+
3
+ interface IPrimerCheckoutAdditionalInfo {}
4
+
5
+ export type MultibancoCheckoutAdditionalInfo = IMultibancoCheckoutAdditionalInfo;
6
+
7
+ interface IMultibancoCheckoutAdditionalInfo extends IPrimerCheckoutAdditionalInfo {
8
+ expiresAt?: string;
9
+ entity?: string;
10
+ reference?: string;
11
+ }
@@ -1,7 +1,10 @@
1
+ import type { PrimerCheckoutAdditionalInfo } from "./PrimerCheckoutAdditionalInfo";
2
+
1
3
  export type PrimerCheckoutData = IPrimerCheckoutData;
2
4
 
3
5
  interface IPrimerCheckoutData {
4
- payment: IPrimerCheckoutDataPayment;
6
+ payment?: IPrimerCheckoutDataPayment;
7
+ additionalInfo?: PrimerCheckoutAdditionalInfo
5
8
  }
6
9
 
7
10
  export type PrimerCheckoutDataPayment = IPrimerCheckoutDataPayment;
@@ -15,4 +18,4 @@ interface IPrimerCheckoutDataPayment {
15
18
  enum PrimerPaymentErrorCode {
16
19
  FAILED = 'payment-failed',
17
20
  CANCELLED_BY_CUSTOMER = 'cancelled-by-customer',
18
- }
21
+ }
@@ -1,10 +1,11 @@
1
- import type {
2
- PrimerErrorHandler,
3
- PrimerPaymentCreationHandler,
4
- PrimerResumeHandler,
5
- PrimerTokenizationHandler
1
+ import type {
2
+ PrimerErrorHandler,
3
+ PrimerPaymentCreationHandler,
4
+ PrimerResumeHandler,
5
+ PrimerTokenizationHandler
6
6
  } from "./PrimerInterfaces";
7
7
  import type { PrimerCheckoutData } from "./PrimerCheckoutData";
8
+ import type { PrimerCheckoutAdditionalInfo } from "./PrimerCheckoutAdditionalInfo";
8
9
  import type { PrimerCheckoutPaymentMethodData } from "./PrimerCheckoutPaymentMethodData";
9
10
  import type { PrimerClientSession } from "./PrimerClientSession";
10
11
  import type { PrimerPaymentMethodTokenData } from "./PrimerPaymentMethodTokenData";
@@ -27,9 +28,10 @@ interface IPrimerSettings {
27
28
  onCheckoutComplete?: (checkoutData: PrimerCheckoutData) => void;
28
29
  onTokenizeSuccess?: (paymentMethodTokenData: PrimerPaymentMethodTokenData, handler: PrimerTokenizationHandler) => void;
29
30
  onResumeSuccess?: (resumeToken: string, handler: PrimerResumeHandler) => void;
31
+ onResumePending?: (additionalInfo: PrimerCheckoutAdditionalInfo) => void;
30
32
  // PrimerErrorHandler will be undefined on the HUC flow.
31
33
  onError?: (error: PrimerError, checkoutData: PrimerCheckoutData | null, handler: PrimerErrorHandler | undefined) => void;
32
-
34
+
33
35
  // Only on main SDK
34
36
  onDismiss?: () => void;
35
37