UNPKG

@commercelayer/react-components

Version:
2 lines 3.08 kB
"use client"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PlaceOrderContainer=PlaceOrderContainer;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),PlaceOrderContext_1=tslib_1.__importDefault(require("../../context/PlaceOrderContext")),react_1=require("react"),PlaceOrderReducer_1=tslib_1.__importStar(require("../../reducers/PlaceOrderReducer")),OrderContext_1=tslib_1.__importDefault(require("../../context/OrderContext")),CommerceLayerContext_1=tslib_1.__importDefault(require("../../context/CommerceLayerContext")),PlaceOrderReducer_2=require("../../reducers/PlaceOrderReducer"),useCustomContext_1=tslib_1.__importDefault(require("../../utils/hooks/useCustomContext"));function PlaceOrderContainer(props){const{children,options}=props,[state,dispatch]=(0,react_1.useReducer)(PlaceOrderReducer_1.default,PlaceOrderReducer_1.placeOrderInitialState),{order,setOrder,setOrderErrors,include,addResourceToInclude,includeLoaded}=(0,useCustomContext_1.default)({context:OrderContext_1.default,contextComponentName:"OrderContainer",currentComponentName:"PlaceOrderContainer",key:"order"}),config=(0,react_1.useContext)(CommerceLayerContext_1.default);(0,react_1.useEffect)(()=>{include?.includes("shipments.available_shipping_methods")?includeLoaded?.["shipments.available_shipping_methods"]||addResourceToInclude({newResourceLoaded:{"shipments.available_shipping_methods":!0,"shipments.stock_line_items.line_item":!0,"shipments.shipping_method":!0,"shipments.stock_transfers.line_item":!0,"shipments.stock_location":!0}}):addResourceToInclude({newResource:["shipments.available_shipping_methods","shipments.stock_line_items.line_item","shipments.shipping_method","shipments.stock_transfers.line_item","shipments.stock_location"]}),include?.includes("billing_address")?includeLoaded?.billing_address||addResourceToInclude({newResourceLoaded:{billing_address:!0}}):addResourceToInclude({newResource:"billing_address"}),include?.includes("shipping_address")?includeLoaded?.shipping_address||addResourceToInclude({newResourceLoaded:{shipping_address:!0}}):addResourceToInclude({newResource:"shipping_address",resourcesIncluded:include}),order&&(0,PlaceOrderReducer_1.placeOrderPermitted)({config,dispatch,order,options:Object.assign({},options)})},[order,include,includeLoaded]);const contextValue=Object.assign(Object.assign({},state),{setPlaceOrder:_a=>tslib_1.__awaiter(this,[_a],void 0,function*({paymentSource,currentCustomerPaymentSourceId}){return yield(0,PlaceOrderReducer_2.setPlaceOrder)({config,order,state,setOrderErrors,paymentSource,include,setOrder,currentCustomerPaymentSourceId})}),setPlaceOrderStatus:({status})=>{(0,PlaceOrderReducer_1.setPlaceOrderStatus)({status,dispatch})},placeOrderPermitted:()=>{(0,PlaceOrderReducer_1.placeOrderPermitted)({config,dispatch,order,options:Object.assign({},options)})},setButtonRef:ref=>{(0,PlaceOrderReducer_1.setButtonRef)(ref,dispatch)}});return(0,jsx_runtime_1.jsx)(PlaceOrderContext_1.default.Provider,{value:contextValue,children})}exports.default=PlaceOrderContainer;