@privy-io/react-auth
Version:
React client for the Privy Auth API
17 lines (16 loc) • 5.55 kB
JavaScript
"use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/solid/ArrowsRightLeftIcon"),i=require("@heroicons/react/24/solid/CheckCircleIcon"),t=require("react"),n=require("styled-components"),o=require("./ModalHeader-BCPQgekO.js"),s=require("./Layouts-D3TOcPhm.js"),a=require("./useActiveWallet-Cn6zOXx5.js"),u=require("./internal-context-BJv4f_bO.js"),c=require("./get-is-unified-wallet-UpdjHxOV.js"),l=require("./analytics-C6C_4JmG.js"),d=require("./index-C8lpxYDX.js");function g(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./context-D-ZJYjUg.js"),require("@privy-io/js-sdk-core"),require("tinycolor2"),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("zustand"),require("react-device-detect"),require("./use-export-wallet-B5ujV5Nk.js"),require("eventemitter3"),require("viem/utils"),require("./useWallets-CKAypPZB.js"),require("./events-context-Di6--rDg.js"),require("viem"),require("./getPublicClient-BsmZyCGX.js"),require("ofetch"),require("@privy-io/are-addresses-equal"),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-cfS6o4tX.js"),require("@scure/base"),require("@headlessui/react"),require("@walletconnect/ethereum-provider"),require("@privy-io/urls"),require("./PrivyPluginContext-DsgaS6n9.js"),require("./getEmbeddedConnectedWallet-pJd-l936.js"),require("js-cookie"),require("./frame-Oz7volks.js"),require("@privy-io/routes"),require("x402/client"),require("@privy-io/api-base"),require("viem/accounts"),require("./use-sign-with-user-signer-Cu_6Bx7m.js");var p=/*#__PURE__*/g(r),f=/*#__PURE__*/g(i);const m={component:()=>{let{data:r,setModalData:i,navigate:n,navigateBack:s}=c.usePrivyModal(),{closePrivyModal:a,createAnalyticsEvent:d,client:g}=u.usePrivyInternal(),[p,f]=t.useState("pending-in-flow"),m=t.useRef(0),q={...r?.funding,showAlternateFundingMethod:!0};q.usingDefaultFundingMethod&&(q.usingDefaultFundingMethod=!1);let{partnerUserId:v,popup:y}=r?.coinbaseOnrampStatus??{};return t.useEffect((()=>{if("pending-in-flow"===p||"pending-after-flow"===p){let e=setInterval((async()=>{if(v)try{let{status:e}=await g.getCoinbaseOnRampStatus({partnerUserId:v});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 i({funding:q,solanaFundingData:r?.solanaFundingData}),void n("FundingMethodSelectionScreen");y?.closed&&(m.current=m.current+1,f("pending-after-flow"))}catch(e){console.error(e),f("error"),d({eventName:l.ON_RAMP_COMPLETE_ANALYTICS_EVENT,payload:{status:"failure",provider:"coinbase-onramp",error:e.message}}),i({funding:{...q,errorMessage:"Something went wrong adding funds. Please try again or use another method."},solanaFundingData:r?.solanaFundingData}),n("FundingMethodSelectionScreen")}}),1500);return()=>clearInterval(e)}}),[v,y,p]),/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(o.ModalHeader,{title:"Fund account",backFn:()=>{i({funding:q,solanaFundingData:r?.solanaFundingData}),s()}},"header"),/*#__PURE__*/e.jsx(h,{status:p,onClickCta:a}),/*#__PURE__*/e.jsx(o.BlobbyFooter,{})]})}};let h=({status:r,onClickCta:i})=>{let{title:n,body:a,cta:u}=t.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(y,{children:[/*#__PURE__*/e.jsx(q,{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:i,children:u})]})},q=({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(d.CoinbaseWallet,{style:{position:"absolute",width:"2.8rem",height:"2.8rem",top:"1.2rem",left:"1.2rem"}})]})}let i=r?f.default:()=>/*#__PURE__*/e.jsx(p.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"}}),t=r?"var(--privy-color-success)":"var(--privy-color-foreground-4)";/*#__PURE__*/return e.jsx("div",{style:{borderColor:t,display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"100%",borderWidth:2,padding:"0.5rem",marginBottom:"0.5rem"},children:i&&/*#__PURE__*/e.jsx(i,{width:"4rem",height:"4rem",color:t})})},v=n.styled.p`
font-size: 1rem;
color: var(--privy-color-foreground-3);
margin-bottom: 1rem;
display: flex;
flex-direction: column;
gap: 1rem;
`,y=n.styled.div`
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin-left: 1.75rem;
margin-right: 1.75rem;
padding: 2rem 0;
`;exports.CoinbaseOnrampStatusScreen=m,exports.default=m;