@sentecacommerce-theme/lib 0.12.67 → 0.12.71

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/useContactForm/index.js +9 -4
  20. package/dist/cjs/hooks/useContactForm/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/useContactForm/index.js +9 -4
  62. package/dist/esm/hooks/useContactForm/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/useContactForm/index.d.ts +2 -1
  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 +3 -3
@@ -8,6 +8,7 @@ export var usePayment = (_ref) => {
8
8
  enabled
9
9
  } = _ref;
10
10
  var [isPaymentSubmitting, setIsPaymentSubmitting] = useState(false);
11
+ var [loanInfo, setLoanInfo] = useState({});
11
12
  var paymentMethods = useCheckoutPayment({
12
13
  query: orderQuery,
13
14
  enabled
@@ -19,8 +20,10 @@ export var usePayment = (_ref) => {
19
20
  errors: isPaymentSubmitting ? paymentErrors : null,
20
21
  isValid: !paymentErrors,
21
22
  updateIsSubmitting: setIsPaymentSubmitting,
22
- paymentMethods
23
+ updateLoanInfo: setLoanInfo,
24
+ paymentMethods,
25
+ loanInfo
23
26
  };
24
- }, [paymentMethods, paymentErrors, isPaymentSubmitting]);
27
+ }, [paymentMethods, paymentErrors, isPaymentSubmitting, loanInfo]);
25
28
  };
