@sentecacommerce-theme/lib 0.12.66 → 0.12.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/cjs/analytics/Releva/api/query/useRelevaQuery.js +1 -0
  2. package/dist/cjs/analytics/Releva/api/query/useRelevaQuery.js.map +1 -1
  3. package/dist/cjs/checkout/api/keys.js +7 -1
  4. package/dist/cjs/checkout/api/keys.js.map +1 -1
  5. package/dist/cjs/checkout/api/queries/index.js +8 -0
  6. package/dist/cjs/checkout/api/queries/index.js.map +1 -1
  7. package/dist/cjs/checkout/api/queries/useBnpCalculateForCartQuery.js +40 -0
  8. package/dist/cjs/checkout/api/queries/useBnpCalculateForCartQuery.js.map +1 -0
  9. package/dist/cjs/checkout/hooks/index.js +8 -0
  10. package/dist/cjs/checkout/hooks/index.js.map +1 -1
  11. package/dist/cjs/checkout/hooks/useBnpCalculateForCart.js +83 -0
  12. package/dist/cjs/checkout/hooks/useBnpCalculateForCart.js.map +1 -0
  13. package/dist/cjs/contexts/CheckoutForm/hooks/useBilling/index.js.map +1 -1
  14. package/dist/cjs/contexts/CheckoutForm/hooks/usePayment/index.js +8 -2
  15. package/dist/cjs/contexts/CheckoutForm/hooks/usePayment/index.js.map +1 -1
  16. package/dist/cjs/contexts/CheckoutForm/hooks/useShipping/index.js.map +1 -1
  17. package/dist/cjs/contexts/CheckoutForm/index.js +1 -0
  18. package/dist/cjs/contexts/CheckoutForm/index.js.map +1 -1
  19. package/dist/cjs/hooks/useLineItem/index.js +4 -0
  20. package/dist/cjs/hooks/useLineItem/index.js.map +1 -1
  21. package/dist/cjs/hooks/user-hooks/useSubscribeToNewsletter/index.js +12 -4
  22. package/dist/cjs/hooks/user-hooks/useSubscribeToNewsletter/index.js.map +1 -1
  23. package/dist/cjs/order/api/index.js +8 -0
  24. package/dist/cjs/order/api/index.js.map +1 -1
  25. package/dist/cjs/order/api/utils/getOrderById.js +8 -0
  26. package/dist/cjs/order/api/utils/getOrderById.js.map +1 -0
  27. package/dist/cjs/order/api/utils/index.js +12 -0
  28. package/dist/cjs/order/api/utils/index.js.map +1 -0
  29. package/dist/cjs/product/api/keys.js +11 -0
  30. package/dist/cjs/product/api/keys.js.map +1 -0
  31. package/dist/cjs/product/api/queries/index.js +12 -0
  32. package/dist/cjs/product/api/queries/index.js.map +1 -0
  33. package/dist/cjs/product/api/queries/useBnpOffersQuery.js +48 -0
  34. package/dist/cjs/product/api/queries/useBnpOffersQuery.js.map +1 -0
  35. package/dist/cjs/product/hooks/index.js +12 -0
  36. package/dist/cjs/product/hooks/index.js.map +1 -0
  37. package/dist/cjs/product/hooks/useBnpOffers.js +72 -0
  38. package/dist/cjs/product/hooks/useBnpOffers.js.map +1 -0
  39. package/dist/cjs/product/index.js +8 -0
  40. package/dist/cjs/product/index.js.map +1 -1
  41. package/dist/cjs/ssr/emptyBasketGuard.js +2 -2
  42. package/dist/cjs/ssr/emptyBasketGuard.js.map +1 -1
  43. package/dist/esm/analytics/Releva/api/query/useRelevaQuery.js +1 -0
  44. package/dist/esm/analytics/Releva/api/query/useRelevaQuery.js.map +1 -1
  45. package/dist/esm/checkout/api/keys.js +3 -0
  46. package/dist/esm/checkout/api/keys.js.map +1 -1
  47. package/dist/esm/checkout/api/queries/index.js +1 -0
  48. package/dist/esm/checkout/api/queries/index.js.map +1 -1
  49. package/dist/esm/checkout/api/queries/useBnpCalculateForCartQuery.js +10 -0
  50. package/dist/esm/checkout/api/queries/useBnpCalculateForCartQuery.js.map +1 -0
  51. package/dist/esm/checkout/hooks/index.js +1 -0
  52. package/dist/esm/checkout/hooks/index.js.map +1 -1
  53. package/dist/esm/checkout/hooks/useBnpCalculateForCart.js +66 -0
  54. package/dist/esm/checkout/hooks/useBnpCalculateForCart.js.map +1 -0
  55. package/dist/esm/contexts/CheckoutForm/hooks/useBilling/index.js.map +1 -1
  56. package/dist/esm/contexts/CheckoutForm/hooks/usePayment/index.js +5 -2
  57. package/dist/esm/contexts/CheckoutForm/hooks/usePayment/index.js.map +1 -1
  58. package/dist/esm/contexts/CheckoutForm/hooks/useShipping/index.js.map +1 -1
  59. package/dist/esm/contexts/CheckoutForm/index.js +1 -0
  60. package/dist/esm/contexts/CheckoutForm/index.js.map +1 -1
  61. package/dist/esm/hooks/useLineItem/index.js +2 -0
  62. package/dist/esm/hooks/useLineItem/index.js.map +1 -1
  63. package/dist/esm/hooks/user-hooks/useSubscribeToNewsletter/index.js +9 -4
  64. package/dist/esm/hooks/user-hooks/useSubscribeToNewsletter/index.js.map +1 -1
  65. package/dist/esm/order/api/index.js +1 -0
  66. package/dist/esm/order/api/index.js.map +1 -1
  67. package/dist/esm/order/api/utils/getOrderById.js +3 -0
  68. package/dist/esm/order/api/utils/getOrderById.js.map +1 -0
  69. package/dist/esm/order/api/utils/index.js +2 -0
  70. package/dist/esm/order/api/utils/index.js.map +1 -0
  71. package/dist/esm/product/api/keys.js +4 -0
  72. package/dist/esm/product/api/keys.js.map +1 -0
  73. package/dist/esm/product/api/queries/index.js +2 -0
  74. package/dist/esm/product/api/queries/index.js.map +1 -0
  75. package/dist/esm/product/api/queries/useBnpOffersQuery.js +18 -0
  76. package/dist/esm/product/api/queries/useBnpOffersQuery.js.map +1 -0
  77. package/dist/esm/product/hooks/index.js +2 -0
  78. package/dist/esm/product/hooks/index.js.map +1 -0
  79. package/dist/esm/product/hooks/useBnpOffers.js +57 -0
  80. package/dist/esm/product/hooks/useBnpOffers.js.map +1 -0
  81. package/dist/esm/product/index.js +1 -0
  82. package/dist/esm/product/index.js.map +1 -1
  83. package/dist/esm/ssr/emptyBasketGuard.js +2 -2
  84. package/dist/esm/ssr/emptyBasketGuard.js.map +1 -1
  85. package/dist/types/checkout/api/keys.d.ts +2 -0
  86. package/dist/types/checkout/api/queries/index.d.ts +1 -0
  87. package/dist/types/checkout/api/queries/useBnpCalculateForCartQuery.d.ts +4 -0
  88. package/dist/types/checkout/hooks/index.d.ts +1 -0
  89. package/dist/types/checkout/hooks/useBnpCalculateForCart.d.ts +50 -0
  90. package/dist/types/contexts/CheckoutForm/hooks/useBilling/index.d.ts +1 -1
  91. package/dist/types/contexts/CheckoutForm/hooks/usePayment/index.d.ts +2 -0
  92. package/dist/types/contexts/CheckoutForm/hooks/useShipping/index.d.ts +1 -1
  93. package/dist/types/contexts/CheckoutForm/index.d.ts +3 -2
  94. package/dist/types/hooks/useLineItem/index.d.ts +2 -2
  95. package/dist/types/order/api/index.d.ts +1 -0
  96. package/dist/types/order/api/utils/getOrderById.d.ts +2 -0
  97. package/dist/types/order/api/utils/index.d.ts +1 -0
  98. package/dist/types/product/api/keys.d.ts +1 -0
  99. package/dist/types/product/api/queries/index.d.ts +1 -0
  100. package/dist/types/product/api/queries/useBnpOffersQuery.d.ts +5 -0
  101. package/dist/types/product/hooks/index.d.ts +1 -0
  102. package/dist/types/product/hooks/useBnpOffers.d.ts +37 -0
  103. package/dist/types/product/index.d.ts +1 -0
  104. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/contexts/CheckoutForm/hooks/useBilling/index.ts"],"names":["useCallback","useEffect","useMemo","useState","useCheckoutBillingAddress","companiesApi","updateObjProp","useSavedBillingList","usePersistOnBeforeUnload","IS_NEW","useBilling","orderQuery","errorLabels","withSavedBillingAddressList","enableSaveBillingAddress","withPersistBeforePageLeave","countryCode","validateBillingAddress","enabled","requiredFields","requiredFieldsOnShipping","emptyBillingAddress","_id","streetName","company","undefined","isDefaultBillingAddress","createdAt","updatedAt","isBillingAddressSubmitting","setIsBillingAddressSubmitting","isWithBillingAddress","setIsWithBillingAddress","saveBillingAddress","useAdd","handleBillingAddressChange","currentBillingAddress","savedBillingAddress","billingAddress","setBillingAddress","isAddingNew","setIsAddingNew","billingAddressList","Boolean","selectedBillingAddress","billingAddressErrors","onInputChange","name","value","data","companyName","companyId","split","persistBillingAddress","Promise","resolve","reject","onSuccess","order","onError","handleSaveBillingAddress","custom","filter","field","Date","now","resetBillingAddress","updateIsWithBillingAddress","callback","initialValue","some","updateIsAddingNew","isSubmitting","errors","isValid","updateIsSubmitting","canSaveBillingAddress"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react'\nimport {\n CheckoutFormErrorLabelsType,\n CheckoutFormErrorsResultType,\n} from '../..'\nimport { useCheckoutBillingAddress } from '../../../../hooks/useCheckoutBillingAddress'\nimport { companiesApi } from '../../../../api/companiesApi'\nimport { AddressDTO, OrderDTO } from '@sentecacommerce/sdk'\n\nimport { updateObjProp } from '../../utils'\nimport { QueryResult } from 'react-query'\nimport {\n useSavedBillingList,\n SavedBillingAddress,\n} from '../useSavedBillingList'\nimport { usePersistOnBeforeUnload } from '../usePersistOnBeforeUnload'\n\nconst IS_NEW = 'isNew'\n\nexport const useBilling = ({\n orderQuery,\n errorLabels,\n withSavedBillingAddressList,\n enableSaveBillingAddress,\n withPersistBeforePageLeave,\n countryCode,\n validateBillingAddress,\n enabled,\n requiredFields,\n requiredFieldsOnShipping,\n}: UseBillingProps): UseBillingResultType => {\n const emptyBillingAddress = useMemo(() => {\n return {\n _id: '',\n streetName: '',\n company: undefined,\n isDefaultBillingAddress: false,\n createdAt: 0,\n updatedAt: 0,\n countryCode,\n }\n }, [countryCode])\n\n const [isBillingAddressSubmitting, setIsBillingAddressSubmitting] = useState(\n false\n )\n\n const [isWithBillingAddress, setIsWithBillingAddress] = useState<\n null | boolean\n >(null)\n\n const [saveBillingAddress] = companiesApi.useAdd()\n\n const {\n handleBillingAddressChange,\n currentBillingAddress: savedBillingAddress,\n } = useCheckoutBillingAddress(orderQuery)\n\n const [billingAddress, setBillingAddress] = useState(savedBillingAddress)\n const [isAddingNew, setIsAddingNew] = useState<boolean | null>(null)\n\n const billingAddressList = useSavedBillingList({\n enabled: Boolean(\n enabled && isWithBillingAddress && withSavedBillingAddressList\n ),\n selectedBillingAddress: billingAddress,\n setBillingAddress,\n handleBillingAddressChange,\n })\n\n const billingAddressErrors = useMemo(() => {\n return (\n billingAddress &&\n validateBillingAddress(\n billingAddress,\n errorLabels,\n requiredFields,\n requiredFieldsOnShipping\n )\n )\n }, [billingAddress, errorLabels, validateBillingAddress])\n\n /**\n * On input change with nested fields support\n *\n * @param name example name: 'company.companyPerson'\n * @param value\n */\n const onInputChange = useCallback(\n async (name: string, value: any) => {\n const data = billingAddress && { ...billingAddress }\n\n // add an empty company when company is undefined\n if (data && !data?.company)\n data.company = { companyName: '', companyId: '' }\n\n if (data) updateObjProp(data, value, name.split('.'))\n\n setBillingAddress(data)\n },\n [billingAddress]\n )\n\n /**\n * Save current billing address state\n */\n const persistBillingAddress = useCallback(() => {\n if (!billingAddress || !isWithBillingAddress) return\n\n return new Promise((resolve, reject) => {\n handleBillingAddressChange(billingAddress, {\n onSuccess: (order: OrderDTO) => resolve(order),\n onError: () => reject(),\n })\n })\n }, [billingAddress])\n\n /**\n * Save the filled billing address\n */\n const handleSaveBillingAddress = useCallback(() => {\n if (!enableSaveBillingAddress) return\n\n setIsBillingAddressSubmitting(true)\n\n if (billingAddressErrors || !billingAddress) {\n return\n }\n\n const data = {\n ...billingAddress,\n custom: billingAddress?.custom?.filter(({ field }) => field !== IS_NEW),\n createdAt: Date.now(),\n updatedAt: Date.now(),\n }\n\n saveBillingAddress(data)\n handleBillingAddressChange(data)\n setIsAddingNew(false)\n }, [billingAddress, enableSaveBillingAddress, billingAddressErrors])\n\n /**\n * Clear billing address\n */\n const resetBillingAddress = useCallback(() => {\n handleBillingAddressChange(emptyBillingAddress)\n setBillingAddress(emptyBillingAddress)\n }, [emptyBillingAddress])\n\n const updateIsWithBillingAddress = useCallback(\n (value: boolean) => {\n if (!value) {\n setIsWithBillingAddress(false)\n\n resetBillingAddress()\n return\n }\n\n setIsWithBillingAddress(true)\n },\n [resetBillingAddress]\n )\n\n /**\n * Set initial data\n */\n useEffect(() => {\n if (billingAddress || typeof savedBillingAddress === 'undefined') return\n\n setBillingAddress(savedBillingAddress || emptyBillingAddress)\n }, [savedBillingAddress, billingAddress, emptyBillingAddress])\n\n /**\n * Set initial isWithBillingAddress\n */\n useEffect(() => {\n if (!billingAddress || isWithBillingAddress !== null) return\n\n setIsWithBillingAddress(Boolean(billingAddress.company))\n }, [billingAddress, isWithBillingAddress])\n\n // persist data before page exit\n usePersistOnBeforeUnload({\n enabled: withPersistBeforePageLeave,\n callback: persistBillingAddress,\n })\n\n /**\n * Set initial value\n */\n useEffect(() => {\n if (!billingAddress || isAddingNew !== null) return\n\n const initialValue =\n billingAddress?.custom?.some(\n ({ field, value }) => field === IS_NEW && value === 1\n ) || false\n\n setIsAddingNew(initialValue)\n }, [billingAddress, isAddingNew])\n\n const updateIsAddingNew = useCallback(\n (value: boolean) => {\n const data: AddressDTO = {\n _id: billingAddress?._id || '',\n createdAt: Date.now(),\n updatedAt: Date.now(),\n company: {\n companyName: '',\n companyId: '',\n },\n custom: [\n {\n field: IS_NEW,\n value: value ? 1 : 0,\n },\n ],\n }\n\n setBillingAddress(data)\n setIsAddingNew(value)\n },\n [billingAddress]\n )\n\n return useMemo(() => {\n return {\n isSubmitting: isBillingAddressSubmitting,\n errors: isBillingAddressSubmitting ? billingAddressErrors || null : null,\n data: billingAddress,\n isValid: !billingAddressErrors,\n updateIsSubmitting: setIsBillingAddressSubmitting,\n onInputChange,\n persistBillingAddress,\n billingAddressList,\n saveBillingAddress: handleSaveBillingAddress,\n isWithBillingAddress,\n updateIsWithBillingAddress,\n canSaveBillingAddress: enableSaveBillingAddress,\n isAddingNew: Boolean(isAddingNew),\n updateIsAddingNew,\n }\n }, [\n isBillingAddressSubmitting,\n isAddingNew,\n updateIsAddingNew,\n enableSaveBillingAddress,\n handleSaveBillingAddress,\n billingAddressList,\n persistBillingAddress,\n onInputChange,\n billingAddressErrors,\n billingAddress,\n isWithBillingAddress,\n updateIsWithBillingAddress,\n ])\n}\n\ntype UseBillingProps = {\n orderQuery: QueryResult<OrderDTO, unknown>\n errorLabels: CheckoutFormErrorLabelsType\n withSavedBillingAddressList: boolean\n enableSaveBillingAddress: boolean\n withPersistBeforePageLeave: boolean\n countryCode: string\n enabled: boolean\n requiredFields: string[]\n requiredFieldsOnShipping: string[]\n validateBillingAddress: (\n address: AddressDTO,\n errors: CheckoutFormErrorLabelsType,\n requiredCompanyFields: string[],\n requiredFields: string[]\n ) => CheckoutFormErrorsResultType\n}\n\nexport type UseBillingResultType = {\n isSubmitting: boolean\n errors?: CheckoutFormErrorsResultType\n isValid: boolean\n data?: AddressDTO\n updateIsSubmitting: (value: boolean) => void\n onInputChange?: (name: string, value: any) => void\n persistBillingAddress: () => void\n saveBillingAddress: () => void\n\n billingAddressList?: SavedBillingAddress[]\n\n canSaveBillingAddress: boolean\n\n isWithBillingAddress: null | boolean\n updateIsWithBillingAddress: (data: boolean) => void\n\n isAddingNew: boolean\n updateIsAddingNew: (value: boolean) => void\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../../../src/contexts/CheckoutForm/hooks/useBilling/index.ts"],"names":["useCallback","useEffect","useMemo","useState","useCheckoutBillingAddress","companiesApi","updateObjProp","useSavedBillingList","usePersistOnBeforeUnload","IS_NEW","useBilling","orderQuery","errorLabels","withSavedBillingAddressList","enableSaveBillingAddress","withPersistBeforePageLeave","countryCode","validateBillingAddress","enabled","requiredFields","requiredFieldsOnShipping","emptyBillingAddress","_id","streetName","company","undefined","isDefaultBillingAddress","createdAt","updatedAt","isBillingAddressSubmitting","setIsBillingAddressSubmitting","isWithBillingAddress","setIsWithBillingAddress","saveBillingAddress","useAdd","handleBillingAddressChange","currentBillingAddress","savedBillingAddress","billingAddress","setBillingAddress","isAddingNew","setIsAddingNew","billingAddressList","Boolean","selectedBillingAddress","billingAddressErrors","onInputChange","name","value","data","companyName","companyId","split","persistBillingAddress","Promise","resolve","reject","onSuccess","order","onError","handleSaveBillingAddress","custom","filter","field","Date","now","resetBillingAddress","updateIsWithBillingAddress","callback","initialValue","some","updateIsAddingNew","isSubmitting","errors","isValid","updateIsSubmitting","canSaveBillingAddress"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react'\nimport {\n CheckoutFormErrorLabelsType,\n CheckoutFormErrorsResultType,\n} from '../..'\nimport { useCheckoutBillingAddress } from '../../../../hooks/useCheckoutBillingAddress'\nimport { companiesApi } from '../../../../api/companiesApi'\nimport { AddressDTO, OrderDTO } from '@sentecacommerce/sdk'\n\nimport { updateObjProp } from '../../utils'\nimport { QueryResult } from 'react-query'\nimport {\n useSavedBillingList,\n SavedBillingAddress,\n} from '../useSavedBillingList'\nimport { usePersistOnBeforeUnload } from '../usePersistOnBeforeUnload'\n\nconst IS_NEW = 'isNew'\n\nexport const useBilling = ({\n orderQuery,\n errorLabels,\n withSavedBillingAddressList,\n enableSaveBillingAddress,\n withPersistBeforePageLeave,\n countryCode,\n validateBillingAddress,\n enabled,\n requiredFields,\n requiredFieldsOnShipping,\n}: UseBillingProps): UseBillingResultType => {\n const emptyBillingAddress = useMemo(() => {\n return {\n _id: '',\n streetName: '',\n company: undefined,\n isDefaultBillingAddress: false,\n createdAt: 0,\n updatedAt: 0,\n countryCode,\n }\n }, [countryCode])\n\n const [isBillingAddressSubmitting, setIsBillingAddressSubmitting] = useState(\n false\n )\n\n const [isWithBillingAddress, setIsWithBillingAddress] = useState<\n null | boolean\n >(null)\n\n const [saveBillingAddress] = companiesApi.useAdd()\n\n const {\n handleBillingAddressChange,\n currentBillingAddress: savedBillingAddress,\n } = useCheckoutBillingAddress(orderQuery)\n\n const [billingAddress, setBillingAddress] = useState(savedBillingAddress)\n const [isAddingNew, setIsAddingNew] = useState<boolean | null>(null)\n\n const billingAddressList = useSavedBillingList({\n enabled: Boolean(\n enabled && isWithBillingAddress && withSavedBillingAddressList\n ),\n selectedBillingAddress: billingAddress,\n setBillingAddress,\n handleBillingAddressChange,\n })\n\n const billingAddressErrors = useMemo(() => {\n return (\n billingAddress &&\n validateBillingAddress(\n billingAddress,\n errorLabels,\n requiredFields,\n requiredFieldsOnShipping\n )\n )\n }, [billingAddress, errorLabels, validateBillingAddress])\n\n /**\n * On input change with nested fields support\n *\n * @param name example name: 'company.companyPerson'\n * @param value\n */\n const onInputChange = useCallback(\n async (name: string, value: any) => {\n const data = billingAddress && { ...billingAddress }\n\n // add an empty company when company is undefined\n if (data && !data?.company)\n data.company = { companyName: '', companyId: '' }\n\n if (data) updateObjProp(data, value, name.split('.'))\n\n setBillingAddress(data)\n },\n [billingAddress]\n )\n\n /**\n * Save current billing address state\n */\n const persistBillingAddress = useCallback(() => {\n if (!billingAddress || !isWithBillingAddress) return\n\n return new Promise((resolve, reject) => {\n handleBillingAddressChange(billingAddress, {\n onSuccess: (order: OrderDTO) => resolve(order),\n onError: () => reject(),\n })\n })\n }, [billingAddress])\n\n /**\n * Save the filled billing address\n */\n const handleSaveBillingAddress = useCallback(() => {\n if (!enableSaveBillingAddress) return\n\n setIsBillingAddressSubmitting(true)\n\n if (billingAddressErrors || !billingAddress) {\n return\n }\n\n const data = {\n ...billingAddress,\n custom: billingAddress?.custom?.filter(({ field }) => field !== IS_NEW),\n createdAt: Date.now(),\n updatedAt: Date.now(),\n }\n\n saveBillingAddress(data)\n handleBillingAddressChange(data)\n setIsAddingNew(false)\n }, [billingAddress, enableSaveBillingAddress, billingAddressErrors])\n\n /**\n * Clear billing address\n */\n const resetBillingAddress = useCallback(() => {\n handleBillingAddressChange(emptyBillingAddress)\n setBillingAddress(emptyBillingAddress)\n }, [emptyBillingAddress])\n\n const updateIsWithBillingAddress = useCallback(\n (value: boolean) => {\n if (!value) {\n setIsWithBillingAddress(false)\n\n resetBillingAddress()\n return\n }\n\n setIsWithBillingAddress(true)\n },\n [resetBillingAddress]\n )\n\n /**\n * Set initial data\n */\n useEffect(() => {\n if (billingAddress || typeof savedBillingAddress === 'undefined') return\n\n setBillingAddress(savedBillingAddress || emptyBillingAddress)\n }, [savedBillingAddress, billingAddress, emptyBillingAddress])\n\n /**\n * Set initial isWithBillingAddress\n */\n useEffect(() => {\n if (!billingAddress || isWithBillingAddress !== null) return\n\n setIsWithBillingAddress(Boolean(billingAddress.company))\n }, [billingAddress, isWithBillingAddress])\n\n // persist data before page exit\n usePersistOnBeforeUnload({\n enabled: withPersistBeforePageLeave,\n callback: persistBillingAddress,\n })\n\n /**\n * Set initial value\n */\n useEffect(() => {\n if (!billingAddress || isAddingNew !== null) return\n\n const initialValue =\n billingAddress?.custom?.some(\n ({ field, value }) => field === IS_NEW && value === 1\n ) || false\n\n setIsAddingNew(initialValue)\n }, [billingAddress, isAddingNew])\n\n const updateIsAddingNew = useCallback(\n (value: boolean) => {\n const data: AddressDTO = {\n _id: billingAddress?._id || '',\n createdAt: Date.now(),\n updatedAt: Date.now(),\n company: {\n companyName: '',\n companyId: '',\n },\n custom: [\n {\n field: IS_NEW,\n value: value ? 1 : 0,\n },\n ],\n }\n\n setBillingAddress(data)\n setIsAddingNew(value)\n },\n [billingAddress]\n )\n\n return useMemo(() => {\n return {\n isSubmitting: isBillingAddressSubmitting,\n errors: isBillingAddressSubmitting ? billingAddressErrors || null : null,\n data: billingAddress,\n isValid: !billingAddressErrors,\n updateIsSubmitting: setIsBillingAddressSubmitting,\n onInputChange,\n persistBillingAddress,\n billingAddressList,\n saveBillingAddress: handleSaveBillingAddress,\n isWithBillingAddress,\n updateIsWithBillingAddress,\n canSaveBillingAddress: enableSaveBillingAddress,\n isAddingNew: Boolean(isAddingNew),\n updateIsAddingNew,\n }\n }, [\n isBillingAddressSubmitting,\n isAddingNew,\n updateIsAddingNew,\n enableSaveBillingAddress,\n handleSaveBillingAddress,\n billingAddressList,\n persistBillingAddress,\n onInputChange,\n billingAddressErrors,\n billingAddress,\n isWithBillingAddress,\n updateIsWithBillingAddress,\n ])\n}\n\ntype UseBillingProps = {\n orderQuery: QueryResult<OrderDTO, unknown>\n errorLabels: CheckoutFormErrorLabelsType\n withSavedBillingAddressList: boolean\n enableSaveBillingAddress: boolean\n withPersistBeforePageLeave: boolean\n countryCode?: string\n enabled: boolean\n requiredFields: string[]\n requiredFieldsOnShipping: string[]\n validateBillingAddress: (\n address: AddressDTO,\n errors: CheckoutFormErrorLabelsType,\n requiredCompanyFields: string[],\n requiredFields: string[]\n ) => CheckoutFormErrorsResultType\n}\n\nexport type UseBillingResultType = {\n isSubmitting: boolean\n errors?: CheckoutFormErrorsResultType\n isValid: boolean\n data?: AddressDTO\n updateIsSubmitting: (value: boolean) => void\n onInputChange?: (name: string, value: any) => void\n persistBillingAddress: () => void\n saveBillingAddress: () => void\n\n billingAddressList?: SavedBillingAddress[]\n\n canSaveBillingAddress: boolean\n\n isWithBillingAddress: null | boolean\n updateIsWithBillingAddress: (data: boolean) => void\n\n isAddingNew: boolean\n updateIsAddingNew: (value: boolean) => void\n}\n"],"file":"index.js"}
@@ -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":";;AAAA,SAASA,WAAT,EAAsBC,OAAtB,EAA+BC,QAA/B,QAA+C,OAA/C;AAQA,SAASC,YAAT,QAA6B,8BAA7B;AACA,SAASC,yBAAT,QAA0C,6CAA1C;AACA,SAASC,0BAAT,QAA2C,8CAA3C;AAEA,SACEC,gBADF,EAEEC,aAFF,QAIO,aAJP;AAKA,SAASC,wBAAT,QAAyC,6BAAzC;AACA,SAASC,oBAAT,QAAqC,yBAArC;AACA,SAASC,sBAAT,QAAuC,2BAAvC;AAEA,IAAMC,MAAM,GAAG,OAAf;AACA,IAAMC,mBAAmB,GAAG,mBAA5B;AAEA,OAAO,IAAMC,WAAW,GAAG,UAaoB;AAAA;;AAAA,MAbnB;AAC1BC,IAAAA,0BAD0B;AAE1BC,IAAAA,UAF0B;AAG1BC,IAAAA,WAH0B;AAI1BC,IAAAA,sBAJ0B;AAK1BC,IAAAA,WAL0B;AAM1BC,IAAAA,iBAN0B;AAO1BC,IAAAA,4BAP0B;AAQ1BC,IAAAA,SAR0B;AAS1BC,IAAAA,OAT0B;AAU1BC,IAAAA,WAV0B;AAW1BC,IAAAA,cAX0B;AAY1BC,IAAAA;AAZ0B,GAamB;AAC7C,MAAM,CAACC,oBAAD,EAAuBC,uBAAvB,IAAkDzB,QAAQ,CAAC,KAAD,CAAhE;AAEA,MAAM,CAAC0B,WAAD,IAAgBzB,YAAY,CAAC0B,MAAb,CAAoB,EAApB,CAAtB;AAEA,MAAM;AACJC,IAAAA,2BADI;AAEJC,IAAAA,sBAAsB,EAAEC;AAFpB,MAGF3B,0BAA0B,CAACU,UAAD,CAH9B;AAKA,MAAM,CAACkB,eAAD,EAAkBC,kBAAlB,IAAwChC,QAAQ,EAAtD;AAIA,MAAMiC,GAAG,GAAG/B,yBAAyB,CAACW,UAAD,EAAa,CAACU,0BAAd,CAArC;AAEA,MAAM;AAAEW,IAAAA,gBAAF;AAAoBC,IAAAA;AAApB,MAAiD5B,oBAAoB,CAAC;AAC1E6B,IAAAA,gBAAgB,EAAEb,0BADwD;AAE1EH,IAAAA,OAAO,EAAEA,OAAO,IAAIL,sBAFsD;AAG1EsB,IAAAA,uBAAuB,EAAEN,eAHiD;AAI1EC,IAAAA,kBAJ0E;AAK1EJ,IAAAA;AAL0E,GAAD,CAA3E;AAOA,MAAMU,yBAAiD,GAAGvC,OAAO,CAAC,MAAM;AAAA;;AACtE,QAAI,CAACgC,eAAL,EAAsB;AACtB,QAAMQ,aAAa,GAAGN,GAAH,uCAAGA,GAAG,CAAEO,UAAR,qBAAG,gBAAiBC,OAAvC;;AAEA,QAAIC,MAAM,gBACLX,eADK;AAERY,MAAAA,IAAI,EAAE,CAAAJ,aAAa,QAAb,mCAAAA,aAAa,CAAEI,IAAf,yCAAqBC,IAArB,KAA6Bb,eAAe,CAACY,IAF3C;AAGRE,MAAAA,OAAO,EAAE,CAAAN,aAAa,QAAb,qCAAAA,aAAa,CAAEM,OAAf,2CAAwBD,IAAxB,KAAgCb,eAAe,CAACc,OAHjD;AAIRC,MAAAA,UAAU,EAAE,CAAAP,aAAa,QAAb,qCAAAA,aAAa,CAAEQ,MAAf,2CAAuBH,IAAvB,KAA+Bb,eAAe,CAACe,UAJnD;AAKRE,MAAAA,UAAU,EACR,0BAACT,aAAD,4CAACA,aAAa,CAAEI,IAAhB,qBAAC,qBAAqBM,QAAtB,oCAAkC,EAAlC,KAAyClB,eAAe,CAACiB;AANnD,MAAV;;AASA,QAAI,CAACzB,0BAAL,EAAiC;AAC/BmB,MAAAA,MAAM,gBACDA,MADC;AAEJF,QAAAA,UAAU,EAAE,CACV;AACEU,UAAAA,SAAS,EAAEjB,GAAF,oBAAEA,GAAG,CAAEiB,SADlB;AAEEV,UAAAA,UAAU,eACLP,GADK,oBACLA,GAAG,CAAEO,UADA;AAFZ,SADU;AAFR,QAAN;AAWD;;AAED,WAAOE,MAAP;AACD,GA5BgE,EA4B9D,CAACX,eAAD,EAAkBE,GAAlB,CA5B8D,CAAjE;AA8BA,MAAMkB,aAAa,GAAGpD,OAAO,CAC3B,MACEK,gBAAgB,CACdkC,yBADc,EAEdL,GAFc,EAGdjB,WAHc,EAIdF,WAJc,EAKdQ,cALc,EAMdC,0BANc,CAFS,EAU3B,CAACe,yBAAD,EAA4BL,GAA5B,EAAiCjB,WAAjC,EAA8CF,WAA9C,CAV2B,CAA7B;AAaA;AACF;AACA;;AACE,MAAMsC,yBAAyB,GAAGtD,WAAW,CAAC,MAAM;AAAA;;AAClD,QAAI,CAACmB,iBAAL,EAAwB;AAExBQ,IAAAA,uBAAuB,CAAC,IAAD,CAAvB;AACA,QAAI0B,aAAJ,EAAmB;AAEnBzB,IAAAA,WAAW,cAEJY,yBAFI;AAGPe,MAAAA,GAAG,EAAEC,SAHE;AAIPjC,MAAAA,WAJO;AAKPkC,MAAAA,MAAM,EAAEjB,yBAAF,6CAAEA,yBAAyB,CAAEiB,MAA7B,qBAAE,sBAAmCC,MAAnC,CACN;AAAA,YAAC;AAAEC,UAAAA;AAAF,SAAD;AAAA,eAAeA,KAAK,KAAKhD,MAAV,IAAoBgD,KAAK,KAAK/C,mBAA7C;AAAA,OADM;AALD,QAST;AACEgD,MAAAA,SAAS,EAAGjB,OAAD,IAAa;AACtB,YAAMkB,IAAI,gBACLlB,OADK;AAERmB,UAAAA,SAAS,EAAEC,IAAI,CAACC,GAAL,EAFH;AAGRC,UAAAA,SAAS,EAAEF,IAAI,CAACC,GAAL,EAHH;AAIRP,UAAAA,MAAM,EAAE,CACN,IAAI,CAAAd,OAAO,QAAP,YAAAA,OAAO,CAAEc,MAAT,KAAmB,EAAvB,CADM,EAEN;AACEE,YAAAA,KAAK,EAAE/C,mBADT;AAEEsD,YAAAA,KAAK,EAAEvB,OAAO,CAACY;AAFjB,WAFM;AAJA,UAAV;;AAaArB,QAAAA,kBAAkB,CAAC2B,IAAD,CAAlB;AACA/B,QAAAA,2BAA2B,CAAC+B,IAAD,CAA3B;AACD;AAjBH,KATS,CAAX;AA6BD,GAnC4C,EAmC1C,CAACR,aAAD,EAAgBlC,iBAAhB,EAAmCqB,yBAAnC,CAnC0C,CAA7C;AAqCA;AACF;AACA;AACA;AACA;AACA;;AACE,MAAM2B,aAAa,GAAGnE,WAAW;AAAA,kCAC/B,WAAO8C,IAAP,EAAqBoB,KAArB,EAAoC;AAClC,UAAI,CAACjC,eAAL,EAAsB;;AAEtB,UAAM4B,IAAI,gBAAQ5B,eAAR,CAAV;;AAEA1B,MAAAA,aAAa,CAACsD,IAAD,EAAOK,KAAP,EAAcpB,IAAI,CAACsB,KAAL,CAAW,GAAX,CAAd,CAAb;AAEAlC,MAAAA,kBAAkB,CAAC2B,IAAD,CAAlB;AACD,KAT8B;;AAAA;AAAA;AAAA;AAAA,OAU/B,CAAC5B,eAAD,CAV+B,CAAjC;AAaA,MAAMoC,mBAAmB,GAAGrE,WAAW;AAAA,kCACrC,kBAK2B;AAAA,UALpB;AACLsE,QAAAA,QADK;AAELC,QAAAA,SAFK;AAGLC,QAAAA,OAHK;AAILC,QAAAA;AAJK,OAKoB;AACzB,UAAI,CAACjC,yBAAL,EAAgC;;AAEhC,UAAMqB,IAAI,gBACLrB,yBADK;AAERkC,QAAAA,uBAAuB,EAAE;AACvBJ,UAAAA,QADuB;AAEvBC,UAAAA;AAFuB,SAFjB;AAMRd,QAAAA,MAAM,EAAE,CACN,IAAI,CAAAxB,eAAe,QAAf,YAAAA,eAAe,CAAEwB,MAAjB,KAA2B,EAA/B,CADM,EAEN;AAAEE,UAAAA,KAAK,EAAE,SAAT;AAAoBO,UAAAA,KAAK,EAAEM;AAA3B,SAFM,EAGN;AAAEb,UAAAA,KAAK,EAAE,WAAT;AAAsBO,UAAAA,KAAK,EAAEO;AAA7B,SAHM;AANA,QAAV;;AAaAvC,MAAAA,kBAAkB,CAAC2B,IAAD,CAAlB;AACA,mBAAa/B,2BAA2B,CAAC+B,IAAD,CAAxC;AACD,KAxBoC;;AAAA;AAAA;AAAA;AAAA,OAyBrC,CAAC5B,eAAD,EAAkBH,2BAAlB,CAzBqC,CAAvC;AA4BA,MAAM6C,oBAAoB,GAAG3E,WAAW,iCAAC,aAAY;AACnDkC,IAAAA,kBAAkB,CAACsB,SAAD,CAAlB;AACA,UAAM1B,2BAA2B,EAAjC;AACD,GAHuC,GAGrC,EAHqC,CAAxC;AAKA,MAAM8C,sBAAsB,GAAG5E,WAAW,CAAC,MAAM;AAC/C,QAAI,CAACwC,yBAAL,EAAgC;AAEhC,WAAO,IAAIqC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtCjD,MAAAA,2BAA2B,CAACU,yBAAD,EAA4B;AACrDoB,QAAAA,SAAS,EAAGoB,KAAD,IAAqBF,OAAO,CAACE,KAAD,CADc;AAErDC,QAAAA,OAAO,EAAE,MAAMF,MAAM;AAFgC,OAA5B,CAA3B;AAID,KALM,CAAP;AAMD,GATyC,EASvC,CAACvC,yBAAD,CATuC,CAA1C;AAWA;AACF;AACA;;AACE9B,EAAAA,sBAAsB,CAAC;AACrBsB,IAAAA,oBADqB;AAErBC,IAAAA,eAFqB;AAGrBC,IAAAA,kBAHqB;AAIrBd,IAAAA,4BAJqB;AAKrBC,IAAAA;AALqB,GAAD,CAAtB,CA5K6C,CAoL7C;;AACAb,EAAAA,wBAAwB,CAAC;AACvBc,IAAAA,OAAO,EAAER,0BADc;AAEvBoE,IAAAA,QAAQ,EAAEN;AAFa,GAAD,CAAxB;AAKA,MAAMO,WAAW,GAAGC,OAAO,CACzB5C,yBADyB,8CACzBA,yBAAyB,CAAEiB,MADF,qBACzB,uBAAmC4B,IAAnC,CACE;AAAA,QAAC;AAAE1B,MAAAA,KAAF;AAASO,MAAAA;AAAT,KAAD;AAAA,WAAsBP,KAAK,KAAKhD,MAAV,IAAoBuD,KAAK,KAAK,CAApD;AAAA,GADF,CADyB,CAA3B;AAMA,MAAMoB,iBAAiB,GAAGtF,WAAW,CAClCkE,KAAD,IAAoB;AAClB,QAAIiB,WAAW,KAAKjB,KAApB,EAA2B;AAE3B,QAAIqB,YAAY,GAAG,EAAnB;;AAEA,QAAIrB,KAAK,IAAI9C,4BAAb,EAA2C;AAAA;;AACzCmE,MAAAA,YAAY,GAAG;AACbC,QAAAA,SAAS,EAAEnE,SAAF,uCAAEA,SAAS,CAAEwC,IAAb,qBAAE,gBAAiB2B,SADf;AAEbC,QAAAA,QAAQ,EAAEpE,SAAF,wCAAEA,SAAS,CAAEwC,IAAb,qBAAE,iBAAiB4B,QAFd;AAGbC,QAAAA,KAAK,EAAErE,SAAF,wCAAEA,SAAS,CAAEwC,IAAb,qBAAE,iBAAiB6B,KAHX;AAIbC,QAAAA,WAAW,EAAEtE,SAAF,wCAAEA,SAAS,CAAEwC,IAAb,qBAAE,iBAAiB8B;AAJjB,OAAf;AAMD;;AAED,QAAM9B,IAAgB;AACpBN,MAAAA,GAAG,EAAEf,yBAAF,oBAAEA,yBAAyB,CAAEe,GADZ;AAEpBO,MAAAA,SAAS,EAAEC,IAAI,CAACC,GAAL,EAFS;AAGpBC,MAAAA,SAAS,EAAEF,IAAI,CAACC,GAAL;AAHS,OAIjBuB,YAJiB;AAKpB9B,MAAAA,MAAM,EAAE,CACN;AACEE,QAAAA,KAAK,EAAEhD,MADT;AAEEuD,QAAAA,KAAK,EAAEA,KAAK,GAAG,CAAH,GAAO;AAFrB,OADM;AALY,MAAtB;;AAaAvC,IAAAA,uBAAuB,CAAC,KAAD,CAAvB;AACAG,IAAAA,2BAA2B,CAAC+B,IAAD,CAA3B;AACA3B,IAAAA,kBAAkB,CAAC2B,IAAD,CAAlB;AACD,GA/BkC,EAgCnC;AACA,GACEsB,WADF,EAEE3C,yBAFF,EAGEpB,4BAHF,EAIEC,SAJF,wCAIEA,SAAS,CAAEwC,IAJb,qBAIE,iBAAiB2B,SAJnB,EAKEnE,SALF,wCAKEA,SAAS,CAAEwC,IALb,qBAKE,iBAAiB4B,QALnB,EAMEpE,SANF,wCAMEA,SAAS,CAAEwC,IANb,qBAME,iBAAiB6B,KANnB,EAOErE,SAPF,wCAOEA,SAAS,CAAEwC,IAPb,qBAOE,iBAAiB8B,WAPnB,CAjCmC,CAArC;AA4CA,SAAO1F,OAAO,CAAC,MAAM;AACnB,WAAO;AACL2F,MAAAA,YAAY,EAAElE,oBADT;AAELmE,MAAAA,MAAM,EAAEnE,oBAAoB,GAAG2B,aAAH,GAAmB,IAF1C;AAGLyC,MAAAA,OAAO,EAAE,CAACzC,aAHL;AAIL0C,MAAAA,kBAAkB,EAAEpE,uBAJf;AAKLwC,MAAAA,aALK;AAMLS,MAAAA,sBANK;AAOLoB,MAAAA,yBAAyB,EAAE/E,sBAPtB;AAQLgF,MAAAA,mBAAmB,EAAE3C,yBARhB;AASLlB,MAAAA,gBATK;AAULyB,MAAAA,IAAI,EAAErB,yBAVD;AAWL2C,MAAAA,WAXK;AAYLG,MAAAA,iBAZK;AAaLY,MAAAA,cAAc,EAAE/E,iBAbX;AAcLkB,MAAAA,wBAdK;AAeLsC,MAAAA,oBAfK;AAgBLN,MAAAA;AAhBK,KAAP;AAkBD,GAnBa,EAmBX,CACD3C,oBADC,EAED2B,aAFC,EAGDc,aAHC,EAIDS,sBAJC,EAKD3D,sBALC,EAMDqC,yBANC,EAODd,yBAPC,EAQDJ,gBARC,EASD+C,WATC,EAUDG,iBAVC,EAWDnE,iBAXC,EAYDkB,wBAZC,EAaDsC,oBAbC,EAcDN,mBAdC,CAnBW,CAAd;AAmCD,CA5RM","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":"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","sourcesContent":["import React, {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from 'react'\nimport {\n BoricaGeneratePaymentDataResponse,\n OrderDTO,\n AddressDTO,\n PaypalGeneratePaymentUrlResponseDTO,\n OrderLoanInfoDTO,\n} from '@sentecacommerce/sdk'\nimport { MutateFunction, QueryResult } from 'react-query'\nimport { myCartApi } from '../../api/myCartApi'\nimport {\n useBilling,\n UseBillingResultType,\n usePayment,\n UsePaymentResultType,\n useShipping,\n UseShippingResultType,\n} from './hooks'\nimport { useIsAuthenticated } from '../../user/hooks'\nimport { useCheckoutSubmit } from '../../hooks/useCheckoutSubmit'\n\nimport {\n ShippingValidationsType,\n defaultShippingValidations,\n genericBillingAddressValidation,\n BillingAddressValidationType,\n} from './utils'\nimport { usersApi } from '../../api/usersApi'\nimport { useCheckoutShippingModule } from '../../hooks/useCheckoutShippingModule'\nimport { CheckoutFormCustomStateProvider, BoricaRedirect } from './Components'\nimport { useScrollTo } from '../../hooks/ui-hooks'\nimport { getElementOffset } from '../../utils/getElementOffset'\n\nexport const CheckoutFormContext = createContext<CheckoutFormContextType>(\n {} as any\n)\n\nexport type CheckoutCustomState = {}\n\nexport function CheckoutFormContextProvider({\n children,\n defaultStep,\n errorLabels,\n enableSavedAddressList,\n withPersistBeforePageLeave,\n shippingValidations = defaultShippingValidations,\n validateBillingAddress = genericBillingAddressValidation,\n enableSaveBillingAddress,\n enableSavedBillingAddressList,\n countryCode,\n enableSaveAddress,\n autofillShippingPersonalData,\n onSubmit,\n\n paymentEnabledOnStep,\n getPaymentMethodsWhenShippingMethodIsSelected,\n shippingEnabledOnStep,\n billingEnabledOnStep,\n\n customState: initialCustomState = {},\n redirectTimeout = 420,\n onBeforeRedirect,\n onSuccess,\n onError,\n isBoricaInDevMode,\n withPixelMeta = false,\n requiredFieldsOnShippingStep = [\n 'firstName',\n 'lastName',\n 'email',\n 'phoneNumber',\n ],\n requiredFieldsOnBillingAddressStep = [\n 'vatId',\n 'companyId',\n 'companyPerson',\n 'companyName',\n ],\n enableNoShippingMethodMode = false,\n disablePaymentRedirects = false,\n}: Props) {\n const orderQuery = myCartApi.useGet()\n const [\n boricaData,\n setBoricaData,\n ] = useState<BoricaGeneratePaymentDataResponse | null>(null)\n const [step, setStep] = useState<CheckoutFormStepsEnum>(defaultStep)\n const [isRedirecting, setIsRedirecting] = useState(false)\n\n const fieldsWithError: HTMLElement[] = []\n\n const [serverErrors, setServerErrors] = useState<ServerErrors>(null)\n\n const collectFieldsWithError = (error: HTMLElement) => {\n fieldsWithError.push(error)\n }\n\n const handleStepChange = useCallback((newStep: CheckoutFormStepsEnum) => {\n window.scrollTo(0, 0)\n\n setStep(newStep)\n }, [])\n\n const updateServerErrors = useCallback((errors: any[]) => {\n // Example Error\n // [{\n // code: \"OutOfStock\"\n // message: \"Some of the ordered line items are out of stock at the time of placing the order.\"\n // responses: {\n // availableQuantity: 1\n // sku: \"200000095849\"\n // status: \"unavailable\"\n // }\n // }]\n const formattedErrors = errors?.reduce?.(\n (data: ServerErrors, error: any) => {\n return {\n ...data,\n [error?.code || 'internal']: error?.response,\n }\n },\n {}\n )\n setServerErrors(formattedErrors || { internalError: errors })\n }, [])\n\n const { isAuthenticated } = useIsAuthenticated()\n\n const isShippingEnabled = shippingEnabledOnStep === step\n\n const userQuery = usersApi.useGet(\n {},\n { enabled: isShippingEnabled && autofillShippingPersonalData }\n )\n\n const shippingState = useShipping({\n errorLabels,\n orderQuery,\n enableSavedAddressList: Boolean(isAuthenticated && enableSavedAddressList),\n enableSaveAddress: Boolean(isAuthenticated && enableSaveAddress),\n withPersistBeforePageLeave: !isRedirecting && withPersistBeforePageLeave,\n validations: shippingValidations,\n autofillShippingPersonalData: Boolean(\n isAuthenticated && autofillShippingPersonalData\n ),\n userQuery,\n enabled: isShippingEnabled,\n countryCode,\n requiredFields: requiredFieldsOnShippingStep,\n enableNoShippingMethodMode,\n })\n const mod = useCheckoutShippingModule(orderQuery, !enableNoShippingMethodMode)\n\n const getIsPaymentMethodsEnabled = () => {\n if (paymentEnabledOnStep) {\n return paymentEnabledOnStep === step\n }\n\n if (\n !enableNoShippingMethodMode &&\n getPaymentMethodsWhenShippingMethodIsSelected\n ) {\n return Boolean(mod?.moduleKey && mod?.moduleData.methodKey)\n }\n\n return false\n }\n\n const paymentState = usePayment({\n errorLabels,\n orderQuery,\n enabled: getIsPaymentMethodsEnabled(),\n })\n\n const billingState = useBilling({\n errorLabels,\n orderQuery,\n validateBillingAddress,\n enableSaveBillingAddress: Boolean(\n isAuthenticated && enableSaveBillingAddress\n ),\n withSavedBillingAddressList: Boolean(\n isAuthenticated && enableSavedBillingAddressList\n ),\n withPersistBeforePageLeave: !isRedirecting && withPersistBeforePageLeave,\n countryCode,\n enabled: billingEnabledOnStep === step,\n requiredFields: requiredFieldsOnBillingAddressStep,\n requiredFieldsOnShipping: requiredFieldsOnShippingStep,\n })\n\n const onBeforeBoricaRedirect = (data: BoricaGeneratePaymentDataResponse) => {\n if (disablePaymentRedirects) return\n\n onBeforeRedirect?.()\n setIsRedirecting(true)\n setTimeout(() => {\n setBoricaData(data)\n }, redirectTimeout)\n }\n\n const onBeforePaypalRedirect = (\n data: PaypalGeneratePaymentUrlResponseDTO\n ) => {\n if (disablePaymentRedirects) return\n\n onBeforeRedirect?.()\n setIsRedirecting(true)\n setTimeout(() => {\n window.location.replace(data.redirectUrl)\n }, redirectTimeout)\n }\n const { handleCheckoutSubmit } = useCheckoutSubmit({\n onBeforeBoricaRedirect,\n onBeforePaypalRedirect,\n onSuccess,\n onError: (errors: any) => {\n updateServerErrors(errors)\n onError(errors)\n },\n withMeta: withPixelMeta,\n disablePaymentRedirects,\n })\n\n const { scrollTo } = useScrollTo(fieldsWithError[0], 0)\n\n const scrollToFirstError = () => {\n const interval = setInterval(() => {\n const errorElement = fieldsWithError[0]\n if (!errorElement) return\n\n scrollTo(getElementOffset(errorElement).top - 100)\n clearInterval(interval)\n }, 50)\n\n setTimeout(() => {\n clearInterval(interval)\n }, 1000)\n }\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n\n await Promise.all([\n shippingState.persistShippingAddress(),\n billingState.persistBillingAddress(),\n ]).catch(() => {})\n\n onSubmit({\n isShippingValid: shippingState.isValid,\n setIsShippingSubmitting: shippingState.updateIsSubmitting,\n isBillingValid: billingState.isValid,\n setIsBillingSubmitting: billingState.updateIsSubmitting,\n isPaymentValid: paymentState.isValid,\n setIsPaymentSubmitting: paymentState.updateIsSubmitting,\n loanInfo: paymentState.loanInfo,\n step,\n updateStep: setStep,\n saveOrder: handleCheckoutSubmit,\n updateServerErrors,\n scrollToFirstError,\n shippingState,\n shippingAddress: shippingState.data,\n })\n }\n\n const state = {\n setStep: handleStepChange,\n step,\n orderQuery,\n serverErrors,\n updateServerErrors,\n errorLabels,\n shippingState,\n paymentState,\n billingState,\n errorRef: collectFieldsWithError,\n errorFields: fieldsWithError,\n }\n\n return (\n <CheckoutFormContext.Provider value={state}>\n <CheckoutFormCustomStateProvider initialCustomState={initialCustomState}>\n <>\n <form noValidate onSubmit={handleSubmit}>\n {children}\n </form>\n {!!boricaData && (\n <BoricaRedirect\n isInDevMode={isBoricaInDevMode}\n formData={boricaData}\n />\n )}\n </>\n </CheckoutFormCustomStateProvider>\n </CheckoutFormContext.Provider>\n )\n}\n\nexport type CheckoutFormOnSubmitData = {\n isShippingValid: boolean\n setIsShippingSubmitting: (value: boolean) => void\n isBillingValid: boolean\n setIsBillingSubmitting: (value: boolean) => void\n isPaymentValid: boolean\n setIsPaymentSubmitting: (value: boolean) => void\n step: CheckoutFormStepsEnum\n updateStep: (step: CheckoutFormStepsEnum) => void\n saveOrder: MutateFunction<OrderDTO, unknown, any, unknown>\n\n updateServerErrors: (errors: any) => void\n scrollToFirstError: () => void\n shippingState: UseShippingResultType\n shippingAddress?: AddressDTO\n loanInfo?: OrderLoanInfoDTO\n}\n\ntype Props = {\n children: any\n defaultStep: CheckoutFormStepsEnum\n errorLabels: CheckoutFormErrorLabelsType\n withPersistBeforePageLeave: boolean\n countryCode?: string\n onSubmit: (data: CheckoutFormOnSubmitData) => void\n onError: (error: any) => void\n onSuccess: (order: OrderDTO) => void\n\n redirectTimeout?: number\n onBeforeRedirect?: () => void\n\n customState?: CheckoutCustomState\n\n enableSavedAddressList: boolean\n shippingValidations?: ShippingValidationsType\n enableSaveAddress: boolean\n autofillShippingPersonalData: boolean\n autoSelectDefaultShippingAddress: boolean\n\n enableSaveBillingAddress: boolean\n validateBillingAddress?: BillingAddressValidationType\n enableSavedBillingAddressList: boolean\n autoSelectDefaultBillingAddress: boolean\n\n paymentEnabledOnStep?: CheckoutFormStepsEnum\n getPaymentMethodsWhenShippingMethodIsSelected?: boolean\n\n shippingEnabledOnStep: CheckoutFormStepsEnum\n\n billingEnabledOnStep: CheckoutFormStepsEnum\n\n isBoricaInDevMode?: boolean\n\n withPixelMeta?: boolean\n requiredFieldsOnShippingStep?: string[]\n requiredFieldsOnBillingAddressStep?: string[]\n enableNoShippingMethodMode?: boolean\n disablePaymentRedirects?: boolean\n}\n\ntype ServerErrors = { [key: string]: any } | null\n\nexport enum CheckoutFormStepsEnum {\n Basket = 'Basket',\n Shipping = 'Shipping',\n BillingAddress = 'BillingAddress',\n Payment = 'Payment',\n Preview = 'Preview',\n All = 'All',\n}\n\nexport type CheckoutFormErrorsResultType =\n | {\n [key: string]: string\n }\n | null\n | undefined\n\nexport type ShippingFormErrorLabels = {\n fieldIsRequired: string\n fillStreetNumberBuildingEntranceOrApartment: string\n streetIsRequired: string\n invalidPhoneNumber?: string\n quarterIsRequired: string\n cantFindStreetOrQuarterMessage: string\n cityIsRequired: string\n emailIsRequired: string\n officeIsRequired: string\n selectCourier: string\n noStoreSelected: string\n}\n\nexport type CheckoutFormErrorLabelsType = ShippingFormErrorLabels & {\n selectPaymentMethod: string\n}\n\nexport type CheckoutFormContextType = {\n setStep: (step: CheckoutFormStepsEnum) => void\n step: CheckoutFormStepsEnum\n serverErrors: ServerErrors\n updateServerErrors: (errors: any) => void\n errorRef: (error: HTMLElement) => void\n errorFields: HTMLElement[]\n errorLabels: CheckoutFormErrorLabelsType\n orderQuery: QueryResult<OrderDTO, unknown>\n shippingState: UseShippingResultType\n paymentState: UsePaymentResultType\n billingState: UseBillingResultType\n}\n\nexport const useCheckoutFormStep = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormStep must be used within a CheckoutFormContextProvider'\n )\n }\n\n return useMemo(() => {\n return {\n currentStep: context.step,\n updateStep: context.setStep,\n }\n }, [context])\n}\n\nexport const useCheckoutFormOrder = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormOrder must be used within a CheckoutFormContextProvider'\n )\n }\n\n return context.orderQuery\n}\n\nexport const useCheckoutFormErrorLabels = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormErrorLabels must be used within a CheckoutFormContextProvider'\n )\n }\n\n return context.errorLabels\n}\n\nexport const useCheckoutFormServerErrors = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormServerErrors must be used within a CheckoutFormContextProvider'\n )\n }\n\n return useMemo(() => {\n return {\n serverErrors: context.serverErrors,\n updateServerErrors: context.updateServerErrors,\n }\n }, [context])\n}\n\nexport const useCheckoutFormBillingState = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormBillingState must be used within a CheckoutFormContextProvider'\n )\n }\n\n return context.billingState\n}\n\nexport const useCheckoutFormShippingState = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormShippingState must be used within a CheckoutFormContextProvider'\n )\n }\n\n return context.shippingState\n}\n\nexport const useCheckoutErrorFields = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutErrorFields must be used within a CheckoutFormContextProvider'\n )\n }\n\n return {\n errorFields: context.errorFields,\n errorRef: context.errorRef,\n }\n}\n\nexport const useCheckoutFormPaymentState = () => {\n const context = useContext(CheckoutFormContext)\n\n if (!context) {\n throw new Error(\n 'useCheckoutFormPaymentState must be used within a CheckoutFormContextProvider'\n )\n }\n\n return context.paymentState\n}\n"],"file":"index.js"}
@@ -1,7 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
+ import { OfferDTOStatusEnum } from '@sentecacommerce/sdk';
3
4
  import { getTranslatableField } from '../../utils';
4
5
  import { usePrefetchProduct } from '../usePrefetchProduct';
6
+ export { OfferDTOStatusEnum };
5
7
  export var useLineItem = props => {
6
8
  var {
7
9
  onMouseEnter: _onMouseEnter,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/hooks/useLineItem/index.tsx"],"names":["React","getTranslatableField","usePrefetchProduct","useLineItem","props","onMouseEnter","onMouseLeave","onMouseDown","slug","data","useMemo","mappedAttributes","Object","keys","attributes","reduce","map","key","current","count","length","elements","attribute","_id","value","label","extra","customFields","custom","Boolean","field","name","brand","brands","collapseKey","variantId","offerId","offer","sku","images","ratings","reviewRatingStatistics","price","originalPrice","discountedPrice","variantOptions","variantsCount","categories","category","inventory","hasAvailableQuantity","inventorySnapshot","canOrder","availableQuantity","maxQuantity","labels","mapLabelData","getCustomFieldByKey","getAttributeByKey","callback","now","Date","getTime","currentLabels","filter","el","validFrom","validTo"],"mappings":"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","sourcesContent":["import React from 'react'\nimport {\n SearchResultDTO,\n ImageDTO,\n MoneyDTO,\n ReviewRatingStatisticsDTO,\n OfferDTO,\n ProductVariantLabelDTO,\n} from '@sentecacommerce/sdk'\n\nimport { getTranslatableField } from '../../utils'\nimport { usePrefetchProduct } from '../usePrefetchProduct'\n\nexport interface BaseProductType {\n name: string\n slug: string\n variantId: string\n offerId?: string\n offer?: OfferDTO\n collapseKey?: string\n sku: string\n images?: ImageDTO[]\n inventory: {\n hasAvailableQuantity: boolean\n availableQuantity: number\n maxQuantity?: number\n }\n onMouseEnter: (callback: () => void) => void\n onMouseLeave: () => void\n onMouseDown: (callback: () => void) => void\n}\n\nexport interface AttributeType {\n _id: string\n label: string\n extra?: any\n}\n\nexport interface AttributesType {\n count: number\n elements: AttributeType[]\n}\n\ninterface LineItemType extends BaseProductType {\n name: string\n brand?: {\n name: string\n slug: string\n }\n _id: string\n labels?: string[]\n price?: MoneyDTO\n discountedPrice?: MoneyDTO\n variantOptions: number\n variantsCount: number\n categories: {\n name: string\n slug: string\n }[]\n ratings: ReviewRatingStatisticsDTO\n getAttributeByKey: (key: string) => AttributesType\n getCustomFieldByKey: (key: string) => any\n}\n\nexport const useLineItem = (props: SearchResultDTO) => {\n const { onMouseEnter, onMouseLeave, onMouseDown } = usePrefetchProduct(\n getTranslatableField(props?.slug)\n )\n\n const data: LineItemType = React.useMemo(() => {\n const mappedAttributes = Object.keys(props?.attributes)?.reduce(\n (map, key) => {\n const current = props?.attributes[key]\n map[key] = {\n count: current?.length ?? 0,\n elements: current?.map((attribute: any) => {\n return {\n _id: attribute?.value,\n label: getTranslatableField(attribute?.label),\n extra: attribute?.extra,\n }\n }),\n }\n return map\n },\n {}\n )\n\n const customFields = props?.custom?.reduce(\n (map: { [key: string]: any }, current) => {\n if (Boolean(current.value) && current.value !== '0') {\n return { ...map, [current.field]: current.value }\n }\n return map\n },\n {}\n )\n\n return {\n _id: props?._id,\n name: getTranslatableField(props?.name),\n brand: {\n name: getTranslatableField(props?.brands?.[0]?.name),\n slug: getTranslatableField(props?.brands?.[0]?.slug),\n },\n slug: getTranslatableField(props?.slug),\n collapseKey: props?.collapseKey,\n variantId: props?.variantId,\n offerId: props?.offer?._id,\n offer: props?.offer,\n sku: props?.sku,\n images: props?.images || {},\n ratings: props?.reviewRatingStatistics,\n price: props?.offer?.originalPrice,\n discountedPrice: props?.offer?.discountedPrice,\n variantOptions: props?.variantOptions ?? 0,\n variantsCount: props?.variantsCount ?? 0,\n categories: props?.categories.map((category) => ({\n name: getTranslatableField(category.name),\n slug: getTranslatableField(category.slug),\n })),\n inventory: {\n hasAvailableQuantity: props?.inventorySnapshot?.canOrder ? true : false,\n availableQuantity: props?.inventorySnapshot?.canOrder\n ? props?.inventorySnapshot?.availableQuantity ?? 0\n : 0,\n maxQuantity: props?.offer?.maxQuantity,\n },\n labels: mapLabelData(props?.labels),\n getCustomFieldByKey: (key: string) => customFields?.[key],\n getAttributeByKey: (key: string) => mappedAttributes?.[key],\n onMouseEnter: (callback) => onMouseEnter(callback),\n onMouseLeave: () => onMouseLeave(),\n onMouseDown: (callback) => () => onMouseDown(callback),\n }\n }, [props])\n\n return data\n}\n\nconst mapLabelData = (data?: ProductVariantLabelDTO[]) => {\n // Filter only labels that are currently active\n const now = new Date().getTime()\n const currentLabels = data?.filter((el) => {\n if (!el.validFrom || !el.validTo) {\n return el\n } else {\n return el.validFrom < now && el.validTo > now\n }\n })\n\n return currentLabels?.map((el) => el.key)\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/hooks/useLineItem/index.tsx"],"names":["React","OfferDTOStatusEnum","getTranslatableField","usePrefetchProduct","useLineItem","props","onMouseEnter","onMouseLeave","onMouseDown","slug","data","useMemo","mappedAttributes","Object","keys","attributes","reduce","map","key","current","count","length","elements","attribute","_id","value","label","extra","customFields","custom","Boolean","field","name","brand","brands","collapseKey","variantId","offerId","offer","sku","images","ratings","reviewRatingStatistics","price","originalPrice","discountedPrice","variantOptions","variantsCount","categories","category","inventory","hasAvailableQuantity","inventorySnapshot","canOrder","availableQuantity","maxQuantity","labels","mapLabelData","getCustomFieldByKey","getAttributeByKey","callback","now","Date","getTime","currentLabels","filter","el","validFrom","validTo"],"mappings":"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","sourcesContent":["import React from 'react'\nimport {\n SearchResultDTO,\n ImageDTO,\n MoneyDTO,\n ReviewRatingStatisticsDTO,\n OfferDTO,\n OfferDTOStatusEnum,\n ProductVariantLabelDTO,\n} from '@sentecacommerce/sdk'\n\nimport { getTranslatableField } from '../../utils'\nimport { usePrefetchProduct } from '../usePrefetchProduct'\n\nexport { OfferDTOStatusEnum }\n\nexport interface BaseProductType {\n name: string\n slug: string\n variantId: string\n offerId?: string\n offer?: OfferDTO\n collapseKey?: string\n sku: string\n images?: ImageDTO[]\n inventory: {\n hasAvailableQuantity: boolean\n availableQuantity: number\n maxQuantity?: number\n }\n onMouseEnter: (callback: () => void) => void\n onMouseLeave: () => void\n onMouseDown: (callback: () => void) => void\n}\n\nexport interface AttributeType {\n _id: string\n label: string\n extra?: any\n}\n\nexport interface AttributesType {\n count: number\n elements: AttributeType[]\n}\n\ninterface LineItemType extends BaseProductType {\n name: string\n brand?: {\n name: string\n slug: string\n }\n _id: string\n labels?: string[]\n price?: MoneyDTO\n discountedPrice?: MoneyDTO\n variantOptions: number\n variantsCount: number\n categories: {\n name: string\n slug: string\n }[]\n ratings: ReviewRatingStatisticsDTO\n getAttributeByKey: (key: string) => AttributesType\n getCustomFieldByKey: (key: string) => any\n}\n\nexport const useLineItem = (props: SearchResultDTO) => {\n const { onMouseEnter, onMouseLeave, onMouseDown } = usePrefetchProduct(\n getTranslatableField(props?.slug)\n )\n\n const data: LineItemType = React.useMemo(() => {\n const mappedAttributes = Object.keys(props?.attributes)?.reduce(\n (map, key) => {\n const current = props?.attributes[key]\n map[key] = {\n count: current?.length ?? 0,\n elements: current?.map((attribute: any) => {\n return {\n _id: attribute?.value,\n label: getTranslatableField(attribute?.label),\n extra: attribute?.extra,\n }\n }),\n }\n return map\n },\n {}\n )\n\n const customFields = props?.custom?.reduce(\n (map: { [key: string]: any }, current) => {\n if (Boolean(current.value) && current.value !== '0') {\n return { ...map, [current.field]: current.value }\n }\n return map\n },\n {}\n )\n\n return {\n _id: props?._id,\n name: getTranslatableField(props?.name),\n brand: {\n name: getTranslatableField(props?.brands?.[0]?.name),\n slug: getTranslatableField(props?.brands?.[0]?.slug),\n },\n slug: getTranslatableField(props?.slug),\n collapseKey: props?.collapseKey,\n variantId: props?.variantId,\n offerId: props?.offer?._id,\n offer: props?.offer,\n sku: props?.sku,\n images: props?.images || {},\n ratings: props?.reviewRatingStatistics,\n price: props?.offer?.originalPrice,\n discountedPrice: props?.offer?.discountedPrice,\n variantOptions: props?.variantOptions ?? 0,\n variantsCount: props?.variantsCount ?? 0,\n categories: props?.categories.map((category) => ({\n name: getTranslatableField(category.name),\n slug: getTranslatableField(category.slug),\n })),\n inventory: {\n hasAvailableQuantity: props?.inventorySnapshot?.canOrder ? true : false,\n availableQuantity: props?.inventorySnapshot?.canOrder\n ? props?.inventorySnapshot?.availableQuantity ?? 0\n : 0,\n maxQuantity: props?.offer?.maxQuantity,\n },\n labels: mapLabelData(props?.labels),\n getCustomFieldByKey: (key: string) => customFields?.[key],\n getAttributeByKey: (key: string) => mappedAttributes?.[key],\n onMouseEnter: (callback) => onMouseEnter(callback),\n onMouseLeave: () => onMouseLeave(),\n onMouseDown: (callback) => () => onMouseDown(callback),\n }\n }, [props])\n\n return data\n}\n\nconst mapLabelData = (data?: ProductVariantLabelDTO[]) => {\n // Filter only labels that are currently active\n const now = new Date().getTime()\n const currentLabels = data?.filter((el) => {\n if (!el.validFrom || !el.validTo) {\n return el\n } else {\n return el.validFrom < now && el.validTo > now\n }\n })\n\n return currentLabels?.map((el) => el.key)\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