UNPKG

@privy-io/react-auth

Version:

React client for the Privy Auth API

2 lines (1 loc) 4.13 kB
"use strict";var e=require("react/jsx-runtime"),r=require("lucide-react"),t=require("react"),i=require("./context-BPd2qxKv.js"),a=require("./index-Dz7affvL.js"),l=require("./internal-context-NWsAL807.js"),s=require("./use-create-wallet-without-fallback-BSl4qcLv.js"),o=require("./get-is-unified-wallet-D6pn8A8g.js"),u=require("./ScreenLayout-D6r13vU7.js");require("@privy-io/js-sdk-core"),require("tinycolor2"),require("uuid"),require("jose"),require("eventemitter3"),require("./useActiveWallet-B-Pd49hn.js"),require("zustand"),require("styled-components"),require("react-device-detect"),require("./prepareFundingModalData-Do7d2fgq.js"),require("./events-context-Di6--rDg.js"),require("viem"),require("viem/utils"),require("./getPublicClient-CGlodIp_.js"),require("./useWallets-Bi_kf80t.js"),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("ofetch"),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"),require("./Button-BEaVAnh4.js"),require("./Screen-J7z62u7O.js"),require("./ModalHeader-n6Aqpos_.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("./index-CRFXS9pP.js");const n=({errorMessage:t,onClose:i})=>t?/*#__PURE__*/e.jsx(u.ScreenLayout,{title:"Something went wrong",subtitle:t,icon:r.XCircle,iconVariant:"error",primaryCta:{label:"Close",onClick:i},watermark:!0}):/*#__PURE__*/e.jsx(u.ScreenLayout,{title:"Creating your wallet",subtitle:"Please wait...",iconVariant:"loading",watermark:!1}),c={component:()=>{let{setModalData:r,navigate:u,data:c,onUserCloseViaDialogOrKeybindRef:d}=o.usePrivyModal(),q=i.useAppConfig(),[h,w]=t.useState(""),{embeddedWallets:y}=i.useAppConfig(),{authenticated:m,user:v}=o.usePrivyContext(),{closePrivyModal:C,walletProxy:p,client:b}=l.usePrivyInternal(),{onSuccess:j,onFailure:g,callAuthOnSuccessOnClose:S,shouldCreateEth:W,shouldCreateSol:x}=c.createWallet,f="legacy-embedded-wallets-only"===q.embeddedWallets.mode&&!0===q?.embeddedWallets.requireUserOwnedRecoveryOnCreate,[E,A]=t.useState(null),{create:O}=s.useCreateWalletWithoutFallback(),P=W??(!!v&&a.shouldCreateEmbeddedEthWallet(v,q.embeddedWallets.ethereum.createOnLogin)),k=x??(!!v&&a.shouldCreateEmbeddedSolWallet(v,q.embeddedWallets.solana.createOnLogin)),I=new a.RunEffectOnce((async()=>{let e=await b.getAccessToken();if(v&&e&&p)try{let e;if(P&&k)e=await O({chainType:"ethereum",walletIndex:0,latestUser:v}),e=await O({chainType:"solana",walletIndex:0,latestUser:e.user});else if(k)e=await O({chainType:"solana",walletIndex:0,latestUser:v});else{if(!P)return void C({shouldCallAuthOnSuccess:S});e=await O({chainType:"ethereum",walletIndex:0,latestUser:v})}A(e),u("EmbeddedWalletCreatedScreen")}catch(e){w(e.message)}}));return t.useEffect((()=>m&&v?f?(r({...c,createWallet:{...c.createWallet,shouldCreateEth:P,shouldCreateSol:k},recoverySelection:{...c?.recoverySelection,isInAccountCreateFlow:!0,shouldCreateEth:P,shouldCreateSol:k}}),u(a.toEmbeddedWalletSetRecoveryScreen({walletAction:"create",showAutomaticRecovery:!1,availableRecoveryMethods:y.userOwnedRecoveryOptions,legacySetWalletPasswordFlow:!1,isResettingPassword:!1}))):void I.execute():(u("LandingScreen"),void g(Error("User must be authenticated before creating a Privy wallet")))),[f,m]),d.current=()=>null/*#__PURE__*/,e.jsx(n,{errorMessage:h||void 0,onClose:()=>{E?(j(E),C({shouldCallAuthOnSuccess:S})):(g(new l.PrivyEmbeddedWalletError("User wallet creation failed")),C({shouldCallAuthOnSuccess:!1}))}})}};exports.EmbeddedWalletOnAccountCreateScreen=c,exports.EmbeddedWalletOnAccountCreateView=n,exports.default=c;