@commercelayer/react-components
Version:
The Official Commerce Layer React Components
2 lines • 1.88 kB
JavaScript
"use client";
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.BillingAddressContainer=BillingAddressContainer;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),BillingAddressContext_1=tslib_1.__importDefault(require("../../context/BillingAddressContext")),react_1=require("react"),BillingAddressReducer_1=tslib_1.__importStar(require("../../reducers/BillingAddressReducer")),CommerceLayerContext_1=tslib_1.__importDefault(require("../../context/CommerceLayerContext")),OrderContext_1=tslib_1.__importDefault(require("../../context/OrderContext")),AddressContext_1=tslib_1.__importDefault(require("../../context/AddressContext"));function BillingAddressContainer(props){const{children}=props,[state,dispatch]=(0,react_1.useReducer)(BillingAddressReducer_1.default,BillingAddressReducer_1.billingAddressInitialState),config=(0,react_1.useContext)(CommerceLayerContext_1.default),{order,include,addResourceToInclude}=(0,react_1.useContext)(OrderContext_1.default),{shipToDifferentAddress,setCloneAddress}=(0,react_1.useContext)(AddressContext_1.default);(0,react_1.useEffect)(()=>(include?.includes("billing_address")||addResourceToInclude({newResource:"billing_address",resourcesIncluded:include}),order&&config&&(0,BillingAddressReducer_1.setBillingCustomerAddressId)({dispatch,order,setCloneAddress}),()=>{dispatch({type:"cleanup",payload:{}})}),[order,include]);const contextValue=Object.assign(Object.assign({},state),{setBillingAddress:(id,options)=>tslib_1.__awaiter(this,void 0,void 0,function*(){yield(0,BillingAddressReducer_1.setBillingAddress)(id,{config,dispatch,order,shipToDifferentAddress,customerAddressId:options?.customerAddressId}),setCloneAddress(id,"billing_address")})});return(0,jsx_runtime_1.jsx)(BillingAddressContext_1.default.Provider,{value:contextValue,children})}exports.default=BillingAddressContainer;