UNPKG

@atlas-kitchen/adyen-web

Version:
3 lines (2 loc) 2.46 kB
import{useState as e,useMemo as s,useEffect as o}from"../../../external/preact/hooks/dist/hooks.js";import{enhanceErrorObjectKeys as r}from"../../../core/Errors/utils.js";import{COMPANY_DETAILS_SCHEMA as t}from"../CompanyDetails/CompanyDetails.js";import{PERSONAL_DETAILS_SCHEMA as i}from"../PersonalDetails/PersonalDetails.js";import{ERROR_ACTION_BLUR_SCENARIO as l,ERROR_ACTION_FOCUS_FIELD as a}from"../../../core/Errors/constants.js";import c from"../../../core/Errors/useSRPanelContext.js";import n from"../Address/Specifications.js";import{setFocusOnField as d}from"../../../utils/setFocus.js";import{usePrevious as u}from"../../../utils/hookUtils.js";import{getArrayDifferences as p}from"../../../utils/arrayUtils.js";import{mapFieldKey as f}from"./utils.js";const m=({errors:m,data:y,props:b,isValidating:j})=>{const[F,g]=e(null),A=u(F),{setSRMessagesFromObjects:h,setSRMessagesFromStrings:S,clearSRPanel:k,shouldMoveFocusSR:C}=c(),v=h?.({fieldTypeMappingFn:f}),D=s((()=>new n),[]),T=s((()=>new n(b.deliveryAddressSpecification)),[]);o((()=>{try{const e="deliveryAddress:",s="billingAddress:",{companyDetails:o,personalDetails:c,bankAccount:n,billingAddress:u,deliveryAddress:f,...F}=m,h=r(u,s),E=r(f,e),M={..."object"==typeof o&&o,..."object"==typeof c&&c,..."object"==typeof n&&n,..."object"==typeof h&&h,..."object"==typeof E&&E,...F},R=t,$=b.personalDetailsRequiredFields??i,x=i.filter((e=>$?.includes(e))),L=["holder","iban"],P=D.getAddressSchemaForCountryFlat(y.billingAddress?.country).map((e=>`${s}${e}`)),_=T.getAddressSchemaForCountryFlat(y.deliveryAddress?.country).map((s=>`${e}${s}`)),w=R.concat(x,L,P,_,["consentCheckbox"]),U=D.getAddressLabelsForCountry(y.billingAddress?.country),V=T.getAddressLabelsForCountry(y.deliveryAddress?.country),q=v?.({errors:M,isValidating:j.current,layout:w,countrySpecificLabels:{...U,...V}}),B=q?.currentErrorsSortedByLayout;switch(g(B),q?.action){case a:{const e=q.fieldToFocus.includes(":")?q.fieldToFocus.split(":")[1]:q.fieldToFocus;let s="";const o=q.fieldToFocus.includes(":")?q.fieldToFocus.split(":")[0]:"";o.length&&(s=`.adyen-checkout__fieldset--${o} `),C&&d(".adyen-checkout__open-invoice",e,s),setTimeout((()=>{j.current=!1}),300);break}case l:{const e=p(B,A,"field"),s=e?.[0];if(s){const e="shopperEmail"===s.field&&"field.error.invalid"===s.errorCode?s.errorMessage:null;S(e)}else k();break}}}catch(e){}}),[m,y])};export{m as default}; //# sourceMappingURL=useSRPanelForOpenInvoiceErrors.js.map