@sentecacommerce-theme/lib 0.12.66 → 0.12.70

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 (104) hide show
  1. package/dist/cjs/analytics/Releva/api/query/useRelevaQuery.js +1 -0
  2. package/dist/cjs/analytics/Releva/api/query/useRelevaQuery.js.map +1 -1
  3. package/dist/cjs/checkout/api/keys.js +7 -1
  4. package/dist/cjs/checkout/api/keys.js.map +1 -1
  5. package/dist/cjs/checkout/api/queries/index.js +8 -0
  6. package/dist/cjs/checkout/api/queries/index.js.map +1 -1
  7. package/dist/cjs/checkout/api/queries/useBnpCalculateForCartQuery.js +40 -0
  8. package/dist/cjs/checkout/api/queries/useBnpCalculateForCartQuery.js.map +1 -0
  9. package/dist/cjs/checkout/hooks/index.js +8 -0
  10. package/dist/cjs/checkout/hooks/index.js.map +1 -1
  11. package/dist/cjs/checkout/hooks/useBnpCalculateForCart.js +83 -0
  12. package/dist/cjs/checkout/hooks/useBnpCalculateForCart.js.map +1 -0
  13. package/dist/cjs/contexts/CheckoutForm/hooks/useBilling/index.js.map +1 -1
  14. package/dist/cjs/contexts/CheckoutForm/hooks/usePayment/index.js +8 -2
  15. package/dist/cjs/contexts/CheckoutForm/hooks/usePayment/index.js.map +1 -1
  16. package/dist/cjs/contexts/CheckoutForm/hooks/useShipping/index.js.map +1 -1
  17. package/dist/cjs/contexts/CheckoutForm/index.js +1 -0
  18. package/dist/cjs/contexts/CheckoutForm/index.js.map +1 -1
  19. package/dist/cjs/hooks/useLineItem/index.js +4 -0
  20. package/dist/cjs/hooks/useLineItem/index.js.map +1 -1
  21. package/dist/cjs/hooks/user-hooks/useSubscribeToNewsletter/index.js +12 -4
  22. package/dist/cjs/hooks/user-hooks/useSubscribeToNewsletter/index.js.map +1 -1
  23. package/dist/cjs/order/api/index.js +8 -0
  24. package/dist/cjs/order/api/index.js.map +1 -1
  25. package/dist/cjs/order/api/utils/getOrderById.js +8 -0
  26. package/dist/cjs/order/api/utils/getOrderById.js.map +1 -0
  27. package/dist/cjs/order/api/utils/index.js +12 -0
  28. package/dist/cjs/order/api/utils/index.js.map +1 -0
  29. package/dist/cjs/product/api/keys.js +11 -0
  30. package/dist/cjs/product/api/keys.js.map +1 -0
  31. package/dist/cjs/product/api/queries/index.js +12 -0
  32. package/dist/cjs/product/api/queries/index.js.map +1 -0
  33. package/dist/cjs/product/api/queries/useBnpOffersQuery.js +48 -0
  34. package/dist/cjs/product/api/queries/useBnpOffersQuery.js.map +1 -0
  35. package/dist/cjs/product/hooks/index.js +12 -0
  36. package/dist/cjs/product/hooks/index.js.map +1 -0
  37. package/dist/cjs/product/hooks/useBnpOffers.js +72 -0
  38. package/dist/cjs/product/hooks/useBnpOffers.js.map +1 -0
  39. package/dist/cjs/product/index.js +8 -0
  40. package/dist/cjs/product/index.js.map +1 -1
  41. package/dist/cjs/ssr/emptyBasketGuard.js +2 -2
  42. package/dist/cjs/ssr/emptyBasketGuard.js.map +1 -1
  43. package/dist/esm/analytics/Releva/api/query/useRelevaQuery.js +1 -0
  44. package/dist/esm/analytics/Releva/api/query/useRelevaQuery.js.map +1 -1
  45. package/dist/esm/checkout/api/keys.js +3 -0
  46. package/dist/esm/checkout/api/keys.js.map +1 -1
  47. package/dist/esm/checkout/api/queries/index.js +1 -0
  48. package/dist/esm/checkout/api/queries/index.js.map +1 -1
  49. package/dist/esm/checkout/api/queries/useBnpCalculateForCartQuery.js +10 -0
  50. package/dist/esm/checkout/api/queries/useBnpCalculateForCartQuery.js.map +1 -0
  51. package/dist/esm/checkout/hooks/index.js +1 -0
  52. package/dist/esm/checkout/hooks/index.js.map +1 -1
  53. package/dist/esm/checkout/hooks/useBnpCalculateForCart.js +66 -0
  54. package/dist/esm/checkout/hooks/useBnpCalculateForCart.js.map +1 -0
  55. package/dist/esm/contexts/CheckoutForm/hooks/useBilling/index.js.map +1 -1
  56. package/dist/esm/contexts/CheckoutForm/hooks/usePayment/index.js +5 -2
  57. package/dist/esm/contexts/CheckoutForm/hooks/usePayment/index.js.map +1 -1
  58. package/dist/esm/contexts/CheckoutForm/hooks/useShipping/index.js.map +1 -1
  59. package/dist/esm/contexts/CheckoutForm/index.js +1 -0
  60. package/dist/esm/contexts/CheckoutForm/index.js.map +1 -1
  61. package/dist/esm/hooks/useLineItem/index.js +2 -0
  62. package/dist/esm/hooks/useLineItem/index.js.map +1 -1
  63. package/dist/esm/hooks/user-hooks/useSubscribeToNewsletter/index.js +9 -4
  64. package/dist/esm/hooks/user-hooks/useSubscribeToNewsletter/index.js.map +1 -1
  65. package/dist/esm/order/api/index.js +1 -0
  66. package/dist/esm/order/api/index.js.map +1 -1
  67. package/dist/esm/order/api/utils/getOrderById.js +3 -0
  68. package/dist/esm/order/api/utils/getOrderById.js.map +1 -0
  69. package/dist/esm/order/api/utils/index.js +2 -0
  70. package/dist/esm/order/api/utils/index.js.map +1 -0
  71. package/dist/esm/product/api/keys.js +4 -0
  72. package/dist/esm/product/api/keys.js.map +1 -0
  73. package/dist/esm/product/api/queries/index.js +2 -0
  74. package/dist/esm/product/api/queries/index.js.map +1 -0
  75. package/dist/esm/product/api/queries/useBnpOffersQuery.js +18 -0
  76. package/dist/esm/product/api/queries/useBnpOffersQuery.js.map +1 -0
  77. package/dist/esm/product/hooks/index.js +2 -0
  78. package/dist/esm/product/hooks/index.js.map +1 -0
  79. package/dist/esm/product/hooks/useBnpOffers.js +57 -0
  80. package/dist/esm/product/hooks/useBnpOffers.js.map +1 -0
  81. package/dist/esm/product/index.js +1 -0
  82. package/dist/esm/product/index.js.map +1 -1
  83. package/dist/esm/ssr/emptyBasketGuard.js +2 -2
  84. package/dist/esm/ssr/emptyBasketGuard.js.map +1 -1
  85. package/dist/types/checkout/api/keys.d.ts +2 -0
  86. package/dist/types/checkout/api/queries/index.d.ts +1 -0
  87. package/dist/types/checkout/api/queries/useBnpCalculateForCartQuery.d.ts +4 -0
  88. package/dist/types/checkout/hooks/index.d.ts +1 -0
  89. package/dist/types/checkout/hooks/useBnpCalculateForCart.d.ts +50 -0
  90. package/dist/types/contexts/CheckoutForm/hooks/useBilling/index.d.ts +1 -1
  91. package/dist/types/contexts/CheckoutForm/hooks/usePayment/index.d.ts +2 -0
  92. package/dist/types/contexts/CheckoutForm/hooks/useShipping/index.d.ts +1 -1
  93. package/dist/types/contexts/CheckoutForm/index.d.ts +3 -2
  94. package/dist/types/hooks/useLineItem/index.d.ts +2 -2
  95. package/dist/types/order/api/index.d.ts +1 -0
  96. package/dist/types/order/api/utils/getOrderById.d.ts +2 -0
  97. package/dist/types/order/api/utils/index.d.ts +1 -0
  98. package/dist/types/product/api/keys.d.ts +1 -0
  99. package/dist/types/product/api/queries/index.d.ts +1 -0
  100. package/dist/types/product/api/queries/useBnpOffersQuery.d.ts +5 -0
  101. package/dist/types/product/hooks/index.d.ts +1 -0
  102. package/dist/types/product/hooks/useBnpOffers.d.ts +37 -0
  103. package/dist/types/product/index.d.ts +1 -0
  104. package/package.json +4 -4
@@ -40,6 +40,7 @@ var useRelevaQuery = function useRelevaQuery(payload, isReady, token, interfaceK
40
40
  })), {
41
41
  retry: false,
42
42
  cacheTime: 0,
43
+ refetchOnWindowFocus: false,
43
44
  enabled: isReady && !!(payload != null && payload.order.orderId)
44
45
  });
45
46
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/analytics/Releva/api/query/useRelevaQuery.ts"],"names":["useRelevaQuery","payload","isReady","token","interfaceKey","url","fetch","method","headers","Authorization","InterfaceKey","body","JSON","stringify","then","res","json","retry","cacheTime","enabled","order","orderId"],"mappings":";;;;;;;;;;;AAAA;;AAGO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAC5BC,OAD4B,EAE5BC,OAF4B,EAG5BC,KAH4B,EAI5BC,YAJ4B,EAKzB;AACH,SAAO,0BACL,CAAC,CAACH,OAAF,IAAa,2BADR,6FAEL;AAAA;AAAA;AAAA;AAAA;AAAA;AACQI,YAAAA,GADR,GACc,qBADd;AAAA,6CAGSC,KAAK,CAACD,GAAD,EAAM;AAChBE,cAAAA,MAAM,EAAE,MADQ;AAEhBC,cAAAA,OAAO,EAAE;AACP,gCAAgB,kBADT;AAEPC,gBAAAA,aAAa,cAAYN,KAFlB;AAGPO,gBAAAA,YAAY,OAAKN;AAHV,eAFO;AAOhBO,cAAAA,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAeZ,OAAf;AAPU,aAAN,CAAL,CAQJa,IARI,CAQC,UAACC,GAAD;AAAA,qBAASA,GAAG,CAACC,IAAJ,EAAT;AAAA,aARD,CAHT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAFK,IAeL;AACEC,IAAAA,KAAK,EAAE,KADT;AAEEC,IAAAA,SAAS,EAAE,CAFb;AAGEC,IAAAA,OAAO,EAAEjB,OAAO,IAAI,CAAC,EAACD,OAAD,YAACA,OAAO,CAAEmB,KAAT,CAAeC,OAAhB;AAHvB,GAfK,CAAP;AAqBD,CA3BM","sourcesContent":["import { useQuery } from 'react-query'\nimport { PayloadDTO } from '../../types'\n\nexport const useRelevaQuery = (\n payload?: PayloadDTO,\n isReady?: boolean,\n token?: string,\n interfaceKey?: string\n) => {\n return useQuery(\n !!payload && 'releva-recommenders-query',\n async () => {\n const url = '/hub/releva/collect'\n\n return fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`,\n InterfaceKey: `${interfaceKey}`,\n },\n body: JSON.stringify(payload),\n }).then((res) => res.json())\n },\n {\n retry: false,\n cacheTime: 0,\n enabled: isReady && !!payload?.order.orderId,\n }\n )\n}\n"],"file":"useRelevaQuery.js"}
1
+ {"version":3,"sources":["../../../../../../src/analytics/Releva/api/query/useRelevaQuery.ts"],"names":["useRelevaQuery","payload","isReady","token","interfaceKey","url","fetch","method","headers","Authorization","InterfaceKey","body","JSON","stringify","then","res","json","retry","cacheTime","refetchOnWindowFocus","enabled","order","orderId"],"mappings":";;;;;;;;;;;AAAA;;AAGO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAC5BC,OAD4B,EAE5BC,OAF4B,EAG5BC,KAH4B,EAI5BC,YAJ4B,EAKzB;AACH,SAAO,0BACL,CAAC,CAACH,OAAF,IAAa,2BADR,6FAEL;AAAA;AAAA;AAAA;AAAA;AAAA;AACQI,YAAAA,GADR,GACc,qBADd;AAAA,6CAGSC,KAAK,CAACD,GAAD,EAAM;AAChBE,cAAAA,MAAM,EAAE,MADQ;AAEhBC,cAAAA,OAAO,EAAE;AACP,gCAAgB,kBADT;AAEPC,gBAAAA,aAAa,cAAYN,KAFlB;AAGPO,gBAAAA,YAAY,OAAKN;AAHV,eAFO;AAOhBO,cAAAA,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAeZ,OAAf;AAPU,aAAN,CAAL,CAQJa,IARI,CAQC,UAACC,GAAD;AAAA,qBAASA,GAAG,CAACC,IAAJ,EAAT;AAAA,aARD,CAHT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAFK,IAeL;AACEC,IAAAA,KAAK,EAAE,KADT;AAEEC,IAAAA,SAAS,EAAE,CAFb;AAGEC,IAAAA,oBAAoB,EAAE,KAHxB;AAIEC,IAAAA,OAAO,EAAElB,OAAO,IAAI,CAAC,EAACD,OAAD,YAACA,OAAO,CAAEoB,KAAT,CAAeC,OAAhB;AAJvB,GAfK,CAAP;AAsBD,CA5BM","sourcesContent":["import { useQuery } from 'react-query'\nimport { PayloadDTO } from '../../types'\n\nexport const useRelevaQuery = (\n payload?: PayloadDTO,\n isReady?: boolean,\n token?: string,\n interfaceKey?: string\n) => {\n return useQuery(\n !!payload && 'releva-recommenders-query',\n async () => {\n const url = '/hub/releva/collect'\n\n return fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`,\n InterfaceKey: `${interfaceKey}`,\n },\n body: JSON.stringify(payload),\n }).then((res) => res.json())\n },\n {\n retry: false,\n cacheTime: 0,\n refetchOnWindowFocus: false,\n enabled: isReady && !!payload?.order.orderId,\n }\n )\n}\n"],"file":"useRelevaQuery.js"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.getVerifyBoricaResponseKey = exports.CheckoutQueryKeysEnum = void 0;
4
+ exports.getBnpLoanCalculatorKey = exports.getVerifyBoricaResponseKey = exports.CheckoutQueryKeysEnum = void 0;
5
5
  var CheckoutQueryKeysEnum;
6
6
  exports.CheckoutQueryKeysEnum = CheckoutQueryKeysEnum;
7
7
 
@@ -12,4 +12,10 @@ var getVerifyBoricaResponseKey = function getVerifyBoricaResponseKey(order) {
12
12
  };
13
13
 
14
14
  exports.getVerifyBoricaResponseKey = getVerifyBoricaResponseKey;
15
+
16
+ var getBnpLoanCalculatorKey = function getBnpLoanCalculatorKey(preferredInstallmentCentAmount) {
17
+ return ['bnp-loan-calculator', preferredInstallmentCentAmount];
18
+ };
19
+
20
+ exports.getBnpLoanCalculatorKey = getBnpLoanCalculatorKey;
15
21
  //# sourceMappingURL=keys.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/checkout/api/keys.ts"],"names":["CheckoutQueryKeysEnum","getVerifyBoricaResponseKey","order"],"mappings":";;;;IAAYA,qB;;;WAAAA,qB,MAAAA,qB,qCAAAA,qB;;AAGL,IAAMC,0BAA0B,GAAG,SAA7BA,0BAA6B,CAACC,KAAD,EAAmB;AAC3D,yCAAqCA,KAArC;AACD,CAFM","sourcesContent":["export enum CheckoutQueryKeysEnum {\n}\n\nexport const getVerifyBoricaResponseKey = (order: string) => {\n return `Borica Response for Order: ${order}`\n}"],"file":"keys.js"}
1
+ {"version":3,"sources":["../../../../src/checkout/api/keys.ts"],"names":["CheckoutQueryKeysEnum","getVerifyBoricaResponseKey","order","getBnpLoanCalculatorKey","preferredInstallmentCentAmount"],"mappings":";;;;IAAYA,qB;;;WAAAA,qB,MAAAA,qB,qCAAAA,qB;;AAEL,IAAMC,0BAA0B,GAAG,SAA7BA,0BAA6B,CAACC,KAAD,EAAmB;AAC3D,yCAAqCA,KAArC;AACD,CAFM;;;;AAIA,IAAMC,uBAAuB,GAAG,SAA1BA,uBAA0B,CACrCC,8BADqC,EAElC;AACH,SAAO,CAAC,qBAAD,EAAwBA,8BAAxB,CAAP;AACD,CAJM","sourcesContent":["export enum CheckoutQueryKeysEnum {}\n\nexport const getVerifyBoricaResponseKey = (order: string) => {\n return `Borica Response for Order: ${order}`\n}\n\nexport const getBnpLoanCalculatorKey = (\n preferredInstallmentCentAmount: number\n) => {\n return ['bnp-loan-calculator', preferredInstallmentCentAmount]\n}\n"],"file":"keys.js"}
@@ -9,4 +9,12 @@ Object.keys(_useVerifyBoricaResponseQuery).forEach(function (key) {
9
9
  if (key in exports && exports[key] === _useVerifyBoricaResponseQuery[key]) return;
10
10
  exports[key] = _useVerifyBoricaResponseQuery[key];
11
11
  });
