UNPKG

@commercelayer/react-components

Version:
2 lines 2.48 kB
"use client"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.GiftCardOrCouponForm=GiftCardOrCouponForm;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),rapid_form_1=require("rapid-form"),react_1=require("react"),CouponAndGiftCardFormContext_1=tslib_1.__importDefault(require("../../context/CouponAndGiftCardFormContext")),OrderContext_1=tslib_1.__importDefault(require("../../context/OrderContext"));function GiftCardOrCouponForm(props){const{children,codeType,autoComplete="on",onSubmit}=props,p=tslib_1.__rest(props,["children","codeType","autoComplete","onSubmit"]),{validation,values,reset}=(0,rapid_form_1.useRapidForm)(),{setGiftCardOrCouponCode,order,errors,setOrderErrors}=(0,react_1.useContext)(OrderContext_1.default),ref=(0,react_1.useRef)(null),[type,setType]=(0,react_1.useState)(codeType);(0,react_1.useEffect)(()=>{var _a,_b,_c,_d;if(type!=null&&((_a=values[type])===null||_a===void 0?void 0:_a.value)===""&&errors!=null&&errors.length>0){const err=errors.filter(e=>e.field===type);setOrderErrors(err),onSubmit&&onSubmit({value:(_b=values[type])===null||_b===void 0?void 0:_b.value,success:!1})}type!=null&&((_c=values[type])===null||_c===void 0?void 0:_c.value)===""&&(setOrderErrors([]),onSubmit&&onSubmit({value:(_d=values[type])===null||_d===void 0?void 0:_d.value,success:!1}))},[values]),(0,react_1.useEffect)(()=>{codeType==null?(order?.gift_card_code&&!order?.coupon_code&&setType("coupon_code"),!order?.gift_card_code&&order?.coupon_code&&setType("gift_card_code"),!order?.gift_card_code&&!order?.coupon_code&&setType("gift_card_or_coupon_code")):setType(codeType)},[order]);const handleSubmit=e=>tslib_1.__awaiter(this,void 0,void 0,function*(){var _a;e.preventDefault();const code=type!=null&&values[type]!=null?values[type].value:void 0;if(code!=null&&setGiftCardOrCouponCode!=null&&type!=null){const{success,order:order2}=yield setGiftCardOrCouponCode({code,codeType:type}),value=(_a=values[type])===null||_a===void 0?void 0:_a.value;onSubmit&&onSubmit({success,value,order:order2}),success&&reset(e)}});return codeType!=null&&order?.[codeType]!=null&&order?.[codeType]!==""||order?.gift_card_code&&order?.coupon_code||order==null?null:(0,jsx_runtime_1.jsx)(CouponAndGiftCardFormContext_1.default.Provider,{value:{validation,codeType:type},children:(0,jsx_runtime_1.jsx)("form",Object.assign({ref,autoComplete,onSubmit:e=>{handleSubmit(e)}},p,{children}))})}exports.default=GiftCardOrCouponForm;