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) 2.28 kB
import{Component as e,createElement as t}from"../../../external/preact/dist/preact.js";import n from"../../../_virtual/index.js";import o from"../Spinner/Spinner.js";import{useCoreContext as s}from"../../../core/Context/CoreProvider.js";function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class r extends e{render(){const{classNameModifiers:e=[],disabled:a,href:r,icon:i,inline:l,label:c,ariaLabel:u,ariaDescribedBy:d,status:p,variant:m,buttonRef:_,onMouseEnter:h,onMouseLeave:b,onFocus:y,onBlur:f,onKeyPress:g}=this.props,{completed:k}=this.state,{i18n:v}=s(),N=i?t("img",{className:"adyen-checkout__button__icon",src:i,alt:"","aria-hidden":"true"}):"",C=[...e,..."primary"!==m?[m]:[],...l?["inline"]:[],...k?["completed"]:[],..."loading"===p||"redirect"===p?["loading"]:[]],x=n(["adyen-checkout__button",...C.map(e=>`adyen-checkout__button--${e}`)]),K={loading:t("span",{className:"adyen-checkout__button__content"},t(o,{size:"medium",inline:!0}),t("span",{className:"adyen-checkout__button__text--sr-only"},v.get("loading"))),redirect:t("span",{className:"adyen-checkout__button__content"},t(o,{size:"medium",inline:!0}),v.get("payButton.redirecting")),default:t("span",{className:"adyen-checkout__button__content"},N,t("span",{className:"adyen-checkout__button__text"},c))},M=K[p]||K.default;return r?t("a",{className:x,href:r,disabled:a,target:this.props.target,rel:this.props.rel},M):t("button",{ref:_,className:x,type:"button",disabled:a,onClick:this.onClick,onKeyDown:this.onKeyDown,"aria-label":u,"aria-describedby":d,onMouseEnter:h,onMouseLeave:b,onFocus:y,onBlur:f,onKeyPress:g},M,"loading"!==p&&"redirect"!==p&&this.props.children)}constructor(...e){super(...e),a(this,"onClick",e=>{e.preventDefault(),this.props.disabled||this.props.onClick(e,{complete:this.complete})}),a(this,"complete",(e=1e3)=>{this.setState({completed:!0}),setTimeout(()=>{this.setState({completed:!1})},e)}),a(this,"onKeyDown",e=>{this.props.onKeyDown?.(e)})}}a(r,"defaultProps",{status:"default",variant:"primary",disabled:!1,label:"",inline:!1,target:"_self",onClick:()=>{},onMouseEnter:()=>{},onMouseLeave:()=>{},onFocus:()=>{},onBlur:()=>{},onKeyPress:()=>{}});export{r as default}; //# sourceMappingURL=Button.js.map