UNPKG

@commercelayer/react-components

Version:
2 lines 2.37 kB
"use client"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PaymentMethodRadioButton=PaymentMethodRadioButton;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),PaymentMethodChildrenContext_1=tslib_1.__importDefault(require("../../context/PaymentMethodChildrenContext")),Parent_1=tslib_1.__importDefault(require("../utils/Parent")),PaymentMethodContext_1=tslib_1.__importDefault(require("../../context/PaymentMethodContext")),OrderContext_1=tslib_1.__importDefault(require("../../context/OrderContext")),useCustomContext_1=tslib_1.__importDefault(require("../../utils/hooks/useCustomContext")),PlaceOrderContext_1=tslib_1.__importDefault(require("../../context/PlaceOrderContext"));function PaymentMethodRadioButton(props){var _a;const{onChange}=props,p=tslib_1.__rest(props,["onChange"]),{payment,paymentSelected,setPaymentSelected,clickableContainer}=(0,useCustomContext_1.default)({context:PaymentMethodChildrenContext_1.default,contextComponentName:"PaymentMethod",currentComponentName:"PaymentMethodRadioButton",key:"payment"}),{order}=(0,react_1.useContext)(OrderContext_1.default),{setPaymentMethod,setLoading}=(0,react_1.useContext)(PaymentMethodContext_1.default),{status}=(0,react_1.useContext)(PlaceOrderContext_1.default),[disabled,setDisabled]=(0,react_1.useState)(!1),orderId=order?.id||"",paymentResource=payment?.payment_source_type,paymentMethodId=(_a=payment?.id)!==null&&_a!==void 0?_a:"",name=`payment-${orderId}`,checked=paymentSelected===payment?.id;(0,react_1.useEffect)(()=>{setDisabled(status==="placing")},[status]);const handleOnChange=e=>tslib_1.__awaiter(this,void 0,void 0,function*(){if(e.stopPropagation(),!checked){if(setPaymentSelected&&setPaymentSelected(paymentMethodId),setLoading({loading:!0}),!clickableContainer){const{order:order2}=yield setPaymentMethod({paymentResource,paymentMethodId});onChange&&onChange({payment,order:order2})}setLoading({loading:!1})}}),id=payment?.payment_source_type,parentProps=Object.assign({handleOnChange,checked,id,name,disabled},props);return props.children?(0,jsx_runtime_1.jsx)(Parent_1.default,Object.assign({},parentProps,{children:props.children})):(0,jsx_runtime_1.jsx)("input",Object.assign({title:name,type:"radio",id,onChange:e=>{handleOnChange(e)},checked,disabled},p))}exports.default=PaymentMethodRadioButton;