12
+
13
+ var _useBnpCalculateForCartQuery = require("./useBnpCalculateForCartQuery");
14
+
15
+ Object.keys(_useBnpCalculateForCartQuery).forEach(function (key) {
16
+ if (key === "default" || key === "__esModule") return;
17
+ if (key in exports && exports[key] === _useBnpCalculateForCartQuery[key]) return;
18
+ exports[key] = _useBnpCalculateForCartQuery[key];
19
+ });
12
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/checkout/api/queries/index.ts"],"names":[],"mappings":";;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './useVerifyBoricaResponseQuery'"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../../src/checkout/api/queries/index.ts"],"names":[],"mappings":";;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './useVerifyBoricaResponseQuery'\nexport * from './useBnpCalculateForCartQuery'\n"],"file":"index.js"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.useBnpCalculateForCartQuery = void 0;
7
+
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+
12
+ var _reactQuery = require("react-query");
13
+
14
+ var _sdk = require("@sentecacommerce/sdk");
15
+
16
+ var _keys = require("../keys");
17
+
18
+ var useBnpCalculateForCartQuery = function useBnpCalculateForCartQuery(props) {
19
+ return (0, _reactQuery.useQuery)((0, _keys.getBnpLoanCalculatorKey)(props.preferredInstallmentCentAmount), /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
20
+ return _regenerator["default"].wrap(function _callee$(_context) {
21
+ while (1) {
22
+ switch (_context.prev = _context.next) {
23
+ case 0:
24
+ _context.next = 2;
25
+ return (0, _sdk.MyPaymentsBnpCalculateLoanOrder)(props);
26
+
27
+ case 2:
28
+ return _context.abrupt("return", _context.sent);
29
+
30
+ case 3:
31
+ case "end":
32
+ return _context.stop();
33
+ }
34
+ }
35
+ }, _callee);
36
+ })));
37
+ };
38
+
39
+ exports.useBnpCalculateForCartQuery = useBnpCalculateForCartQuery;
40
+ //# sourceMappingURL=useBnpCalculateForCartQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/checkout/api/queries/useBnpCalculateForCartQuery.ts"],"names":["useBnpCalculateForCartQuery","props","preferredInstallmentCentAmount"],"mappings":";;;;;;;;;;;AACA;;AACA;;AACA;;AAEO,IAAMA,2BAA2B,GAAG,SAA9BA,2BAA8B,CAACC,KAAD,EAGrC;AACJ,SAAO,0BACL,mCAAwBA,KAAK,CAACC,8BAA9B,CADK,6FAEL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB,0CAAgCD,KAAhC,CAAlB;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAFK,GAAP;AAID,CARM","sourcesContent":["import React from 'react'\nimport { useQuery } from 'react-query'\nimport { MyPaymentsBnpCalculateLoanOrder } from '@sentecacommerce/sdk'\nimport { getBnpLoanCalculatorKey } from '../keys'\n\nexport const useBnpCalculateForCartQuery = (props: {\n preferredInstallmentCentAmount: number\n downPaymentCentAmount: number\n}) => {\n return useQuery(\n getBnpLoanCalculatorKey(props.preferredInstallmentCentAmount),\n async () => await MyPaymentsBnpCalculateLoanOrder(props)\n )\n}\n"],"file":"useBnpCalculateForCartQuery.js"}
@@ -9,4 +9,12 @@ Object.keys(_useVerifyBoricaResponse).forEach(function (key) {
9
9
  if (key in exports && exports[key] === _useVerifyBoricaResponse[key]) return;
10
10
  exports[key] = _useVerifyBoricaResponse[key];
11
11
  });
