UNPKG

@atlas-kitchen/adyen-web

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