UNPKG

@atlas-kitchen/adyen-web

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