@commercelayer/react-components
Version:
The Official Commerce Layer React Components
2 lines • 1.72 kB
JavaScript
"use client";
import{jsx as _jsx}from"react/jsx-runtime";import{useContext}from"react";import Parent from"../utils/Parent";import OrderContext from"../../context/OrderContext";import{manageGiftCard}from"../../utils/adyen/manageGiftCard";export function GiftCardOrCouponRemoveButton(props){const{children,label="Remove",onClick,type,...p}=props,{order,removeGiftCardOrCouponCode,managePaymentProviderGiftCards,paymentSourceRequest}=useContext(OrderContext);let codeType=type?`${type}_code`:void 0;!type&&order&&"coupon_code"in order&&order.coupon_code!==""?codeType="coupon_code":type||(codeType="gift_card_code");const code=order&&codeType?order[codeType]:"";let hide=!(order&&code);const handleClick=async()=>{if(managePaymentProviderGiftCards&&codeType==="gift_card_code"&&order!=null){const id=order?.payment_source?.id;if(id!=null){const res=await paymentSourceRequest({resource:"adyen_payments",requestType:"update",attributes:{id,payment_request_data:{}},order});onClick!=null&&res!=null&&onClick(res)}}else if(codeType!=null&&removeGiftCardOrCouponCode!=null){const response=await removeGiftCardOrCouponCode({codeType});onClick!=null&&response!=null&&onClick(response)}};if(managePaymentProviderGiftCards&&type==="gift_card"){if(!manageGiftCard({order}))return null;hide=!1;const parentProps2={...p,label,handleClick,codeType};return children?_jsx(Parent,{...parentProps2,children}):hide?null:_jsx("button",{type:"button",onClick:()=>{handleClick()},...p,children:label})}const parentProps={...p,label,handleClick,codeType};return children?_jsx(Parent,{...parentProps,children}):hide?null:_jsx("button",{type:"button",onClick:()=>{handleClick()},...p,children:label})}export default GiftCardOrCouponRemoveButton;