@atlas-kitchen/adyen-web
Version:
3 lines (2 loc) • 5.46 kB
JavaScript
import{createElement as e}from"../../../external/preact/dist/preact.js";import{useState as t,useEffect as a}from"../../../external/preact/hooks/dist/hooks.js";import o from"../../../_virtual/index.js";import r from"../../../core/Services/payment-status.js";import{processResponse as n}from"../../../core/ProcessResponse/process-response.js";import s from"../Spinner/Spinner.js";import i from"../Countdown/index.js";import c from"../Button/Button.js";import{useCoreContext as l}from"../../../core/Context/CoreProvider.js";import u from"../../../core/Errors/AdyenCheckoutError.js";import d from"../ContentSeparator/ContentSeparator.js";import m from"../../../core/Context/useImage.js";function p(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function _(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{},o=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(a).filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable})))),o.forEach((function(t){p(e,t,a[t])}))}return e}function y(e,t){if(null==e)return{};var a,o,r=function(e,t){if(null==e)return{};var a,o,r={},n=Object.keys(e);for(o=0;o<n.length;o++)a=n[o],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o<n.length;o++)a=n[o],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}function w(p){var w;const{i18n:h,loadingContext:f}=l(),g=m(),[v,k]=t(!1),[b,N]=t(!1),[j,O]=t(!0),[C,T]=t(!1),[x,E]=t(p.delay),[R,S]=t(100),[P,A]=t(0),[D,I]=t(!1),[L,M]=t(null),{amount:$}=p,z=e=>{if(e.props.payload){k(!0);const t={data:{details:{payload:e.props.payload},paymentData:p.paymentData}};return p.onComplete(t,this)}N(!0),p.onError(new u("ERROR","successful result, but no payload in response"))},B=e=>{if(N(!0),e.props.payload){const t={data:{details:{payload:e.props.payload},paymentData:p.paymentData}};return p.onComplete(t,this)}p.onError(new u("ERROR","error result with no payload in response"))},F=async()=>{const{paymentData:e,clientKey:t,throttleInterval:a,pollStatus:o}=p,s=null!=o?o:()=>r(e,t,f,a);var i;C||(null===(i=p.onActionHandled)||void 0===i||i.call(p,{componentType:p.type,actionDescription:"polling-started"}),T(!0));return s().then(n).catch((e=>{var{message:t}=e,a=y(e,["message"]);return{type:"network-error",props:_({},t&&{message:h.get(t)},a)}})).then((e=>{switch(e.type){case"success":z(e);break;case"error":B(e);break;default:O(!1)}}))},H=e=>{window.location.assign(e)};a((()=>{p.shouldRedirectAutomatically&&p.url&&H(p.url)}),[p.shouldRedirectAutomatically,p.url]),a((()=>(F(),()=>{clearTimeout(L)})),[]),a((()=>{if(b)return clearTimeout(L);if(v)return clearTimeout(L);if(!j){const e=async()=>{await F();const e=P+x;A(e),e>=p.throttleTime&&!D&&(E(p.throttleInterval),I(!0))};M(setTimeout((()=>{e()}),x))}}),[j,b,v,P]);const K=(t,a)=>e("div",{className:"adyen-checkout__await adyen-checkout__await--result"},e("img",{className:"adyen-checkout__await__icon adyen-checkout__await__icon--result",src:g({imageFolder:"components/"})(t),alt:h.get(a)}),e("div",{className:"adyen-checkout__await__subtitle adyen-checkout__await__subtitle--result"},h.get(a)));if(b)return K("error","error.subtitle.payment");if(v)return K("success","creditCard.success");if(j)return e("div",{className:"adyen-checkout__await"},p.brandLogo&&e("img",{src:p.brandLogo,alt:p.type,className:"adyen-checkout__await__brand-logo"}),e(s,{inline:!1,size:"large"}));const q=h.get("wechatpay.timetopay").split("%@");return e("div",{className:o("adyen-checkout__await",`adyen-checkout__await--${p.type}`,p.classNameModifiers.map((e=>`adyen-checkout__await--${e}`)))},p.brandLogo&&e("img",{src:p.brandLogo,alt:p.type,className:"adyen-checkout__await__brand-logo"}),!!(p.showAmount&&(null==$?void 0:$.value)&&(null==$?void 0:$.currency))&&e("div",{className:"adyen-checkout__await__amount"},h.amount($.value,$.currency)),null!=p.messageText&&e("div",{className:"adyen-checkout__await__subtitle"},p.messageText),e("div",{className:"adyen-checkout__await__indicator-holder"},e("div",{className:"adyen-checkout__await__indicator-spinner"},e(s,{inline:!1,size:"medium"})),e("div",{className:"adyen-checkout__await__indicator-text"},p.awaitText)),p.showCountdownTimer&&e("div",{className:"adyen-checkout__await__countdown-holder"},e("div",{className:"adyen-checkout__await__progress"},e("span",{className:"adyen-checkout__await__percentage",style:{width:`${R}%`}})),e("div",{className:"adyen-checkout__await__countdown"},q[0]," ",e(i,{minutesFromNow:p.countdownTime,onTick:e=>{S(e.percentage)},onCompleted:()=>{N(!0),clearTimeout(L),p.onError(new u("ERROR","Payment Expired"))}})," ",q[1])),p.url&&!p.shouldRedirectAutomatically&&e("div",{className:"adyen-checkout__await__app-link"},e(d,null),e(c,{classNameModifiers:["await"],onClick:()=>H(p.url),label:h.get("openApp")})),p.instructions&&e("div",{className:"adyen-checkout__await__instructions"},"string"==typeof p.instructions?h.get(p.instructions):null===(w=p.instructions)||void 0===w?void 0:w.call(p)),p.endSlot&&e("div",{className:"adyen-checkout__await__end-slot"},p.endSlot()))}w.defaultProps={countdownTime:15,onError:()=>{},onComplete:()=>{},delay:2e3,throttleTime:6e4,throttleInterval:1e4,showCountdownTimer:!0,classNameModifiers:[],url:null};export{w as default};
//# sourceMappingURL=Await.js.map