26
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/contexts/CheckoutForm/hooks/usePayment/index.ts"],"names":["useMemo","useState","useCheckoutPayment","validatePayment","usePayment","orderQuery","errorLabels","enabled","isPaymentSubmitting","setIsPaymentSubmitting","paymentMethods","query","paymentErrors","isSubmitting","errors","isValid","updateIsSubmitting"],"mappings":"AACA,SAASA,OAAT,EAAkBC,QAAlB,QAAkC,OAAlC;AAMA,SAEEC,kBAFF,QAGO,sCAHP;AAIA,SAASC,eAAT,QAAgC,aAAhC;AAEA,OAAO,IAAMC,UAAU,GAAG,UAQE;AAAA,MARD;AACzBC,IAAAA,UADyB;AAEzBC,IAAAA,WAFyB;AAGzBC,IAAAA;AAHyB,GAQC;AAC1B,MAAM,CAACC,mBAAD,EAAsBC,sBAAtB,IAAgDR,QAAQ,CAAC,KAAD,CAA9D;AAEA,MAAMS,cAAc,GAAGR,kBAAkB,CAAC;AAAES,IAAAA,KAAK,EAAEN,UAAT;AAAqBE,IAAAA;AAArB,GAAD,CAAzC;AAEA,MAAMK,aAAa,GACjBF,cAAc,IAAIP,eAAe,CAACO,cAAD,EAAiBJ,WAAjB,CADnC;AAGA,SAAON,OAAO,CAAC,MAAM;AACnB,WAAO;AACLa,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;AALK,KAAP;AAOD,GARa,EAQX,CAACA,cAAD,EAAiBE,aAAjB,EAAgCJ,mBAAhC,CARW,CAAd;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":["useMemo","useState","useCheckoutPayment","validatePayment","usePayment","orderQuery","errorLabels","enabled","isPaymentSubmitting","setIsPaymentSubmitting","loanInfo","setLoanInfo","paymentMethods","query","paymentErrors","isSubmitting","errors","isValid","updateIsSubmitting","updateLoanInfo"],"mappings":"AACA,SAASA,OAAT,EAAkBC,QAAlB,QAAkC,OAAlC;AAMA,SAEEC,kBAFF,QAGO,sCAHP;AAIA,SAASC,eAAT,QAAgC,aAAhC;AAGA,OAAO,IAAMC,UAAU,GAAG,UAQE;AAAA,MARD;AACzBC,IAAAA,UADyB;AAEzBC,IAAAA,WAFyB;AAGzBC,IAAAA;AAHyB,GAQC;AAC1B,MAAM,CAACC,mBAAD,EAAsBC,sBAAtB,IAAgDR,QAAQ,CAAC,KAAD,CAA9D;AACA,MAAM,CAACS,QAAD,EAAWC,WAAX,IAA0BV,QAAQ,CAAC,EAAD,CAAxC;AAEA,MAAMW,cAAc,GAAGV,kBAAkB,CAAC;AAAEW,IAAAA,KAAK,EAAER,UAAT;AAAqBE,IAAAA;AAArB,GAAD,CAAzC;AAEA,MAAMO,aAAa,GACjBF,cAAc,IAAIT,eAAe,CAACS,cAAD,EAAiBN,WAAjB,CADnC;AAGA,SAAON,OAAO,CAAC,MAAM;AACnB,WAAO;AACLe,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,cANK;AAOLF,MAAAA;AAPK,KAAP;AASD,GAVa,EAUX,CAACE,cAAD,EAAiBE,aAAjB,EAAgCN,mBAAhC,EAAqDE,QAArD,CAVW,CAAd;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":["useCallback","useMemo","useState","addressesApi","useCheckoutShippingModule","useCheckoutShippingAddress","validateShipping","updateObjProp","usePersistOnBeforeUnload","useSavedShippingList","useShippingInitialData","IS_NEW","SELECTED_ADDRESS_ID","useShipping","withPersistBeforePageLeave","orderQuery","validations","enableSavedAddressList","errorLabels","enableSaveAddress","autofillShippingPersonalData","userQuery","enabled","countryCode","requiredFields","enableNoShippingMethodMode","isShippingSubmitting","setIsShippingSubmitting","saveAddress","useAdd","handleShippingAddressChange","currentShippingAddress","savedShippingAddress","shippingAddress","setShippingAddress","mod","savedAddressList","hasAvailableSavedAddress","noShippingMethod","selectedShippingAddress","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":["useCallback","useMemo","useState","addressesApi","useCheckoutShippingModule","useCheckoutShippingAddress","validateShipping","updateObjProp","usePersistOnBeforeUnload","useSavedShippingList","useShippingInitialData","IS_NEW","SELECTED_ADDRESS_ID","useShipping","withPersistBeforePageLeave","orderQuery","validations","enableSavedAddressList","errorLabels","enableSaveAddress","autofillShippingPersonalData","userQuery","enabled","countryCode","requiredFields","enableNoShippingMethodMode","isShippingSubmitting","setIsShippingSubmitting","saveAddress","useAdd","handleShippingAddressChange","currentShippingAddress","savedShippingAddress","shippingAddress","setShippingAddress","mod","savedAddressList","hasAvailableSavedAddress","noShippingMethod","selectedShippingAddress","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"}
@@ -190,6 +190,7 @@ export function CheckoutFormContextProvider(_ref) {
190
190
  setIsBillingSubmitting: billingState.updateIsSubmitting,
191
191
  isPaymentValid: paymentState.isValid,
192
192
  setIsPaymentSubmitting: paymentState.updateIsSubmitting,
193
+ loanInfo: paymentState.loanInfo,
193
194
  step,
194
195
  updateStep: setStep,
195
196
  saveOrder: handleCheckoutSubmit,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/contexts/CheckoutForm/index.tsx"],"names":["React","createContext","useCallback","useContext","useMemo","useState","myCartApi","useBilling","usePayment","useShipping","useIsAuthenticated","useCheckoutSubmit","defaultShippingValidations","genericBillingAddressValidation","usersApi","useCheckoutShippingModule","CheckoutFormCustomStateProvider","BoricaRedirect","useScrollTo","getElementOffset","CheckoutFormContext","CheckoutFormContextProvider","children","defaultStep","errorLabels","enableSavedAddressList","withPersistBeforePageLeave","shippingValidations","validateBillingAddress","enableSaveBillingAddress","enableSavedBillingAddressList","countryCode","enableSaveAddress","autofillShippingPersonalData","onSubmit","paymentEnabledOnStep","getPaymentMethodsWhenShippingMethodIsSelected","shippingEnabledOnStep","billingEnabledOnStep","customState","initialCustomState","redirectTimeout","onBeforeRedirect","onSuccess","onError","isBoricaInDevMode","withPixelMeta","requiredFieldsOnShippingStep","requiredFieldsOnBillingAddressStep","enableNoShippingMethodMode","disablePaymentRedirects","orderQuery","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","enabled","shippingState","Boolean","validations","requiredFields","mod","getIsPaymentMethodsEnabled","moduleKey","moduleData","methodKey","paymentState","billingState","withSavedBillingAddressList","requiredFieldsOnShipping","onBeforeBoricaRedirect","setTimeout","onBeforePaypalRedirect","location","replace","redirectUrl","handleCheckoutSubmit","withMeta","scrollToFirstError","interval","setInterval","errorElement","top","clearInterval","handleSubmit","e","preventDefault","Promise","all","persistShippingAddress","persistBillingAddress","catch","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":"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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} 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":["React","createContext","useCallback","useContext","useMemo","useState","myCartApi","useBilling","usePayment","useShipping","useIsAuthenticated","useCheckoutSubmit","defaultShippingValidations","genericBillingAddressValidation","usersApi","useCheckoutShippingModule","CheckoutFormCustomStateProvider","BoricaRedirect","useScrollTo","getElementOffset","CheckoutFormContext","CheckoutFormContextProvider","children","defaultStep","errorLabels","enableSavedAddressList","withPersistBeforePageLeave","shippingValidations","validateBillingAddress","enableSaveBillingAddress","enableSavedBillingAddressList","countryCode","enableSaveAddress","autofillShippingPersonalData","onSubmit","paymentEnabledOnStep","getPaymentMethodsWhenShippingMethodIsSelected","shippingEnabledOnStep","billingEnabledOnStep","customState","initialCustomState","redirectTimeout","onBeforeRedirect","onSuccess","onError","isBoricaInDevMode","withPixelMeta","requiredFieldsOnShippingStep","requiredFieldsOnBillingAddressStep","enableNoShippingMethodMode","disablePaymentRedirects","orderQuery","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","enabled","shippingState","Boolean","validations","requiredFields","mod","getIsPaymentMethodsEnabled","moduleKey","moduleData","methodKey","paymentState","billingState","withSavedBillingAddressList","requiredFieldsOnShipping","onBeforeBoricaRedirect","setTimeout","onBeforePaypalRedirect","location","replace","redirectUrl","handleCheckoutSubmit","withMeta","scrollToFirstError","interval","setInterval","errorElement","top","clearInterval","handleSubmit","e","preventDefault","Promise","all","persistShippingAddress","persistBillingAddress","catch","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":";;AAAA,OAAOA,KAAP,IACEC,aADF,EAEEC,WAFF,EAGEC,UAHF,EAIEC,OAJF,EAKEC,QALF,QAMO,OANP;AAeA,SAASC,SAAT,QAA0B,qBAA1B;AACA,SACEC,UADF,EAGEC,UAHF,EAKEC,WALF,QAOO,SAPP;AAQA,SAASC,kBAAT,QAAmC,kBAAnC;AACA,SAASC,iBAAT,QAAkC,+BAAlC;AAEA,SAEEC,0BAFF,EAGEC,+BAHF,QAKO,SALP;AAMA,SAASC,QAAT,QAAyB,oBAAzB;AACA,SAASC,yBAAT,QAA0C,uCAA1C;AACA,SAASC,+BAAT,EAA0CC,cAA1C,QAAgE,cAAhE;AACA,SAASC,WAAT,QAA4B,sBAA5B;AACA,SAASC,gBAAT,QAAiC,8BAAjC;AAEA,OAAO,IAAMC,mBAAmB,gBAAGnB,aAAa,CAC9C,EAD8C,CAAzC;AAMP,OAAO,SAASoB,2BAAT,OAyCG;AAAA,MAzCkC;AAC1CC,IAAAA,QAD0C;AAE1CC,IAAAA,WAF0C;AAG1CC,IAAAA,WAH0C;AAI1CC,IAAAA,sBAJ0C;AAK1CC,IAAAA,0BAL0C;AAM1CC,IAAAA,mBAAmB,GAAGf,0BANoB;AAO1CgB,IAAAA,sBAAsB,GAAGf,+BAPiB;AAQ1CgB,IAAAA,wBAR0C;AAS1CC,IAAAA,6BAT0C;AAU1CC,IAAAA,WAV0C;AAW1CC,IAAAA,iBAX0C;AAY1CC,IAAAA,4BAZ0C;AAa1CC,IAAAA,QAb0C;AAe1CC,IAAAA,oBAf0C;AAgB1CC,IAAAA,6CAhB0C;AAiB1CC,IAAAA,qBAjB0C;AAkB1CC,IAAAA,oBAlB0C;AAoB1CC,IAAAA,WAAW,EAAEC,kBAAkB,GAAG,EApBQ;AAqB1CC,IAAAA,eAAe,GAAG,GArBwB;AAsB1CC,IAAAA,gBAtB0C;AAuB1CC,IAAAA,SAvB0C;AAwB1CC,IAAAA,OAAO,EAAPA,QAxB0C;AAyB1CC,IAAAA,iBAzB0C;AA0B1CC,IAAAA,aAAa,GAAG,KA1B0B;AA2B1CC,IAAAA,4BAA4B,GAAG,CAC7B,WAD6B,EAE7B,UAF6B,EAG7B,OAH6B,EAI7B,aAJ6B,CA3BW;AAiC1CC,IAAAA,kCAAkC,GAAG,CACnC,OADmC,EAEnC,WAFmC,EAGnC,eAHmC,EAInC,aAJmC,CAjCK;AAuC1CC,IAAAA,0BAA0B,GAAG,KAvCa;AAwC1CC,IAAAA,uBAAuB,GAAG;AAxCgB,GAyClC;AACR,MAAMC,UAAU,GAAG7C,SAAS,CAAC8C,MAAV,EAAnB;AACA,MAAM,CACJC,UADI,EAEJC,aAFI,IAGFjD,QAAQ,CAA2C,IAA3C,CAHZ;AAIA,MAAM,CAACkD,IAAD,EAAOC,OAAP,IAAkBnD,QAAQ,CAAwBkB,WAAxB,CAAhC;AACA,MAAM,CAACkC,aAAD,EAAgBC,gBAAhB,IAAoCrD,QAAQ,CAAC,KAAD,CAAlD;AAEA,MAAMsD,eAA8B,GAAG,EAAvC;AAEA,MAAM,CAACC,YAAD,EAAeC,eAAf,IAAkCxD,QAAQ,CAAe,IAAf,CAAhD;;AAEA,MAAMyD,sBAAsB,GAAIC,KAAD,IAAwB;AACrDJ,IAAAA,eAAe,CAACK,IAAhB,CAAqBD,KAArB;AACD,GAFD;;AAIA,MAAME,gBAAgB,GAAG/D,WAAW,CAAEgE,OAAD,IAAoC;AACvEC,IAAAA,MAAM,CAACC,QAAP,CAAgB,CAAhB,EAAmB,CAAnB;AAEAZ,IAAAA,OAAO,CAACU,OAAD,CAAP;AACD,GAJmC,EAIjC,EAJiC,CAApC;AAMA,MAAMG,kBAAkB,GAAGnE,WAAW,CAAEoE,MAAD,IAAmB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAMC,eAAe,GAAGD,MAAH,oBAAGA,MAAM,CAAEE,MAAX,oBAAGF,MAAM,CAAEE,MAAR,CACtB,CAACC,IAAD,EAAqBV,KAArB,KAAoC;AAClC,0BACKU,IADL;AAEE,SAAC,CAAAV,KAAK,QAAL,YAAAA,KAAK,CAAEW,IAAP,KAAe,UAAhB,GAA6BX,KAA7B,oBAA6BA,KAAK,CAAEY;AAFtC;AAID,KANqB,EAOtB,EAPsB,CAAxB;AASAd,IAAAA,eAAe,CAACU,eAAe,IAAI;AAAEK,MAAAA,aAAa,EAAEN;AAAjB,KAApB,CAAf;AACD,GArBqC,EAqBnC,EArBmC,CAAtC;AAuBA,MAAM;AAAEO,IAAAA;AAAF,MAAsBnE,kBAAkB,EAA9C;AAEA,MAAMoE,iBAAiB,GAAGzC,qBAAqB,KAAKkB,IAApD;AAEA,MAAMwB,SAAS,GAAGjE,QAAQ,CAACsC,MAAT,CAChB,EADgB,EAEhB;AAAE4B,IAAAA,OAAO,EAAEF,iBAAiB,IAAI7C;AAAhC,GAFgB,CAAlB;AAKA,MAAMgD,aAAa,GAAGxE,WAAW,CAAC;AAChCe,IAAAA,WADgC;AAEhC2B,IAAAA,UAFgC;AAGhC1B,IAAAA,sBAAsB,EAAEyD,OAAO,CAACL,eAAe,IAAIpD,sBAApB,CAHC;AAIhCO,IAAAA,iBAAiB,EAAEkD,OAAO,CAACL,eAAe,IAAI7C,iBAApB,CAJM;AAKhCN,IAAAA,0BAA0B,EAAE,CAAC+B,aAAD,IAAkB/B,0BALd;AAMhCyD,IAAAA,WAAW,EAAExD,mBANmB;AAOhCM,IAAAA,4BAA4B,EAAEiD,OAAO,CACnCL,eAAe,IAAI5C,4BADgB,CAPL;AAUhC8C,IAAAA,SAVgC;AAWhCC,IAAAA,OAAO,EAAEF,iBAXuB;AAYhC/C,IAAAA,WAZgC;AAahCqD,IAAAA,cAAc,EAAErC,4BAbgB;AAchCE,IAAAA;AAdgC,GAAD,CAAjC;AAgBA,MAAMoC,GAAG,GAAGtE,yBAAyB,CAACoC,UAAD,EAAa,CAACF,0BAAd,CAArC;;AAEA,MAAMqC,0BAA0B,GAAG,MAAM;AACvC,QAAInD,oBAAJ,EAA0B;AACxB,aAAOA,oBAAoB,KAAKoB,IAAhC;AACD;;AAED,QACE,CAACN,0BAAD,IACAb,6CAFF,EAGE;AACA,aAAO8C,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,GAAGlF,UAAU,CAAC;AAC9BgB,IAAAA,WAD8B;AAE9B2B,IAAAA,UAF8B;AAG9B6B,IAAAA,OAAO,EAAEM,0BAA0B;AAHL,GAAD,CAA/B;AAMA,MAAMK,YAAY,GAAGpF,UAAU,CAAC;AAC9BiB,IAAAA,WAD8B;AAE9B2B,IAAAA,UAF8B;AAG9BvB,IAAAA,sBAH8B;AAI9BC,IAAAA,wBAAwB,EAAEqD,OAAO,CAC/BL,eAAe,IAAIhD,wBADY,CAJH;AAO9B+D,IAAAA,2BAA2B,EAAEV,OAAO,CAClCL,eAAe,IAAI/C,6BADe,CAPN;AAU9BJ,IAAAA,0BAA0B,EAAE,CAAC+B,aAAD,IAAkB/B,0BAVhB;AAW9BK,IAAAA,WAX8B;AAY9BiD,IAAAA,OAAO,EAAE1C,oBAAoB,KAAKiB,IAZJ;AAa9B6B,IAAAA,cAAc,EAAEpC,kCAbc;AAc9B6C,IAAAA,wBAAwB,EAAE9C;AAdI,GAAD,CAA/B;;AAiBA,MAAM+C,sBAAsB,GAAIrB,IAAD,IAA6C;AAC1E,QAAIvB,uBAAJ,EAA6B;AAE7BR,IAAAA,gBAAgB,QAAhB,YAAAA,gBAAgB;AAChBgB,IAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACAqC,IAAAA,UAAU,CAAC,MAAM;AACfzC,MAAAA,aAAa,CAACmB,IAAD,CAAb;AACD,KAFS,EAEPhC,eAFO,CAAV;AAGD,GARD;;AAUA,MAAMuD,sBAAsB,GAC1BvB,IAD6B,IAE1B;AACH,QAAIvB,uBAAJ,EAA6B;AAE7BR,IAAAA,gBAAgB,QAAhB,YAAAA,gBAAgB;AAChBgB,IAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACAqC,IAAAA,UAAU,CAAC,MAAM;AACf5B,MAAAA,MAAM,CAAC8B,QAAP,CAAgBC,OAAhB,CAAwBzB,IAAI,CAAC0B,WAA7B;AACD,KAFS,EAEP1D,eAFO,CAAV;AAGD,GAVD;;AAWA,MAAM;AAAE2D,IAAAA;AAAF,MAA2BzF,iBAAiB,CAAC;AACjDmF,IAAAA,sBADiD;AAEjDE,IAAAA,sBAFiD;AAGjDrD,IAAAA,SAHiD;AAIjDC,IAAAA,OAAO,EAAG0B,MAAD,IAAiB;AACxBD,MAAAA,kBAAkB,CAACC,MAAD,CAAlB;;AACA1B,MAAAA,QAAO,CAAC0B,MAAD,CAAP;AACD,KAPgD;AAQjD+B,IAAAA,QAAQ,EAAEvD,aARuC;AASjDI,IAAAA;AATiD,GAAD,CAAlD;AAYA,MAAM;AAAEkB,IAAAA;AAAF,MAAelD,WAAW,CAACyC,eAAe,CAAC,CAAD,CAAhB,EAAqB,CAArB,CAAhC;;AAEA,MAAM2C,kBAAkB,GAAG,MAAM;AAC/B,QAAMC,QAAQ,GAAGC,WAAW,CAAC,MAAM;AACjC,UAAMC,YAAY,GAAG9C,eAAe,CAAC,CAAD,CAApC;AACA,UAAI,CAAC8C,YAAL,EAAmB;AAEnBrC,MAAAA,QAAQ,CAACjD,gBAAgB,CAACsF,YAAD,CAAhB,CAA+BC,GAA/B,GAAqC,GAAtC,CAAR;AACAC,MAAAA,aAAa,CAACJ,QAAD,CAAb;AACD,KAN2B,EAMzB,EANyB,CAA5B;AAQAR,IAAAA,UAAU,CAAC,MAAM;AACfY,MAAAA,aAAa,CAACJ,QAAD,CAAb;AACD,KAFS,EAEP,IAFO,CAAV;AAGD,GAZD;;AAcA,MAAMK,YAAY;AAAA,kCAAG,WAAOC,CAAP,EAA+C;AAClEA,MAAAA,CAAC,CAACC,cAAF;AAEA,YAAMC,OAAO,CAACC,GAAR,CAAY,CAChB/B,aAAa,CAACgC,sBAAd,EADgB,EAEhBtB,YAAY,CAACuB,qBAAb,EAFgB,CAAZ,EAGHC,KAHG,CAGG,MAAM,CAAE,CAHX,CAAN;AAKAjF,MAAAA,QAAQ,CAAC;AACPkF,QAAAA,eAAe,EAAEnC,aAAa,CAACoC,OADxB;AAEPC,QAAAA,uBAAuB,EAAErC,aAAa,CAACsC,kBAFhC;AAGPC,QAAAA,cAAc,EAAE7B,YAAY,CAAC0B,OAHtB;AAIPI,QAAAA,sBAAsB,EAAE9B,YAAY,CAAC4B,kBAJ9B;AAKPG,QAAAA,cAAc,EAAEhC,YAAY,CAAC2B,OALtB;AAMPM,QAAAA,sBAAsB,EAAEjC,YAAY,CAAC6B,kBAN9B;AAOPK,QAAAA,QAAQ,EAAElC,YAAY,CAACkC,QAPhB;AAQPrE,QAAAA,IARO;AASPsE,QAAAA,UAAU,EAAErE,OATL;AAUPsE,QAAAA,SAAS,EAAE1B,oBAVJ;AAWP/B,QAAAA,kBAXO;AAYPiC,QAAAA,kBAZO;AAaPrB,QAAAA,aAbO;AAcP8C,QAAAA,eAAe,EAAE9C,aAAa,CAACR;AAdxB,OAAD,CAAR;AAgBD,KAxBiB;;AAAA,oBAAZmC,YAAY;AAAA;AAAA;AAAA,KAAlB;;AA0BA,MAAMoB,KAAK,GAAG;AACZxE,IAAAA,OAAO,EAAES,gBADG;AAEZV,IAAAA,IAFY;AAGZJ,IAAAA,UAHY;AAIZS,IAAAA,YAJY;AAKZS,IAAAA,kBALY;AAMZ7C,IAAAA,WANY;AAOZyD,IAAAA,aAPY;AAQZS,IAAAA,YARY;AASZC,IAAAA,YATY;AAUZsC,IAAAA,QAAQ,EAAEnE,sBAVE;AAWZoE,IAAAA,WAAW,EAAEvE;AAXD,GAAd;AAcA,sBACE,oBAAC,mBAAD,CAAqB,QAArB;AAA8B,IAAA,KAAK,EAAEqE;AAArC,kBACE,oBAAC,+BAAD;AAAiC,IAAA,kBAAkB,EAAExF;AAArD,kBACE,uDACE;AAAM,IAAA,UAAU,MAAhB;AAAiB,IAAA,QAAQ,EAAEoE;AAA3B,KACGtF,QADH,CADF,EAIG,CAAC,CAAC+B,UAAF,iBACC,oBAAC,cAAD;AACE,IAAA,WAAW,EAAER,iBADf;AAEE,IAAA,QAAQ,EAAEQ;AAFZ,IALJ,CADF,CADF,CADF;AAiBD;AAgED,WAAY8E,qBAAZ;;WAAYA,qB;AAAAA,EAAAA,qB;AAAAA,EAAAA,qB;AAAAA,EAAAA,qB;AAAAA,EAAAA,qB;AAAAA,EAAAA,qB;AAAAA,EAAAA,qB;GAAAA,qB,KAAAA,qB;;AAgDZ,OAAO,IAAMC,mBAAmB,GAAG,MAAM;AACvC,MAAMC,OAAO,GAAGlI,UAAU,CAACiB,mBAAD,CAA1B;;AAEA,MAAI,CAACiH,OAAL,EAAc;AACZ,UAAM,IAAIC,KAAJ,CACJ,uEADI,CAAN;AAGD;;AAED,SAAOlI,OAAO,CAAC,MAAM;AACnB,WAAO;AACLmI,MAAAA,WAAW,EAAEF,OAAO,CAAC9E,IADhB;AAELsE,MAAAA,UAAU,EAAEQ,OAAO,CAAC7E;AAFf,KAAP;AAID,GALa,EAKX,CAAC6E,OAAD,CALW,CAAd;AAMD,CAfM;AAiBP,OAAO,IAAMG,oBAAoB,GAAG,MAAM;AACxC,MAAMH,OAAO,GAAGlI,UAAU,CAACiB,mBAAD,CAA1B;;AAEA,MAAI,CAACiH,OAAL,EAAc;AACZ,UAAM,IAAIC,KAAJ,CACJ,wEADI,CAAN;AAGD;;AAED,SAAOD,OAAO,CAAClF,UAAf;AACD,CAVM;AAYP,OAAO,IAAMsF,0BAA0B,GAAG,MAAM;AAC9C,MAAMJ,OAAO,GAAGlI,UAAU,CAACiB,mBAAD,CAA1B;;AAEA,MAAI,CAACiH,OAAL,EAAc;AACZ,UAAM,IAAIC,KAAJ,CACJ,8EADI,CAAN;AAGD;;AAED,SAAOD,OAAO,CAAC7G,WAAf;AACD,CAVM;AAYP,OAAO,IAAMkH,2BAA2B,GAAG,MAAM;AAC/C,MAAML,OAAO,GAAGlI,UAAU,CAACiB,mBAAD,CAA1B;;AAEA,MAAI,CAACiH,OAAL,EAAc;AACZ,UAAM,IAAIC,KAAJ,CACJ,+EADI,CAAN;AAGD;;AAED,SAAOlI,OAAO,CAAC,MAAM;AACnB,WAAO;AACLwD,MAAAA,YAAY,EAAEyE,OAAO,CAACzE,YADjB;AAELS,MAAAA,kBAAkB,EAAEgE,OAAO,CAAChE;AAFvB,KAAP;AAID,GALa,EAKX,CAACgE,OAAD,CALW,CAAd;AAMD,CAfM;AAiBP,OAAO,IAAMM,2BAA2B,GAAG,MAAM;AAC/C,MAAMN,OAAO,GAAGlI,UAAU,CAACiB,mBAAD,CAA1B;;AAEA,MAAI,CAACiH,OAAL,EAAc;AACZ,UAAM,IAAIC,KAAJ,CACJ,+EADI,CAAN;AAGD;;AAED,SAAOD,OAAO,CAAC1C,YAAf;AACD,CAVM;AAYP,OAAO,IAAMiD,4BAA4B,GAAG,MAAM;AAChD,MAAMP,OAAO,GAAGlI,UAAU,CAACiB,mBAAD,CAA1B;;AAEA,MAAI,CAACiH,OAAL,EAAc;AACZ,UAAM,IAAIC,KAAJ,CACJ,gFADI,CAAN;AAGD;;AAED,SAAOD,OAAO,CAACpD,aAAf;AACD,CAVM;AAYP,OAAO,IAAM4D,sBAAsB,GAAG,MAAM;AAC1C,MAAMR,OAAO,GAAGlI,UAAU,CAACiB,mBAAD,CAA1B;;AAEA,MAAI,CAACiH,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;AAeP,OAAO,IAAMa,2BAA2B,GAAG,MAAM;AAC/C,MAAMT,OAAO,GAAGlI,UAAU,CAACiB,mBAAD,CAA1B;;AAEA,MAAI,CAACiH,OAAL,EAAc;AACZ,UAAM,IAAIC,KAAJ,CACJ,+EADI,CAAN;AAGD;;AAED,SAAOD,OAAO,CAAC3C,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 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"}
