Build 542549stable
Module 715054
2,339 characters · in e29b90be0e37a5f7.jsDependencies
Source Raw
function(e,t,r){r.d(t,{Q:()=>g});var n=r(64700),i=r(17928),s=r(636537),a=r(136857),o=r(158317),l=r(123633),u=r(786953),c=r(310829),d=r(211287),f=r(652215),h=r(26279),m=r(375708);function g(e){let[t,r]=(0,n.useState)(""),[g,w]=(0,n.useState)([]),[b,A]=(0,n.useState)(null),[E,p]=(0,n.useState)(!1),C=(0,n.useRef)(null),{enabled:I}=d.A.useConfig({location:"orb_checkout_modal"}),R=(0,i.bG)([l.A],()=>l.A.isCreatingOrder),S=(0,i.bG)([l.A],()=>l.A.currentOrder);(0,n.useEffect)(()=>{I&&null!=S&&C.current?.id!==S.id&&(C.current=S)},[S,I]);let k=(0,n.useCallback)(async(e,t)=>{let r=t??(0,c.P)(e);try{return(await s.Bo.get({url:f.Rsh.ENTITLEMENTS_FOR_APPLICATION(r),query:{sku_ids:e,exclude_consumed:!0},rejectWithError:!1})).body??[]}catch(e){return[]}},[]),y=(0,n.useCallback)(async(e,t,r)=>{let n=C.current;if(null==n){A(new a.Ay("Order not created yet")),p(!1);return}p(!0),A(null);try{let i=await (0,o.U)({orderId:n.id,expectedRevision:n.revision,loadId:t});if(C.current=i,i.status!==h.Re.SIGNED){if(i.errors&&i.errors.length>0){let e=i.errors;if(e.includes(2e3)){let e=new a.Ay("Insufficient balance");throw e.code=a.tG.VIRTUAL_CURRENCY_INSUFFICIENT_BALANCE,e}let t=`Order signing failed with errors: ${e.join(", ")}`;throw Error(t)}if(i.status===h.Re.DRAFT)throw Error("Order could not be signed.");throw Error(`Unexpected order status: ${i.status}`)}let s=(0,c.P)(e),l=await k(e,s);if(0===l.length){await new Promise(e=>setTimeout(e,500));let t=await k(e,s);if(0===t.length)throw Error("No entitlements found after order signing");w(t),p(!1),r?.(t)}else w(l),p(!1),r?.(l)}catch(e){A(e instanceof a.Ay?e:new a.Ay(e)),p(!1)}},[k]),_=(0,n.useCallback)((e,t,r)=>(0,u.J$)({skuId:e,loadId:t,onRedeemStart:()=>{p(!0),A(null)},onRedeemSucceed:e=>{w(e),p(!1),r?.(e)},onRedeemFail:e=>{A(e),p(!1)}}),[]),N=(0,n.useCallback)((e,t,r)=>{I?y(e,t,r):_(e,t,r)},[I,y,_]);return(0,n.useEffect)(()=>{if(null!=b)return void r(m.intl.format(m.t["7gHWrd"],{amount:"1 orb",errorMessage:b.message}));if(null!=g&&g.length>0){let e=g.map(e=>e.sku?.name);r(m.intl.format(m.t.JxNFav,{amountDescription:"1 orb",redeemedItemDescription:`${1===e.length?"SKU":"SKUs"}: ${e.join(", ")}. Entitlement ${1===g.length?"ID":"IDs"}: ${g.map(e=>e.id).join(", ")}`}));return}r("")},[g,b]),{entitlements:g,error:b,isSubmitting:E||I&&R,responseMessage:t,redeemVirtualCurrency:N}}}