12
+
13
+ var _useBnpCalculateForCart = require("./useBnpCalculateForCart");
14
+
15
+ Object.keys(_useBnpCalculateForCart).forEach(function (key) {
16
+ if (key === "default" || key === "__esModule") return;
17
+ if (key in exports && exports[key] === _useBnpCalculateForCart[key]) return;
18
+ exports[key] = _useBnpCalculateForCart[key];
19
+ });
12
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/checkout/hooks/index.ts"],"names":[],"mappings":";;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './useVerifyBoricaResponse'\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/checkout/hooks/index.ts"],"names":[],"mappings":";;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './useVerifyBoricaResponse'\nexport * from './useBnpCalculateForCart'\n"],"file":"index.js"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.useBnpCalculateForCart = void 0;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
10
+ var _react = require("react");
11
+
12
+ var _api = require("../api");
13
+
14
+ var _index = require("../../index");
15
+
16
+ var useBnpCalculateForCart = function useBnpCalculateForCart(props) {
17
+ var _useConfigState, _useConfigState$price, _response$data3, _response$data3$;
18
+
19
+ var _ref = props != null ? props : {},
20
+ _ref$preferredInstall = _ref.preferredInstallmentCentAmount,
21
+ preferredInstallmentCentAmount = _ref$preferredInstall === void 0 ? 0 : _ref$preferredInstall,
22
+ _ref$downPaymentCentA = _ref.downPaymentCentAmount,
23
+ downPaymentCentAmount = _ref$downPaymentCentA === void 0 ? 0 : _ref$downPaymentCentA;
24
+
25
+ var response = (0, _api.useBnpCalculateForCartQuery)({
26
+ preferredInstallmentCentAmount: preferredInstallmentCentAmount,
27
+ downPaymentCentAmount: downPaymentCentAmount
28
+ });
29
+ var configLocale = (_useConfigState = (0, _index.useConfigState)()) == null ? void 0 : (_useConfigState$price = _useConfigState.price) == null ? void 0 : _useConfigState$price.locale;
30
+ return (0, _react.useMemo)(function () {
31
+ var _response$data, _response$data2, _response$data2$, _response$data2$$offe;
32
+
33
+ return (0, _extends2["default"])({}, response, {
34
+ data: (0, _extends2["default"])({}, response == null ? void 0 : (_response$data = response.data) == null ? void 0 : _response$data[0], {
35
+ offers: response == null ? void 0 : (_response$data2 = response.data) == null ? void 0 : (_response$data2$ = _response$data2[0]) == null ? void 0 : (_response$data2$$offe = _response$data2$.offers) == null ? void 0 : _response$data2$$offe.map(function (offer) {
36
+ var _totalRepaymentAmount = (0, _index.decodePrice)(offer.totalRepaymentAmount);
37
+
38
+ var _correctDownPaymentAmount = (0, _index.decodePrice)(offer.correctDownPaymentAmount);
39
+
40
+ var _installmentAmount = (0, _index.decodePrice)(offer.installmentAmount);
41
+
42
+ var _processingFeeAmount = (0, _index.decodePrice)(offer.processingFeeAmount);
43
+
44
+ var totalRepaymentAmount = (0, _index.formatAsCurrency)({
45
+ price: _totalRepaymentAmount,
46
+ precision: offer.totalRepaymentAmount.fractionDigits,
47
+ currency: offer.totalRepaymentAmount.currencyCode,
48
+ locale: configLocale || 'en'
49
+ });
50
+ var correctDownPaymentAmount = (0, _index.formatAsCurrency)({
51
+ price: _correctDownPaymentAmount,
52
+ precision: offer.correctDownPaymentAmount.fractionDigits,
53
+ currency: offer.correctDownPaymentAmount.currencyCode,
54
+ locale: configLocale || 'en'
55
+ });
56
+ var installmentAmount = (0, _index.formatAsCurrency)({
57
+ price: _installmentAmount,
58
+ precision: offer.installmentAmount.fractionDigits,
59
+ currency: offer.installmentAmount.currencyCode,
60
+ locale: configLocale || 'en'
61
+ });
62
+ var processingFeeAmount = (0, _index.formatAsCurrency)({
63
+ price: _processingFeeAmount,
64
+ precision: offer.processingFeeAmount.fractionDigits,
65
+ currency: offer.processingFeeAmount.currencyCode,
66
+ locale: configLocale || 'en'
67
+ });
68
+ return (0, _extends2["default"])({}, offer, {
69
+ totalRepaymentAmount: totalRepaymentAmount,
70
+ correctDownPaymentAmount: correctDownPaymentAmount,
71
+ installmentAmount: installmentAmount,
72
+ processingFeeAmount: processingFeeAmount
73
+ });
74
+ }).sort(function (offer, offer2) {
75
+ return Number(offer.maturity) - Number(offer2.maturity);
76
+ })
77
+ })
78
+ });
79
+ }, [response == null ? void 0 : (_response$data3 = response.data) == null ? void 0 : (_response$data3$ = _response$data3[0]) == null ? void 0 : _response$data3$.offers]);
80
+ };
81
+
82
+ exports.useBnpCalculateForCart = useBnpCalculateForCart;
83
+ //# sourceMappingURL=useBnpCalculateForCart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/checkout/hooks/useBnpCalculateForCart.ts"],"names":["useBnpCalculateForCart","props","preferredInstallmentCentAmount","downPaymentCentAmount","response","configLocale","price","locale","data","offers","map","offer","_totalRepaymentAmount","totalRepaymentAmount","_correctDownPaymentAmount","correctDownPaymentAmount","_installmentAmount","installmentAmount","_processingFeeAmount","processingFeeAmount","precision","fractionDigits","currency","currencyCode","sort","offer2","Number","maturity"],"mappings":"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","sourcesContent":["import React, { useMemo } from 'react'\nimport { useBnpCalculateForCartQuery } from '../api'\nimport { decodePrice, formatAsCurrency, useConfigState } from '../../index'\n\nexport const useBnpCalculateForCart = (props?: {\n preferredInstallmentCentAmount?: number\n downPaymentCentAmount?: number\n}) => {\n const { preferredInstallmentCentAmount = 0, downPaymentCentAmount = 0 } =\n props ?? {}\n\n const response = useBnpCalculateForCartQuery({\n preferredInstallmentCentAmount,\n downPaymentCentAmount,\n })\n const configLocale: string = useConfigState()?.price?.locale\n\n return useMemo(\n () => ({\n ...response,\n data: {\n ...response?.data?.[0],\n offers: response?.data?.[0]?.offers\n ?.map((offer) => {\n const _totalRepaymentAmount = decodePrice(\n offer.totalRepaymentAmount\n )\n const _correctDownPaymentAmount = decodePrice(\n offer.correctDownPaymentAmount\n )\n const _installmentAmount = decodePrice(offer.installmentAmount)\n const _processingFeeAmount = decodePrice(offer.processingFeeAmount)\n\n const totalRepaymentAmount = formatAsCurrency({\n price: _totalRepaymentAmount,\n precision: offer.totalRepaymentAmount.fractionDigits,\n currency: offer.totalRepaymentAmount.currencyCode,\n locale: configLocale || 'en',\n })\n\n const correctDownPaymentAmount = formatAsCurrency({\n price: _correctDownPaymentAmount,\n precision: offer.correctDownPaymentAmount.fractionDigits,\n currency: offer.correctDownPaymentAmount.currencyCode,\n locale: configLocale || 'en',\n })\n\n const installmentAmount = formatAsCurrency({\n price: _installmentAmount,\n precision: offer.installmentAmount.fractionDigits,\n currency: offer.installmentAmount.currencyCode,\n locale: configLocale || 'en',\n })\n\n const processingFeeAmount = formatAsCurrency({\n price: _processingFeeAmount,\n precision: offer.processingFeeAmount.fractionDigits,\n currency: offer.processingFeeAmount.currencyCode,\n locale: configLocale || 'en',\n })\n\n return {\n ...offer,\n totalRepaymentAmount,\n correctDownPaymentAmount,\n installmentAmount,\n processingFeeAmount,\n }\n })\n .sort(\n (offer, offer2) => Number(offer.maturity) - Number(offer2.maturity)\n ),\n },\n }),\n [response?.data?.[0]?.offers]\n )\n}\n"],"file":"useBnpCalculateForCart.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/contexts/CheckoutForm/hooks/useBilling/index.ts"],"names":["IS_NEW","useBilling","orderQuery","errorLabels","withSavedBillingAddressList","enableSaveBillingAddress","withPersistBeforePageLeave","countryCode","validateBillingAddress","enabled","requiredFields","requiredFieldsOnShipping","emptyBillingAddress","_id","streetName","company","undefined","isDefaultBillingAddress","createdAt","updatedAt","isBillingAddressSubmitting","setIsBillingAddressSubmitting","isWithBillingAddress","setIsWithBillingAddress","companiesApi","useAdd","saveBillingAddress","handleBillingAddressChange","savedBillingAddress","currentBillingAddress","billingAddress","setBillingAddress","isAddingNew","setIsAddingNew","billingAddressList","Boolean","selectedBillingAddress","billingAddressErrors","onInputChange","name","value","data","companyName","companyId","split","persistBillingAddress","Promise","resolve","reject","onSuccess","order","onError","handleSaveBillingAddress","custom","filter","field","Date","now","resetBillingAddress","updateIsWithBillingAddress","callback","initialValue","some","updateIsAddingNew","isSubmitting","errors","isValid","updateIsSubmitting","canSaveBillingAddress"],"mappings":";;;;;;;;;;;;;AAAA;;AAKA;;AACA;;AAGA;;AAEA;;AAIA;;AAEA,IAAMA,MAAM,GAAG,OAAf;;AAEO,IAAMC,UAAU,GAAG,SAAbA,UAAa,OAWmB;AAAA,MAV3CC,UAU2C,QAV3CA,UAU2C;AAAA,MAT3CC,WAS2C,QAT3CA,WAS2C;AAAA,MAR3CC,2BAQ2C,QAR3CA,2BAQ2C;AAAA,MAP3CC,wBAO2C,QAP3CA,wBAO2C;AAAA,MAN3CC,0BAM2C,QAN3CA,0BAM2C;AAAA,MAL3CC,WAK2C,QAL3CA,WAK2C;AAAA,MAJ3CC,sBAI2C,QAJ3CA,sBAI2C;AAAA,MAH3CC,OAG2C,QAH3CA,OAG2C;AAAA,MAF3CC,cAE2C,QAF3CA,cAE2C;AAAA,MAD3CC,wBAC2C,QAD3CA,wBAC2C;AAC3C,MAAMC,mBAAmB,GAAG,oBAAQ,YAAM;AACxC,WAAO;AACLC,MAAAA,GAAG,EAAE,EADA;AAELC,MAAAA,UAAU,EAAE,EAFP;AAGLC,MAAAA,OAAO,EAAEC,SAHJ;AAILC,MAAAA,uBAAuB,EAAE,KAJpB;AAKLC,MAAAA,SAAS,EAAE,CALN;AAMLC,MAAAA,SAAS,EAAE,CANN;AAOLZ,MAAAA,WAAW,EAAXA;AAPK,KAAP;AASD,GAV2B,EAUzB,CAACA,WAAD,CAVyB,CAA5B;;AAD2C,kBAayB,qBAClE,KADkE,CAbzB;AAAA,MAapCa,0BAboC;AAAA,MAaRC,6BAbQ;;AAAA,mBAiBa,qBAEtD,IAFsD,CAjBb;AAAA,MAiBpCC,oBAjBoC;AAAA,MAiBdC,uBAjBc;;AAAA,6BAqBdC,2BAAaC,MAAb,EArBc;AAAA,MAqBpCC,kBArBoC;;AAAA,8BA0BvC,0DAA0BxB,UAA1B,CA1BuC;AAAA,MAwBzCyB,0BAxByC,yBAwBzCA,0BAxByC;AAAA,MAyBlBC,mBAzBkB,yBAyBzCC,qBAzByC;;AAAA,mBA4BC,qBAASD,mBAAT,CA5BD;AAAA,MA4BpCE,cA5BoC;AAAA,MA4BpBC,iBA5BoB;;AAAA,mBA6BL,qBAAyB,IAAzB,CA7BK;AAAA,MA6BpCC,WA7BoC;AAAA,MA6BvBC,cA7BuB;;AA+B3C,MAAMC,kBAAkB,GAAG,8CAAoB;AAC7CzB,IAAAA,OAAO,EAAE0B,OAAO,CACd1B,OAAO,IAAIa,oBAAX,IAAmClB,2BADrB,CAD6B;AAI7CgC,IAAAA,sBAAsB,EAAEN,cAJqB;AAK7CC,IAAAA,iBAAiB,EAAjBA,iBAL6C;AAM7CJ,IAAAA,0BAA0B,EAA1BA;AAN6C,GAApB,CAA3B;AASA,MAAMU,oBAAoB,GAAG,oBAAQ,YAAM;AACzC,WACEP,cAAc,IACdtB,sBAAsB,CACpBsB,cADoB,EAEpB3B,WAFoB,EAGpBO,cAHoB,EAIpBC,wBAJoB,CAFxB;AASD,GAV4B,EAU1B,CAACmB,cAAD,EAAiB3B,WAAjB,EAA8BK,sBAA9B,CAV0B,CAA7B;AAYA;AACF;AACA;AACA;AACA;AACA;;AACE,MAAM8B,aAAa,GAAG;AAAA,8FACpB,iBAAOC,IAAP,EAAqBC,KAArB;AAAA;AAAA;AAAA;AAAA;AAAA;AACQC,cAAAA,IADR,GACeX,cAAc,kCAASA,cAAT,CAD7B,EAGE;;AACA,kBAAIW,IAAI,IAAI,EAACA,IAAD,YAACA,IAAI,CAAE1B,OAAP,CAAZ,EACE0B,IAAI,CAAC1B,OAAL,GAAe;AAAE2B,gBAAAA,WAAW,EAAE,EAAf;AAAmBC,gBAAAA,SAAS,EAAE;AAA9B,eAAf;AAEF,kBAAIF,IAAJ,EAAU,0BAAcA,IAAd,EAAoBD,KAApB,EAA2BD,IAAI,CAACK,KAAL,CAAW,GAAX,CAA3B;AAEVb,cAAAA,iBAAiB,CAACU,IAAD,CAAjB;;AATF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADoB;;AAAA;AAAA;AAAA;AAAA,OAYpB,CAACX,cAAD,CAZoB,CAAtB;AAeA;AACF;AACA;;AACE,MAAMe,qBAAqB,GAAG,wBAAY,YAAM;AAC9C,QAAI,CAACf,cAAD,IAAmB,CAACR,oBAAxB,EAA8C;AAE9C,WAAO,IAAIwB,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtCrB,MAAAA,0BAA0B,CAACG,cAAD,EAAiB;AACzCmB,QAAAA,SAAS,EAAE,mBAACC,KAAD;AAAA,iBAAqBH,OAAO,CAACG,KAAD,CAA5B;AAAA,SAD8B;AAEzCC,QAAAA,OAAO,EAAE;AAAA,iBAAMH,MAAM,EAAZ;AAAA;AAFgC,OAAjB,CAA1B;AAID,KALM,CAAP;AAMD,GAT6B,EAS3B,CAAClB,cAAD,CAT2B,CAA9B;AAWA;AACF;AACA;;AACE,MAAMsB,wBAAwB,GAAG,wBAAY,YAAM;AAAA;;AACjD,QAAI,CAAC/C,wBAAL,EAA+B;AAE/BgB,IAAAA,6BAA6B,CAAC,IAAD,CAA7B;;AAEA,QAAIgB,oBAAoB,IAAI,CAACP,cAA7B,EAA6C;AAC3C;AACD;;AAED,QAAMW,IAAI,iCACLX,cADK;AAERuB,MAAAA,MAAM,EAAEvB,cAAF,6CAAEA,cAAc,CAAEuB,MAAlB,qBAAE,sBAAwBC,MAAxB,CAA+B;AAAA,YAAGC,KAAH,SAAGA,KAAH;AAAA,eAAeA,KAAK,KAAKvD,MAAzB;AAAA,OAA/B,CAFA;AAGRkB,MAAAA,SAAS,EAAEsC,IAAI,CAACC,GAAL,EAHH;AAIRtC,MAAAA,SAAS,EAAEqC,IAAI,CAACC,GAAL;AAJH,MAAV;AAOA/B,IAAAA,kBAAkB,CAACe,IAAD,CAAlB;AACAd,IAAAA,0BAA0B,CAACc,IAAD,CAA1B;AACAR,IAAAA,cAAc,CAAC,KAAD,CAAd;AACD,GAnBgC,EAmB9B,CAACH,cAAD,EAAiBzB,wBAAjB,EAA2CgC,oBAA3C,CAnB8B,CAAjC;AAqBA;AACF;AACA;;AACE,MAAMqB,mBAAmB,GAAG,wBAAY,YAAM;AAC5C/B,IAAAA,0BAA0B,CAACf,mBAAD,CAA1B;AACAmB,IAAAA,iBAAiB,CAACnB,mBAAD,CAAjB;AACD,GAH2B,EAGzB,CAACA,mBAAD,CAHyB,CAA5B;AAKA,MAAM+C,0BAA0B,GAAG,wBACjC,UAACnB,KAAD,EAAoB;AAClB,QAAI,CAACA,KAAL,EAAY;AACVjB,MAAAA,uBAAuB,CAAC,KAAD,CAAvB;AAEAmC,MAAAA,mBAAmB;AACnB;AACD;;AAEDnC,IAAAA,uBAAuB,CAAC,IAAD,CAAvB;AACD,GAVgC,EAWjC,CAACmC,mBAAD,CAXiC,CAAnC;AAcA;AACF;AACA;;AACE,wBAAU,YAAM;AACd,QAAI5B,cAAc,IAAI,OAAOF,mBAAP,KAA+B,WAArD,EAAkE;AAElEG,IAAAA,iBAAiB,CAACH,mBAAmB,IAAIhB,mBAAxB,CAAjB;AACD,GAJD,EAIG,CAACgB,mBAAD,EAAsBE,cAAtB,EAAsClB,mBAAtC,CAJH;AAMA;AACF;AACA;;AACE,wBAAU,YAAM;AACd,QAAI,CAACkB,cAAD,IAAmBR,oBAAoB,KAAK,IAAhD,EAAsD;AAEtDC,IAAAA,uBAAuB,CAACY,OAAO,CAACL,cAAc,CAACf,OAAhB,CAAR,CAAvB;AACD,GAJD,EAIG,CAACe,cAAD,EAAiBR,oBAAjB,CAJH,EAjJ2C,CAuJ3C;;AACA,0DAAyB;AACvBb,IAAAA,OAAO,EAAEH,0BADc;AAEvBsD,IAAAA,QAAQ,EAAEf;AAFa,GAAzB;AAKA;AACF;AACA;;AACE,wBAAU,YAAM;AAAA;;AACd,QAAI,CAACf,cAAD,IAAmBE,WAAW,KAAK,IAAvC,EAA6C;AAE7C,QAAM6B,YAAY,GAChB,CAAA/B,cAAc,QAAd,sCAAAA,cAAc,CAAEuB,MAAhB,4CAAwBS,IAAxB,CACE;AAAA,UAAGP,KAAH,SAAGA,KAAH;AAAA,UAAUf,KAAV,SAAUA,KAAV;AAAA,aAAsBe,KAAK,KAAKvD,MAAV,IAAoBwC,KAAK,KAAK,CAApD;AAAA,KADF,MAEK,KAHP;AAKAP,IAAAA,cAAc,CAAC4B,YAAD,CAAd;AACD,GATD,EASG,CAAC/B,cAAD,EAAiBE,WAAjB,CATH;AAWA,MAAM+B,iBAAiB,GAAG,wBACxB,UAACvB,KAAD,EAAoB;AAClB,QAAMC,IAAgB,GAAG;AACvB5B,MAAAA,GAAG,EAAE,CAAAiB,cAAc,QAAd,YAAAA,cAAc,CAAEjB,GAAhB,KAAuB,EADL;AAEvBK,MAAAA,SAAS,EAAEsC,IAAI,CAACC,GAAL,EAFY;AAGvBtC,MAAAA,SAAS,EAAEqC,IAAI,CAACC,GAAL,EAHY;AAIvB1C,MAAAA,OAAO,EAAE;AACP2B,QAAAA,WAAW,EAAE,EADN;AAEPC,QAAAA,SAAS,EAAE;AAFJ,OAJc;AAQvBU,MAAAA,MAAM,EAAE,CACN;AACEE,QAAAA,KAAK,EAAEvD,MADT;AAEEwC,QAAAA,KAAK,EAAEA,KAAK,GAAG,CAAH,GAAO;AAFrB,OADM;AARe,KAAzB;AAgBAT,IAAAA,iBAAiB,CAACU,IAAD,CAAjB;AACAR,IAAAA,cAAc,CAACO,KAAD,CAAd;AACD,GApBuB,EAqBxB,CAACV,cAAD,CArBwB,CAA1B;AAwBA,SAAO,oBAAQ,YAAM;AACnB,WAAO;AACLkC,MAAAA,YAAY,EAAE5C,0BADT;AAEL6C,MAAAA,MAAM,EAAE7C,0BAA0B,GAAGiB,oBAAoB,IAAI,IAA3B,GAAkC,IAF/D;AAGLI,MAAAA,IAAI,EAAEX,cAHD;AAILoC,MAAAA,OAAO,EAAE,CAAC7B,oBAJL;AAKL8B,MAAAA,kBAAkB,EAAE9C,6BALf;AAMLiB,MAAAA,aAAa,EAAbA,aANK;AAOLO,MAAAA,qBAAqB,EAArBA,qBAPK;AAQLX,MAAAA,kBAAkB,EAAlBA,kBARK;AASLR,MAAAA,kBAAkB,EAAE0B,wBATf;AAUL9B,MAAAA,oBAAoB,EAApBA,oBAVK;AAWLqC,MAAAA,0BAA0B,EAA1BA,0BAXK;AAYLS,MAAAA,qBAAqB,EAAE/D,wBAZlB;AAaL2B,MAAAA,WAAW,EAAEG,OAAO,CAACH,WAAD,CAbf;AAcL+B,MAAAA,iBAAiB,EAAjBA;AAdK,KAAP;AAgBD,GAjBM,EAiBJ,CACD3C,0BADC,EAEDY,WAFC,EAGD+B,iBAHC,EAID1D,wBAJC,EAKD+C,wBALC,EAMDlB,kBANC,EAODW,qBAPC,EAQDP,aARC,EASDD,oBATC,EAUDP,cAVC,EAWDR,oBAXC,EAYDqC,0BAZC,CAjBI,CAAP;AA+BD,CA7OM","sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react'\nimport {\n CheckoutFormErrorLabelsType,\n CheckoutFormErrorsResultType,\n} from '../..'\nimport { useCheckoutBillingAddress } from '../../../../hooks/useCheckoutBillingAddress'\nimport { companiesApi } from '../../../../api/companiesApi'\nimport { AddressDTO, OrderDTO } from '@sentecacommerce/sdk'\n\nimport { updateObjProp } from '../../utils'\nimport { QueryResult } from 'react-query'\nimport {\n useSavedBillingList,\n SavedBillingAddress,\n} from '../useSavedBillingList'\nimport { usePersistOnBeforeUnload } from '../usePersistOnBeforeUnload'\n\nconst IS_NEW = 'isNew'\n\nexport const useBilling = ({\n orderQuery,\n errorLabels,\n withSavedBillingAddressList,\n enableSaveBillingAddress,\n withPersistBeforePageLeave,\n countryCode,\n validateBillingAddress,\n enabled,\n requiredFields,\n requiredFieldsOnShipping,\n}: UseBillingProps): UseBillingResultType => {\n const emptyBillingAddress = useMemo(() => {\n return {\n _id: '',\n streetName: '',\n company: undefined,\n isDefaultBillingAddress: false,\n createdAt: 0,\n updatedAt: 0,\n countryCode,\n }\n }, [countryCode])\n\n const [isBillingAddressSubmitting, setIsBillingAddressSubmitting] = useState(\n false\n )\n\n const [isWithBillingAddress, setIsWithBillingAddress] = useState<\n null | boolean\n >(null)\n\n const [saveBillingAddress] = companiesApi.useAdd()\n\n const {\n handleBillingAddressChange,\n currentBillingAddress: savedBillingAddress,\n } = useCheckoutBillingAddress(orderQuery)\n\n const [billingAddress, setBillingAddress] = useState(savedBillingAddress)\n const [isAddingNew, setIsAddingNew] = useState<boolean | null>(null)\n\n const billingAddressList = useSavedBillingList({\n enabled: Boolean(\n enabled && isWithBillingAddress && withSavedBillingAddressList\n ),\n selectedBillingAddress: billingAddress,\n setBillingAddress,\n handleBillingAddressChange,\n })\n\n const billingAddressErrors = useMemo(() => {\n return (\n billingAddress &&\n validateBillingAddress(\n billingAddress,\n errorLabels,\n requiredFields,\n requiredFieldsOnShipping\n )\n )\n }, [billingAddress, errorLabels, validateBillingAddress])\n\n /**\n * On input change with nested fields support\n *\n * @param name example name: 'company.companyPerson'\n * @param value\n */\n const onInputChange = useCallback(\n async (name: string, value: any) => {\n const data = billingAddress && { ...billingAddress }\n\n // add an empty company when company is undefined\n if (data && !data?.company)\n data.company = { companyName: '', companyId: '' }\n\n if (data) updateObjProp(data, value, name.split('.'))\n\n setBillingAddress(data)\n },\n [billingAddress]\n )\n\n /**\n * Save current billing address state\n */\n const persistBillingAddress = useCallback(() => {\n if (!billingAddress || !isWithBillingAddress) return\n\n return new Promise((resolve, reject) => {\n handleBillingAddressChange(billingAddress, {\n onSuccess: (order: OrderDTO) => resolve(order),\n onError: () => reject(),\n })\n })\n }, [billingAddress])\n\n /**\n * Save the filled billing address\n */\n const handleSaveBillingAddress = useCallback(() => {\n if (!enableSaveBillingAddress) return\n\n setIsBillingAddressSubmitting(true)\n\n if (billingAddressErrors || !billingAddress) {\n return\n }\n\n const data = {\n ...billingAddress,\n custom: billingAddress?.custom?.filter(({ field }) => field !== IS_NEW),\n createdAt: Date.now(),\n updatedAt: Date.now(),\n }\n\n saveBillingAddress(data)\n handleBillingAddressChange(data)\n setIsAddingNew(false)\n }, [billingAddress, enableSaveBillingAddress, billingAddressErrors])\n\n /**\n * Clear billing address\n */\n const resetBillingAddress = useCallback(() => {\n handleBillingAddressChange(emptyBillingAddress)\n setBillingAddress(emptyBillingAddress)\n }, [emptyBillingAddress])\n\n const updateIsWithBillingAddress = useCallback(\n (value: boolean) => {\n if (!value) {\n setIsWithBillingAddress(false)\n\n resetBillingAddress()\n return\n }\n\n setIsWithBillingAddress(true)\n },\n [resetBillingAddress]\n )\n\n /**\n * Set initial data\n */\n useEffect(() => {\n if (billingAddress || typeof savedBillingAddress === 'undefined') return\n\n setBillingAddress(savedBillingAddress || emptyBillingAddress)\n }, [savedBillingAddress, billingAddress, emptyBillingAddress])\n\n /**\n * Set initial isWithBillingAddress\n */\n useEffect(() => {\n if (!billingAddress || isWithBillingAddress !== null) return\n\n setIsWithBillingAddress(Boolean(billingAddress.company))\n }, [billingAddress, isWithBillingAddress])\n\n // persist data before page exit\n usePersistOnBeforeUnload({\n enabled: withPersistBeforePageLeave,\n callback: persistBillingAddress,\n })\n\n /**\n * Set initial value\n */\n useEffect(() => {\n if (!billingAddress || isAddingNew !== null) return\n\n const initialValue =\n billingAddress?.custom?.some(\n ({ field, value }) => field === IS_NEW && value === 1\n ) || false\n\n setIsAddingNew(initialValue)\n }, [billingAddress, isAddingNew])\n\n const updateIsAddingNew = useCallback(\n (value: boolean) => {\n const data: AddressDTO = {\n _id: billingAddress?._id || '',\n createdAt: Date.now(),\n updatedAt: Date.now(),\n company: {\n companyName: '',\n companyId: '',\n },\n custom: [\n {\n field: IS_NEW,\n value: value ? 1 : 0,\n },\n ],\n }\n\n setBillingAddress(data)\n setIsAddingNew(value)\n },\n [billingAddress]\n )\n\n return useMemo(() => {\n return {\n isSubmitting: isBillingAddressSubmitting,\n errors: isBillingAddressSubmitting ? billingAddressErrors || null : null,\n data: billingAddress,\n isValid: !billingAddressErrors,\n updateIsSubmitting: setIsBillingAddressSubmitting,\n onInputChange,\n persistBillingAddress,\n billingAddressList,\n saveBillingAddress: handleSaveBillingAddress,\n isWithBillingAddress,\n updateIsWithBillingAddress,\n canSaveBillingAddress: enableSaveBillingAddress,\n isAddingNew: Boolean(isAddingNew),\n updateIsAddingNew,\n }\n }, [\n isBillingAddressSubmitting,\n isAddingNew,\n updateIsAddingNew,\n enableSaveBillingAddress,\n handleSaveBillingAddress,\n billingAddressList,\n persistBillingAddress,\n onInputChange,\n billingAddressErrors,\n billingAddress,\n isWithBillingAddress,\n updateIsWithBillingAddress,\n ])\n}\n\ntype UseBillingProps = {\n orderQuery: QueryResult<OrderDTO, unknown>\n errorLabels: CheckoutFormErrorLabelsType\n withSavedBillingAddressList: boolean\n enableSaveBillingAddress: boolean\n withPersistBeforePageLeave: boolean\n countryCode: string\n enabled: boolean\n requiredFields: string[]\n requiredFieldsOnShipping: string[]\n validateBillingAddress: (\n address: AddressDTO,\n errors: CheckoutFormErrorLabelsType,\n requiredCompanyFields: string[],\n requiredFields: string[]\n ) => CheckoutFormErrorsResultType\n}\n\nexport type UseBillingResultType = {\n isSubmitting: boolean\n errors?: CheckoutFormErrorsResultType\n isValid: boolean\n data?: AddressDTO\n updateIsSubmitting: (value: boolean) => void\n onInputChange?: (name: string, value: any) => void\n persistBillingAddress: () => void\n saveBillingAddress: () => void\n\n billingAddressList?: SavedBillingAddress[]\n\n canSaveBillingAddress: boolean\n\n isWithBillingAddress: null | boolean\n updateIsWithBillingAddress: (data: boolean) => void\n\n isAddingNew: boolean\n updateIsAddingNew: (value: boolean) => void\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../../../src/contexts/CheckoutForm/hooks/useBilling/index.ts"],"names":["IS_NEW","useBilling","orderQuery","errorLabels","withSavedBillingAddressList","enableSaveBillingAddress","withPersistBeforePageLeave","countryCode","validateBillingAddress","enabled","requiredFields","requiredFieldsOnShipping","emptyBillingAddress","_id","streetName","company","undefined","isDefaultBillingAddress","createdAt","updatedAt","isBillingAddressSubmitting","setIsBillingAddressSubmitting","isWithBillingAddress","setIsWithBillingAddress","companiesApi","useAdd","saveBillingAddress","handleBillingAddressChange","savedBillingAddress","currentBillingAddress","billingAddress","setBillingAddress","isAddingNew","setIsAddingNew","billingAddressList","Boolean","selectedBillingAddress","billingAddressErrors","onInputChange","name","value","data","companyName","companyId","split","persistBillingAddress","Promise","resolve","reject","onSuccess","order","onError","handleSaveBillingAddress","custom","filter","field","Date","now","resetBillingAddress","updateIsWithBillingAddress","callback","initialValue","some","updateIsAddingNew","isSubmitting","errors","isValid","updateIsSubmitting","canSaveBillingAddress"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react'\nimport {\n CheckoutFormErrorLabelsType,\n CheckoutFormErrorsResultType,\n} from '../..'\nimport { useCheckoutBillingAddress } from '../../../../hooks/useCheckoutBillingAddress'\nimport { companiesApi } from '../../../../api/companiesApi'\nimport { AddressDTO, OrderDTO } from '@sentecacommerce/sdk'\n\nimport { updateObjProp } from '../../utils'\nimport { QueryResult } from 'react-query'\nimport {\n useSavedBillingList,\n SavedBillingAddress,\n} from '../useSavedBillingList'\nimport { usePersistOnBeforeUnload } from '../usePersistOnBeforeUnload'\n\nconst IS_NEW = 'isNew'\n\nexport const useBilling = ({\n orderQuery,\n errorLabels,\n withSavedBillingAddressList,\n enableSaveBillingAddress,\n withPersistBeforePageLeave,\n countryCode,\n validateBillingAddress,\n enabled,\n requiredFields,\n requiredFieldsOnShipping,\n}: UseBillingProps): UseBillingResultType => {\n const emptyBillingAddress = useMemo(() => {\n return {\n _id: '',\n streetName: '',\n company: undefined,\n isDefaultBillingAddress: false,\n createdAt: 0,\n updatedAt: 0,\n countryCode,\n }\n }, [countryCode])\n\n const [isBillingAddressSubmitting, setIsBillingAddressSubmitting] = useState(\n false\n )\n\n const [isWithBillingAddress, setIsWithBillingAddress] = useState<\n null | boolean\n >(null)\n\n const [saveBillingAddress] = companiesApi.useAdd()\n\n const {\n handleBillingAddressChange,\n currentBillingAddress: savedBillingAddress,\n } = useCheckoutBillingAddress(orderQuery)\n\n const [billingAddress, setBillingAddress] = useState(savedBillingAddress)\n const [isAddingNew, setIsAddingNew] = useState<boolean | null>(null)\n\n const billingAddressList = useSavedBillingList({\n enabled: Boolean(\n enabled && isWithBillingAddress && withSavedBillingAddressList\n ),\n selectedBillingAddress: billingAddress,\n setBillingAddress,\n handleBillingAddressChange,\n })\n\n const billingAddressErrors = useMemo(() => {\n return (\n billingAddress &&\n validateBillingAddress(\n billingAddress,\n errorLabels,\n requiredFields,\n requiredFieldsOnShipping\n )\n )\n }, [billingAddress, errorLabels, validateBillingAddress])\n\n /**\n * On input change with nested fields support\n *\n * @param name example name: 'company.companyPerson'\n * @param value\n */\n const onInputChange = useCallback(\n async (name: string, value: any) => {\n const data = billingAddress && { ...billingAddress }\n\n // add an empty company when company is undefined\n if (data && !data?.company)\n data.company = { companyName: '', companyId: '' }\n\n if (data) updateObjProp(data, value, name.split('.'))\n\n setBillingAddress(data)\n },\n [billingAddress]\n )\n\n /**\n * Save current billing address state\n */\n const persistBillingAddress = useCallback(() => {\n if (!billingAddress || !isWithBillingAddress) return\n\n return new Promise((resolve, reject) => {\n handleBillingAddressChange(billingAddress, {\n onSuccess: (order: OrderDTO) => resolve(order),\n onError: () => reject(),\n })\n })\n }, [billingAddress])\n\n /**\n * Save the filled billing address\n */\n const handleSaveBillingAddress = useCallback(() => {\n if (!enableSaveBillingAddress) return\n\n setIsBillingAddressSubmitting(true)\n\n if (billingAddressErrors || !billingAddress) {\n return\n }\n\n const data = {\n ...billingAddress,\n custom: billingAddress?.custom?.filter(({ field }) => field !== IS_NEW),\n createdAt: Date.now(),\n updatedAt: Date.now(),\n }\n\n saveBillingAddress(data)\n handleBillingAddressChange(data)\n setIsAddingNew(false)\n }, [billingAddress, enableSaveBillingAddress, billingAddressErrors])\n\n /**\n * Clear billing address\n */\n const resetBillingAddress = useCallback(() => {\n handleBillingAddressChange(emptyBillingAddress)\n setBillingAddress(emptyBillingAddress)\n }, [emptyBillingAddress])\n\n const updateIsWithBillingAddress = useCallback(\n (value: boolean) => {\n if (!value) {\n setIsWithBillingAddress(false)\n\n resetBillingAddress()\n return\n }\n\n setIsWithBillingAddress(true)\n },\n [resetBillingAddress]\n )\n\n /**\n * Set initial data\n */\n useEffect(() => {\n if (billingAddress || typeof savedBillingAddress === 'undefined') return\n\n setBillingAddress(savedBillingAddress || emptyBillingAddress)\n }, [savedBillingAddress, billingAddress, emptyBillingAddress])\n\n /**\n * Set initial isWithBillingAddress\n */\n useEffect(() => {\n if (!billingAddress || isWithBillingAddress !== null) return\n\n setIsWithBillingAddress(Boolean(billingAddress.company))\n }, [billingAddress, isWithBillingAddress])\n\n // persist data before page exit\n usePersistOnBeforeUnload({\n enabled: withPersistBeforePageLeave,\n callback: persistBillingAddress,\n })\n\n /**\n * Set initial value\n */\n useEffect(() => {\n if (!billingAddress || isAddingNew !== null) return\n\n const initialValue =\n billingAddress?.custom?.some(\n ({ field, value }) => field === IS_NEW && value === 1\n ) || false\n\n setIsAddingNew(initialValue)\n }, [billingAddress, isAddingNew])\n\n const updateIsAddingNew = useCallback(\n (value: boolean) => {\n const data: AddressDTO = {\n _id: billingAddress?._id || '',\n createdAt: Date.now(),\n updatedAt: Date.now(),\n company: {\n companyName: '',\n companyId: '',\n },\n custom: [\n {\n field: IS_NEW,\n value: value ? 1 : 0,\n },\n ],\n }\n\n setBillingAddress(data)\n setIsAddingNew(value)\n },\n [billingAddress]\n )\n\n return useMemo(() => {\n return {\n isSubmitting: isBillingAddressSubmitting,\n errors: isBillingAddressSubmitting ? billingAddressErrors || null : null,\n data: billingAddress,\n isValid: !billingAddressErrors,\n updateIsSubmitting: setIsBillingAddressSubmitting,\n onInputChange,\n persistBillingAddress,\n billingAddressList,\n saveBillingAddress: handleSaveBillingAddress,\n isWithBillingAddress,\n updateIsWithBillingAddress,\n canSaveBillingAddress: enableSaveBillingAddress,\n isAddingNew: Boolean(isAddingNew),\n updateIsAddingNew,\n }\n }, [\n isBillingAddressSubmitting,\n isAddingNew,\n updateIsAddingNew,\n enableSaveBillingAddress,\n handleSaveBillingAddress,\n billingAddressList,\n persistBillingAddress,\n onInputChange,\n billingAddressErrors,\n billingAddress,\n isWithBillingAddress,\n updateIsWithBillingAddress,\n ])\n}\n\ntype UseBillingProps = {\n orderQuery: QueryResult<OrderDTO, unknown>\n errorLabels: CheckoutFormErrorLabelsType\n withSavedBillingAddressList: boolean\n enableSaveBillingAddress: boolean\n withPersistBeforePageLeave: boolean\n countryCode?: string\n enabled: boolean\n requiredFields: string[]\n requiredFieldsOnShipping: string[]\n validateBillingAddress: (\n address: AddressDTO,\n errors: CheckoutFormErrorLabelsType,\n requiredCompanyFields: string[],\n requiredFields: string[]\n ) => CheckoutFormErrorsResultType\n}\n\nexport type UseBillingResultType = {\n isSubmitting: boolean\n errors?: CheckoutFormErrorsResultType\n isValid: boolean\n data?: AddressDTO\n updateIsSubmitting: (value: boolean) => void\n onInputChange?: (name: string, value: any) => void\n persistBillingAddress: () => void\n saveBillingAddress: () => void\n\n billingAddressList?: SavedBillingAddress[]\n\n canSaveBillingAddress: boolean\n\n isWithBillingAddress: null | boolean\n updateIsWithBillingAddress: (data: boolean) => void\n\n isAddingNew: boolean\n updateIsAddingNew: (value: boolean) => void\n}\n"],"file":"index.js"}
@@ -18,6 +18,10 @@ var usePayment = function usePayment(_ref) {
18
18
  isPaymentSubmitting = _useState[0],
19
19
  setIsPaymentSubmitting = _useState[1];
20
20
 
21
+ var _useState2 = (0, _react.useState)({}),
22
+ loanInfo = _useState2[0],
23
+ setLoanInfo = _useState2[1];
24
+
21
25
  var paymentMethods = (0, _useCheckoutPayment.useCheckoutPayment)({
22
26
  query: orderQuery,
23
27
  enabled: enabled
@@ -29,9 +33,11 @@ var usePayment = function usePayment(_ref) {
29
33
  errors: isPaymentSubmitting ? paymentErrors : null,
30
34
  isValid: !paymentErrors,
31
35
  updateIsSubmitting: setIsPaymentSubmitting,
32
- paymentMethods: paymentMethods
36
+ updateLoanInfo: setLoanInfo,
37
+ paymentMethods: paymentMethods,
38
+ loanInfo: loanInfo
33
39
  };
34
- }, [paymentMethods, paymentErrors, isPaymentSubmitting]);
40
+ }, [paymentMethods, paymentErrors, isPaymentSubmitting, loanInfo]);
35
41
  };
