Module 405139

6,097 characters · in no known chunk
Dependencies
Required by (3)
Lazily required by (0)none
Lazily requires (0)none
Source Raw
function(e,t,n){"use strict";n.d(t,{Mv:()=>N,dP:()=>S});var i=n(627968),r=n(64700),s=n(503698),a=n.n(s),o=n(821609),l=n(834730),u=n(626584),d=n(812745),c=n(111162),_=n(174459),h=n(723702),f=n(71532),E=n(427262),p=n(652215),m=n(375708),g=n(608956);let A=new u.A("PaymentRequest"),I=Object.values({applePay:"applePay",googlePay:"googlePay",link:"link",browserCard:"browserCard"});class T extends r.Component{initialState={submitting:!0,paymentRequest:null,canMakePaymentResult:null};state={...this.initialState};disableWallets=[];isUserStaff=(0,E.Gn)();componentDidMount(){(0,h.isDesktop)()||(this.disableWallets=I.filter(e=>e!==this.paymentRequestWallet).sort(),(0,f.Cv)().then(e=>{this.initPaymentRequest(e)}))}logInfo(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];(this.isUserStaff||c.default.isLoggingAnalyticsEvents)&&A.info(`[${this.paymentRequestWalletName}] ${e}`,...n)}validatePaymentRequest(){let{paymentRequest:e,canMakePaymentResult:t}=this.state;if(null==e){let e="Payment request is not ready";return this.logInfo(e),{available:!1,errorMessage:e}}if(null==t){let e="Payment request is unavailable or has not been set up in this browser. ";return this.logInfo(e,"Stripe canMakePaymentResult: ",t),{available:!1,errorMessage:e}}return{available:!0,errorMessage:null}}initPaymentRequestCallback(e){let{available:t}=this.validatePaymentRequest();t?this.onValidPaymentRequest():this.onPaymentRequestFailure()}onPaymentRequestFailure(){void 0!==this.props.onPaymentRequestFailure&&this.props.onPaymentRequestFailure()}trackAnalyticsEvent(e){let{paymentRequestPaymentContext:t}=this.props;if(void 0===t)return null;let{contextMetadata:n,activitySessionId:i}=t,r={load_id:n.loadId,payment_request_wallet:this.paymentRequestWallet,activity_session_id:i};_.default.track(e,r)}onValidPaymentRequest(){this.trackAnalyticsEvent(p.HAw.PAYMENT_REQUEST_LOADED),void 0!==this.props.onValidPaymentRequest&&this.props.onValidPaymentRequest()}initPaymentRequest=async e=>{if(null==e)return;this.setState({submitting:!0,paymentRequest:null,canMakePaymentResult:null});let t=e.paymentRequest({country:"US",currency:"usd",total:{label:this.props.paymentLabel,amount:0,pending:!0},disableWallets:this.disableWallets,requestPayerName:!0});null!=this.props.paymentRequestRef&&(this.props.paymentRequestRef.current=t);let{onStripePaymentMethodReceived:n}=this.props;t.on("paymentmethod",e=>{let{complete:t,paymentMethod:i,payerName:r}=e;n(i,r),this.trackAnalyticsEvent(p.HAw.PAYMENT_REQUEST_COMPLETED),t("success")}),t.on("cancel",()=>{n(null)});let i=await t.canMakePayment();return this.logInfo("PaymentRequest availability check canMakePayment result: ",i),this.setState({submitting:!1,paymentRequest:t,canMakePaymentResult:i},()=>{this.initPaymentRequestCallback(i)}),i};attemptPaymentRequest=()=>{if((0,h.isDesktop)())return void this.props.onChooseType(p.hes.PAYMENT_REQUEST,this.paymentRequestWallet);let{available:e}=this.validatePaymentRequest();if(!e)return void this.onPaymentRequestFailure();let{paymentRequest:t}=this.state;null!=t&&(t.show(),this.props.onChooseType(p.hes.PAYMENT_REQUEST,this.paymentRequestWallet))};renderButton(e){let{iconType:t,buttonText:n,...r}=e;return(0,i.jsx)(o.$,{fullWidth:!0,onClick:this.attemptPaymentRequest,text:n,loading:this.state.submitting,icon:()=>(0,i.jsx)(d.Ay,{className:this.props.iconClassName??g.iA,type:t}),...r},p.hes.PAYMENT_REQUEST)}renderConnectorView(){return(0,i.jsxs)("div",{className:this.props.className,children:[(0,i.jsx)(d.Ay,{type:d.Ay.Types.PAYMENT_REQUEST,size:d.y3.MEDIUM,className:g.rS}),(0,i.jsx)(l.E,{variant:"text-md/medium",className:g.yW,children:m.intl.string(m.t.f19PPV)})]})}renderMain(){return this.props.renderConnectorView?this.renderConnectorView():this.renderButton({iconType:d.Ay.Types.PAYMENT_REQUEST,buttonText:m.intl.string(m.t.f19PPV),loading:!(0,h.isDesktop)()&&this.state.submitting})}render(){if((0,h.isDesktop)())return this.renderMain();if(this.state.submitting)return this.props.loadingComponent;let{available:e}=this.validatePaymentRequest();return e?this.renderMain():null}}class S extends T{state={...this.initialState};paymentRequestWallet="googlePay";paymentRequestWalletName="Google Pay";validatePaymentRequest(){let{paymentRequest:e,canMakePaymentResult:t}=this.state;if(null==e){let e="Payment request is not ready";return this.logInfo(e),{available:!1,errorMessage:e}}if(null==t||!t.googlePay){let e="Google Pay is unavailable or has not been set up in this browser. ";return this.logInfo(e,"Stripe canMakePaymentResult: ",t),{available:!1,errorMessage:e}}return{available:!0,errorMessage:null}}renderConnectorView(){return(0,i.jsxs)("div",{className:this.props.className,children:[(0,i.jsx)(d.Ay,{type:d.Ay.Types.G_PAY,size:d.y3.MEDIUM,className:g.rS}),(0,i.jsx)(l.E,{variant:"text-md/medium",className:g.yW,children:m.intl.string(m.t.ueoGef)})]})}renderMain(){return this.props.renderConnectorView?this.renderConnectorView():this.renderButton({iconType:d.Ay.Types.G_PAY,buttonText:m.intl.string(m.t.p2jr2E),loading:!(0,h.isDesktop)()&&this.state.submitting})}}class N extends T{state={...this.initialState};paymentRequestWallet="applePay";paymentRequestWalletName="Apple Pay";validatePaymentRequest(){let{paymentRequest:e,canMakePaymentResult:t}=this.state;if(null==e){let e="Payment request is not ready";return this.logInfo(e),{available:!1,errorMessage:e}}if(null==t||!t.applePay){let e="Apple Pay is unavailable or has not been set up in this browser. ";return this.logInfo(e,"Stripe canMakePaymentResult: ",t),{available:!1,errorMessage:e}}return{available:!0,errorMessage:null}}renderConnectorView(){return(0,i.jsxs)("div",{className:this.props.className,children:[(0,i.jsx)(d.Ay,{type:d.Ay.Types.APPLE,size:d.y3.MEDIUM,className:a()(g.rS,g.X6)}),(0,i.jsx)(l.E,{variant:"text-md/medium",className:g.yW,children:m.intl.string(m.t.iv8pQV)})]})}renderMain(){return this.props.renderConnectorView?this.renderConnectorView():this.renderButton({iconType:d.Ay.Types.APPLE_LIGHT,buttonText:m.intl.string(m.t.xdGS1o),loading:!(0,h.isDesktop)()&&this.state.submitting})}}}