UNPKG

@atlas-kitchen/adyen-web

Version:
3 lines (2 loc) 3.99 kB
import{createElement as e}from"../../../external/preact/dist/preact.js";import{useRef as s,useState as r,useEffect as o}from"../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as i}from"../../../core/Context/CoreProvider.js";import n from"../CompanyDetails/CompanyDetails.js";import t from"../PersonalDetails/PersonalDetails.js";import a from"../Address/Address.js";import l from"../FormFields/Checkbox/Checkbox.js";import d from"../FormFields/ConsentCheckbox/ConsentCheckbox.js";import{getInitialActiveFieldsets as c,fieldsetsSchema as m,getActiveFieldsData as p}from"./utils.js";import b from"../IbanInput/IbanInput.js";import u from"../FormFields/Field/Field.js";import y from"../FormInstruction/FormInstruction.js";import C from"./useSRPanelForOpenInvoiceErrors.js";import h from"../../../_virtual/index.js";const f={isValid:!1,errorMessage:"consent.checkbox.invalid",error:"consent.checkbox.invalid"};function A(A){const{countryCode:v,visibility:k}=A,{i18n:g}=i(),x=s({});Object.keys(x.current).length||A.setComponentRef?.(x.current);const D=s(!1),j=c(k,A.data),[F,w]=r(j),{current:R}=s(m.reduce(((e,s)=>(e[s]=e=>{R[s].current=e},e)),{})),E=!!A.consentCheckboxLabel,I=!E&&Object.keys(F).every((e=>!F[e])),S="editable"===k.deliveryAddress&&"hidden"!==k.billingAddress,[q,P]=r({...A.data,...E&&{consentCheckbox:!1}}),[V,M]=r({}),[N,_]=r({}),[O,L]=r("ready");x.current.showValidation=()=>{D.current=!0,m.forEach((e=>{R[e].current&&R[e].current.showValidation()})),M({...E&&{consentCheckbox:q.consentCheckbox?null:f}})},x.current.setStatus=L,C({errors:V,data:q,props:A,isValidating:D}),o((()=>{const e=Object.keys(F).every((e=>!F[e]||!!N[e])),s=!E||!!N.consentCheckbox,r=e&&s,o=p(F,q);A.onChange({data:o,errors:V,valid:N,isValid:r})}),[q,F]);const B=e=>s=>{P((r=>({...r,[e]:s.data}))),_((r=>({...r,[e]:s.isValid}))),M((r=>({...r,[e]:s.errors})))};return e("div",{className:h({"adyen-checkout__open-invoice":!0,"adyen-checkout__open-invoice--loading":"loading"===O})},e(y,null),F.companyDetails&&e(n,{data:A.data.companyDetails,label:"companyDetails",onChange:B("companyDetails"),setComponentRef:R.companyDetails,visibility:k.companyDetails}),F.personalDetails&&e(t,{data:A.data.personalDetails,requiredFields:A.personalDetailsRequiredFields,label:"personalDetails",onChange:B("personalDetails"),setComponentRef:R.personalDetails,visibility:k.personalDetails}),F.bankAccount&&e(b,{holderName:!0,label:"ach.bankAccount",data:q.bankAccount,onChange:B("bankAccount"),ref:R.bankAccount}),F.billingAddress&&e(a,{allowedCountries:A?.billingAddressSpecification?.allowedCountries??A.allowedCountries,countryCode:v,requiredFields:A.billingAddressRequiredFields,specifications:A.billingAddressSpecification,data:q.billingAddress,label:"billingAddress",onChange:B("billingAddress"),setComponentRef:R.billingAddress,visibility:k.billingAddress}),S&&e(u,{classNameModifiers:["separateDeliveryAddress","consentCheckbox"],name:"separateDeliveryAddress",useLabelElement:!1,showErrorElement:!1},e(l,{label:g.get("separateDeliveryAddress"),checked:F.deliveryAddress,classNameModifiers:["separateDeliveryAddress"],name:"separateDeliveryAddress",onChange:()=>{w((e=>({...e,deliveryAddress:!F.deliveryAddress})))}})),F.deliveryAddress&&e(a,{allowedCountries:A?.deliveryAddressSpecification?.allowedCountries??A.allowedCountries,countryCode:v,requiredFields:A.deliveryAddressRequiredFields,specifications:A.deliveryAddressSpecification,data:q.deliveryAddress,label:"deliveryAddress",onChange:B("deliveryAddress"),setComponentRef:R.deliveryAddress,visibility:k.deliveryAddress}),E&&e(d,{data:q,errorMessage:!!V.consentCheckbox,label:A.consentCheckboxLabel,onChange:e=>{const{checked:s}=e.target;P((e=>({...e,consentCheckbox:s}))),_((e=>({...e,consentCheckbox:s}))),M((e=>({...e,consentCheckbox:s?null:f})))},i18n:g}),A.showPayButton&&A.payButton({status:O,classNameModifiers:[...I?["standalone"]:[]],label:g.get("confirmPurchase")}))}export{A as default}; //# sourceMappingURL=OpenInvoice.js.map