@@ -4,13 +4,18 @@ export var useContactForm = (_ref) => {
4
4
  onSuccess,
5
5
  onError,
6
6
  endpoint = 'email/contact',
7
- integrationDomain
7
+ integrationDomain,
8
+ interfaceKey
8
9
  } = _ref;
10
+ var headers = interfaceKey ? {
11
+ InterfaceKey: interfaceKey,
12
+ 'Content-Type': 'application/json'
13
+ } : {
14
+ 'Content-Type': 'application/json'
15
+ };
9
16
  return useMutation(body => fetch(integrationDomain + "/" + endpoint, {
10
17
  method: 'POST',
11
- headers: {
12
- 'Content-Type': 'application/json'
13
- },
18
+ headers,
14
19
  body: JSON.stringify(body)
15
20
  }).then(res => res.json()), {
16
21
  onSuccess,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/hooks/useContactForm/index.tsx"],"names":["useMutation","useContactForm","onSuccess","onError","endpoint","integrationDomain","body","fetch","method","headers","JSON","stringify","then","res","json"],"mappings":"AAAA,SAASA,WAAT,QAA4B,aAA5B;AAUA,OAAO,IAAMC,cAAc,GAAG,UAUxB;AAAA,MAVyB;AAC7BC,IAAAA,SAD6B;AAE7BC,IAAAA,OAF6B;AAG7BC,IAAAA,QAAQ,GAAG,eAHkB;AAI7BC,IAAAA;AAJ6B,GAUzB;AACJ,SAAOL,WAAW,CACfM,IAAD,IACEC,KAAK,CAAIF,iBAAJ,SAAyBD,QAAzB,EAAqC;AACxCI,IAAAA,MAAM,EAAE,MADgC;AAExCC,IAAAA,OAAO,EAAE;AACP,sBAAgB;AADT,KAF+B;AAKxCH,IAAAA,IAAI,EAAEI,IAAI,CAACC,SAAL,CAAeL,IAAf;AALkC,GAArC,CAAL,CAMGM,IANH,CAMSC,GAAD,IAASA,GAAG,CAACC,IAAJ,EANjB,CAFc,EAShB;AACEZ,IAAAA,SADF;AAEEC,IAAAA;AAFF,GATgB,CAAlB;AAcD,CAzBM","sourcesContent":["import { useMutation } from 'react-query'\n\ntype EmailBodyType = {\n name: string\n email: string\n phone: string\n subject: string\n message: string\n}\n\nexport const useContactForm = ({\n onSuccess,\n onError,\n endpoint = 'email/contact',\n integrationDomain,\n}: {\n onSuccess: (data: any) => void\n onError: (error: any) => void\n endpoint?: string\n integrationDomain: string\n}) => {\n return useMutation(\n (body: EmailBodyType) =>\n fetch(`${integrationDomain}/${endpoint}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body),\n }).then((res) => res.json()),\n {\n onSuccess,\n onError,\n }\n )\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/hooks/useContactForm/index.tsx"],"names":["useMutation","useContactForm","onSuccess","onError","endpoint","integrationDomain","interfaceKey","headers","InterfaceKey","body","fetch","method","JSON","stringify","then","res","json"],"mappings":"AAAA,SAASA,WAAT,QAA4B,aAA5B;AAUA,OAAO,IAAMC,cAAc,GAAG,UAYxB;AAAA,MAZyB;AAC7BC,IAAAA,SAD6B;AAE7BC,IAAAA,OAF6B;AAG7BC,IAAAA,QAAQ,GAAG,eAHkB;AAI7BC,IAAAA,iBAJ6B;AAK7BC,IAAAA;AAL6B,GAYzB;AACJ,MAAMC,OAAgC,GAAGD,YAAY,GACjD;AACEE,IAAAA,YAAY,EAAEF,YADhB;AAEE,oBAAgB;AAFlB,GADiD,GAKjD;AACE,oBAAgB;AADlB,GALJ;AASA,SAAON,WAAW,CACfS,IAAD,IACEC,KAAK,CAAIL,iBAAJ,SAAyBD,QAAzB,EAAqC;AACxCO,IAAAA,MAAM,EAAE,MADgC;AAExCJ,IAAAA,OAFwC;AAGxCE,IAAAA,IAAI,EAAEG,IAAI,CAACC,SAAL,CAAeJ,IAAf;AAHkC,GAArC,CAAL,CAIGK,IAJH,CAISC,GAAD,IAASA,GAAG,CAACC,IAAJ,EAJjB,CAFc,EAOhB;AACEd,IAAAA,SADF;AAEEC,IAAAA;AAFF,GAPgB,CAAlB;AAYD,CAlCM","sourcesContent":["import { useMutation } from 'react-query'\n\ntype EmailBodyType = {\n name: string\n email: string\n phone: string\n subject: string\n message: string\n}\n\nexport const useContactForm = ({\n onSuccess,\n onError,\n endpoint = 'email/contact',\n integrationDomain,\n interfaceKey,\n}: {\n onSuccess: (data: any) => void\n onError: (error: any) => void\n endpoint?: string\n integrationDomain: string\n interfaceKey?: string\n}) => {\n const headers: HeadersInit | undefined = interfaceKey\n ? {\n InterfaceKey: interfaceKey,\n 'Content-Type': 'application/json',\n }\n : {\n 'Content-Type': 'application/json',\n }\n\n return useMutation(\n (body: EmailBodyType) =>\n fetch(`${integrationDomain}/${endpoint}`, {\n method: 'POST',\n headers,\n body: JSON.stringify(body),\n }).then((res) => res.json()),\n {\n onSuccess,\n onError,\n }\n )\n}\n"],"file":"index.js"}
@@ -1,3 +1,4 @@
1
+ import { useEffect } from 'react';
1
2
  import { consentsApi } from '../../../api/consentsApi';
2
3
  export var useSubscribeToNewsletter = (_ref) => {
3
4
  var {
@@ -5,10 +6,14 @@ export var useSubscribeToNewsletter = (_ref) => {
5
6
  } = _ref;
6
7
  var keys = ['AGRPOLICY', 'AGRNEWSLETTER'];
7
8
  var [sub, {
8
- error: onError
9
- }] = consentsApi.useApprove({
10
- onSuccess: callback
11
- });
9
+ error: onError,
10
+ isSuccess
11
+ }] = consentsApi.useApprove({});
12
+ useEffect(() => {
13
+ if (isSuccess) {
14
+ callback == null ? void 0 : callback();
15
+ }
16
+ }, [isSuccess]);
12
17
 
13
18
  var subscribe = email => {
14
19
  for (var key of keys) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/hooks/user-hooks/useSubscribeToNewsletter/index.ts"],"names":["consentsApi","useSubscribeToNewsletter","callback","keys","sub","error","onError","useApprove","onSuccess","subscribe","email","key","consentKey"],"mappings":"AAAA,SAASA,WAAT,QAA4B,0BAA5B;AAEA,OAAO,IAAMC,wBAAwB,GAAG,UAIlC;AAAA,MAJmC;AACvCC,IAAAA;AADuC,GAInC;AACJ,MAAMC,IAAI,GAAG,CAAC,WAAD,EAAc,eAAd,CAAb;AACA,MAAM,CAACC,GAAD,EAAM;AAAEC,IAAAA,KAAK,EAAEC;AAAT,GAAN,IAA4BN,WAAW,CAACO,UAAZ,CAAuB;AACvDC,IAAAA,SAAS,EAAEN;AAD4C,GAAvB,CAAlC;;AAIA,MAAMO,SAAS,GAAIC,KAAD,IAAmB;AACnC,SAAK,IAAMC,GAAX,IAAkBR,IAAlB,EAAwB;AACtBC,MAAAA,GAAG,CAAC;AAAEM,QAAAA,KAAF;AAASE,QAAAA,UAAU,EAAED;AAArB,OAAD,CAAH;AACD;AACF,GAJD;;AAMA,SAAO;AAAEF,IAAAA,SAAF;AAAaH,IAAAA;AAAb,GAAP;AACD,CAjBM","sourcesContent":["import { consentsApi } from '../../../api/consentsApi'\n\nexport const useSubscribeToNewsletter = ({\n callback,\n}: {\n callback?: () => void\n}) => {\n const keys = ['AGRPOLICY', 'AGRNEWSLETTER']\n const [sub, { error: onError }] = consentsApi.useApprove({\n onSuccess: callback,\n })\n\n const subscribe = (email: string) => {\n for (const key of keys) {\n sub({ email, consentKey: key })\n }\n }\n\n return { subscribe, onError }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../../src/hooks/user-hooks/useSubscribeToNewsletter/index.ts"],"names":["useEffect","consentsApi","useSubscribeToNewsletter","callback","keys","sub","error","onError","isSuccess","useApprove","subscribe","email","key","consentKey"],"mappings":"AAAA,SAAgBA,SAAhB,QAAiC,OAAjC;AACA,SAASC,WAAT,QAA4B,0BAA5B;AAEA,OAAO,IAAMC,wBAAwB,GAAG,UAIlC;AAAA,MAJmC;AACvCC,IAAAA;AADuC,GAInC;AACJ,MAAMC,IAAI,GAAG,CAAC,WAAD,EAAc,eAAd,CAAb;AACA,MAAM,CAACC,GAAD,EAAM;AAAEC,IAAAA,KAAK,EAAEC,OAAT;AAAkBC,IAAAA;AAAlB,GAAN,IAAuCP,WAAW,CAACQ,UAAZ,CAAuB,EAAvB,CAA7C;AAEAT,EAAAA,SAAS,CAAC,MAAM;AACd,QAAIQ,SAAJ,EAAe;AACbL,MAAAA,QAAQ,QAAR,YAAAA,QAAQ;AACT;AACF,GAJQ,EAIN,CAACK,SAAD,CAJM,CAAT;;AAMA,MAAME,SAAS,GAAIC,KAAD,IAAmB;AACnC,SAAK,IAAMC,GAAX,IAAkBR,IAAlB,EAAwB;AACtBC,MAAAA,GAAG,CAAC;AAAEM,QAAAA,KAAF;AAASE,QAAAA,UAAU,EAAED;AAArB,OAAD,CAAH;AACD;AACF,GAJD;;AAMA,SAAO;AAAEF,IAAAA,SAAF;AAAaH,IAAAA;AAAb,GAAP;AACD,CArBM","sourcesContent":["import React, { useEffect } from 'react'\nimport { consentsApi } from '../../../api/consentsApi'\n\nexport const useSubscribeToNewsletter = ({\n callback,\n}: {\n callback?: () => void\n}) => {\n const keys = ['AGRPOLICY', 'AGRNEWSLETTER']\n const [sub, { error: onError, isSuccess }] = consentsApi.useApprove({})\n\n useEffect(() => {\n if (isSuccess) {\n callback?.()\n }\n }, [isSuccess])\n\n const subscribe = (email: string) => {\n for (const key of keys) {\n sub({ email, consentKey: key })\n }\n }\n\n return { subscribe, onError }\n}\n"],"file":"index.js"}
@@ -1,3 +1,4 @@
1
1
  export * from './queries';
2
2
  export * from './mutations';
3
+ export * from './utils';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/order/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAd;AACA,cAAc,aAAd","sourcesContent":["export * from './queries'\nexport * from './mutations'\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/order/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAd;AACA,cAAc,aAAd;AACA,cAAc,SAAd","sourcesContent":["export * from './queries'\nexport * from './mutations'\nexport * from './utils'\n"],"file":"index.js"}
@@ -0,0 +1,3 @@
1
+ import { MyOrdersGetById } from '@sentecacommerce/sdk';
2
+ export { MyOrdersGetById as getOrderById };
3
+ //# sourceMappingURL=getOrderById.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/order/api/utils/getOrderById.ts"],"names":["MyOrdersGetById","getOrderById"],"mappings":"AAAA,SAASA,eAAT,QAAgC,sBAAhC;AACA,SAASA,eAAe,IAAIC,YAA5B","sourcesContent":["import { MyOrdersGetById } from '@sentecacommerce/sdk'\nexport { MyOrdersGetById as getOrderById }\n"],"file":"getOrderById.js"}
@@ -0,0 +1,2 @@
1
+ export * from './getOrderById';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/order/api/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAd","sourcesContent":["export * from './getOrderById'\n"],"file":"index.js"}
@@ -0,0 +1,4 @@
1
+ export var getBnpProductOffersKey = sku => {
2
+ return ['product-bnp-offers', sku];
3
+ };
4
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/product/api/keys.ts"],"names":["getBnpProductOffersKey","sku"],"mappings":"AAAA,OAAO,IAAMA,sBAAsB,GAAIC,GAAD,IAAiB;AACrD,SAAO,CAAC,oBAAD,EAAuBA,GAAvB,CAAP;AACD,CAFM","sourcesContent":["export const getBnpProductOffersKey = (sku: string) => {\n return ['product-bnp-offers', sku]\n}\n"],"file":"keys.js"}
@@ -0,0 +1,2 @@
1
+ export * from './useBnpOffersQuery';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/product/api/queries/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAd","sourcesContent":["export * from './useBnpOffersQuery'\n"],"file":"index.js"}
@@ -0,0 +1,18 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import { useQuery } from 'react-query';
3
+ import { MyPaymentsBnpCalculateForSKU } from '@sentecacommerce/sdk';
4
+ import { getBnpProductOffersKey } from '../keys';
5
+ export var useBnpOffersQuery = (_ref) => {
6
+ var {
7
+ sku,
8
+ preferredInstallmentCentAmount = 0,
9
+ downPaymentCentAmount = 0
10
+ } = _ref;
11
+ return useQuery(getBnpProductOffersKey(sku), /*#__PURE__*/_asyncToGenerator(function* () {
12
+ return yield MyPaymentsBnpCalculateForSKU(sku, {
13
+ preferredInstallmentCentAmount,
14
+ downPaymentCentAmount
15
+ });
16
+ }));
17
+ };
18
+ //# sourceMappingURL=useBnpOffersQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/product/api/queries/useBnpOffersQuery.ts"],"names":["useQuery","MyPaymentsBnpCalculateForSKU","getBnpProductOffersKey","useBnpOffersQuery","sku","preferredInstallmentCentAmount","downPaymentCentAmount"],"mappings":";AACA,SAASA,QAAT,QAAyB,aAAzB;AACA,SAASC,4BAAT,QAA6C,sBAA7C;AACA,SAASC,sBAAT,QAAuC,SAAvC;AAEA,OAAO,IAAMC,iBAAiB,GAAG,UAQ3B;AAAA,MAR4B;AAChCC,IAAAA,GADgC;AAEhCC,IAAAA,8BAA8B,GAAG,CAFD;AAGhCC,IAAAA,qBAAqB,GAAG;AAHQ,GAQ5B;AACJ,SAAON,QAAQ,CACbE,sBAAsB,CAACE,GAAD,CADT,iCAEb;AAAA,iBACQH,4BAA4B,CAACG,GAAD,EAAM;AACtCC,MAAAA,8BADsC;AAEtCC,MAAAA;AAFsC,KAAN,CADpC;AAAA,GAFa,EAAf;AAQD,CAjBM","sourcesContent":["import React from 'react'\nimport { useQuery } from 'react-query'\nimport { MyPaymentsBnpCalculateForSKU } from '@sentecacommerce/sdk'\nimport { getBnpProductOffersKey } from '../keys'\n\nexport const useBnpOffersQuery = ({\n sku,\n preferredInstallmentCentAmount = 0,\n downPaymentCentAmount = 0,\n}: {\n sku: string\n preferredInstallmentCentAmount?: number\n downPaymentCentAmount?: number\n}) => {\n return useQuery(\n getBnpProductOffersKey(sku),\n async () =>\n await MyPaymentsBnpCalculateForSKU(sku, {\n preferredInstallmentCentAmount,\n downPaymentCentAmount,\n })\n )\n}\n"],"file":"useBnpOffersQuery.js"}
@@ -0,0 +1,2 @@
1
+ export * from './useBnpOffers';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/product/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAd","sourcesContent":["export * from './useBnpOffers'\n"],"file":"index.js"}
@@ -0,0 +1,57 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import { useMemo } from 'react';
3
+ import { useBnpOffersQuery } from '../api/queries';
4
+ import { decodePrice, formatAsCurrency, useConfigState } from '../../index';
5
+ export var useBnpOffers = props => {
6
+ var _useConfigState, _useConfigState$price, _response$data2, _response$data2$;
7
+
8
+ var configLocale = (_useConfigState = useConfigState()) == null ? void 0 : (_useConfigState$price = _useConfigState.price) == null ? void 0 : _useConfigState$price.locale;
9
+ var response = useBnpOffersQuery(props);
10
+ return useMemo(() => {
11
+ var _response$data, _response$data$, _response$data$$offer;
12
+
13
+ return _extends({}, response, {
14
+ data: response == null ? void 0 : (_response$data = response.data) == null ? void 0 : (_response$data$ = _response$data[0]) == null ? void 0 : (_response$data$$offer = _response$data$.offers) == null ? void 0 : _response$data$$offer.map(offer => {
15
+ var _totalRepaymentAmount = decodePrice(offer.totalRepaymentAmount);
16
+
17
+ var _correctDownPaymentAmount = decodePrice(offer.correctDownPaymentAmount);
18
+
19
+ var _installmentAmount = decodePrice(offer.installmentAmount);
20
+
21
+ var _processingFeeAmount = decodePrice(offer.processingFeeAmount);
22
+
23
+ var totalRepaymentAmount = formatAsCurrency({
24
+ price: _totalRepaymentAmount,
25
+ precision: offer.totalRepaymentAmount.fractionDigits,
26
+ currency: offer.totalRepaymentAmount.currencyCode,
27
+ locale: configLocale || 'en'
28
+ });
29
+ var correctDownPaymentAmount = formatAsCurrency({
30
+ price: _correctDownPaymentAmount,
31
+ precision: offer.correctDownPaymentAmount.fractionDigits,
32
+ currency: offer.correctDownPaymentAmount.currencyCode,
33
+ locale: configLocale || 'en'
34
+ });
35
+ var installmentAmount = formatAsCurrency({
36
+ price: _installmentAmount,
37
+ precision: offer.installmentAmount.fractionDigits,
38
+ currency: offer.installmentAmount.currencyCode,
39
+ locale: configLocale || 'en'
40
+ });
41
+ var processingFeeAmount = formatAsCurrency({
42
+ price: _processingFeeAmount,
43
+ precision: offer.processingFeeAmount.fractionDigits,
44
+ currency: offer.processingFeeAmount.currencyCode,
45
+ locale: configLocale || 'en'
46
+ });
47
+ return _extends({}, offer, {
48
+ totalRepaymentAmount,
49
+ correctDownPaymentAmount,
50
+ installmentAmount,
51
+ processingFeeAmount
52
+ });
53
+ }).sort((offer, offer2) => Number(offer.maturity) - Number(offer2.maturity))
54
+ });
55
+ }, [response == null ? void 0 : (_response$data2 = response.data) == null ? void 0 : (_response$data2$ = _response$data2[0]) == null ? void 0 : _response$data2$.offers]);
56
+ };
57
+ //# sourceMappingURL=useBnpOffers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/product/hooks/useBnpOffers.ts"],"names":["useMemo","useBnpOffersQuery","decodePrice","formatAsCurrency","useConfigState","useBnpOffers","props","configLocale","price","locale","response","data","offers","map","offer","_totalRepaymentAmount","totalRepaymentAmount","_correctDownPaymentAmount","correctDownPaymentAmount","_installmentAmount","installmentAmount","_processingFeeAmount","processingFeeAmount","precision","fractionDigits","currency","currencyCode","sort","offer2","Number","maturity"],"mappings":";AAAA,SAAgBA,OAAhB,QAA+B,OAA/B;AACA,SAASC,iBAAT,QAAkC,gBAAlC;AACA,SAASC,WAAT,EAAsBC,gBAAtB,EAAwCC,cAAxC,QAA8D,aAA9D;AAEA,OAAO,IAAMC,YAAY,GAAIC,KAAD,IAItB;AAAA;;AACJ,MAAMC,YAAoB,sBAAGH,cAAc,EAAjB,8CAAG,gBAAkBI,KAArB,qBAAG,sBAAyBC,MAAtD;AACA,MAAMC,QAAQ,GAAGT,iBAAiB,CAACK,KAAD,CAAlC;AAEA,SAAON,OAAO,CACZ;AAAA;;AAAA,wBACKU,QADL;AAEEC,MAAAA,IAAI,EAAED,QAAF,sCAAEA,QAAQ,CAAEC,IAAZ,wCAAE,eAAiB,CAAjB,CAAF,8CAAE,gBAAqBC,MAAvB,qBAAE,sBACFC,GADE,CACGC,KAAD,IAAW;AACf,YAAMC,qBAAqB,GAAGb,WAAW,CAACY,KAAK,CAACE,oBAAP,CAAzC;;AACA,YAAMC,yBAAyB,GAAGf,WAAW,CAC3CY,KAAK,CAACI,wBADqC,CAA7C;;AAGA,YAAMC,kBAAkB,GAAGjB,WAAW,CAACY,KAAK,CAACM,iBAAP,CAAtC;;AACA,YAAMC,oBAAoB,GAAGnB,WAAW,CAACY,KAAK,CAACQ,mBAAP,CAAxC;;AAEA,YAAMN,oBAAoB,GAAGb,gBAAgB,CAAC;AAC5CK,UAAAA,KAAK,EAAEO,qBADqC;AAE5CQ,UAAAA,SAAS,EAAET,KAAK,CAACE,oBAAN,CAA2BQ,cAFM;AAG5CC,UAAAA,QAAQ,EAAEX,KAAK,CAACE,oBAAN,CAA2BU,YAHO;AAI5CjB,UAAAA,MAAM,EAAEF,YAAY,IAAI;AAJoB,SAAD,CAA7C;AAOA,YAAMW,wBAAwB,GAAGf,gBAAgB,CAAC;AAChDK,UAAAA,KAAK,EAAES,yBADyC;AAEhDM,UAAAA,SAAS,EAAET,KAAK,CAACI,wBAAN,CAA+BM,cAFM;AAGhDC,UAAAA,QAAQ,EAAEX,KAAK,CAACI,wBAAN,CAA+BQ,YAHO;AAIhDjB,UAAAA,MAAM,EAAEF,YAAY,IAAI;AAJwB,SAAD,CAAjD;AAOA,YAAMa,iBAAiB,GAAGjB,gBAAgB,CAAC;AACzCK,UAAAA,KAAK,EAAEW,kBADkC;AAEzCI,UAAAA,SAAS,EAAET,KAAK,CAACM,iBAAN,CAAwBI,cAFM;AAGzCC,UAAAA,QAAQ,EAAEX,KAAK,CAACM,iBAAN,CAAwBM,YAHO;AAIzCjB,UAAAA,MAAM,EAAEF,YAAY,IAAI;AAJiB,SAAD,CAA1C;AAOA,YAAMe,mBAAmB,GAAGnB,gBAAgB,CAAC;AAC3CK,UAAAA,KAAK,EAAEa,oBADoC;AAE3CE,UAAAA,SAAS,EAAET,KAAK,CAACQ,mBAAN,CAA0BE,cAFM;AAG3CC,UAAAA,QAAQ,EAAEX,KAAK,CAACQ,mBAAN,CAA0BI,YAHO;AAI3CjB,UAAAA,MAAM,EAAEF,YAAY,IAAI;AAJmB,SAAD,CAA5C;AAOA,4BACKO,KADL;AAEEE,UAAAA,oBAFF;AAGEE,UAAAA,wBAHF;AAIEE,UAAAA,iBAJF;AAKEE,UAAAA;AALF;AAOD,OA5CG,EA6CHK,IA7CG,CA8CF,CAACb,KAAD,EAAQc,MAAR,KAAmBC,MAAM,CAACf,KAAK,CAACgB,QAAP,CAAN,GAAyBD,MAAM,CAACD,MAAM,CAACE,QAAR,CA9ChD;AAFR;AAAA,GADY,EAoDZ,CAACpB,QAAD,uCAACA,QAAQ,CAAEC,IAAX,yCAAC,gBAAiB,CAAjB,CAAD,qBAAC,iBAAqBC,MAAtB,CApDY,CAAd;AAsDD,CA9DM","sourcesContent":["import React, { useMemo } from 'react'\nimport { useBnpOffersQuery } from '../api/queries'\nimport { decodePrice, formatAsCurrency, useConfigState } from '../../index'\n\nexport const useBnpOffers = (props: {\n sku: string\n preferredInstallmentCentAmount?: number\n downPaymentCentAmount?: number\n}) => {\n const configLocale: string = useConfigState()?.price?.locale\n const response = useBnpOffersQuery(props)\n\n return useMemo(\n () => ({\n ...response,\n data: response?.data?.[0]?.offers\n ?.map((offer) => {\n const _totalRepaymentAmount = decodePrice(offer.totalRepaymentAmount)\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 [response?.data?.[0]?.offers]\n )\n}\n"],"file":"useBnpOffers.js"}
@@ -1,2 +1,3 @@
1
1
  export * from './api';
2
+ export * from './hooks';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/product/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAd","sourcesContent":["export * from './api'"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/product/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAd;AACA,cAAc,SAAd","sourcesContent":["export * from './api'\nexport * from './hooks'\n"],"file":"index.js"}
@@ -1,7 +1,7 @@
1
1
  export function emptyBasketGuard(context, order) {
2
- var _order$lineItems;
2
+ var _order$lineItems, _order$customLineItem;
3
3
 
4
- if (!(order != null && (_order$lineItems = order.lineItems) != null && _order$lineItems.length) && !context.res.headersSent) {
4
+ if (!Boolean((order == null ? void 0 : (_order$lineItems = order.lineItems) == null ? void 0 : _order$lineItems.length) || (order == null ? void 0 : (_order$customLineItem = order.customLineItems) == null ? void 0 : _order$customLineItem.length)) && !context.res.headersSent) {
5
5
  return true;
6
6
  }
7
7
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/ssr/emptyBasketGuard.ts"],"names":["emptyBasketGuard","context","order","lineItems","length","res","headersSent"],"mappings":"AAGA,OAAO,SAASA,gBAAT,CACLC,OADK,EAELC,KAFK,EAGL;AAAA;;AACA,MAAI,EAACA,KAAD,gCAACA,KAAK,CAAEC,SAAR,aAAC,iBAAkBC,MAAnB,KAA6B,CAACH,OAAO,CAACI,GAAR,CAAYC,WAA9C,EAA2D;AACzD,WAAO,IAAP;AACD;;AAED,SAAO,KAAP;AACD","sourcesContent":["import { OrderDTO } from '@sentecacommerce/sdk'\nimport { GetServerSidePropsContext } from 'next'\n\nexport function emptyBasketGuard(\n context: GetServerSidePropsContext,\n order: OrderDTO | null\n) {\n if (!order?.lineItems?.length && !context.res.headersSent) {\n return true\n }\n\n return false\n}\n"],"file":"emptyBasketGuard.js"}
1
+ {"version":3,"sources":["../../../src/ssr/emptyBasketGuard.ts"],"names":["emptyBasketGuard","context","order","Boolean","lineItems","length","customLineItems","res","headersSent"],"mappings":"AAGA,OAAO,SAASA,gBAAT,CACLC,OADK,EAELC,KAFK,EAGL;AAAA;;AACA,MACE,CAACC,OAAO,CAAC,CAAAD,KAAK,QAAL,gCAAAA,KAAK,CAAEE,SAAP,sCAAkBC,MAAlB,MAA4BH,KAA5B,6CAA4BA,KAAK,CAAEI,eAAnC,qBAA4B,sBAAwBD,MAApD,CAAD,CAAR,IACA,CAACJ,OAAO,CAACM,GAAR,CAAYC,WAFf,EAGE;AACA,WAAO,IAAP;AACD;;AAED,SAAO,KAAP;AACD","sourcesContent":["import { OrderDTO } from '@sentecacommerce/sdk'\nimport { GetServerSidePropsContext } from 'next'\n\nexport function emptyBasketGuard(\n context: GetServerSidePropsContext,\n order: OrderDTO | null\n) {\n if (\n !Boolean(order?.lineItems?.length || order?.customLineItems?.length) &&\n !context.res.headersSent\n ) {\n return true\n }\n\n return false\n}\n"],"file":"emptyBasketGuard.js"}
@@ -1,3 +1,5 @@
1
+ /// <reference types="react" />
1
2
  export declare enum CheckoutQueryKeysEnum {
2
3
  }
3
4
  export declare const getVerifyBoricaResponseKey: (order: string) => string;
5
+ export declare const getBnpLoanCalculatorKey: (preferredInstallmentCentAmount: number) => import("react").ReactText[];
@@ -1 +1,2 @@
1
1
  export * from './useVerifyBoricaResponseQuery';
2
+ export * from './useBnpCalculateForCartQuery';
@@ -0,0 +1,4 @@
1
+ export declare const useBnpCalculateForCartQuery: (props: {
2
+ preferredInstallmentCentAmount: number;
3
+ downPaymentCentAmount: number;
4
+ }) => import("react-query").QueryResult<import("@sentecacommerce/sdk").BNPLoanOfferDTO[], unknown>;
@@ -1 +1,2 @@
1
1
  export * from './useVerifyBoricaResponse';
2
+ export * from './useBnpCalculateForCart';