@sentecacommerce-theme/lib 0.12.29 → 0.12.30
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.
- package/dist/cjs/contexts/CheckoutForm/hooks/useBilling/index.js +4 -2
- package/dist/cjs/contexts/CheckoutForm/hooks/useBilling/index.js.map +1 -1
- package/dist/cjs/contexts/CheckoutForm/hooks/useShipping/index.js +8 -6
- package/dist/cjs/contexts/CheckoutForm/hooks/useShipping/index.js.map +1 -1
- package/dist/cjs/contexts/CheckoutForm/index.js +16 -9
- package/dist/cjs/contexts/CheckoutForm/index.js.map +1 -1
- package/dist/cjs/contexts/CheckoutForm/utils/validateBillingAddress.js +1 -2
- package/dist/cjs/contexts/CheckoutForm/utils/validateBillingAddress.js.map +1 -1
- package/dist/cjs/contexts/CheckoutForm/utils/validateShipping.js +28 -21
- package/dist/cjs/contexts/CheckoutForm/utils/validateShipping.js.map +1 -1
- package/dist/cjs/hooks/addresses-hooks/useAddressForm/index.js +4 -2
- package/dist/cjs/hooks/addresses-hooks/useAddressForm/index.js.map +1 -1
- package/dist/cjs/hooks/order-hooks/useOrder/index.js +12 -1
- package/dist/cjs/hooks/order-hooks/useOrder/index.js.map +1 -1
- package/dist/cjs/hooks/useCheckoutShippingModule/index.js +6 -1
- package/dist/cjs/hooks/useCheckoutShippingModule/index.js.map +1 -1
- package/dist/cjs/user/api/utils/generateAnonymousToken.js +4 -4
- package/dist/cjs/user/api/utils/generateAnonymousToken.js.map +1 -1
- package/dist/esm/contexts/CheckoutForm/hooks/useBilling/index.js +4 -2
- package/dist/esm/contexts/CheckoutForm/hooks/useBilling/index.js.map +1 -1
- package/dist/esm/contexts/CheckoutForm/hooks/useShipping/index.js +8 -6
- package/dist/esm/contexts/CheckoutForm/hooks/useShipping/index.js.map +1 -1
- package/dist/esm/contexts/CheckoutForm/index.js +13 -9
- package/dist/esm/contexts/CheckoutForm/index.js.map +1 -1
- package/dist/esm/contexts/CheckoutForm/utils/validateBillingAddress.js +1 -2
- package/dist/esm/contexts/CheckoutForm/utils/validateBillingAddress.js.map +1 -1
- package/dist/esm/contexts/CheckoutForm/utils/validateShipping.js +25 -18
- package/dist/esm/contexts/CheckoutForm/utils/validateShipping.js.map +1 -1
- package/dist/esm/hooks/addresses-hooks/useAddressForm/index.js +3 -2
- package/dist/esm/hooks/addresses-hooks/useAddressForm/index.js.map +1 -1
- package/dist/esm/hooks/order-hooks/useOrder/index.js +10 -1
- package/dist/esm/hooks/order-hooks/useOrder/index.js.map +1 -1
- package/dist/esm/hooks/useCheckoutShippingModule/index.js +6 -1
- package/dist/esm/hooks/useCheckoutShippingModule/index.js.map +1 -1
- package/dist/esm/user/api/utils/generateAnonymousToken.js +4 -4
- package/dist/esm/user/api/utils/generateAnonymousToken.js.map +1 -1
- package/dist/types/contexts/CheckoutForm/hooks/useBilling/index.d.ts +4 -2
- package/dist/types/contexts/CheckoutForm/hooks/useShipping/index.d.ts +3 -1
- package/dist/types/contexts/CheckoutForm/index.d.ts +4 -1
- package/dist/types/contexts/CheckoutForm/utils/validateBillingAddress.d.ts +2 -2
- package/dist/types/contexts/CheckoutForm/utils/validateShipping.d.ts +1 -1
- package/dist/types/hooks/addresses-hooks/useAddressForm/index.d.ts +2 -1
- package/dist/types/hooks/order-hooks/useOrder/index.d.ts +7 -1
- package/dist/types/hooks/useCheckoutShippingModule/index.d.ts +2 -2
- package/dist/types/user/api/utils/generateAnonymousToken.d.ts +1 -1
- package/package.json +3 -3
@@ -38,7 +38,9 @@ var AddressFormContextProvider = function AddressFormContextProvider(_ref) {
|
|
38
38
|
onSuccess = _ref.onSuccess,
|
39
39
|
_ref$validations = _ref.validations,
|
40
40
|
validations = _ref$validations === void 0 ? _utils.defaultShippingValidations : _ref$validations,
|
41
|
-
errorLabels = _ref.errorLabels
|
41
|
+
errorLabels = _ref.errorLabels,
|
42
|
+
_ref$requiredFields = _ref.requiredFields,
|
43
|
+
requiredFields = _ref$requiredFields === void 0 ? ['firstName', 'lastName', 'email', 'phoneNumber'] : _ref$requiredFields;
|
42
44
|
var emptyAddress = {
|
43
45
|
_id: (currentAddress == null ? void 0 : currentAddress._id) || '',
|
44
46
|
createdAt: Date.now(),
|
@@ -110,7 +112,7 @@ var AddressFormContextProvider = function AddressFormContextProvider(_ref) {
|
|
110
112
|
};
|
111
113
|
}, []);
|
112
114
|
var addressErrors = (0, _react.useMemo)(function () {
|
113
|
-
return (0, _utils.validateShipping)(address, moduleData, errorLabels, validations);
|
115
|
+
return (0, _utils.validateShipping)(address, moduleData, errorLabels, validations, requiredFields);
|
114
116
|
}, [address, moduleData, errorLabels, validations]);
|
115
117
|
/**
|
116
118
|
* Format all platform and merchant modules
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../../src/hooks/addresses-hooks/useAddressForm/index.tsx"],"names":["Couriers","AddressFormContext","React","createContext","AddressFormContextProvider","children","currentAddress","address","onSuccess","validations","defaultShippingValidations","errorLabels","emptyAddress","_id","createdAt","Date","now","updatedAt","setAddress","isSubmitting","setIsSubmitting","moduleData","setModuleData","addressesApi","useAdd","addNewAddress","addNewError","error","useUpdate","updateAddress","updateError","myCartApi","useGetAllShippingMethods","moduleTypesRaw","data","isModuleTypesLoading","isLoading","selectModule","moduleKey","methodKey","setModuleAddressData","key","value","formatMethod","method","select","addressErrors","modules","platformMethods","platformShippingMethods","map","merchantMethods","merchantsShippingMethods","methods","flat","result","reduce","current","onChange","name","addNewErrors","updateErrors","errors","hasErrors","Boolean","Object","keys","length","handleSubmit","e","preventDefault","id","dto","undefined","state","formKey","addressState","setAddressState","onInputChange","isValid","useAddressForm","context","useContext","Error"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport {\n AddressModuleDataDTO,\n ShippingMethodDTO,\n AddressDTO,\n} from '@sentecacommerce/sdk'\nimport { addressesApi } from '../../../api/addressesApi'\nimport { myCartApi } from '../../../api/myCartApi'\nimport {\n validateShipping,\n defaultShippingValidations,\n ShippingValidationsType,\n} from '../../../contexts/CheckoutForm/utils'\nimport { ShippingFormErrorLabels } from '../../../contexts/CheckoutForm'\nimport { useErrors, DefaultFormErrors } from '../../error-handling'\n\nexport enum Couriers {\n 'Speedy' = 'Speedy',\n 'Econt' = 'Econt',\n 'Evropat' = 'Evropat',\n}\n\nexport type AddressFormModule = {\n methods: {\n key?: string\n select: () => void\n }[]\n}\n\ntype Modules = {\n [key in Couriers]: AddressFormModule\n}\n\ntype AddressFormContextValue = {\n formKey: string\n modules: Modules\n isLoading: boolean\n addressState?: AddressDTO\n setAddressState: React.Dispatch<AddressDTO>\n onInputChange: (name: string, value: any) => void\n moduleData?: AddressModuleDataDTO\n setModuleAddressData: (key: string, value: any) => void\n isSubmitting: boolean\n isValid: boolean\n errors: {\n [key: string]: string | undefined\n }\n}\n\nconst AddressFormContext = React.createContext<AddressFormContextValue>(\n {} as any\n)\n\nexport type AddressFormLabelsType = ShippingFormErrorLabels & DefaultFormErrors\n\nexport const AddressFormContextProvider = ({\n children,\n address: currentAddress,\n onSuccess,\n validations = defaultShippingValidations,\n errorLabels,\n}: {\n children: JSX.Element | JSX.Element[]\n address?: AddressDTO\n onSuccess: () => void\n validations?: ShippingValidationsType\n errorLabels: AddressFormLabelsType\n}) => {\n const emptyAddress: AddressDTO = {\n _id: currentAddress?._id || '',\n createdAt: Date.now(),\n updatedAt: Date.now(),\n }\n \n const [address, setAddress] = useState(currentAddress || emptyAddress)\n\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const [moduleData, setModuleData] = useState(currentAddress?.moduleData?.[0])\n\n const [addNewAddress, { error: addNewError }] = addressesApi.useAdd({\n onSuccess,\n })\n const [updateAddress, { error: updateError }] = addressesApi.useUpdate(\n onSuccess\n )\n\n const {\n data: moduleTypesRaw,\n isLoading: isModuleTypesLoading,\n } = myCartApi.useGetAllShippingMethods()\n\n const isLoading = isModuleTypesLoading\n\n // set initial data\n useEffect(() => {\n if (!address && currentAddress) {\n setAddress(currentAddress)\n setModuleData(currentAddress.moduleData?.[0])\n }\n }, [address, currentAddress])\n\n const selectModule = (moduleKey: string, methodKey: string) => {\n setModuleData({ moduleKey, moduleData: { methodKey } })\n }\n\n const setModuleAddressData = useCallback(\n (key: string, value: any) => {\n if (!moduleData) return\n\n const data = { ...moduleData }\n\n if (!data.moduleData) data.moduleData = {}\n\n data.moduleData.address = {\n ...(data.moduleData.address || {}),\n [key]: value,\n }\n\n setModuleData(data)\n },\n [moduleData]\n )\n\n const formatMethod = useCallback((method: ShippingMethodDTO) => {\n return {\n moduleKey: method.moduleKey,\n select: () =>\n selectModule(method.moduleKey as string, method.methodKey as string),\n methodKey: method.methodKey,\n }\n }, [])\n\n const addressErrors = useMemo(() => {\n return validateShipping(\n address,\n moduleData,\n errorLabels as any,\n validations\n )\n }, [address, moduleData, errorLabels, validations])\n\n /**\n * Format all platform and merchant modules\n */\n const modules = useMemo((): Modules => {\n const platformMethods =\n moduleTypesRaw?.platformShippingMethods?.map?.(formatMethod) || []\n\n const merchantMethods =\n moduleTypesRaw?.merchantsShippingMethods?.map?.((data) => {\n return data?.methods?.map?.(formatMethod)\n }) || []\n\n const data = [...platformMethods, ...merchantMethods.flat()]\n\n const result = data.reduce((current, method) => {\n return {\n ...current,\n [method.moduleKey as Couriers]: {\n methods: [\n ...(current[method.moduleKey as Couriers]?.methods || []),\n {\n key: method.methodKey,\n select: method.select,\n },\n ],\n },\n }\n }, {})\n\n return (result as unknown) as Modules\n }, [moduleTypesRaw, formatMethod])\n\n /**\n * On input change\n */\n const onChange = useCallback(\n (name: string, value: any) => {\n if (!address) return\n\n setAddress({\n ...address,\n [name]: value,\n })\n },\n [address]\n )\n\n const addNewErrors = useErrors<AddressFormLabelsType>(\n addNewError,\n errorLabels\n )\n const updateErrors = useErrors<AddressFormLabelsType>(\n updateError,\n errorLabels\n )\n\n const errors = useMemo(() => {\n return {\n ...(addressErrors || {}),\n ...(updateErrors || {}),\n ...(addNewErrors || {}),\n }\n }, [addressErrors, updateErrors, addNewErrors])\n\n const hasErrors = Boolean(Object.keys(errors).length)\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n setIsSubmitting(true)\n\n if (hasErrors) return\n\n if (currentAddress?._id) {\n updateAddress({\n id: currentAddress._id,\n dto: {\n ...address,\n moduleData: moduleData && [moduleData],\n },\n })\n\n return\n }\n\n addNewAddress({\n ...address,\n _id: undefined,\n moduleData: moduleData && [moduleData],\n })\n }\n\n const state = useMemo((): AddressFormContextValue => {\n return {\n formKey: `${moduleData?.moduleKey}-${moduleData?.moduleData?.methodKey}`,\n modules,\n isLoading,\n addressState: address,\n setAddressState: setAddress,\n onInputChange: onChange,\n moduleData,\n setModuleAddressData,\n errors: isSubmitting ? errors : {},\n isSubmitting,\n isValid: !hasErrors,\n }\n }, [\n moduleData,\n address,\n isLoading,\n modules,\n setModuleAddressData,\n onChange,\n isSubmitting,\n errors,\n hasErrors,\n ])\n\n return (\n <AddressFormContext.Provider value={state}>\n <form onSubmit={handleSubmit} noValidate>\n {children}\n </form>\n </AddressFormContext.Provider>\n )\n}\n\nexport const useAddressForm = () => {\n const context = React.useContext(AddressFormContext)\n\n if (!context) {\n throw new Error(\n 'useAddressForm must be used within a AddressFormContextProvider'\n )\n }\n\n return context\n}\n"],"file":"index.js"}
|
1
|
+
{"version":3,"sources":["../../../../../src/hooks/addresses-hooks/useAddressForm/index.tsx"],"names":["Couriers","AddressFormContext","React","createContext","AddressFormContextProvider","children","currentAddress","address","onSuccess","validations","defaultShippingValidations","errorLabels","requiredFields","emptyAddress","_id","createdAt","Date","now","updatedAt","setAddress","isSubmitting","setIsSubmitting","moduleData","setModuleData","addressesApi","useAdd","addNewAddress","addNewError","error","useUpdate","updateAddress","updateError","myCartApi","useGetAllShippingMethods","moduleTypesRaw","data","isModuleTypesLoading","isLoading","selectModule","moduleKey","methodKey","setModuleAddressData","key","value","formatMethod","method","select","addressErrors","modules","platformMethods","platformShippingMethods","map","merchantMethods","merchantsShippingMethods","methods","flat","result","reduce","current","onChange","name","addNewErrors","updateErrors","errors","hasErrors","Boolean","Object","keys","length","handleSubmit","e","preventDefault","id","dto","undefined","state","formKey","addressState","setAddressState","onInputChange","isValid","useAddressForm","context","useContext","Error"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport {\n AddressModuleDataDTO,\n ShippingMethodDTO,\n AddressDTO,\n} from '@sentecacommerce/sdk'\nimport { addressesApi } from '../../../api/addressesApi'\nimport { myCartApi } from '../../../api/myCartApi'\nimport {\n validateShipping,\n defaultShippingValidations,\n ShippingValidationsType,\n} from '../../../contexts/CheckoutForm/utils'\nimport { ShippingFormErrorLabels } from '../../../contexts/CheckoutForm'\nimport { useErrors, DefaultFormErrors } from '../../error-handling'\n\nexport enum Couriers {\n 'Speedy' = 'Speedy',\n 'Econt' = 'Econt',\n 'Evropat' = 'Evropat',\n}\n\nexport type AddressFormModule = {\n methods: {\n key?: string\n select: () => void\n }[]\n}\n\ntype Modules = {\n [key in Couriers]: AddressFormModule\n}\n\ntype AddressFormContextValue = {\n formKey: string\n modules: Modules\n isLoading: boolean\n addressState?: AddressDTO\n setAddressState: React.Dispatch<AddressDTO>\n onInputChange: (name: string, value: any) => void\n moduleData?: AddressModuleDataDTO\n setModuleAddressData: (key: string, value: any) => void\n isSubmitting: boolean\n isValid: boolean\n errors: {\n [key: string]: string | undefined\n }\n}\n\nconst AddressFormContext = React.createContext<AddressFormContextValue>(\n {} as any\n)\n\nexport type AddressFormLabelsType = ShippingFormErrorLabels & DefaultFormErrors\n\nexport const AddressFormContextProvider = ({\n children,\n address: currentAddress,\n onSuccess,\n validations = defaultShippingValidations,\n errorLabels,\n requiredFields = ['firstName', 'lastName', 'email', 'phoneNumber'],\n}: {\n children: JSX.Element | JSX.Element[]\n address?: AddressDTO\n onSuccess: () => void\n validations?: ShippingValidationsType\n errorLabels: AddressFormLabelsType\n requiredFields?: string[]\n}) => {\n const emptyAddress: AddressDTO = {\n _id: currentAddress?._id || '',\n createdAt: Date.now(),\n updatedAt: Date.now(),\n }\n\n const [address, setAddress] = useState(currentAddress || emptyAddress)\n\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const [moduleData, setModuleData] = useState(currentAddress?.moduleData?.[0])\n\n const [addNewAddress, { error: addNewError }] = addressesApi.useAdd({\n onSuccess,\n })\n const [updateAddress, { error: updateError }] = addressesApi.useUpdate(\n onSuccess\n )\n\n const {\n data: moduleTypesRaw,\n isLoading: isModuleTypesLoading,\n } = myCartApi.useGetAllShippingMethods()\n\n const isLoading = isModuleTypesLoading\n\n // set initial data\n useEffect(() => {\n if (!address && currentAddress) {\n setAddress(currentAddress)\n setModuleData(currentAddress.moduleData?.[0])\n }\n }, [address, currentAddress])\n\n const selectModule = (moduleKey: string, methodKey: string) => {\n setModuleData({ moduleKey, moduleData: { methodKey } })\n }\n\n const setModuleAddressData = useCallback(\n (key: string, value: any) => {\n if (!moduleData) return\n\n const data = { ...moduleData }\n\n if (!data.moduleData) data.moduleData = {}\n\n data.moduleData.address = {\n ...(data.moduleData.address || {}),\n [key]: value,\n }\n\n setModuleData(data)\n },\n [moduleData]\n )\n\n const formatMethod = useCallback((method: ShippingMethodDTO) => {\n return {\n moduleKey: method.moduleKey,\n select: () =>\n selectModule(method.moduleKey as string, method.methodKey as string),\n methodKey: method.methodKey,\n }\n }, [])\n\n const addressErrors = useMemo(() => {\n return validateShipping(\n address,\n moduleData,\n errorLabels as any,\n validations,\n requiredFields\n )\n }, [address, moduleData, errorLabels, validations])\n\n /**\n * Format all platform and merchant modules\n */\n const modules = useMemo((): Modules => {\n const platformMethods =\n moduleTypesRaw?.platformShippingMethods?.map?.(formatMethod) || []\n\n const merchantMethods =\n moduleTypesRaw?.merchantsShippingMethods?.map?.((data) => {\n return data?.methods?.map?.(formatMethod)\n }) || []\n\n const data = [...platformMethods, ...merchantMethods.flat()]\n\n const result = data.reduce((current, method) => {\n return {\n ...current,\n [method.moduleKey as Couriers]: {\n methods: [\n ...(current[method.moduleKey as Couriers]?.methods || []),\n {\n key: method.methodKey,\n select: method.select,\n },\n ],\n },\n }\n }, {})\n\n return (result as unknown) as Modules\n }, [moduleTypesRaw, formatMethod])\n\n /**\n * On input change\n */\n const onChange = useCallback(\n (name: string, value: any) => {\n if (!address) return\n\n setAddress({\n ...address,\n [name]: value,\n })\n },\n [address]\n )\n\n const addNewErrors = useErrors<AddressFormLabelsType>(\n addNewError,\n errorLabels\n )\n const updateErrors = useErrors<AddressFormLabelsType>(\n updateError,\n errorLabels\n )\n\n const errors = useMemo(() => {\n return {\n ...(addressErrors || {}),\n ...(updateErrors || {}),\n ...(addNewErrors || {}),\n }\n }, [addressErrors, updateErrors, addNewErrors])\n\n const hasErrors = Boolean(Object.keys(errors).length)\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n setIsSubmitting(true)\n\n if (hasErrors) return\n\n if (currentAddress?._id) {\n updateAddress({\n id: currentAddress._id,\n dto: {\n ...address,\n moduleData: moduleData && [moduleData],\n },\n })\n\n return\n }\n\n addNewAddress({\n ...address,\n _id: undefined,\n moduleData: moduleData && [moduleData],\n })\n }\n\n const state = useMemo((): AddressFormContextValue => {\n return {\n formKey: `${moduleData?.moduleKey}-${moduleData?.moduleData?.methodKey}`,\n modules,\n isLoading,\n addressState: address,\n setAddressState: setAddress,\n onInputChange: onChange,\n moduleData,\n setModuleAddressData,\n errors: isSubmitting ? errors : {},\n isSubmitting,\n isValid: !hasErrors,\n }\n }, [\n moduleData,\n address,\n isLoading,\n modules,\n setModuleAddressData,\n onChange,\n isSubmitting,\n errors,\n hasErrors,\n ])\n\n return (\n <AddressFormContext.Provider value={state}>\n <form onSubmit={handleSubmit} noValidate>\n {children}\n </form>\n </AddressFormContext.Provider>\n )\n}\n\nexport const useAddressForm = () => {\n const context = React.useContext(AddressFormContext)\n\n if (!context) {\n throw new Error(\n 'useAddressForm must be used within a AddressFormContextProvider'\n )\n }\n\n return context\n}\n"],"file":"index.js"}
|
@@ -5,8 +5,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
5
5
|
exports.__esModule = true;
|
6
6
|
exports.useOrder = void 0;
|
7
7
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
9
|
+
|
8
10
|
var _react = _interopRequireDefault(require("react"));
|
9
11
|
|
12
|
+
var _index = require("../../../index");
|
13
|
+
|
10
14
|
var _myOrdersApi = require("../../../api/myOrdersApi");
|
11
15
|
|
12
16
|
var useOrder = function useOrder(_ref) {
|
@@ -18,7 +22,7 @@ var useOrder = function useOrder(_ref) {
|
|
18
22
|
var order = data || orderQuery.data;
|
19
23
|
|
20
24
|
var result = _react["default"].useMemo(function () {
|
21
|
-
var _order$shippings, _shipping$deliveries, _shipping$deliveries$, _order$shippingAddres, _order$shippingAddres2, _order$shippingAddres3, _order$shippingAddres4, _order$shippingAddres5, _order$shippingAddres6, _order$lineItemsCount;
|
25
|
+
var _order$shippings, _shipping$deliveries, _shipping$deliveries$, _order$shippingAddres, _order$shippingAddres2, _order$shippingAddres3, _order$shippingAddres4, _order$shippingAddres5, _order$shippingAddres6, _order$lineItemsCount, _order$customLineItem;
|
22
26
|
|
23
27
|
var shipping = order == null ? void 0 : (_order$shippings = order.shippings) == null ? void 0 : _order$shippings[0];
|
24
28
|
var parcels = shipping == null ? void 0 : (_shipping$deliveries = shipping.deliveries) == null ? void 0 : (_shipping$deliveries$ = _shipping$deliveries[0]) == null ? void 0 : _shipping$deliveries$.parcels;
|
@@ -30,10 +34,17 @@ var useOrder = function useOrder(_ref) {
|
|
30
34
|
orderRefNumber: order == null ? void 0 : order.orderRefNumber,
|
31
35
|
createdAt: order == null ? void 0 : order.createdAt,
|
32
36
|
discountCodes: mapDiscountCodes(order == null ? void 0 : order.discountCodes),
|
37
|
+
customLineItems: order == null ? void 0 : (_order$customLineItem = order.customLineItems) == null ? void 0 : _order$customLineItem.map(function (customLineItem) {
|
38
|
+
return (0, _extends2["default"])({}, customLineItem, {
|
39
|
+
name: (0, _index.getTranslatableField)(customLineItem.name)
|
40
|
+
});
|
41
|
+
}),
|
42
|
+
shippingAddress: order == null ? void 0 : order.shippingAddress,
|
33
43
|
shippingMethod: {
|
34
44
|
isOffice: isShippingMethodOffice,
|
35
45
|
isAddress: isShippingMethodOffice ? false : true
|
36
46
|
},
|
47
|
+
billingAddress: order == null ? void 0 : order.billingAddress,
|
37
48
|
trackingData: mapTrackingData(parcels)
|
38
49
|
};
|
39
50
|
return orderData;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../../src/hooks/order-hooks/useOrder/index.ts"],"names":["useOrder","data","id","orderQuery","myOrdersApi","useGetById","order","result","React","useMemo","shipping","shippings","parcels","deliveries","isShippingMethodOffice","Boolean","shippingAddress","moduleData","address","office","orderData","lineItems","lineItemsCount","status","orderRefNumber","createdAt","discountCodes","mapDiscountCodes","shippingMethod","isOffice","isAddress","
|
1
|
+
{"version":3,"sources":["../../../../../src/hooks/order-hooks/useOrder/index.ts"],"names":["useOrder","data","id","orderQuery","myOrdersApi","useGetById","order","result","React","useMemo","shipping","shippings","parcels","deliveries","isShippingMethodOffice","Boolean","shippingAddress","moduleData","address","office","orderData","lineItems","lineItemsCount","status","orderRefNumber","createdAt","discountCodes","mapDiscountCodes","customLineItems","map","customLineItem","name","shippingMethod","isOffice","isAddress","billingAddress","trackingData","mapTrackingData","parcel","courierName","provider","trackingId","trackingUrl","providerMeta","trackUrl","codes","codeNames","filter","code","discountCode","resource","value"],"mappings":"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","sourcesContent":["import React from 'react'\nimport {\n DiscountCodeInfoDTO,\n LineItemDTO,\n OrderDTO,\n OrderDTOStatusEnum,\n ShippingDeliveryParcelDTO,\n CustomLineItemDTO,\n AddressDTO,\n} from '@sentecacommerce/sdk'\n\nimport { getTranslatableField } from '../../../index'\nimport { myOrdersApi } from '../../../api/myOrdersApi'\n\ntype TrackingProp = {\n provider?: string\n trackingId?: string\n trackingUrl?: string\n}\n\nexport type MappedCustomLineItemDTO = CustomLineItemDTO & {\n name: string\n}\n\ntype UseOrderProps = {\n lineItems?: LineItemDTO[]\n lineItemsCount: number\n createdAt?: number\n orderRefNumber?: string\n status?: OrderDTOStatusEnum\n discountCodes?: string[]\n shippingMethod: {\n isOffice: boolean\n isAddress: boolean\n }\n trackingData: TrackingProp[]\n customLineItems?: MappedCustomLineItemDTO[]\n shippingAddress: AddressDTO\n billingAddress?: AddressDTO\n}\n\nexport const useOrder = ({\n data,\n id,\n}: {\n data?: OrderDTO\n id?: string\n}): UseOrderProps => {\n const orderQuery = myOrdersApi.useGetById(id)\n\n const order = data || orderQuery.data\n\n const result = React.useMemo(() => {\n const shipping = order?.shippings?.[0]\n const parcels = shipping?.deliveries?.[0]?.parcels\n\n const isShippingMethodOffice = Boolean(\n order?.shippingAddress?.moduleData?.[0]?.moduleData?.address?.office\n ?.address\n )\n\n const orderData: UseOrderProps = {\n lineItems: order?.lineItems,\n lineItemsCount: order?.lineItemsCount ?? 0,\n status: order?.status,\n orderRefNumber: order?.orderRefNumber,\n createdAt: order?.createdAt,\n discountCodes: mapDiscountCodes(order?.discountCodes),\n customLineItems: order?.customLineItems?.map((customLineItem) => {\n return {\n ...customLineItem,\n name: getTranslatableField(customLineItem.name),\n } as MappedCustomLineItemDTO\n }),\n shippingAddress: order?.shippingAddress as AddressDTO,\n\n shippingMethod: {\n isOffice: isShippingMethodOffice,\n isAddress: isShippingMethodOffice ? false : true,\n },\n billingAddress: order?.billingAddress,\n\n trackingData: mapTrackingData(parcels),\n }\n return orderData\n }, [order])\n\n return result\n}\n\nfunction mapTrackingData(parcels?: ShippingDeliveryParcelDTO[]) {\n return (\n parcels?.map((parcel) => {\n return {\n courierName: parcel?.moduleData?.trackingData?.provider,\n trackingId: parcel?.moduleData?.trackingData?.trackingId,\n trackingUrl: parcel?.moduleData?.providerMeta?.trackUrl,\n }\n }) || []\n )\n}\n\nfunction mapDiscountCodes(codes?: DiscountCodeInfoDTO[]) {\n const codeNames = codes?.filter((code) => code.status !== 'NotValid')\n\n return codeNames?.map((code) => {\n return code.discountCode.resource.name[0].value\n })\n}\n"],"file":"index.js"}
|
@@ -9,11 +9,16 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
9
9
|
|
10
10
|
var _react = require("react");
|
11
11
|
|
12
|
-
var useCheckoutShippingModule = function useCheckoutShippingModule(orderQuery) {
|
12
|
+
var useCheckoutShippingModule = function useCheckoutShippingModule(orderQuery, isEnabled) {
|
13
|
+
if (isEnabled === void 0) {
|
14
|
+
isEnabled = true;
|
15
|
+
}
|
16
|
+
|
13
17
|
var cartData = orderQuery.data;
|
14
18
|
return (0, _react.useMemo)(function () {
|
15
19
|
var _cartData$shippings;
|
16
20
|
|
21
|
+
if (!isEnabled) return;
|
17
22
|
var shipping = cartData == null ? void 0 : (_cartData$shippings = cartData.shippings) == null ? void 0 : _cartData$shippings[0];
|
18
23
|
return {
|
19
24
|
moduleKey: shipping == null ? void 0 : shipping.moduleKey,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/hooks/useCheckoutShippingModule/index.tsx"],"names":["useCheckoutShippingModule","orderQuery","cartData","data","shipping","shippings","moduleKey","moduleData","methodKey","moduleMethodKey"],"mappings":";;;;;;;;;AACA;;AAGO,IAAMA,yBAAyB,GAAG,SAA5BA,yBAA4B,CACvCC,UADuC,
|
1
|
+
{"version":3,"sources":["../../../../src/hooks/useCheckoutShippingModule/index.tsx"],"names":["useCheckoutShippingModule","orderQuery","isEnabled","cartData","data","shipping","shippings","moduleKey","moduleData","methodKey","moduleMethodKey"],"mappings":";;;;;;;;;AACA;;AAGO,IAAMA,yBAAyB,GAAG,SAA5BA,yBAA4B,CACvCC,UADuC,EAEvCC,SAFuC,EAGpB;AAAA,MADnBA,SACmB;AADnBA,IAAAA,SACmB,GADP,IACO;AAAA;;AAAA,MACLC,QADK,GACQF,UADR,CACXG,IADW;AAGnB,SAAO,oBAAQ,YAAM;AAAA;;AACnB,QAAI,CAACF,SAAL,EAAgB;AAEhB,QAAMG,QAAQ,GAAGF,QAAH,2CAAGA,QAAQ,CAAEG,SAAb,qBAAG,oBAAsB,CAAtB,CAAjB;AAEA,WAAO;AACLC,MAAAA,SAAS,EAAEF,QAAF,oBAAEA,QAAQ,CAAEE,SADhB;AAELC,MAAAA,UAAU,gCACLH,QADK,oBACLA,QAAQ,CAAEG,UADL;AAERC,QAAAA,SAAS,EAAEJ,QAAF,oBAAEA,QAAQ,CAAEK;AAFb;AAFL,KAAP;AAOD,GAZM,EAYJ,CAACP,QAAD,CAZI,CAAP;AAaD,CAnBM","sourcesContent":["import { OrderDTO } from '@sentecacommerce/sdk'\nimport { useMemo } from 'react'\nimport { QueryResult } from 'react-query'\n\nexport const useCheckoutShippingModule = (\n orderQuery: QueryResult<OrderDTO, unknown>,\n isEnabled = true\n): ShippingModule => {\n const { data: cartData } = orderQuery\n\n return useMemo(() => {\n if (!isEnabled) return\n\n const shipping = cartData?.shippings?.[0]\n\n return {\n moduleKey: shipping?.moduleKey,\n moduleData: {\n ...shipping?.moduleData,\n methodKey: shipping?.moduleMethodKey,\n },\n }\n }, [cartData])\n}\n\nexport type ShippingModule =\n | {\n moduleKey?: string\n moduleData?: any\n }\n | undefined\n"],"file":"index.js"}
|
@@ -14,15 +14,15 @@ var _sdk = require("@sentecacommerce/sdk");
|
|
14
14
|
var _ = require("../../../");
|
15
15
|
|
16
16
|
var generateAnonymousToken = /*#__PURE__*/function () {
|
17
|
-
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(
|
17
|
+
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
18
18
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
19
19
|
while (1) {
|
20
20
|
switch (_context.prev = _context.next) {
|
21
21
|
case 0:
|
22
22
|
if (!_sdk.HttpClient.defaultConfig) {
|
23
23
|
(0, _.prefetchSDKConfig)({
|
24
|
-
interfaceKey:
|
25
|
-
storeKey:
|
24
|
+
interfaceKey: process.env.DEFAULT_INTERFACE_KEY,
|
25
|
+
storeKey: process.env.STORE
|
26
26
|
});
|
27
27
|
}
|
28
28
|
|
@@ -39,7 +39,7 @@ var generateAnonymousToken = /*#__PURE__*/function () {
|
|
39
39
|
}, _callee);
|
40
40
|
}));
|
41
41
|
|
42
|
-
return function generateAnonymousToken(
|
42
|
+
return function generateAnonymousToken() {
|
43
43
|
return _ref.apply(this, arguments);
|
44
44
|
};
|
45
45
|
}();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../../src/user/api/utils/generateAnonymousToken.ts"],"names":["generateAnonymousToken","
|
1
|
+
{"version":3,"sources":["../../../../../src/user/api/utils/generateAnonymousToken.ts"],"names":["generateAnonymousToken","HttpClient","defaultConfig","interfaceKey","process","env","DEFAULT_INTERFACE_KEY","storeKey","STORE","grantType","TokenRequestDTOGrantTypeEnum","Implicit","anonymousId"],"mappings":";;;;;;;;;;;AAAA;;AAKA;;AAEO,IAAMA,sBAAsB;AAAA,2FAAG;AAAA;AAAA;AAAA;AAAA;AACpC,gBAAI,CAACC,gBAAWC,aAAhB,EAA+B;AAC7B,uCAAkB;AAChBC,gBAAAA,YAAY,EAAEC,OAAO,CAACC,GAAR,CAAYC,qBADV;AAEhBC,gBAAAA,QAAQ,EAAEH,OAAO,CAACC,GAAR,CAAYG;AAFN,eAAlB;AAID;;AANmC,6CAQ7B,mCACL,EADK,EAEL;AACEC,cAAAA,SAAS,EAAEC,kCAA6BC,QAD1C;AAEEC,cAAAA,WAAW,EAAE;AAFf,aAFK,CAR6B;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAH;;AAAA,kBAAtBZ,sBAAsB;AAAA;AAAA;AAAA,GAA5B","sourcesContent":["import {\n AuthCreateAnonymousToken,\n TokenRequestDTOGrantTypeEnum,\n HttpClient,\n} from '@sentecacommerce/sdk'\nimport { generateGuid, prefetchSDKConfig } from '../../../'\n\nexport const generateAnonymousToken = async () => {\n if (!HttpClient.defaultConfig) {\n prefetchSDKConfig({\n interfaceKey: process.env.DEFAULT_INTERFACE_KEY as string,\n storeKey: process.env.STORE as string,\n })\n }\n\n return AuthCreateAnonymousToken(\n {},\n {\n grantType: TokenRequestDTOGrantTypeEnum.Implicit,\n anonymousId: generateGuid(),\n }\n )\n}\n"],"file":"generateAnonymousToken.js"}
|
@@ -16,7 +16,9 @@ export var useBilling = (_ref) => {
|
|
16
16
|
withPersistBeforePageLeave,
|
17
17
|
countryCode,
|
18
18
|
validateBillingAddress,
|
19
|
-
enabled
|
19
|
+
enabled,
|
20
|
+
requiredFields,
|
21
|
+
requiredFieldsOnShipping
|
20
22
|
} = _ref;
|
21
23
|
var emptyBillingAddress = useMemo(() => {
|
22
24
|
return {
|
@@ -45,7 +47,7 @@ export var useBilling = (_ref) => {
|
|
45
47
|
handleBillingAddressChange
|
46
48
|
});
|
47
49
|
var billingAddressErrors = useMemo(() => {
|
48
|
-
return billingAddress && validateBillingAddress(billingAddress, errorLabels);
|
50
|
+
return billingAddress && validateBillingAddress(billingAddress, errorLabels, requiredFields, requiredFieldsOnShipping);
|
49
51
|
}, [billingAddress, errorLabels, validateBillingAddress]);
|
50
52
|
/**
|
51
53
|
* On input change with nested fields support
|
@@ -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","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}: 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 billingAddress && validateBillingAddress(billingAddress, errorLabels)\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 validateBillingAddress: (\n address: AddressDTO,\n errors: CheckoutFormErrorLabelsType\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"}
|
@@ -23,7 +23,9 @@ export var useShipping = (_ref) => {
|
|
23
23
|
autofillShippingPersonalData,
|
24
24
|
userQuery,
|
25
25
|
enabled,
|
26
|
-
countryCode
|
26
|
+
countryCode,
|
27
|
+
requiredFields,
|
28
|
+
enableNoShippingMethodMode
|
27
29
|
} = _ref;
|
28
30
|
var [isShippingSubmitting, setIsShippingSubmitting] = useState(false);
|
29
31
|
var [saveAddress] = addressesApi.useAdd({});
|
@@ -32,7 +34,7 @@ export var useShipping = (_ref) => {
|
|
32
34
|
currentShippingAddress: savedShippingAddress
|
33
35
|
} = useCheckoutShippingAddress(orderQuery);
|
34
36
|
var [shippingAddress, setShippingAddress] = useState();
|
35
|
-
var mod = useCheckoutShippingModule(orderQuery);
|
37
|
+
var mod = useCheckoutShippingModule(orderQuery, !enableNoShippingMethodMode);
|
36
38
|
var {
|
37
39
|
savedAddressList,
|
38
40
|
hasAvailableSavedAddress
|
@@ -46,19 +48,19 @@ export var useShipping = (_ref) => {
|
|
46
48
|
var _mod$moduleData, _moduleAddress$city, _moduleAddress$quarte, _moduleAddress$street, _moduleAddress$city$p, _moduleAddress$city2;
|
47
49
|
|
48
50
|
if (!shippingAddress) return;
|
49
|
-
var moduleAddress = (_mod$moduleData = mod.moduleData) == null ? void 0 : _mod$moduleData.address;
|
51
|
+
var moduleAddress = mod == null ? void 0 : (_mod$moduleData = mod.moduleData) == null ? void 0 : _mod$moduleData.address;
|
50
52
|
return _extends({}, shippingAddress, {
|
51
53
|
city: (moduleAddress == null ? void 0 : (_moduleAddress$city = moduleAddress.city) == null ? void 0 : _moduleAddress$city.name) || shippingAddress.city,
|
52
54
|
quarter: (moduleAddress == null ? void 0 : (_moduleAddress$quarte = moduleAddress.quarter) == null ? void 0 : _moduleAddress$quarte.name) || shippingAddress.quarter,
|
53
55
|
streetName: (moduleAddress == null ? void 0 : (_moduleAddress$street = moduleAddress.street) == null ? void 0 : _moduleAddress$street.name) || shippingAddress.streetName,
|
54
56
|
postalCode: ((_moduleAddress$city$p = moduleAddress == null ? void 0 : (_moduleAddress$city2 = moduleAddress.city) == null ? void 0 : _moduleAddress$city2.postCode) != null ? _moduleAddress$city$p : '') || shippingAddress.postalCode,
|
55
57
|
moduleData: [{
|
56
|
-
moduleKey: mod.moduleKey,
|
57
|
-
moduleData: _extends({}, mod.moduleData)
|
58
|
+
moduleKey: mod == null ? void 0 : mod.moduleKey,
|
59
|
+
moduleData: _extends({}, mod == null ? void 0 : mod.moduleData)
|
58
60
|
}]
|
59
61
|
});
|
60
62
|
}, [shippingAddress, mod]);
|
61
|
-
var addressErrors = useMemo(() => validateShipping(shippingAddressWithModule, mod, errorLabels, validations), [shippingAddressWithModule, mod, errorLabels, validations]);
|
63
|
+
var addressErrors = useMemo(() => validateShipping(shippingAddressWithModule, mod, errorLabels, validations, requiredFields, enableNoShippingMethodMode), [shippingAddressWithModule, mod, errorLabels, validations]);
|
62
64
|
/**
|
63
65
|
* Save the current address
|
64
66
|
*/
|
@@ -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","isShippingSubmitting","setIsShippingSubmitting","saveAddress","useAdd","handleShippingAddressChange","currentShippingAddress","savedShippingAddress","shippingAddress","setShippingAddress","mod","savedAddressList","hasAvailableSavedAddress","selectedShippingAddress","shippingAddressWithModule","moduleAddress","moduleData","address","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}: 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)\n\n const { savedAddressList, hasAvailableSavedAddress } = useSavedShippingList({\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 return {\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 moduleData: [\n {\n moduleKey: mod.moduleKey as string,\n moduleData: {\n ...mod.moduleData,\n },\n },\n ],\n }\n }, [shippingAddress, mod])\n\n const addressErrors = useMemo(\n () =>\n validateShipping(\n shippingAddressWithModule,\n mod,\n errorLabels,\n validations\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}\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","selectedShippingAddress","shippingAddressWithModule","moduleAddress","moduleData","address","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 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 return {\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 moduleData: [\n {\n moduleKey: mod?.moduleKey as string,\n moduleData: {\n ...mod?.moduleData,\n },\n },\n ],\n }\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"}
|
@@ -37,7 +37,10 @@ export function CheckoutFormContextProvider(_ref) {
|
|
37
37
|
onSuccess,
|
38
38
|
onError: _onError,
|
39
39
|
isBoricaInDevMode,
|
40
|
-
withPixelMeta = false
|
40
|
+
withPixelMeta = false,
|
41
|
+
requiredFieldsOnShippingStep = ['firstName', 'lastName', 'email', 'phoneNumber'],
|
42
|
+
requiredFieldsOnBillingAddressStep = ['city', 'postalCode', 'streetName'],
|
43
|
+
enableNoShippingMethodMode = false
|
41
44
|
} = _ref;
|
42
45
|
var orderQuery = myCartApi.useGet();
|
43
46
|
var [boricaData, setBoricaData] = useState(null);
|
@@ -91,20 +94,19 @@ export function CheckoutFormContextProvider(_ref) {
|
|
91
94
|
autofillShippingPersonalData: Boolean(isAuthenticated && autofillShippingPersonalData),
|
92
95
|
userQuery,
|
93
96
|
enabled: isShippingEnabled,
|
94
|
-
countryCode
|
97
|
+
countryCode,
|
98
|
+
requiredFields: requiredFieldsOnShippingStep,
|
99
|
+
enableNoShippingMethodMode
|
95
100
|
});
|
96
|
-
var
|
97
|
-
moduleKey,
|
98
|
-
moduleData
|
99
|
-
} = useCheckoutShippingModule(orderQuery);
|
101
|
+
var mod = useCheckoutShippingModule(orderQuery, !enableNoShippingMethodMode);
|
100
102
|
|
101
103
|
var getIsPaymentMethodsEnabled = () => {
|
102
104
|
if (paymentEnabledOnStep) {
|
103
105
|
return paymentEnabledOnStep === step;
|
104
106
|
}
|
105
107
|
|
106
|
-
if (getPaymentMethodsWhenShippingMethodIsSelected) {
|
107
|
-
return Boolean(moduleKey && moduleData.methodKey);
|
108
|
+
if (!enableNoShippingMethodMode && getPaymentMethodsWhenShippingMethodIsSelected) {
|
109
|
+
return Boolean((mod == null ? void 0 : mod.moduleKey) && (mod == null ? void 0 : mod.moduleData.methodKey));
|
108
110
|
}
|
109
111
|
|
110
112
|
return false;
|
@@ -123,7 +125,9 @@ export function CheckoutFormContextProvider(_ref) {
|
|
123
125
|
withSavedBillingAddressList: Boolean(isAuthenticated && enableSavedBillingAddressList),
|
124
126
|
withPersistBeforePageLeave: !isRedirecting && withPersistBeforePageLeave,
|
125
127
|
countryCode,
|
126
|
-
enabled: billingEnabledOnStep === step
|
128
|
+
enabled: billingEnabledOnStep === step,
|
129
|
+
requiredFields: requiredFieldsOnBillingAddressStep,
|
130
|
+
requiredFieldsOnShipping: requiredFieldsOnShippingStep
|
127
131
|
});
|
128
132
|
|
129
133
|
var onBeforeBoricaRedirect = data => {
|