@privy-io/react-auth
Version:
React client for the Privy Auth API
2 lines (1 loc) • 5.62 kB
JavaScript
"use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/solid/ArrowsRightLeftIcon"),t=require("@heroicons/react/24/solid/CheckCircleIcon"),i=require("react"),n=require("styled-components"),o=require("./Button-BEaVAnh4.js"),s=require("./Layouts-dRL0OSpp.js"),a=require("./useActiveWallet-B-Pd49hn.js"),u=require("./ModalHeader-n6Aqpos_.js"),c=require("./internal-context-NWsAL807.js"),l=require("./get-is-unified-wallet-D6pn8A8g.js"),d=require("./analytics-C6C_4JmG.js"),g=require("./index-Dz7affvL.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("zustand"),require("./context-BPd2qxKv.js"),require("@privy-io/js-sdk-core"),require("tinycolor2"),require("react-device-detect"),require("./prepareFundingModalData-Do7d2fgq.js"),require("eventemitter3"),require("./events-context-Di6--rDg.js"),require("viem"),require("viem/utils"),require("./getPublicClient-CGlodIp_.js"),require("./useWallets-Bi_kf80t.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("ofetch"),require("uuid"),require("jose"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("mipd"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("./usePrivy-CANb3vg4.js"),require("@scure/base"),require("@headlessui/react"),require("@walletconnect/ethereum-provider"),require("@privy-io/urls"),require("js-cookie"),require("./frame-B14fp9oC.js"),require("@privy-io/routes"),require("x402/client"),require("@privy-io/api-base"),require("viem/accounts"),require("./use-sign-with-user-signer-BcAsQTGF.js"),require("./getEmbeddedConnectedWallet-6TsVZJkD.js");var f=/*#__PURE__*/p(r),m=/*#__PURE__*/p(t);const h={component:()=>{let{data:r,setModalData:t,navigate:n,navigateBack:o}=l.usePrivyModal(),{closePrivyModal:s,createAnalyticsEvent:a,client:g}=c.usePrivyInternal(),[p,f]=i.useState("pending-in-flow"),m=i.useRef(0),h={...r?.funding,showAlternateFundingMethod:!0};h.usingDefaultFundingMethod&&(h.usingDefaultFundingMethod=!1);let{partnerUserId:y,popup:v}=r?.coinbaseOnrampStatus??{};return i.useEffect((()=>{if("pending-in-flow"===p||"pending-after-flow"===p){let e=setInterval((async()=>{if(y)try{let{status:e}=await g.getCoinbaseOnRampStatus({partnerUserId:y});if("success"===e)return void f("success");if("failure"===e)throw Error("There was an error completing Coinbase Onramp flow.");if(m.current>=3)return t({funding:h,solanaFundingData:r?.solanaFundingData}),void n("FundingMethodSelectionScreen");v?.closed&&(m.current=m.current+1,f("pending-after-flow"))}catch(e){console.error(e),f("error"),a({eventName:d.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{status:"failure",provider:"coinbase-onramp",error:e.message}}),t({funding:{...h,errorMessage:"Something went wrong adding funds. Please try again or use another method."},solanaFundingData:r?.solanaFundingData}),n("FundingMethodSelectionScreen")}}),1500);return()=>clearInterval(e)}}),[y,v,p]),/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(u.ModalHeader,{title:"Fund account",backFn:()=>{t({funding:h,solanaFundingData:r?.solanaFundingData}),o()}},"header"),/*#__PURE__*/e.jsx(q,{status:p,onClickCta:s}),/*#__PURE__*/e.jsx(u.BlobbyFooter,{})]})}};let q=({status:r,onClickCta:t})=>{let{title:n,body:a,cta:u}=i.useMemo((()=>(e=>{switch(e){case"success":return{title:"You've funded your account!",body:"It may take a few minutes for the assets to appear.",cta:"Continue"};case"pending-after-flow":return{title:"In Progress",body:"Almost done. Retrieving transaction status from Coinbase",cta:""};case"error":case"pending-in-flow":return{title:"In Progress",body:"Go back to Coinbase Onramp to finish funding your account.",cta:""}}})(r)),[r]);/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsxs(j,{children:[/*#__PURE__*/e.jsx(y,{isSucccess:"success"===r}),/*#__PURE__*/e.jsxs(s.FixedGappedContainer,{children:[/*#__PURE__*/e.jsx("h3",{children:n}),/*#__PURE__*/e.jsx(v,{children:a})]})]}),u&&/*#__PURE__*/e.jsx(o.PrimaryButton,{onClick:t,children:u})]})},y=({isSucccess:r})=>{if(!r){let r="var(--privy-color-foreground-4)";/*#__PURE__*/return e.jsxs("div",{style:{position:"relative"},children:[/*#__PURE__*/e.jsx(a.Loader,{color:r,style:{position:"absolute"}}),/*#__PURE__*/e.jsx(a.LoaderFaint,{color:r}),/*#__PURE__*/e.jsx(g.CoinbaseWallet,{style:{position:"absolute",width:"2.8rem",height:"2.8rem",top:"1.2rem",left:"1.2rem"}})]})}let t=r?m.default:()=>/*#__PURE__*/e.jsx(f.default,{width:"3rem",height:"3rem",style:{backgroundColor:"var(--privy-color-foreground-4)",color:"var(--privy-color-background)",borderRadius:"100%",padding:"0.5rem",margin:"0.5rem"}}),i=r?"var(--privy-color-success)":"var(--privy-color-foreground-4)";/*#__PURE__*/return e.jsx("div",{style:{borderColor:i,display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"100%",borderWidth:2,padding:"0.5rem",marginBottom:"0.5rem"},children:t&&/*#__PURE__*/e.jsx(t,{width:"4rem",height:"4rem",color:i})})},v=/*#__PURE__*/n.styled.p.withConfig({displayName:"StatusBody",componentId:"sc-e4350fdc-0"})(["font-size:1rem;color:var(--privy-color-foreground-3);margin-bottom:1rem;display:flex;flex-direction:column;gap:1rem;"]),j=/*#__PURE__*/n.styled.div.withConfig({displayName:"ConnectContainer",componentId:"sc-e4350fdc-1"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;margin-left:1.75rem;margin-right:1.75rem;padding:2rem 0;"]);exports.CoinbaseOnrampStatusScreen=h,exports.default=h;