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