UNPKG

@atlas-kitchen/adyen-web

Version:
3 lines (2 loc) 3.33 kB
import{createElement as e,Fragment as s}from"../../../external/preact/dist/preact.js";import{useState as t,useCallback as r,useRef as o,useEffect as i}from"../../../external/preact/hooks/dist/hooks.js";import a from"../../../utils/useForm/useForm.js";import n from"../FormFields/Field/Field.js";import l from"./IssuerButtonGroup/IssuerButtonGroup.js";import u from"../ContentSeparator/ContentSeparator.js";import{useCoreContext as m}from"../../../core/Context/CoreProvider.js";import c from"../../../core/Errors/useSRPanelContext.js";import{ERROR_ACTION_FOCUS_FIELD as d}from"../../../core/Errors/constants.js";import{setFocusOnField as g}from"../../../utils/setFocus.js";import h from"../DisclaimerMessage/DisclaimerMessage.js";import p from"../FormFields/Select/Select.js";import{ANALYTICS_LIST as f,ANALYTICS_FEATURED_ISSUER as y,ANALYTICS_SELECTED_STR as C,ANALYTICS_DISPLAYED_STR as j,ANALYTICS_SEARCH_DEBOUNCE_TIME as F,ANALYTICS_LIST_SEARCH as x,ANALYTICS_INPUT_STR as S}from"../../../core/Analytics/constants.js";import{debounce as _}from"../../../utils/debounce.js";import{AnalyticsInfoEvent as b}from"../../../core/Analytics/AnalyticsInfoEvent.js";const v=({issuer:e,items:s},t)=>{const r=s.find((s=>s.id===e))?.name;return e&&r?`${t.get("continueTo")} ${r}`:t.get("continue")},A=["issuer"],I={issuer:{validate:e=>!!e&&e.length>0,errorMessage:"issuerList.selectField.contextualText",modes:["blur"]}};function M({items:M,placeholder:k,issuer:w,highlightedIds:E=[],showContextualElement:V,contextualText:T,...B}){const{i18n:N}=m(),{handleChangeFor:P,triggerValidation:R,data:D,valid:L,errors:G,isValid:$}=a({schema:A,defaultData:{issuer:w},rules:I}),[K,O]=t("ready"),[q,z]=t(1),{setSRMessagesFromObjects:H,shouldMoveFocusSR:J}=c(),Q=H?.({});this.setStatus=e=>{O(e)};const U=r((e=>s=>{const t=1===e?f:y,r=M.find((e=>e.id===s.target.value)),o=new b({type:C,target:t,issuer:r.name});B.onSubmitAnalytics(o),z(e),P("issuer")(s)}),[P]),W=r((e=>{if(e){const e=new b({type:j,target:f});B.onSubmitAnalytics(e)}}),[]),X=o(_(B.onSubmitAnalytics,F)),Y=r((()=>{X.current({type:S,target:x})}),[]);i((()=>{B.onChange({data:D,valid:L,errors:G,isValid:$});const e=Q?.({errors:G,isValidating:!0});e?.action===d&&J&&g(".adyen-checkout__issuer-list","issuer-list")}),[D,L,G,$]),this.showValidation=()=>{R()};const{highlightedItems:Z}=M.reduce(((e,s)=>(E.includes(s.id)&&e.highlightedItems.push({...s}),e)),{highlightedItems:[]});return e("div",{className:"adyen-checkout__issuer-list"},!!Z.length&&e(s,null,e(l,{selectedIssuerId:0===q?D.issuer:null,items:Z,onChange:U(0)}),e(u,null)),e(n,{label:N.get("issuerList.selectField.label"),errorMessage:(ee=G.issuer,ee&&ee.errorMessage?N.get(ee.errorMessage):!!ee),classNameModifiers:["issuer-list"],name:"issuer",showContextualElement:V,contextualText:T},e(p,{items:M,selectedValue:1===q?D.issuer:null,placeholder:k,name:"issuer",className:"adyen-checkout__issuer-list__dropdown",onChange:U(1),onListToggle:W,onInput:Y})),B.termsAndConditions&&e("div",{className:"adyen-checkout__issuer-list__termsAndConditions"},e(h,{message:N.get(B.termsAndConditions.translationKey),urls:B.termsAndConditions.urls})),B.showPayButton&&B.payButton({status:K,label:v({issuer:D.issuer,items:[...M,...Z]},N)}));var ee}M.defaultProps={onChange:()=>{}};export{M as default}; //# sourceMappingURL=IssuerList.js.map