UNPKG

@adyen/adyen-web

Version:

[![npm](https://img.shields.io/npm/v/@adyen/adyen-web.svg)](https://www.npmjs.com/package/@adyen/adyen-web)

3 lines (2 loc) 3.38 kB
import{useState as e,useMemo as r,useEffect as o}from"../../../external/preact/hooks/dist/hooks.js";import{enhanceErrorObjectKeys as t}from"../../../core/Errors/utils.js";import{COMPANY_DETAILS_SCHEMA as s}from"../CompanyDetails/CompanyDetails.js";import{PERSONAL_DETAILS_SCHEMA as n}from"../PersonalDetails/PersonalDetails.js";import{ERROR_ACTION_BLUR_SCENARIO as i,ERROR_ACTION_FOCUS_FIELD as l}from"../../../core/Errors/constants.js";import a from"../../../core/Errors/useSRPanelContext.js";import c 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";function y(e,r,o){return r in e?Object.defineProperty(e,r,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[r]=o,e}function m(e){for(var r=1;r<arguments.length;r++){var o=null!=arguments[r]?arguments[r]:{},t=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(o).filter((function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable})))),t.forEach((function(r){y(e,r,o[r])}))}return e}function b(e,r){if(null==e)return{};var o,t,s=function(e,r){if(null==e)return{};var o,t,s={},n=Object.keys(e);for(t=0;t<n.length;t++)o=n[t],r.indexOf(o)>=0||(s[o]=e[o]);return s}(e,r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(t=0;t<n.length;t++)o=n[t],r.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(s[o]=e[o])}return s}const v=({errors:y,data:v,props:j,isValidating:g})=>{const[A,O]=e(null),S=u(A),{setSRMessagesFromObjects:h,setSRMessagesFromStrings:F,clearSRPanel:k,shouldMoveFocusSR:D}=a(),P=null==h?void 0:h({fieldTypeMappingFn:f}),w=r((()=>new c),[]),C=r((()=>new c(j.deliveryAddressSpecification)),[]);o((()=>{try{var e,r,o,a;const u="deliveryAddress:",f="billingAddress:",{companyDetails:A,personalDetails:h,bankAccount:E,billingAddress:x,deliveryAddress:M}=y,R=b(y,["companyDetails","personalDetails","bankAccount","billingAddress","deliveryAddress"]),L=t(x,f),$=t(M,u),T=m({},"object"==typeof A&&A,"object"==typeof h&&h,"object"==typeof E&&E,"object"==typeof L&&L,"object"==typeof $&&$,R),U=s;var c;const V=null!==(c=j.personalDetailsRequiredFields)&&void 0!==c?c:n,_=n.filter((e=>null==V?void 0:V.includes(e))),q=["holder","iban"],B=w.getAddressSchemaForCountryFlat(null===(e=v.billingAddress)||void 0===e?void 0:e.country).map((e=>`${f}${e}`)),I=C.getAddressSchemaForCountryFlat(null===(r=v.deliveryAddress)||void 0===r?void 0:r.country).map((e=>`${u}${e}`)),z=U.concat(_,q,B,I,["consentCheckbox"]),G=w.getAddressLabelsForCountry(null===(o=v.billingAddress)||void 0===o?void 0:o.country),H=C.getAddressLabelsForCountry(null===(a=v.deliveryAddress)||void 0===a?void 0:a.country),J=null==P?void 0:P({errors:T,isValidating:g.current,layout:z,countrySpecificLabels:m({},G,H)}),K=null==J?void 0:J.currentErrorsSortedByLayout;switch(O(K),null==J?void 0:J.action){case l:D&&d(".adyen-checkout__open-invoice",J.fieldToFocus),setTimeout((()=>{g.current=!1}),300);break;case i:{const e=p(K,S,"field"),r=null==e?void 0:e[0];if(r){const e="shopperEmail.invalid"===r.errorCode?r.errorMessage:null;F(e)}else k();break}}}catch(e){}}),[y,v])};export{v as default}; //# sourceMappingURL=useSRPanelForOpenInvoiceErrors.js.map