@commercelayer/react-components
Version:
The Official Commerce Layer React Components
2 lines • 2.19 kB
JavaScript
"use client";
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.AddressesContainer=AddressesContainer;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),AddressContext_1=tslib_1.__importStar(require("../../context/AddressContext")),CommerceLayerContext_1=tslib_1.__importDefault(require("../../context/CommerceLayerContext")),OrderContext_1=tslib_1.__importDefault(require("../../context/OrderContext")),AddressReducer_1=tslib_1.__importStar(require("../../reducers/AddressReducer")),localStorage_1=require("../../utils/localStorage");function AddressesContainer(props){const{children,shipToDifferentAddress=!1,isBusiness,invertAddresses=!1}=props,[state,dispatch]=(0,react_1.useReducer)(AddressReducer_1.default,AddressReducer_1.addressInitialState),{order,orderId,updateOrder}=(0,react_1.useContext)(OrderContext_1.default),config=(0,react_1.useContext)(CommerceLayerContext_1.default);(0,react_1.useEffect)(()=>{order?.status==="draft"&&((0,localStorage_1.setCustomerOrderParam)("_save_billing_address_to_customer_address_book","false"),(0,localStorage_1.setCustomerOrderParam)("_save_shipping_address_to_customer_address_book","false"))},[order?.status]),(0,react_1.useEffect)(()=>(dispatch({type:"setShipToDifferentAddress",payload:{shipToDifferentAddress,isBusiness,invertAddresses}}),()=>{dispatch({type:"cleanup",payload:{}})}),[shipToDifferentAddress,isBusiness,invertAddresses]);const contextValue=Object.assign(Object.assign({},state),{setAddressErrors:(errors,resource)=>{(0,AddressReducer_1.setAddressErrors)({errors,resource,dispatch,currentErrors:state.errors})},setAddress:params=>{AddressContext_1.defaultAddressContext.setAddress(Object.assign(Object.assign({},params),{dispatch}))},saveAddresses:params=>tslib_1.__awaiter(this,void 0,void 0,function*(){return yield(0,AddressReducer_1.saveAddresses)(Object.assign({config,dispatch,updateOrder,order,orderId,state},params))}),setCloneAddress:(id,resource)=>{(0,AddressReducer_1.setCloneAddress)(id,resource,dispatch)}});return(0,jsx_runtime_1.jsx)(AddressContext_1.default.Provider,{value:contextValue,children})}exports.default=AddressesContainer;