@adyen/adyen-web
Version:
[](https://www.npmjs.com/package/@adyen/adyen-web)
3 lines (2 loc) • 2.71 kB
JavaScript
import{createElement as t,Fragment as e}from"../../../../../external/preact/dist/preact.js";import{useState as r,useEffect as o,useCallback as s}from"../../../../../external/preact/hooks/dist/hooks.js";import n from"../../context/useClickToPayContext.js";import a from"./CtPSingleCard/CtPSingleCard.js";import i from"../../../PayButton/PayButton.js";import{amountLabel as l}from"../../../PayButton/utils.js";import c from"./CtPCardsList/CtPCardsList.js";import m from"../../services/sdks/SrciError.js";import u from"../CtPSection/CtPSection.js";import{CTP_IFRAME_NAME as d}from"../../services/utils.js";import p from"../../../IFrame/Iframe.js";import f from"../../../../../core/Context/useImage.js";import{useCoreContext as g}from"../../../../../core/Context/CoreProvider.js";import C from"../../../../../utils/isMobile.js";import h from"../../../../../core/Errors/AdyenCheckoutError.js";import{PREFIX as y}from"../../../Icon/constants.js";function k(t,e){if(!t)return null;const r=e.get(`ctp.errors.${t}`);return r.includes("ctp.errors")?e.get("ctp.errors.UNKNOWN_ERROR"):r}function P(t,e,r){return r?C()?null:t.get("payButton.with",{values:{value:l(t,e),maskedData:`•••• ${null==r?void 0:r.panLastFour}`}}):t.get("payButton")}const j=({onDisplayCardComponent:l})=>{const{i18n:C}=g(),j=f(),{amount:v,cards:E,checkout:S,isCtpPrimaryPaymentMethod:x,status:b,onSubmit:R,onSetStatus:$,onError:w}=n(),[B,M]=r(E.find(t=>!t.isExpired)||E[0]),[N,D]=r(null),F=E.every(t=>t.isExpired),[I,T]=r(!1);o(()=>{(0===E.length||F)&&(null==l||l())},[l,F,E]);const _=s(async()=>{if(B)try{T(!0),D(null),$("loading");const t=await S(B);R(t)}catch(t){t instanceof m&&(D(null==t?void 0:t.reason),console.warn(`CtP - Checkout: Reason: ${null==t?void 0:t.reason} / Source: ${null==t?void 0:t.source} / Scheme: ${null==t?void 0:t.scheme}`)),T(!1),w(t instanceof h?t:new h("ERROR","Error during ClickToPay checkout",{cause:t}))}},[S,B]),L=s(t=>{M(t)},[]),O=I&&"loading"===b&&(null==B?void 0:B.isDcfPopupEmbedded),K="loading"!==b||!O,A=s(t=>{"Enter"===t.key&&_()},[_]);return t(e,null,t(p,{name:d,height:"380",width:"100%",classNameModifiers:[O?"":"hidden"]}),K&&t(e,null,t(u.Title,null,C.get("ctp.cards.title")),t(u.Text,null,C.get("ctp.cards.subtitle")),0===E.length&&t("div",{className:"adyen-checkout-ctp__empty-cards"},C.get("ctp.emptyProfile.message")),1===E.length&&t(a,{card:E[0],errorMessage:k(N,C)}),E.length>1&&t(c,{cardSelected:B,cards:E,onChangeCard:L,errorMessage:k(N,C)}),t(i,{disabled:F,amount:v,label:P(C,v,B),status:b,variant:x?"primary":"secondary",icon:0!==E.length&&j({imageFolder:"components/"})(x?`${y}lock`:`${y}lock_black`),onClick:_,onKeyDown:A})))};export{j as default};
//# sourceMappingURL=CtPCards.js.map