36
42
 
37
43
  exports.usePayment = usePayment;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/contexts/CheckoutForm/hooks/usePayment/index.ts"],"names":["usePayment","orderQuery","errorLabels","enabled","isPaymentSubmitting","setIsPaymentSubmitting","paymentMethods","query","paymentErrors","isSubmitting","errors","isValid","updateIsSubmitting"],"mappings":";;;;;AACA;;AAMA;;AAIA;;AAEO,IAAMA,UAAU,GAAG,SAAbA,UAAa,OAQE;AAAA,MAP1BC,UAO0B,QAP1BA,UAO0B;AAAA,MAN1BC,WAM0B,QAN1BA,WAM0B;AAAA,MAL1BC,OAK0B,QAL1BA,OAK0B;;AAAA,kBAC4B,qBAAS,KAAT,CAD5B;AAAA,MACnBC,mBADmB;AAAA,MACEC,sBADF;;AAG1B,MAAMC,cAAc,GAAG,4CAAmB;AAAEC,IAAAA,KAAK,EAAEN,UAAT;AAAqBE,IAAAA,OAAO,EAAPA;AAArB,GAAnB,CAAvB;AAEA,MAAMK,aAAa,GACjBF,cAAc,IAAI,4BAAgBA,cAAhB,EAAgCJ,WAAhC,CADpB;AAGA,SAAO,oBAAQ,YAAM;AACnB,WAAO;AACLO,MAAAA,YAAY,EAAEL,mBADT;AAELM,MAAAA,MAAM,EAAEN,mBAAmB,GAAGI,aAAH,GAAmB,IAFzC;AAGLG,MAAAA,OAAO,EAAE,CAACH,aAHL;AAILI,MAAAA,kBAAkB,EAAEP,sBAJf;AAKLC,MAAAA,cAAc,EAAdA;AALK,KAAP;AAOD,GARM,EAQJ,CAACA,cAAD,EAAiBE,aAAjB,EAAgCJ,mBAAhC,CARI,CAAP;AASD,CAzBM","sourcesContent":["import { OrderDTO } from '@sentecacommerce/sdk'\nimport { useMemo, useState } from 'react'\nimport { QueryResult } from 'react-query'\nimport {\n CheckoutFormErrorLabelsType,\n CheckoutFormErrorsResultType,\n} from '../..'\nimport {\n PaymentMethodsResult,\n useCheckoutPayment,\n} from '../../../../hooks/useCheckoutPayment'\nimport { validatePayment } from '../../utils'\n\nexport const usePayment = ({\n orderQuery,\n errorLabels,\n enabled,\n}: {\n orderQuery: QueryResult<OrderDTO, unknown>\n errorLabels: CheckoutFormErrorLabelsType\n enabled: boolean\n}): UsePaymentResultType => {\n const [isPaymentSubmitting, setIsPaymentSubmitting] = useState(false)\n\n const paymentMethods = useCheckoutPayment({ query: orderQuery, enabled })\n\n const paymentErrors =\n paymentMethods && validatePayment(paymentMethods, errorLabels)\n\n return useMemo(() => {\n return {\n isSubmitting: isPaymentSubmitting,\n errors: isPaymentSubmitting ? paymentErrors : null,\n isValid: !paymentErrors,\n updateIsSubmitting: setIsPaymentSubmitting,\n paymentMethods,\n }\n }, [paymentMethods, paymentErrors, isPaymentSubmitting])\n}\n\nexport type UsePaymentResultType = {\n isSubmitting: boolean\n errors?: CheckoutFormErrorsResultType\n isValid: boolean\n updateIsSubmitting: (value: boolean) => void\n paymentMethods?: PaymentMethodsResult\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../../../src/contexts/CheckoutForm/hooks/usePayment/index.ts"],"names":["usePayment","orderQuery","errorLabels","enabled","isPaymentSubmitting","setIsPaymentSubmitting","loanInfo","setLoanInfo","paymentMethods","query","paymentErrors","isSubmitting","errors","isValid","updateIsSubmitting","updateLoanInfo"],"mappings":";;;;;AACA;;AAMA;;AAIA;;AAGO,IAAMA,UAAU,GAAG,SAAbA,UAAa,OAQE;AAAA,MAP1BC,UAO0B,QAP1BA,UAO0B;AAAA,MAN1BC,WAM0B,QAN1BA,WAM0B;AAAA,MAL1BC,OAK0B,QAL1BA,OAK0B;;AAAA,kBAC4B,qBAAS,KAAT,CAD5B;AAAA,MACnBC,mBADmB;AAAA,MACEC,sBADF;;AAAA,mBAEM,qBAAS,EAAT,CAFN;AAAA,MAEnBC,QAFmB;AAAA,MAETC,WAFS;;AAI1B,MAAMC,cAAc,GAAG,4CAAmB;AAAEC,IAAAA,KAAK,EAAER,UAAT;AAAqBE,IAAAA,OAAO,EAAPA;AAArB,GAAnB,CAAvB;AAEA,MAAMO,aAAa,GACjBF,cAAc,IAAI,4BAAgBA,cAAhB,EAAgCN,WAAhC,CADpB;AAGA,SAAO,oBAAQ,YAAM;AACnB,WAAO;AACLS,MAAAA,YAAY,EAAEP,mBADT;AAELQ,MAAAA,MAAM,EAAER,mBAAmB,GAAGM,aAAH,GAAmB,IAFzC;AAGLG,MAAAA,OAAO,EAAE,CAACH,aAHL;AAILI,MAAAA,kBAAkB,EAAET,sBAJf;AAKLU,MAAAA,cAAc,EAAER,WALX;AAMLC,MAAAA,cAAc,EAAdA,cANK;AAOLF,MAAAA,QAAQ,EAARA;AAPK,KAAP;AASD,GAVM,EAUJ,CAACE,cAAD,EAAiBE,aAAjB,EAAgCN,mBAAhC,EAAqDE,QAArD,CAVI,CAAP;AAWD,CA5BM","sourcesContent":["import { OrderDTO } from '@sentecacommerce/sdk'\nimport { useMemo, useState } from 'react'\nimport { QueryResult } from 'react-query'\nimport {\n CheckoutFormErrorLabelsType,\n CheckoutFormErrorsResultType,\n} from '../..'\nimport {\n PaymentMethodsResult,\n useCheckoutPayment,\n} from '../../../../hooks/useCheckoutPayment'\nimport { validatePayment } from '../../utils'\nimport { useBoolean } from '../../../../index'\n\nexport const usePayment = ({\n orderQuery,\n errorLabels,\n enabled,\n}: {\n orderQuery: QueryResult<OrderDTO, unknown>\n errorLabels: CheckoutFormErrorLabelsType\n enabled: boolean\n}): UsePaymentResultType => {\n const [isPaymentSubmitting, setIsPaymentSubmitting] = useState(false)\n const [loanInfo, setLoanInfo] = useState({})\n\n const paymentMethods = useCheckoutPayment({ query: orderQuery, enabled })\n\n const paymentErrors =\n paymentMethods && validatePayment(paymentMethods, errorLabels)\n\n return useMemo(() => {\n return {\n isSubmitting: isPaymentSubmitting,\n errors: isPaymentSubmitting ? paymentErrors : null,\n isValid: !paymentErrors,\n updateIsSubmitting: setIsPaymentSubmitting,\n updateLoanInfo: setLoanInfo,\n paymentMethods,\n loanInfo,\n }\n }, [paymentMethods, paymentErrors, isPaymentSubmitting, loanInfo])\n}\n\nexport type UsePaymentResultType = {\n isSubmitting: boolean\n errors?: CheckoutFormErrorsResultType\n isValid: boolean\n updateIsSubmitting: (value: boolean) => void\n updateLoanInfo: (value: any) => void\n loanInfo: any\n paymentMethods?: PaymentMethodsResult\n}\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/contexts/CheckoutForm/hooks/useShipping/index.ts"],"names":["IS_NEW","SELECTED_ADDRESS_ID","useShipping","withPersistBeforePageLeave","orderQuery","validations","enableSavedAddressList","errorLabels","enableSaveAddress","autofillShippingPersonalData","userQuery","enabled","countryCode","requiredFields","enableNoShippingMethodMode","isShippingSubmitting","setIsShippingSubmitting","addressesApi","useAdd","saveAddress","handleShippingAddressChange","savedShippingAddress","currentShippingAddress","shippingAddress","setShippingAddress","mod","noShippingMethod","selectedShippingAddress","savedAddressList","hasAvailableSavedAddress","shippingAddressWithModule","moduleAddress","moduleData","address","result","city","name","quarter","streetName","street","postalCode","postCode","moduleKey","addressErrors","handleShippingAddressSave","_id","undefined","custom","filter","field","onSuccess","data","createdAt","Date","now","updatedAt","value","onInputChange","split","setGeographicalData","latitude","longitude","placeId","geocoding","geographicalCoordinates","unsetShippingAddress","persistShippingAddress","Promise","resolve","reject","order","onError","callback","isAddingNew","Boolean","some","updateIsAddingNew","autofillData","firstName","lastName","email","phoneNumber","isSubmitting","errors","isValid","updateIsSubmitting","isSavedAddressListEnabled","saveShippingAddress","canSaveAddress"],"mappings":"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","sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport { QueryResult } from 'react-query'\nimport { AddressDTO, CustomerDTO, OrderDTO } from '@sentecacommerce/sdk'\n\nimport {\n CheckoutFormErrorLabelsType,\n CheckoutFormErrorsResultType,\n} from '../../'\nimport { addressesApi } from '../../../../api/addressesApi'\nimport { useCheckoutShippingModule } from '../../../../hooks/useCheckoutShippingModule'\nimport { useCheckoutShippingAddress } from '../../../../hooks/useCheckoutShippingAddress'\n\nimport {\n validateShipping,\n updateObjProp,\n ShippingValidationsType,\n} from '../../utils'\nimport { usePersistOnBeforeUnload } from '../usePersistOnBeforeUnload'\nimport { useSavedShippingList } from '../useSavedShippingList'\nimport { useShippingInitialData } from '../useShippingInitialData'\n\nconst IS_NEW = 'isNew'\nconst SELECTED_ADDRESS_ID = 'selectedAddressId'\n\nexport const useShipping = ({\n withPersistBeforePageLeave,\n orderQuery,\n validations,\n enableSavedAddressList,\n errorLabels,\n enableSaveAddress,\n autofillShippingPersonalData,\n userQuery,\n enabled,\n countryCode,\n requiredFields,\n enableNoShippingMethodMode,\n}: UseShippingProps): UseShippingResultType => {\n const [isShippingSubmitting, setIsShippingSubmitting] = useState(false)\n\n const [saveAddress] = addressesApi.useAdd({})\n\n const {\n handleShippingAddressChange,\n currentShippingAddress: savedShippingAddress,\n } = useCheckoutShippingAddress(orderQuery)\n\n const [shippingAddress, setShippingAddress] = useState<\n AddressDTO | undefined\n >()\n\n const mod = useCheckoutShippingModule(orderQuery, !enableNoShippingMethodMode)\n\n const { savedAddressList, hasAvailableSavedAddress } = useSavedShippingList({\n noShippingMethod: enableNoShippingMethodMode,\n enabled: enabled && enableSavedAddressList,\n selectedShippingAddress: shippingAddress,\n setShippingAddress,\n handleShippingAddressChange,\n })\n const shippingAddressWithModule: AddressDTO | undefined = useMemo(() => {\n if (!shippingAddress) return\n const moduleAddress = mod?.moduleData?.address\n\n let result = {\n ...shippingAddress,\n city: moduleAddress?.city?.name || shippingAddress.city,\n quarter: moduleAddress?.quarter?.name || shippingAddress.quarter,\n streetName: moduleAddress?.street?.name || shippingAddress.streetName,\n postalCode:\n (moduleAddress?.city?.postCode ?? '') || shippingAddress.postalCode,\n }\n\n if (!enableNoShippingMethodMode) {\n result = {\n ...result,\n moduleData: [\n {\n moduleKey: mod?.moduleKey as string,\n moduleData: {\n ...mod?.moduleData,\n },\n },\n ],\n }\n }\n\n return result\n }, [shippingAddress, mod])\n\n const addressErrors = useMemo(\n () =>\n validateShipping(\n shippingAddressWithModule,\n mod,\n errorLabels,\n validations,\n requiredFields,\n enableNoShippingMethodMode\n ),\n [shippingAddressWithModule, mod, errorLabels, validations]\n )\n\n /**\n * Save the current address\n */\n const handleShippingAddressSave = useCallback(() => {\n if (!enableSaveAddress) return\n\n setIsShippingSubmitting(true)\n if (addressErrors) return\n\n saveAddress(\n {\n ...shippingAddressWithModule,\n _id: undefined,\n countryCode,\n custom: shippingAddressWithModule?.custom?.filter(\n ({ field }) => field !== IS_NEW && field !== SELECTED_ADDRESS_ID\n ),\n },\n {\n onSuccess: (address) => {\n const data = {\n ...address,\n createdAt: Date.now(),\n updatedAt: Date.now(),\n custom: [\n ...(address?.custom || []),\n {\n field: SELECTED_ADDRESS_ID,\n value: address._id,\n },\n ],\n }\n\n setShippingAddress(data)\n handleShippingAddressChange(data)\n },\n }\n )\n }, [addressErrors, enableSaveAddress, shippingAddressWithModule])\n\n /**\n * Name supports nested fields\n *\n * @param name example name: 'example.firstName'\n * @param value\n */\n const onInputChange = useCallback(\n async (name: string, value: any) => {\n if (!shippingAddress) return\n\n const data = { ...shippingAddress }\n\n updateObjProp(data, value, name.split('.'))\n\n setShippingAddress(data)\n },\n [shippingAddress]\n )\n\n const setGeographicalData = useCallback(\n async ({\n latitude,\n longitude,\n placeId,\n geocoding,\n }: UseGeographicalData) => {\n if (!shippingAddressWithModule) return\n\n const data = {\n ...shippingAddressWithModule,\n geographicalCoordinates: {\n latitude,\n longitude,\n },\n custom: [\n ...(shippingAddress?.custom || []),\n { field: 'placeId', value: placeId },\n { field: 'geocoding', value: geocoding },\n ],\n }\n\n setShippingAddress(data)\n return await handleShippingAddressChange(data)\n },\n [shippingAddress, handleShippingAddressChange]\n )\n\n const unsetShippingAddress = useCallback(async () => {\n setShippingAddress(undefined)\n await handleShippingAddressChange()\n }, [])\n\n const persistShippingAddress = useCallback(() => {\n if (!shippingAddressWithModule) return\n\n return new Promise((resolve, reject) => {\n handleShippingAddressChange(shippingAddressWithModule, {\n onSuccess: (order: OrderDTO) => resolve(order),\n onError: () => reject(),\n })\n })\n }, [shippingAddressWithModule])\n\n /**\n * Set initial data\n */\n useShippingInitialData({\n savedShippingAddress,\n shippingAddress,\n setShippingAddress,\n autofillShippingPersonalData,\n userQuery,\n })\n\n // persist data before page exit\n usePersistOnBeforeUnload({\n enabled: withPersistBeforePageLeave,\n callback: persistShippingAddress,\n })\n\n const isAddingNew = Boolean(\n shippingAddressWithModule?.custom?.some(\n ({ field, value }) => field === IS_NEW && value === 1\n )\n )\n\n const updateIsAddingNew = useCallback(\n (value: boolean) => {\n if (isAddingNew === value) return\n\n let autofillData = {}\n\n if (value && autofillShippingPersonalData) {\n autofillData = {\n firstName: userQuery?.data?.firstName,\n lastName: userQuery?.data?.lastName,\n email: userQuery?.data?.email,\n phoneNumber: userQuery?.data?.phoneNumber,\n }\n }\n\n const data: AddressDTO = {\n _id: shippingAddressWithModule?._id as string,\n createdAt: Date.now(),\n updatedAt: Date.now(),\n ...autofillData,\n custom: [\n {\n field: IS_NEW,\n value: value ? 1 : 0,\n },\n ],\n }\n\n setIsShippingSubmitting(false)\n handleShippingAddressChange(data)\n setShippingAddress(data)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n isAddingNew,\n shippingAddressWithModule,\n autofillShippingPersonalData,\n userQuery?.data?.firstName,\n userQuery?.data?.lastName,\n userQuery?.data?.email,\n userQuery?.data?.phoneNumber,\n ]\n )\n\n return useMemo(() => {\n return {\n isSubmitting: isShippingSubmitting,\n errors: isShippingSubmitting ? addressErrors : null,\n isValid: !addressErrors,\n updateIsSubmitting: setIsShippingSubmitting,\n onInputChange,\n persistShippingAddress,\n isSavedAddressListEnabled: enableSavedAddressList,\n saveShippingAddress: handleShippingAddressSave,\n savedAddressList,\n data: shippingAddressWithModule,\n isAddingNew,\n updateIsAddingNew,\n canSaveAddress: enableSaveAddress,\n hasAvailableSavedAddress,\n unsetShippingAddress,\n setGeographicalData,\n }\n }, [\n isShippingSubmitting,\n addressErrors,\n onInputChange,\n persistShippingAddress,\n enableSavedAddressList,\n handleShippingAddressSave,\n shippingAddressWithModule,\n savedAddressList,\n isAddingNew,\n updateIsAddingNew,\n enableSaveAddress,\n hasAvailableSavedAddress,\n unsetShippingAddress,\n setGeographicalData,\n ])\n}\n\ntype UseGeographicalData = {\n latitude: number\n longitude: number\n placeId: string\n geocoding: string\n}\n\ntype UseShippingProps = {\n withPersistBeforePageLeave: boolean\n orderQuery: QueryResult<OrderDTO, unknown>\n validations: ShippingValidationsType\n enableSavedAddressList: boolean\n enableSaveAddress: boolean\n autofillShippingPersonalData: boolean\n errorLabels: CheckoutFormErrorLabelsType\n userQuery: QueryResult<CustomerDTO, unknown>\n enabled: boolean\n countryCode: string\n requiredFields: string[]\n enableNoShippingMethodMode: boolean\n}\n\ntype Address = AddressDTO & {\n isSelectable: boolean\n isSelected: boolean\n select: () => void\n}\n\nexport type UseShippingResultType = {\n isSubmitting: boolean\n errors?: CheckoutFormErrorsResultType\n isValid: boolean\n isSavedAddressListEnabled: boolean\n savedAddressList?: Address[]\n hasAvailableSavedAddress: boolean\n updateIsSubmitting: (value: boolean) => void\n onInputChange?: (name: string, value: any) => void\n persistShippingAddress: () => void\n data?: AddressDTO\n saveShippingAddress: () => void\n canSaveAddress: boolean\n\n isAddingNew: boolean\n updateIsAddingNew: (value: boolean) => void\n unsetShippingAddress: () => void\n setGeographicalData: (\n objParams: UseGeographicalData\n ) => Promise<OrderDTO | undefined>\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../../../src/contexts/CheckoutForm/hooks/useShipping/index.ts"],"names":["IS_NEW","SELECTED_ADDRESS_ID","useShipping","withPersistBeforePageLeave","orderQuery","validations","enableSavedAddressList","errorLabels","enableSaveAddress","autofillShippingPersonalData","userQuery","enabled","countryCode","requiredFields","enableNoShippingMethodMode","isShippingSubmitting","setIsShippingSubmitting","addressesApi","useAdd","saveAddress","handleShippingAddressChange","savedShippingAddress","currentShippingAddress","shippingAddress","setShippingAddress","mod","noShippingMethod","selectedShippingAddress","savedAddressList","hasAvailableSavedAddress","shippingAddressWithModule","moduleAddress","moduleData","address","result","city","name","quarter","streetName","street","postalCode","postCode","moduleKey","addressErrors","handleShippingAddressSave","_id","undefined","custom","filter","field","onSuccess","data","createdAt","Date","now","updatedAt","value","onInputChange","split","setGeographicalData","latitude","longitude","placeId","geocoding","geographicalCoordinates","unsetShippingAddress","persistShippingAddress","Promise","resolve","reject","order","onError","callback","isAddingNew","Boolean","some","updateIsAddingNew","autofillData","firstName","lastName","email","phoneNumber","isSubmitting","errors","isValid","updateIsSubmitting","isSavedAddressListEnabled","saveShippingAddress","canSaveAddress"],"mappings":"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","sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport { QueryResult } from 'react-query'\nimport { AddressDTO, CustomerDTO, OrderDTO } from '@sentecacommerce/sdk'\n\nimport {\n CheckoutFormErrorLabelsType,\n CheckoutFormErrorsResultType,\n} from '../../'\nimport { addressesApi } from '../../../../api/addressesApi'\nimport { useCheckoutShippingModule } from '../../../../hooks/useCheckoutShippingModule'\nimport { useCheckoutShippingAddress } from '../../../../hooks/useCheckoutShippingAddress'\n\nimport {\n validateShipping,\n updateObjProp,\n ShippingValidationsType,\n} from '../../utils'\nimport { usePersistOnBeforeUnload } from '../usePersistOnBeforeUnload'\nimport { useSavedShippingList } from '../useSavedShippingList'\nimport { useShippingInitialData } from '../useShippingInitialData'\n\nconst IS_NEW = 'isNew'\nconst SELECTED_ADDRESS_ID = 'selectedAddressId'\n\nexport const useShipping = ({\n withPersistBeforePageLeave,\n orderQuery,\n validations,\n enableSavedAddressList,\n errorLabels,\n enableSaveAddress,\n autofillShippingPersonalData,\n userQuery,\n enabled,\n countryCode,\n requiredFields,\n enableNoShippingMethodMode,\n}: UseShippingProps): UseShippingResultType => {\n const [isShippingSubmitting, setIsShippingSubmitting] = useState(false)\n\n const [saveAddress] = addressesApi.useAdd({})\n\n const {\n handleShippingAddressChange,\n currentShippingAddress: savedShippingAddress,\n } = useCheckoutShippingAddress(orderQuery)\n\n const [shippingAddress, setShippingAddress] = useState<\n AddressDTO | undefined\n >()\n\n const mod = useCheckoutShippingModule(orderQuery, !enableNoShippingMethodMode)\n\n const { savedAddressList, hasAvailableSavedAddress } = useSavedShippingList({\n noShippingMethod: enableNoShippingMethodMode,\n enabled: enabled && enableSavedAddressList,\n selectedShippingAddress: shippingAddress,\n setShippingAddress,\n handleShippingAddressChange,\n })\n const shippingAddressWithModule: AddressDTO | undefined = useMemo(() => {\n if (!shippingAddress) return\n const moduleAddress = mod?.moduleData?.address\n\n let result = {\n ...shippingAddress,\n city: moduleAddress?.city?.name || shippingAddress.city,\n quarter: moduleAddress?.quarter?.name || shippingAddress.quarter,\n streetName: moduleAddress?.street?.name || shippingAddress.streetName,\n postalCode:\n (moduleAddress?.city?.postCode ?? '') || shippingAddress.postalCode,\n }\n\n if (!enableNoShippingMethodMode) {\n result = {\n ...result,\n moduleData: [\n {\n moduleKey: mod?.moduleKey as string,\n moduleData: {\n ...mod?.moduleData,\n },\n },\n ],\n }\n }\n\n return result\n }, [shippingAddress, mod])\n\n const addressErrors = useMemo(\n () =>\n validateShipping(\n shippingAddressWithModule,\n mod,\n errorLabels,\n validations,\n requiredFields,\n enableNoShippingMethodMode\n ),\n [shippingAddressWithModule, mod, errorLabels, validations]\n )\n\n /**\n * Save the current address\n */\n const handleShippingAddressSave = useCallback(() => {\n if (!enableSaveAddress) return\n\n setIsShippingSubmitting(true)\n if (addressErrors) return\n\n saveAddress(\n {\n ...shippingAddressWithModule,\n _id: undefined,\n countryCode,\n custom: shippingAddressWithModule?.custom?.filter(\n ({ field }) => field !== IS_NEW && field !== SELECTED_ADDRESS_ID\n ),\n },\n {\n onSuccess: (address) => {\n const data = {\n ...address,\n createdAt: Date.now(),\n updatedAt: Date.now(),\n custom: [\n ...(address?.custom || []),\n {\n field: SELECTED_ADDRESS_ID,\n value: address._id,\n },\n ],\n }\n\n setShippingAddress(data)\n handleShippingAddressChange(data)\n },\n }\n )\n }, [addressErrors, enableSaveAddress, shippingAddressWithModule])\n\n /**\n * Name supports nested fields\n *\n * @param name example name: 'example.firstName'\n * @param value\n */\n const onInputChange = useCallback(\n async (name: string, value: any) => {\n if (!shippingAddress) return\n\n const data = { ...shippingAddress }\n\n updateObjProp(data, value, name.split('.'))\n\n setShippingAddress(data)\n },\n [shippingAddress]\n )\n\n const setGeographicalData = useCallback(\n async ({\n latitude,\n longitude,\n placeId,\n geocoding,\n }: UseGeographicalData) => {\n if (!shippingAddressWithModule) return\n\n const data = {\n ...shippingAddressWithModule,\n geographicalCoordinates: {\n latitude,\n longitude,\n },\n custom: [\n ...(shippingAddress?.custom || []),\n { field: 'placeId', value: placeId },\n { field: 'geocoding', value: geocoding },\n ],\n }\n\n setShippingAddress(data)\n return await handleShippingAddressChange(data)\n },\n [shippingAddress, handleShippingAddressChange]\n )\n\n const unsetShippingAddress = useCallback(async () => {\n setShippingAddress(undefined)\n await handleShippingAddressChange()\n }, [])\n\n const persistShippingAddress = useCallback(() => {\n if (!shippingAddressWithModule) return\n\n return new Promise((resolve, reject) => {\n handleShippingAddressChange(shippingAddressWithModule, {\n onSuccess: (order: OrderDTO) => resolve(order),\n onError: () => reject(),\n })\n })\n }, [shippingAddressWithModule])\n\n /**\n * Set initial data\n */\n useShippingInitialData({\n savedShippingAddress,\n shippingAddress,\n setShippingAddress,\n autofillShippingPersonalData,\n userQuery,\n })\n\n // persist data before page exit\n usePersistOnBeforeUnload({\n enabled: withPersistBeforePageLeave,\n callback: persistShippingAddress,\n })\n\n const isAddingNew = Boolean(\n shippingAddressWithModule?.custom?.some(\n ({ field, value }) => field === IS_NEW && value === 1\n )\n )\n\n const updateIsAddingNew = useCallback(\n (value: boolean) => {\n if (isAddingNew === value) return\n\n let autofillData = {}\n\n if (value && autofillShippingPersonalData) {\n autofillData = {\n firstName: userQuery?.data?.firstName,\n lastName: userQuery?.data?.lastName,\n email: userQuery?.data?.email,\n phoneNumber: userQuery?.data?.phoneNumber,\n }\n }\n\n const data: AddressDTO = {\n _id: shippingAddressWithModule?._id as string,\n createdAt: Date.now(),\n updatedAt: Date.now(),\n ...autofillData,\n custom: [\n {\n field: IS_NEW,\n value: value ? 1 : 0,\n },\n ],\n }\n\n setIsShippingSubmitting(false)\n handleShippingAddressChange(data)\n setShippingAddress(data)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n isAddingNew,\n shippingAddressWithModule,\n autofillShippingPersonalData,\n userQuery?.data?.firstName,\n userQuery?.data?.lastName,\n userQuery?.data?.email,\n userQuery?.data?.phoneNumber,\n ]\n )\n\n return useMemo(() => {\n return {\n isSubmitting: isShippingSubmitting,\n errors: isShippingSubmitting ? addressErrors : null,\n isValid: !addressErrors,\n updateIsSubmitting: setIsShippingSubmitting,\n onInputChange,\n persistShippingAddress,\n isSavedAddressListEnabled: enableSavedAddressList,\n saveShippingAddress: handleShippingAddressSave,\n savedAddressList,\n data: shippingAddressWithModule,\n isAddingNew,\n updateIsAddingNew,\n canSaveAddress: enableSaveAddress,\n hasAvailableSavedAddress,\n unsetShippingAddress,\n setGeographicalData,\n }\n }, [\n isShippingSubmitting,\n addressErrors,\n onInputChange,\n persistShippingAddress,\n enableSavedAddressList,\n handleShippingAddressSave,\n shippingAddressWithModule,\n savedAddressList,\n isAddingNew,\n updateIsAddingNew,\n enableSaveAddress,\n hasAvailableSavedAddress,\n unsetShippingAddress,\n setGeographicalData,\n ])\n}\n\ntype UseGeographicalData = {\n latitude: number\n longitude: number\n placeId: string\n geocoding: string\n}\n\ntype UseShippingProps = {\n withPersistBeforePageLeave: boolean\n orderQuery: QueryResult<OrderDTO, unknown>\n validations: ShippingValidationsType\n enableSavedAddressList: boolean\n enableSaveAddress: boolean\n autofillShippingPersonalData: boolean\n errorLabels: CheckoutFormErrorLabelsType\n userQuery: QueryResult<CustomerDTO, unknown>\n enabled: boolean\n countryCode?: string\n requiredFields: string[]\n enableNoShippingMethodMode: boolean\n}\n\ntype Address = AddressDTO & {\n isSelectable: boolean\n isSelected: boolean\n select: () => void\n}\n\nexport type UseShippingResultType = {\n isSubmitting: boolean\n errors?: CheckoutFormErrorsResultType\n isValid: boolean\n isSavedAddressListEnabled: boolean\n savedAddressList?: Address[]\n hasAvailableSavedAddress: boolean\n updateIsSubmitting: (value: boolean) => void\n onInputChange?: (name: string, value: any) => void\n persistShippingAddress: () => void\n data?: AddressDTO\n saveShippingAddress: () => void\n canSaveAddress: boolean\n\n isAddingNew: boolean\n updateIsAddingNew: (value: boolean) => void\n unsetShippingAddress: () => void\n setGeographicalData: (\n objParams: UseGeographicalData\n ) => Promise<OrderDTO | undefined>\n}\n"],"file":"index.js"}
@@ -247,6 +247,7 @@ function CheckoutFormContextProvider(_ref) {
247
247
  setIsBillingSubmitting: billingState.updateIsSubmitting,
248
248
  isPaymentValid: paymentState.isValid,
249
249
  setIsPaymentSubmitting: paymentState.updateIsSubmitting,
250
+ loanInfo: paymentState.loanInfo,
250
251
  step: step,
251
252
  updateStep: setStep,
252
253
  saveOrder: handleCheckoutSubmit,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/contexts/CheckoutForm/index.tsx"],"names":["CheckoutFormContext","CheckoutFormContextProvider","children","defaultStep","errorLabels","enableSavedAddressList","withPersistBeforePageLeave","shippingValidations","defaultShippingValidations","validateBillingAddress","genericBillingAddressValidation","enableSaveBillingAddress","enableSavedBillingAddressList","countryCode","enableSaveAddress","autofillShippingPersonalData","onSubmit","paymentEnabledOnStep","getPaymentMethodsWhenShippingMethodIsSelected","shippingEnabledOnStep","billingEnabledOnStep","customState","initialCustomState","redirectTimeout","onBeforeRedirect","onSuccess","onError","isBoricaInDevMode","withPixelMeta","requiredFieldsOnShippingStep","requiredFieldsOnBillingAddressStep","enableNoShippingMethodMode","disablePaymentRedirects","orderQuery","myCartApi","useGet","boricaData","setBoricaData","step","setStep","isRedirecting","setIsRedirecting","fieldsWithError","serverErrors","setServerErrors","collectFieldsWithError","error","push","handleStepChange","newStep","window","scrollTo","updateServerErrors","errors","formattedErrors","reduce","data","code","response","internalError","isAuthenticated","isShippingEnabled","userQuery","usersApi","enabled","shippingState","Boolean","validations","requiredFields","mod","getIsPaymentMethodsEnabled","moduleKey","moduleData","methodKey","paymentState","billingState","withSavedBillingAddressList","requiredFieldsOnShipping","onBeforeBoricaRedirect","setTimeout","onBeforePaypalRedirect","location","replace","redirectUrl","withMeta","handleCheckoutSubmit","scrollToFirstError","interval","setInterval","errorElement","top","clearInterval","handleSubmit","e","preventDefault","Promise","all","persistShippingAddress","persistBillingAddress","isShippingValid","isValid","setIsShippingSubmitting","updateIsSubmitting","isBillingValid","setIsBillingSubmitting","isPaymentValid","setIsPaymentSubmitting","updateStep","saveOrder","shippingAddress","state","errorRef","errorFields","CheckoutFormStepsEnum","useCheckoutFormStep","context","Error","currentStep","useCheckoutFormOrder","useCheckoutFormErrorLabels","useCheckoutFormServerErrors","useCheckoutFormBillingState","useCheckoutFormShippingState","useCheckoutErrorFields","useCheckoutFormPaymentState"],"mappings":";;;;;;;;;;;;;;;;AAAA;;AAcA;;AACA;;AAQA;;AACA;;AAEA;;AAMA;;AACA;;AACA;;AACA;;AACA;;AAEO,IAAMA,mBAAmB,gBAAG,0BACjC,EADiC,CAA5B;;;AAMA,SAASC,2BAAT,OAyCG;AAAA,MAxCRC,QAwCQ,QAxCRA,QAwCQ;AAAA,MAvCRC,WAuCQ,QAvCRA,WAuCQ;AAAA,MAtCRC,WAsCQ,QAtCRA,WAsCQ;AAAA,MArCRC,sBAqCQ,QArCRA,sBAqCQ;AAAA,MApCRC,0BAoCQ,QApCRA,0BAoCQ;AAAA,mCAnCRC,mBAmCQ;AAAA,MAnCRA,mBAmCQ,sCAnCcC,iCAmCd;AAAA,mCAlCRC,sBAkCQ;AAAA,MAlCRA,sBAkCQ,sCAlCiBC,sCAkCjB;AAAA,MAjCRC,wBAiCQ,QAjCRA,wBAiCQ;AAAA,MAhCRC,6BAgCQ,QAhCRA,6BAgCQ;AAAA,MA/BRC,WA+BQ,QA/BRA,WA+BQ;AAAA,MA9BRC,iBA8BQ,QA9BRA,iBA8BQ;AAAA,MA7BRC,4BA6BQ,QA7BRA,4BA6BQ;AAAA,MA5BRC,QA4BQ,QA5BRA,QA4BQ;AAAA,MA1BRC,oBA0BQ,QA1BRA,oBA0BQ;AAAA,MAzBRC,6CAyBQ,QAzBRA,6CAyBQ;AAAA,MAxBRC,qBAwBQ,QAxBRA,qBAwBQ;AAAA,MAvBRC,oBAuBQ,QAvBRA,oBAuBQ;AAAA,8BArBRC,WAqBQ;AAAA,MArBKC,kBAqBL,iCArB0B,EAqB1B;AAAA,kCApBRC,eAoBQ;AAAA,MApBRA,eAoBQ,qCApBU,GAoBV;AAAA,MAnBRC,gBAmBQ,QAnBRA,gBAmBQ;AAAA,MAlBRC,SAkBQ,QAlBRA,SAkBQ;AAAA,MAjBRC,QAiBQ,QAjBRA,OAiBQ;AAAA,MAhBRC,iBAgBQ,QAhBRA,iBAgBQ;AAAA,gCAfRC,aAeQ;AAAA,MAfRA,aAeQ,mCAfQ,KAeR;AAAA,mCAdRC,4BAcQ;AAAA,MAdRA,4BAcQ,sCAduB,CAC7B,WAD6B,EAE7B,UAF6B,EAG7B,OAH6B,EAI7B,aAJ6B,CAcvB;AAAA,oCARRC,kCAQQ;AAAA,MARRA,kCAQQ,uCAR6B,CACnC,OADmC,EAEnC,WAFmC,EAGnC,eAHmC,EAInC,aAJmC,CAQ7B;AAAA,mCAFRC,0BAEQ;AAAA,MAFRA,0BAEQ,sCAFqB,KAErB;AAAA,mCADRC,uBACQ;AAAA,MADRA,uBACQ,sCADkB,KAClB;;AACR,MAAMC,UAAU,GAAGC,qBAAUC,MAAV,EAAnB;;AADQ,kBAKJ,qBAAmD,IAAnD,CALI;AAAA,MAGNC,UAHM;AAAA,MAINC,aAJM;;AAAA,mBAMgB,qBAAgClC,WAAhC,CANhB;AAAA,MAMDmC,IANC;AAAA,MAMKC,OANL;;AAAA,mBAOkC,qBAAS,KAAT,CAPlC;AAAA,MAODC,aAPC;AAAA,MAOcC,gBAPd;;AASR,MAAMC,eAA8B,GAAG,EAAvC;;AATQ,mBAWgC,qBAAuB,IAAvB,CAXhC;AAAA,MAWDC,YAXC;AAAA,MAWaC,eAXb;;AAaR,MAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,KAAD,EAAwB;AACrDJ,IAAAA,eAAe,CAACK,IAAhB,CAAqBD,KAArB;AACD,GAFD;;AAIA,MAAME,gBAAgB,GAAG,wBAAY,UAACC,OAAD,EAAoC;AACvEC,IAAAA,MAAM,CAACC,QAAP,CAAgB,CAAhB,EAAmB,CAAnB;AAEAZ,IAAAA,OAAO,CAACU,OAAD,CAAP;AACD,GAJwB,EAItB,EAJsB,CAAzB;AAMA,MAAMG,kBAAkB,GAAG,wBAAY,UAACC,MAAD,EAAmB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAMC,eAAe,GAAGD,MAAH,oBAAGA,MAAM,CAAEE,MAAX,oBAAGF,MAAM,CAAEE,MAAR,CACtB,UAACC,IAAD,EAAqBV,KAArB,EAAoC;AAAA;;AAClC,2CACKU,IADL,6BAEG,CAAAV,KAAK,QAAL,YAAAA,KAAK,CAAEW,IAAP,KAAe,UAFlB,IAE+BX,KAF/B,oBAE+BA,KAAK,CAAEY,QAFtC;AAID,KANqB,EAOtB,EAPsB,CAAxB;AASAd,IAAAA,eAAe,CAACU,eAAe,IAAI;AAAEK,MAAAA,aAAa,EAAEN;AAAjB,KAApB,CAAf;AACD,GArB0B,EAqBxB,EArBwB,CAA3B;;AAvBQ,4BA8CoB,iCA9CpB;AAAA,MA8CAO,eA9CA,uBA8CAA,eA9CA;;AAgDR,MAAMC,iBAAiB,GAAG1C,qBAAqB,KAAKmB,IAApD;;AAEA,MAAMwB,SAAS,GAAGC,mBAAS5B,MAAT,CAChB,EADgB,EAEhB;AAAE6B,IAAAA,OAAO,EAAEH,iBAAiB,IAAI9C;AAAhC,GAFgB,CAAlB;;AAKA,MAAMkD,aAAa,GAAG,wBAAY;AAChC7D,IAAAA,WAAW,EAAXA,WADgC;AAEhC6B,IAAAA,UAAU,EAAVA,UAFgC;AAGhC5B,IAAAA,sBAAsB,EAAE6D,OAAO,CAACN,eAAe,IAAIvD,sBAApB,CAHC;AAIhCS,IAAAA,iBAAiB,EAAEoD,OAAO,CAACN,eAAe,IAAI9C,iBAApB,CAJM;AAKhCR,IAAAA,0BAA0B,EAAE,CAACkC,aAAD,IAAkBlC,0BALd;AAMhC6D,IAAAA,WAAW,EAAE5D,mBANmB;AAOhCQ,IAAAA,4BAA4B,EAAEmD,OAAO,CACnCN,eAAe,IAAI7C,4BADgB,CAPL;AAUhC+C,IAAAA,SAAS,EAATA,SAVgC;AAWhCE,IAAAA,OAAO,EAAEH,iBAXuB;AAYhChD,IAAAA,WAAW,EAAXA,WAZgC;AAahCuD,IAAAA,cAAc,EAAEvC,4BAbgB;AAchCE,IAAAA,0BAA0B,EAA1BA;AAdgC,GAAZ,CAAtB;AAgBA,MAAMsC,GAAG,GAAG,0DAA0BpC,UAA1B,EAAsC,CAACF,0BAAvC,CAAZ;;AAEA,MAAMuC,0BAA0B,GAAG,SAA7BA,0BAA6B,GAAM;AACvC,QAAIrD,oBAAJ,EAA0B;AACxB,aAAOA,oBAAoB,KAAKqB,IAAhC;AACD;;AAED,QACE,CAACP,0BAAD,IACAb,6CAFF,EAGE;AACA,aAAOgD,OAAO,CAAC,CAAAG,GAAG,QAAH,YAAAA,GAAG,CAAEE,SAAL,MAAkBF,GAAlB,oBAAkBA,GAAG,CAAEG,UAAL,CAAgBC,SAAlC,CAAD,CAAd;AACD;;AAED,WAAO,KAAP;AACD,GAbD;;AAeA,MAAMC,YAAY,GAAG,uBAAW;AAC9BtE,IAAAA,WAAW,EAAXA,WAD8B;AAE9B6B,IAAAA,UAAU,EAAVA,UAF8B;AAG9B+B,IAAAA,OAAO,EAAEM,0BAA0B;AAHL,GAAX,CAArB;AAMA,MAAMK,YAAY,GAAG,uBAAW;AAC9BvE,IAAAA,WAAW,EAAXA,WAD8B;AAE9B6B,IAAAA,UAAU,EAAVA,UAF8B;AAG9BxB,IAAAA,sBAAsB,EAAtBA,sBAH8B;AAI9BE,IAAAA,wBAAwB,EAAEuD,OAAO,CAC/BN,eAAe,IAAIjD,wBADY,CAJH;AAO9BiE,IAAAA,2BAA2B,EAAEV,OAAO,CAClCN,eAAe,IAAIhD,6BADe,CAPN;AAU9BN,IAAAA,0BAA0B,EAAE,CAACkC,aAAD,IAAkBlC,0BAVhB;AAW9BO,IAAAA,WAAW,EAAXA,WAX8B;AAY9BmD,IAAAA,OAAO,EAAE5C,oBAAoB,KAAKkB,IAZJ;AAa9B8B,IAAAA,cAAc,EAAEtC,kCAbc;AAc9B+C,IAAAA,wBAAwB,EAAEhD;AAdI,GAAX,CAArB;;AAiBA,MAAMiD,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACtB,IAAD,EAA6C;AAC1E,QAAIxB,uBAAJ,EAA6B;AAE7BR,IAAAA,gBAAgB,QAAhB,YAAAA,gBAAgB;AAChBiB,IAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACAsC,IAAAA,UAAU,CAAC,YAAM;AACf1C,MAAAA,aAAa,CAACmB,IAAD,CAAb;AACD,KAFS,EAEPjC,eAFO,CAAV;AAGD,GARD;;AAUA,MAAMyD,sBAAsB,GAAG,SAAzBA,sBAAyB,CAC7BxB,IAD6B,EAE1B;AACH,QAAIxB,uBAAJ,EAA6B;AAE7BR,IAAAA,gBAAgB,QAAhB,YAAAA,gBAAgB;AAChBiB,IAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACAsC,IAAAA,UAAU,CAAC,YAAM;AACf7B,MAAAA,MAAM,CAAC+B,QAAP,CAAgBC,OAAhB,CAAwB1B,IAAI,CAAC2B,WAA7B;AACD,KAFS,EAEP5D,eAFO,CAAV;AAGD,GAVD;;AAzHQ,2BAoIyB,2CAAkB;AACjDuD,IAAAA,sBAAsB,EAAtBA,sBADiD;AAEjDE,IAAAA,sBAAsB,EAAtBA,sBAFiD;AAGjDvD,IAAAA,SAAS,EAATA,SAHiD;AAIjDC,IAAAA,OAAO,EAAE,iBAAC2B,MAAD,EAAiB;AACxBD,MAAAA,kBAAkB,CAACC,MAAD,CAAlB;;AACA3B,MAAAA,QAAO,CAAC2B,MAAD,CAAP;AACD,KAPgD;AAQjD+B,IAAAA,QAAQ,EAAExD,aARuC;AASjDI,IAAAA,uBAAuB,EAAvBA;AATiD,GAAlB,CApIzB;AAAA,MAoIAqD,oBApIA,sBAoIAA,oBApIA;;AAAA,qBAgJa,0BAAY3C,eAAe,CAAC,CAAD,CAA3B,EAAgC,CAAhC,CAhJb;AAAA,MAgJAS,QAhJA,gBAgJAA,QAhJA;;AAkJR,MAAMmC,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/B,QAAMC,QAAQ,GAAGC,WAAW,CAAC,YAAM;AACjC,UAAMC,YAAY,GAAG/C,eAAe,CAAC,CAAD,CAApC;AACA,UAAI,CAAC+C,YAAL,EAAmB;AAEnBtC,MAAAA,QAAQ,CAAC,wCAAiBsC,YAAjB,EAA+BC,GAA/B,GAAqC,GAAtC,CAAR;AACAC,MAAAA,aAAa,CAACJ,QAAD,CAAb;AACD,KAN2B,EAMzB,EANyB,CAA5B;AAQAR,IAAAA,UAAU,CAAC,YAAM;AACfY,MAAAA,aAAa,CAACJ,QAAD,CAAb;AACD,KAFS,EAEP,IAFO,CAAV;AAGD,GAZD;;AAcA,MAAMK,YAAY;AAAA,8FAAG,iBAAOC,CAAP;AAAA;AAAA;AAAA;AAAA;AACnBA,cAAAA,CAAC,CAACC,cAAF;AADmB;AAAA,qBAGbC,OAAO,CAACC,GAAR,CAAY,CAChB/B,aAAa,CAACgC,sBAAd,EADgB,EAEhBtB,YAAY,CAACuB,qBAAb,EAFgB,CAAZ,WAGG,YAAM,CAAE,CAHX,CAHa;;AAAA;AAQnBlF,cAAAA,QAAQ,CAAC;AACPmF,gBAAAA,eAAe,EAAElC,aAAa,CAACmC,OADxB;AAEPC,gBAAAA,uBAAuB,EAAEpC,aAAa,CAACqC,kBAFhC;AAGPC,gBAAAA,cAAc,EAAE5B,YAAY,CAACyB,OAHtB;AAIPI,gBAAAA,sBAAsB,EAAE7B,YAAY,CAAC2B,kBAJ9B;AAKPG,gBAAAA,cAAc,EAAE/B,YAAY,CAAC0B,OALtB;AAMPM,gBAAAA,sBAAsB,EAAEhC,YAAY,CAAC4B,kBAN9B;AAOPhE,gBAAAA,IAAI,EAAJA,IAPO;AAQPqE,gBAAAA,UAAU,EAAEpE,OARL;AASPqE,gBAAAA,SAAS,EAAEvB,oBATJ;AAUPjC,gBAAAA,kBAAkB,EAAlBA,kBAVO;AAWPkC,gBAAAA,kBAAkB,EAAlBA,kBAXO;AAYPrB,gBAAAA,aAAa,EAAbA,aAZO;AAaP4C,gBAAAA,eAAe,EAAE5C,aAAa,CAACT;AAbxB,eAAD,CAAR;;AARmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AAAA,oBAAZoC,YAAY;AAAA;AAAA;AAAA,KAAlB;;AAyBA,MAAMkB,KAAK,GAAG;AACZvE,IAAAA,OAAO,EAAES,gBADG;AAEZV,IAAAA,IAAI,EAAJA,IAFY;AAGZL,IAAAA,UAAU,EAAVA,UAHY;AAIZU,IAAAA,YAAY,EAAZA,YAJY;AAKZS,IAAAA,kBAAkB,EAAlBA,kBALY;AAMZhD,IAAAA,WAAW,EAAXA,WANY;AAOZ6D,IAAAA,aAAa,EAAbA,aAPY;AAQZS,IAAAA,YAAY,EAAZA,YARY;AASZC,IAAAA,YAAY,EAAZA,YATY;AAUZoC,IAAAA,QAAQ,EAAElE,sBAVE;AAWZmE,IAAAA,WAAW,EAAEtE;AAXD,GAAd;AAcA,sBACE,gCAAC,mBAAD,CAAqB,QAArB;AAA8B,IAAA,KAAK,EAAEoE;AAArC,kBACE,gCAAC,2CAAD;AAAiC,IAAA,kBAAkB,EAAExF;AAArD,kBACE,+EACE;AAAM,IAAA,UAAU,MAAhB;AAAiB,IAAA,QAAQ,EAAEsE;AAA3B,KACG1F,QADH,CADF,EAIG,CAAC,CAACkC,UAAF,iBACC,gCAAC,0BAAD;AACE,IAAA,WAAW,EAAET,iBADf;AAEE,IAAA,QAAQ,EAAES;AAFZ,IALJ,CADF,CADF,CADF;AAiBD;;IA+DW6E,qB;;;WAAAA,qB;AAAAA,EAAAA,qB;AAAAA,EAAAA,qB;AAAAA,EAAAA,qB;AAAAA,EAAAA,qB;AAAAA,EAAAA,qB;AAAAA,EAAAA,qB;GAAAA,qB,qCAAAA,qB;;AAgDL,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AACvC,MAAMC,OAAO,GAAG,uBAAWnH,mBAAX,CAAhB;;AAEA,MAAI,CAACmH,OAAL,EAAc;AACZ,UAAM,IAAIC,KAAJ,CACJ,uEADI,CAAN;AAGD;;AAED,SAAO,oBAAQ,YAAM;AACnB,WAAO;AACLC,MAAAA,WAAW,EAAEF,OAAO,CAAC7E,IADhB;AAELqE,MAAAA,UAAU,EAAEQ,OAAO,CAAC5E;AAFf,KAAP;AAID,GALM,EAKJ,CAAC4E,OAAD,CALI,CAAP;AAMD,CAfM;;;;AAiBA,IAAMG,oBAAoB,GAAG,SAAvBA,oBAAuB,GAAM;AACxC,MAAMH,OAAO,GAAG,uBAAWnH,mBAAX,CAAhB;;AAEA,MAAI,CAACmH,OAAL,EAAc;AACZ,UAAM,IAAIC,KAAJ,CACJ,wEADI,CAAN;AAGD;;AAED,SAAOD,OAAO,CAAClF,UAAf;AACD,CAVM;;;;AAYA,IAAMsF,0BAA0B,GAAG,SAA7BA,0BAA6B,GAAM;AAC9C,MAAMJ,OAAO,GAAG,uBAAWnH,mBAAX,CAAhB;;AAEA,MAAI,CAACmH,OAAL,EAAc;AACZ,UAAM,IAAIC,KAAJ,CACJ,8EADI,CAAN;AAGD;;AAED,SAAOD,OAAO,CAAC/G,WAAf;AACD,CAVM;;;;AAYA,IAAMoH,2BAA2B,GAAG,SAA9BA,2BAA8B,GAAM;AAC/C,MAAML,OAAO,GAAG,uBAAWnH,mBAAX,CAAhB;;AAEA,MAAI,CAACmH,OAAL,EAAc;AACZ,UAAM,IAAIC,KAAJ,CACJ,+EADI,CAAN;AAGD;;AAED,SAAO,oBAAQ,YAAM;AACnB,WAAO;AACLzE,MAAAA,YAAY,EAAEwE,OAAO,CAACxE,YADjB;AAELS,MAAAA,kBAAkB,EAAE+D,OAAO,CAAC/D;AAFvB,KAAP;AAID,GALM,EAKJ,CAAC+D,OAAD,CALI,CAAP;AAMD,CAfM;;;;AAiBA,IAAMM,2BAA2B,GAAG,SAA9BA,2BAA8B,GAAM;AAC/C,MAAMN,OAAO,GAAG,uBAAWnH,mBAAX,CAAhB;;AAEA,MAAI,CAACmH,OAAL,EAAc;AACZ,UAAM,IAAIC,KAAJ,CACJ,+EADI,CAAN;AAGD;;AAED,SAAOD,OAAO,CAACxC,YAAf;AACD,CAVM;;;;AAYA,IAAM+C,4BAA4B,GAAG,SAA/BA,4BAA+B,GAAM;AAChD,MAAMP,OAAO,GAAG,uBAAWnH,mBAAX,CAAhB;;AAEA,MAAI,CAACmH,OAAL,EAAc;AACZ,UAAM,IAAIC,KAAJ,CACJ,gFADI,CAAN;AAGD;;AAED,SAAOD,OAAO,CAAClD,aAAf;AACD,CAVM;;;;AAYA,IAAM0D,sBAAsB,GAAG,SAAzBA,sBAAyB,GAAM;AAC1C,MAAMR,OAAO,GAAG,uBAAWnH,mBAAX,CAAhB;;AAEA,MAAI,CAACmH,OAAL,EAAc;AACZ,UAAM,IAAIC,KAAJ,CACJ,0EADI,CAAN;AAGD;;AAED,SAAO;AACLJ,IAAAA,WAAW,EAAEG,OAAO,CAACH,WADhB;AAELD,IAAAA,QAAQ,EAAEI,OAAO,CAACJ;AAFb,GAAP;AAID,CAbM;;;;AAeA,IAAMa,2BAA2B,GAAG,SAA9BA,2BAA8B,GAAM;AAC/C,MAAMT,OAAO,GAAG,uBAAWnH,mBAAX,CAAhB;;AAEA,MAAI,CAACmH,OAAL,EAAc;AACZ,UAAM,IAAIC,KAAJ,CACJ,+EADI,CAAN;AAGD;;AAED,SAAOD,OAAO,CAACzC,YAAf;AACD,CAVM","sourcesContent":["import React, {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from 'react'\nimport {\n BoricaGeneratePaymentDataResponse,\n OrderDTO,\n AddressDTO,\n PaypalGeneratePaymentUrlResponseDTO,\n} from '@sentecacommerce/sdk'\nimport { MutateFunction, QueryResult } from 'react-query'\nimport { myCartApi } from '../../api/myCartApi'\nimport {\n useBilling,\n UseBillingResultType,\n usePayment,\n UsePaymentResultType,\n useShipping,\n UseShippingResultType,\n} from './hooks'\nimport { useIsAuthenticated } from '../../user/hooks'\nimport { useCheckoutSubmit } from '../../hooks/useCheckoutSubmit'\n\nimport {\n ShippingValidationsType,\n defaultShippingValidations,\n genericBillingAddressValidation,\n BillingAddressValidationType,\n} from './utils'\nimport { usersApi } from '../../api/usersApi'\nimport { useCheckoutShippingModule } from '../../hooks/useCheckoutShippingModule'\nimport { CheckoutFormCustomStateProvider, BoricaRedirect } from './Components'\nimport { useScrollTo } from '../../hooks/ui-hooks'\nimport { getElementOffset } from '../../utils/getElementOffset'\n\nexport const CheckoutFormContext = createContext<CheckoutFormContextType>(\n {} as any\n)\n\nexport type CheckoutCustomState = {}\n\nexport function CheckoutFormContextProvider({\n children,\n defaultStep,\n errorLabels,\n enableSavedAddressList,\n withPersistBeforePageLeave,\n shippingValidations = defaultShippingValidations,\n validateBillingAddress = genericBillingAddressValidation,\n enableSaveBillingAddress,\n enableSavedBillingAddressList,\n countryCode,\n enableSaveAddress,\n autofillShippingPersonalData,\n onSubmit,\n\n paymentEnabledOnStep,\n getPaymentMethodsWhenShippingMethodIsSelected,\n shippingEnabledOnStep,\n billingEnabledOnStep,\n\n customState: initialCustomState = {},\n redirectTimeout = 420,\n onBeforeRedirect,\n onSuccess,\n onError,\n isBoricaInDevMode,\n withPixelMeta = false,\n requiredFieldsOnShippingStep = [\n 'firstName',\n 'lastName',\n 'email',\n 'phoneNumber',\n ],\n requiredFieldsOnBillingAddressStep = [\n 'vatId',\n 'companyId',\n 'companyPerson',\n 'companyName',\n ],\n enableNoShippingMethodMode = false,\n disablePaymentRedirects = false,\n}: Props) {\n const orderQuery = myCartApi.useGet()\n const [\n boricaData,\n setBoricaData,\n ] = useState<BoricaGeneratePaymentDataResponse | null>(null)\n const [step, setStep] = useState<CheckoutFormStepsEnum>(defaultStep)\n const [isRedirecting, setIsRedirecting] = useState(false)\n\n const fieldsWithError: HTMLElement[] = []\n\n const [serverErrors, setServerErrors] = useState<ServerErrors>(null)\n\n const collectFieldsWithError = (error: HTMLElement) => {\n fieldsWithError.push(error)\n }\n\n const handleStepChange = useCallback((newStep: CheckoutFormStepsEnum) => {\n window.scrollTo(0, 0)\n\n setStep(newStep)\n }, [])\n\n const updateServerErrors = useCallback((errors: any[]) => {\n // Example Error\n // [{\n // code: \"OutOfStock\"\n // message: \"Some of the ordered line items are out of stock at the time of placing the order.\"\n // responses: {\n // availableQuantity: 1\n // sku: \"200000095849\"\n // status: \"unavailable\"\n // }\n // }]\n const formattedErrors = errors?.reduce?.(\n (data: ServerErrors, error: any) => {\n return {\n ...data,\n [error?.code || 'internal']: error?.response,\n }\n },\n {}\n )\n setServerErrors(formattedErrors || { internalError: errors })\n }, [])\n\n const { isAuthenticated } = useIsAuthenticated()\n\n const isShippingEnabled = shippingEnabledOnStep === step\n\n const userQuery = usersApi.useGet(\n {},\n { enabled: isShippingEnabled && autofillShippingPersonalData }\n )\n\n const shippingState = useShipping({\n errorLabels,\n orderQuery,\n enableSavedAddressList: Boolean(isAuthenticated && enableSavedAddressList),\n enableSaveAddress: Boolean(isAuthenticated && enableSaveAddress),\n withPersistBeforePageLeave: !isRedirecting && withPersistBeforePageLeave,\n validations: shippingValidations,\n autofillShippingPersonalData: Boolean(\n isAuthenticated && autofillShippingPersonalData\n ),\n userQuery,\n enabled: isShippingEnabled,\n countryCode,\n requiredFields: requiredFieldsOnShippingStep,\n enableNoShippingMethodMode,\n })\n const mod = useCheckoutShippingModule(orderQuery, !enableNoShippingMethodMode)\n\n const getIsPaymentMethodsEnabled = () => {\n if (paymentEnabledOnStep) {\n return paymentEnabledOnStep === step\n }\n\n if (\n !enableNoShippingMethodMode &&\n getPaymentMethodsWhenShippingMethodIsSelected\n ) {\n return Boolean(mod?.moduleKey && mod?.moduleData.methodKey)\n }\n\n return false\n }\n\n const paymentState = usePayment({\n errorLabels,\n orderQuery,\n enabled: getIsPaymentMethodsEnabled(),\n })\n\n const billingState = useBilling({\n errorLabels,\n orderQuery,\n validateBillingAddress,\n enableSaveBillingAddress: Boolean(\n isAuthenticated && enableSaveBillingAddress\n ),\n withSavedBillingAddressList: Boolean(\n isAuthenticated && enableSavedBillingAddressList\n ),\n withPersistBeforePageLeave: !isRedirecting && withPersistBeforePageLeave,\n countryCode,\n enabled: billingEnabledOnStep === step,\n requiredFields: requiredFieldsOnBillingAddressStep,\n requiredFieldsOnShipping: requiredFieldsOnShippingStep,\n })\n\n const onBeforeBoricaRedirect = (data: BoricaGeneratePaymentDataResponse) => {\n if (disablePaymentRedirects) return\n\n onBeforeRedirect?.()\n setIsRedirecting(true)\n setTimeout(() => {\n setBoricaData(data)\n }, redirectTimeout)\n }\n\n const onBeforePaypalRedirect = (\n data: PaypalGeneratePaymentUrlResponseDTO\n ) => {\n if (disablePaymentRedirects) return\n\n onBeforeRedirect?.()\n setIsRedirecting(true)\n setTimeout(() => {\n window.location.replace(data.redirectUrl)\n }, redirectTimeout)\n }\n const { handleCheckoutSubmit } = useCheckoutSubmit({\n onBeforeBoricaRedirect,\n onBeforePaypalRedirect,\n onSuccess,\n onError: (errors: any) => {\n updateServerErrors(errors)\n onError(errors)\n },\n withMeta: withPixelMeta,\n disablePaymentRedirects,\n })\n\n const { scrollTo } = useScrollTo(fieldsWithError[0], 0)\n\n const scrollToFirstError = () => {\n const interval = setInterval(() => {\n const errorElement = fieldsWithError[0]\n if (!errorElement) return\n\n scrollTo(getElementOffset(errorElement).top - 100)\n clearInterval(interval)\n }, 50)\n\n setTimeout(() => {\n clearInterval(interval)\n }, 1000)\n }\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n\n await Promise.all([\n shippingState.persistShippingAddress(),\n billingState.persistBillingAddress(),\n ]).catch(() => {})\n\n onSubmit({\n isShippingValid: shippingState.isValid,\n setIsShippingSubmitting: shippingState.updateIsSubmitting,\n isBillingValid: billingState.isValid,\n setIsBillingSubmitting: billingState.updateIsSubmitting,\n isPaymentValid: paymentState.isValid,\n setIsPaymentSubmitting: paymentState.updateIsSubmitting,\n step,\n updateStep: setStep,\n saveOrder: handleCheckoutSubmit,\n updateServerErrors,\n scrollToFirstError,\n shippingState,\n shippingAddress: shippingState.data,\n })\n }\n\n const state = {\n setStep: handleStepChange,\n step,\n orderQuery,\n serverErrors,\n updateServerErrors,\n errorLabels,\n shippingState,\n paymentState,\n billingState,\n errorRef: collectFieldsWithError,\n errorFields: fieldsWithError,\n }\n\n return (\n <CheckoutFormContext.Provider value={state}>\n <CheckoutFormCustomStateProvider initialCustomState={initialCustomState}>\n <>\n <form noValidate onSubmit={handleSubmit}>\n {children}\n </form>\n {!!boricaData && (\n <BoricaRedirect\n isInDevMode={isBoricaInDevMode}\n formData={boricaData}\n />\n )}\n </>\n </CheckoutFormCustomStateProvider>\n </CheckoutFormContext.Provider>\n )\n}\n\nexport type CheckoutFormOnSubmitData = {\n isShippingValid: boolean\n setIsShippingSubmitting: (value: boolean) => void\n isBillingValid: boolean\n setIsBillingSubmitting: (value: boolean) => void\n isPaymentValid: boolean\n setIsPaymentSubmitting: (value: boolean) => void\n step: CheckoutFormStepsEnum\n updateStep: (step: CheckoutFormStepsEnum) => void\n saveOrder: MutateFunction<OrderDTO, unknown, any, unknown>\n\n updateServerErrors: (errors: any) => void\n scrollToFirstError: () => void\n shippingState: UseShippingResultType\n shippingAddress?: AddressDTO\n}\n\ntype Props = {\n children: any\n defaultStep: CheckoutFormStepsEnum\n errorLabels: CheckoutFormErrorLabelsType\n withPersistBeforePageLeave: boolean\n countryCode: string\n onSubmit: (data: CheckoutFormOnSubmitData) => void\n onError: (error: any) => void\n onSuccess: (order: OrderDTO) => void\n\n redirectTimeout?: number\n onBeforeRedirect?: () => void\n\n customState?: CheckoutCustomState\n\n enableSavedAddressList: boolean\n shippingValidations?: ShippingValidationsType\n enableSaveAddress: boolean\n autofillShippingPersonalData: boolean\n autoSelectDefaultShippingAddress: boolean\n\n enableSaveBillingAddress: boolean\n validateBillingAddress?: BillingAddressValidationType\n enableSavedBillingAddressList: boolean\n autoSelectDefaultBillingAddress: boolean\n\n paymentEnabledOnStep?: CheckoutFormStepsEnum\n getPaymentMethodsWhenShippingMethodIsSelected?: boolean\n\n shippingEnabledOnStep: CheckoutFormStepsEnum\n\n billingEnabledOnStep: CheckoutFormStepsEnum\n\n isBoricaInDevMode?: boolean\n\n withPixelMeta?: boolean\n requiredFieldsOnShippingStep?: string[]\n requiredFieldsOnBillingAddressStep?: string[]\n enableNoShippingMethodMode?: boolean\n disablePaymentRedirects?: boolean\n}\n\ntype ServerErrors = { [key: string]: any } | null\n\nexport enum CheckoutFormStepsEnum {\n Basket = 'Basket',\n Shipping = 'Shipping',\n BillingAddress = 'BillingAddress',\n Payment = 'Payment',\n Preview = 'Preview',\n All = 'All',\n}\n\nexport type CheckoutFormErrorsResultType =\n | {\n [key: string]: string\n }\n | null\n | undefined\n\nexport type ShippingFormErrorLabels = {\n fieldIsRequired: string\n fillStreetNumberBuildingEntranceOrApartment: string\n streetIsRequired: string\n invalidPhoneNumber?: string\n quarterIsRequired: string\n cantFindStreetOrQuarterMessage: string\n cityIsRequired: string\n emailIsRequired: string\n officeIsRequired: string\n selectCourier: string\n noStoreSelected: string\n}\n\nexport type CheckoutFormErrorLabelsType = ShippingFormErrorLabels & {\n selectPaymentMethod: string\n}\n\nexport type CheckoutFormContextType = {\n setStep: (step: CheckoutFormStepsEnum) => void\n step: CheckoutFormStepsEnum\n serverErrors: ServerErrors\n updateServerErrors: (errors: any) => void\n errorRef: (error: HTMLElement) => void\n errorFields: HTMLElement[]\n errorLabels: CheckoutFormErrorLabelsType\n orderQuery: QueryResult<OrderDTO, unknown>\n shippingState: UseShippingResultType\n paymentState: UsePaymentResultType\n billingState: UseBillingResultType\n}\n\nexport const useCheckoutFormStep = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormStep must be used within a CheckoutFormContextProvider'\n )\n }\n\n return useMemo(() => {\n return {\n currentStep: context.step,\n updateStep: context.setStep,\n }\n }, [context])\n}\n\nexport const useCheckoutFormOrder = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormOrder must be used within a CheckoutFormContextProvider'\n )\n }\n\n return context.orderQuery\n}\n\nexport const useCheckoutFormErrorLabels = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormErrorLabels must be used within a CheckoutFormContextProvider'\n )\n }\n\n return context.errorLabels\n}\n\nexport const useCheckoutFormServerErrors = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormServerErrors must be used within a CheckoutFormContextProvider'\n )\n }\n\n return useMemo(() => {\n return {\n serverErrors: context.serverErrors,\n updateServerErrors: context.updateServerErrors,\n }\n }, [context])\n}\n\nexport const useCheckoutFormBillingState = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormBillingState must be used within a CheckoutFormContextProvider'\n )\n }\n\n return context.billingState\n}\n\nexport const useCheckoutFormShippingState = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormShippingState must be used within a CheckoutFormContextProvider'\n )\n }\n\n return context.shippingState\n}\n\nexport const useCheckoutErrorFields = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutErrorFields must be used within a CheckoutFormContextProvider'\n )\n }\n\n return {\n errorFields: context.errorFields,\n errorRef: context.errorRef,\n }\n}\n\nexport const useCheckoutFormPaymentState = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormPaymentState must be used within a CheckoutFormContextProvider'\n )\n }\n\n return context.paymentState\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/contexts/CheckoutForm/index.tsx"],"names":["CheckoutFormContext","CheckoutFormContextProvider","children","defaultStep","errorLabels","enableSavedAddressList","withPersistBeforePageLeave","shippingValidations","defaultShippingValidations","validateBillingAddress","genericBillingAddressValidation","enableSaveBillingAddress","enableSavedBillingAddressList","countryCode","enableSaveAddress","autofillShippingPersonalData","onSubmit","paymentEnabledOnStep","getPaymentMethodsWhenShippingMethodIsSelected","shippingEnabledOnStep","billingEnabledOnStep","customState","initialCustomState","redirectTimeout","onBeforeRedirect","onSuccess","onError","isBoricaInDevMode","withPixelMeta","requiredFieldsOnShippingStep","requiredFieldsOnBillingAddressStep","enableNoShippingMethodMode","disablePaymentRedirects","orderQuery","myCartApi","useGet","boricaData","setBoricaData","step","setStep","isRedirecting","setIsRedirecting","fieldsWithError","serverErrors","setServerErrors","collectFieldsWithError","error","push","handleStepChange","newStep","window","scrollTo","updateServerErrors","errors","formattedErrors","reduce","data","code","response","internalError","isAuthenticated","isShippingEnabled","userQuery","usersApi","enabled","shippingState","Boolean","validations","requiredFields","mod","getIsPaymentMethodsEnabled","moduleKey","moduleData","methodKey","paymentState","billingState","withSavedBillingAddressList","requiredFieldsOnShipping","onBeforeBoricaRedirect","setTimeout","onBeforePaypalRedirect","location","replace","redirectUrl","withMeta","handleCheckoutSubmit","scrollToFirstError","interval","setInterval","errorElement","top","clearInterval","handleSubmit","e","preventDefault","Promise","all","persistShippingAddress","persistBillingAddress","isShippingValid","isValid","setIsShippingSubmitting","updateIsSubmitting","isBillingValid","setIsBillingSubmitting","isPaymentValid","setIsPaymentSubmitting","loanInfo","updateStep","saveOrder","shippingAddress","state","errorRef","errorFields","CheckoutFormStepsEnum","useCheckoutFormStep","context","Error","currentStep","useCheckoutFormOrder","useCheckoutFormErrorLabels","useCheckoutFormServerErrors","useCheckoutFormBillingState","useCheckoutFormShippingState","useCheckoutErrorFields","useCheckoutFormPaymentState"],"mappings":"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","sourcesContent":["import React, {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from 'react'\nimport {\n BoricaGeneratePaymentDataResponse,\n OrderDTO,\n AddressDTO,\n PaypalGeneratePaymentUrlResponseDTO,\n OrderLoanInfoDTO,\n} from '@sentecacommerce/sdk'\nimport { MutateFunction, QueryResult } from 'react-query'\nimport { myCartApi } from '../../api/myCartApi'\nimport {\n useBilling,\n UseBillingResultType,\n usePayment,\n UsePaymentResultType,\n useShipping,\n UseShippingResultType,\n} from './hooks'\nimport { useIsAuthenticated } from '../../user/hooks'\nimport { useCheckoutSubmit } from '../../hooks/useCheckoutSubmit'\n\nimport {\n ShippingValidationsType,\n defaultShippingValidations,\n genericBillingAddressValidation,\n BillingAddressValidationType,\n} from './utils'\nimport { usersApi } from '../../api/usersApi'\nimport { useCheckoutShippingModule } from '../../hooks/useCheckoutShippingModule'\nimport { CheckoutFormCustomStateProvider, BoricaRedirect } from './Components'\nimport { useScrollTo } from '../../hooks/ui-hooks'\nimport { getElementOffset } from '../../utils/getElementOffset'\n\nexport const CheckoutFormContext = createContext<CheckoutFormContextType>(\n {} as any\n)\n\nexport type CheckoutCustomState = {}\n\nexport function CheckoutFormContextProvider({\n children,\n defaultStep,\n errorLabels,\n enableSavedAddressList,\n withPersistBeforePageLeave,\n shippingValidations = defaultShippingValidations,\n validateBillingAddress = genericBillingAddressValidation,\n enableSaveBillingAddress,\n enableSavedBillingAddressList,\n countryCode,\n enableSaveAddress,\n autofillShippingPersonalData,\n onSubmit,\n\n paymentEnabledOnStep,\n getPaymentMethodsWhenShippingMethodIsSelected,\n shippingEnabledOnStep,\n billingEnabledOnStep,\n\n customState: initialCustomState = {},\n redirectTimeout = 420,\n onBeforeRedirect,\n onSuccess,\n onError,\n isBoricaInDevMode,\n withPixelMeta = false,\n requiredFieldsOnShippingStep = [\n 'firstName',\n 'lastName',\n 'email',\n 'phoneNumber',\n ],\n requiredFieldsOnBillingAddressStep = [\n 'vatId',\n 'companyId',\n 'companyPerson',\n 'companyName',\n ],\n enableNoShippingMethodMode = false,\n disablePaymentRedirects = false,\n}: Props) {\n const orderQuery = myCartApi.useGet()\n const [\n boricaData,\n setBoricaData,\n ] = useState<BoricaGeneratePaymentDataResponse | null>(null)\n const [step, setStep] = useState<CheckoutFormStepsEnum>(defaultStep)\n const [isRedirecting, setIsRedirecting] = useState(false)\n\n const fieldsWithError: HTMLElement[] = []\n\n const [serverErrors, setServerErrors] = useState<ServerErrors>(null)\n\n const collectFieldsWithError = (error: HTMLElement) => {\n fieldsWithError.push(error)\n }\n\n const handleStepChange = useCallback((newStep: CheckoutFormStepsEnum) => {\n window.scrollTo(0, 0)\n\n setStep(newStep)\n }, [])\n\n const updateServerErrors = useCallback((errors: any[]) => {\n // Example Error\n // [{\n // code: \"OutOfStock\"\n // message: \"Some of the ordered line items are out of stock at the time of placing the order.\"\n // responses: {\n // availableQuantity: 1\n // sku: \"200000095849\"\n // status: \"unavailable\"\n // }\n // }]\n const formattedErrors = errors?.reduce?.(\n (data: ServerErrors, error: any) => {\n return {\n ...data,\n [error?.code || 'internal']: error?.response,\n }\n },\n {}\n )\n setServerErrors(formattedErrors || { internalError: errors })\n }, [])\n\n const { isAuthenticated } = useIsAuthenticated()\n\n const isShippingEnabled = shippingEnabledOnStep === step\n\n const userQuery = usersApi.useGet(\n {},\n { enabled: isShippingEnabled && autofillShippingPersonalData }\n )\n\n const shippingState = useShipping({\n errorLabels,\n orderQuery,\n enableSavedAddressList: Boolean(isAuthenticated && enableSavedAddressList),\n enableSaveAddress: Boolean(isAuthenticated && enableSaveAddress),\n withPersistBeforePageLeave: !isRedirecting && withPersistBeforePageLeave,\n validations: shippingValidations,\n autofillShippingPersonalData: Boolean(\n isAuthenticated && autofillShippingPersonalData\n ),\n userQuery,\n enabled: isShippingEnabled,\n countryCode,\n requiredFields: requiredFieldsOnShippingStep,\n enableNoShippingMethodMode,\n })\n const mod = useCheckoutShippingModule(orderQuery, !enableNoShippingMethodMode)\n\n const getIsPaymentMethodsEnabled = () => {\n if (paymentEnabledOnStep) {\n return paymentEnabledOnStep === step\n }\n\n if (\n !enableNoShippingMethodMode &&\n getPaymentMethodsWhenShippingMethodIsSelected\n ) {\n return Boolean(mod?.moduleKey && mod?.moduleData.methodKey)\n }\n\n return false\n }\n\n const paymentState = usePayment({\n errorLabels,\n orderQuery,\n enabled: getIsPaymentMethodsEnabled(),\n })\n\n const billingState = useBilling({\n errorLabels,\n orderQuery,\n validateBillingAddress,\n enableSaveBillingAddress: Boolean(\n isAuthenticated && enableSaveBillingAddress\n ),\n withSavedBillingAddressList: Boolean(\n isAuthenticated && enableSavedBillingAddressList\n ),\n withPersistBeforePageLeave: !isRedirecting && withPersistBeforePageLeave,\n countryCode,\n enabled: billingEnabledOnStep === step,\n requiredFields: requiredFieldsOnBillingAddressStep,\n requiredFieldsOnShipping: requiredFieldsOnShippingStep,\n })\n\n const onBeforeBoricaRedirect = (data: BoricaGeneratePaymentDataResponse) => {\n if (disablePaymentRedirects) return\n\n onBeforeRedirect?.()\n setIsRedirecting(true)\n setTimeout(() => {\n setBoricaData(data)\n }, redirectTimeout)\n }\n\n const onBeforePaypalRedirect = (\n data: PaypalGeneratePaymentUrlResponseDTO\n ) => {\n if (disablePaymentRedirects) return\n\n onBeforeRedirect?.()\n setIsRedirecting(true)\n setTimeout(() => {\n window.location.replace(data.redirectUrl)\n }, redirectTimeout)\n }\n const { handleCheckoutSubmit } = useCheckoutSubmit({\n onBeforeBoricaRedirect,\n onBeforePaypalRedirect,\n onSuccess,\n onError: (errors: any) => {\n updateServerErrors(errors)\n onError(errors)\n },\n withMeta: withPixelMeta,\n disablePaymentRedirects,\n })\n\n const { scrollTo } = useScrollTo(fieldsWithError[0], 0)\n\n const scrollToFirstError = () => {\n const interval = setInterval(() => {\n const errorElement = fieldsWithError[0]\n if (!errorElement) return\n\n scrollTo(getElementOffset(errorElement).top - 100)\n clearInterval(interval)\n }, 50)\n\n setTimeout(() => {\n clearInterval(interval)\n }, 1000)\n }\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n\n await Promise.all([\n shippingState.persistShippingAddress(),\n billingState.persistBillingAddress(),\n ]).catch(() => {})\n\n onSubmit({\n isShippingValid: shippingState.isValid,\n setIsShippingSubmitting: shippingState.updateIsSubmitting,\n isBillingValid: billingState.isValid,\n setIsBillingSubmitting: billingState.updateIsSubmitting,\n isPaymentValid: paymentState.isValid,\n setIsPaymentSubmitting: paymentState.updateIsSubmitting,\n loanInfo: paymentState.loanInfo,\n step,\n updateStep: setStep,\n saveOrder: handleCheckoutSubmit,\n updateServerErrors,\n scrollToFirstError,\n shippingState,\n shippingAddress: shippingState.data,\n })\n }\n\n const state = {\n setStep: handleStepChange,\n step,\n orderQuery,\n serverErrors,\n updateServerErrors,\n errorLabels,\n shippingState,\n paymentState,\n billingState,\n errorRef: collectFieldsWithError,\n errorFields: fieldsWithError,\n }\n\n return (\n <CheckoutFormContext.Provider value={state}>\n <CheckoutFormCustomStateProvider initialCustomState={initialCustomState}>\n <>\n <form noValidate onSubmit={handleSubmit}>\n {children}\n </form>\n {!!boricaData && (\n <BoricaRedirect\n isInDevMode={isBoricaInDevMode}\n formData={boricaData}\n />\n )}\n </>\n </CheckoutFormCustomStateProvider>\n </CheckoutFormContext.Provider>\n )\n}\n\nexport type CheckoutFormOnSubmitData = {\n isShippingValid: boolean\n setIsShippingSubmitting: (value: boolean) => void\n isBillingValid: boolean\n setIsBillingSubmitting: (value: boolean) => void\n isPaymentValid: boolean\n setIsPaymentSubmitting: (value: boolean) => void\n step: CheckoutFormStepsEnum\n updateStep: (step: CheckoutFormStepsEnum) => void\n saveOrder: MutateFunction<OrderDTO, unknown, any, unknown>\n\n updateServerErrors: (errors: any) => void\n scrollToFirstError: () => void\n shippingState: UseShippingResultType\n shippingAddress?: AddressDTO\n loanInfo?: OrderLoanInfoDTO\n}\n\ntype Props = {\n children: any\n defaultStep: CheckoutFormStepsEnum\n errorLabels: CheckoutFormErrorLabelsType\n withPersistBeforePageLeave: boolean\n countryCode?: string\n onSubmit: (data: CheckoutFormOnSubmitData) => void\n onError: (error: any) => void\n onSuccess: (order: OrderDTO) => void\n\n redirectTimeout?: number\n onBeforeRedirect?: () => void\n\n customState?: CheckoutCustomState\n\n enableSavedAddressList: boolean\n shippingValidations?: ShippingValidationsType\n enableSaveAddress: boolean\n autofillShippingPersonalData: boolean\n autoSelectDefaultShippingAddress: boolean\n\n enableSaveBillingAddress: boolean\n validateBillingAddress?: BillingAddressValidationType\n enableSavedBillingAddressList: boolean\n autoSelectDefaultBillingAddress: boolean\n\n paymentEnabledOnStep?: CheckoutFormStepsEnum\n getPaymentMethodsWhenShippingMethodIsSelected?: boolean\n\n shippingEnabledOnStep: CheckoutFormStepsEnum\n\n billingEnabledOnStep: CheckoutFormStepsEnum\n\n isBoricaInDevMode?: boolean\n\n withPixelMeta?: boolean\n requiredFieldsOnShippingStep?: string[]\n requiredFieldsOnBillingAddressStep?: string[]\n enableNoShippingMethodMode?: boolean\n disablePaymentRedirects?: boolean\n}\n\ntype ServerErrors = { [key: string]: any } | null\n\nexport enum CheckoutFormStepsEnum {\n Basket = 'Basket',\n Shipping = 'Shipping',\n BillingAddress = 'BillingAddress',\n Payment = 'Payment',\n Preview = 'Preview',\n All = 'All',\n}\n\nexport type CheckoutFormErrorsResultType =\n | {\n [key: string]: string\n }\n | null\n | undefined\n\nexport type ShippingFormErrorLabels = {\n fieldIsRequired: string\n fillStreetNumberBuildingEntranceOrApartment: string\n streetIsRequired: string\n invalidPhoneNumber?: string\n quarterIsRequired: string\n cantFindStreetOrQuarterMessage: string\n cityIsRequired: string\n emailIsRequired: string\n officeIsRequired: string\n selectCourier: string\n noStoreSelected: string\n}\n\nexport type CheckoutFormErrorLabelsType = ShippingFormErrorLabels & {\n selectPaymentMethod: string\n}\n\nexport type CheckoutFormContextType = {\n setStep: (step: CheckoutFormStepsEnum) => void\n step: CheckoutFormStepsEnum\n serverErrors: ServerErrors\n updateServerErrors: (errors: any) => void\n errorRef: (error: HTMLElement) => void\n errorFields: HTMLElement[]\n errorLabels: CheckoutFormErrorLabelsType\n orderQuery: QueryResult<OrderDTO, unknown>\n shippingState: UseShippingResultType\n paymentState: UsePaymentResultType\n billingState: UseBillingResultType\n}\n\nexport const useCheckoutFormStep = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormStep must be used within a CheckoutFormContextProvider'\n )\n }\n\n return useMemo(() => {\n return {\n currentStep: context.step,\n updateStep: context.setStep,\n }\n }, [context])\n}\n\nexport const useCheckoutFormOrder = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormOrder must be used within a CheckoutFormContextProvider'\n )\n }\n\n return context.orderQuery\n}\n\nexport const useCheckoutFormErrorLabels = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormErrorLabels must be used within a CheckoutFormContextProvider'\n )\n }\n\n return context.errorLabels\n}\n\nexport const useCheckoutFormServerErrors = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormServerErrors must be used within a CheckoutFormContextProvider'\n )\n }\n\n return useMemo(() => {\n return {\n serverErrors: context.serverErrors,\n updateServerErrors: context.updateServerErrors,\n }\n }, [context])\n}\n\nexport const useCheckoutFormBillingState = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormBillingState must be used within a CheckoutFormContextProvider'\n )\n }\n\n return context.billingState\n}\n\nexport const useCheckoutFormShippingState = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormShippingState must be used within a CheckoutFormContextProvider'\n )\n }\n\n return context.shippingState\n}\n\nexport const useCheckoutErrorFields = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutErrorFields must be used within a CheckoutFormContextProvider'\n )\n }\n\n return {\n errorFields: context.errorFields,\n errorRef: context.errorRef,\n }\n}\n\nexport const useCheckoutFormPaymentState = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormPaymentState must be used within a CheckoutFormContextProvider'\n )\n }\n\n return context.paymentState\n}\n"],"file":"index.js"}
@@ -9,6 +9,10 @@ var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
+ var _sdk = require("@sentecacommerce/sdk");
13
+
14
+ exports.OfferDTOStatusEnum = _sdk.OfferDTOStatusEnum;
15
+
12
16
  var _utils = require("../../utils");
13
17
 
14
18
  var _usePrefetchProduct2 = require("../usePrefetchProduct");