UNPKG

@privy-io/react-auth

Version:

React client for the Privy Auth API

2 lines (1 loc) 4.55 kB
"use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("./context-DFq1obBO.js"),i=require("./index-NJrQkxJ7.js"),s=require("./internal-context-NWsAL807.js"),o=require("./use-create-wallet-without-fallback-q0_yd_V9.js"),a=require("./get-is-unified-wallet-D4ouXJpi.js"),u=require("./SetWalletPasswordForm-C3YB2v_1.js");require("@privy-io/js-sdk-core"),require("tinycolor2"),require("uuid"),require("jose"),require("eventemitter3"),require("./useActiveWallet-BOX8xCn9.js"),require("zustand"),require("styled-components"),require("react-device-detect"),require("./prepareFundingModalData-Cnd6rhhJ.js"),require("./events-context-Di6--rDg.js"),require("viem"),require("viem/utils"),require("./getPublicClient-CGlodIp_.js"),require("./useWallets-BLFNjTwC.js"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("mipd"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("./usePrivy-CcfSRv1R.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("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("./Layouts-dRL0OSpp.js"),require("./ModalHeader-DB7Tbjwz.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("./shared-CCAyvw5i.js"),require("@heroicons/react/24/outline/ArrowPathIcon"),require("@heroicons/react/24/outline/EyeIcon"),require("@heroicons/react/24/outline/EyeSlashIcon"),require("./Button-Bm_Ft0Dw.js"),require("./Checkbox-DXPQZFlQ.js"),require("@heroicons/react/24/outline/KeyIcon"),require("@heroicons/react/24/solid/CheckCircleIcon"),require("fast-password-entropy"),require("secure-password-utilities"),require("secure-password-utilities/wordlists"),require("@heroicons/react/24/outline/ArrowDownTrayIcon"),require("@heroicons/react/24/outline/ClipboardDocumentCheckIcon"),require("@heroicons/react/24/outline/DocumentDuplicateIcon"),require("@heroicons/react/24/solid/XCircleIcon"),require("./ScreenHeader-CyURV6Ti.js");const n={component:()=>{let{navigate:n,data:c,onUserCloseViaDialogOrKeybindRef:l}=a.usePrivyModal(),d=t.useAppConfig(),[q,h]=r.useState(""),[w,p]=r.useState(!1),[y,v]=r.useState(),[m,j]=r.useState(null),{create:f}=o.useCreateWalletWithoutFallback(),{authenticated:C,user:b}=a.usePrivyContext(),{closePrivyModal:g,isNewUserThisSession:P,initializeWalletProxy:S}=s.usePrivyInternal(),{onSuccess:I,onFailure:x,callAuthOnSuccessOnClose:E,shouldCreateEth:W,shouldCreateSol:A}=c.createWallet,[k,M]=r.useState(null),U=new i.RunEffectOnce((async()=>{try{let e;if(W&&A)e=await f({recoveryMethod:"user-passcode",recoveryPassword:y,chainType:"ethereum",walletIndex:0,latestUser:b}),e=await f({chainType:"solana",walletIndex:0,latestUser:e.user});else if(A)e=await f({recoveryMethod:"user-passcode",recoveryPassword:y,chainType:"solana",walletIndex:0,latestUser:b});else{if(!W)throw Error("Invalid args to create wallet");e=await f({recoveryMethod:"user-passcode",recoveryPassword:y,chainType:"ethereum",walletIndex:0,latestUser:b})}M(e),P?n("EmbeddedWalletCreatedScreen"):(I(e),g({shouldCallAuthOnSuccess:E}))}catch(e){h(e.message)}}));r.useEffect((()=>{m||S(3e4).then((e=>j(e)))}),[m]),r.useEffect((()=>{if(!C||!b)return n("LandingScreen"),void x(Error("User must be authenticated before creating a Privy wallet"))}),[C]),l.current=()=>null;/*#__PURE__*/return e.jsx(u.SetWalletPasswordForm,{config:{initiatedBy:"automatic"},appName:d?.name||"privy",loading:!m,buttonLoading:w,buttonHideAnimations:!k&&w,isResettingPassword:!1,error:q,password:y||"",onClose:()=>{k&&"user-passcode"!==k.account.recoveryMethod?(x(new s.PrivyEmbeddedWalletError("User created a wallet but failed to set a password for it")),g({shouldCallAuthOnSuccess:!1})):k?(I(k),g({shouldCallAuthOnSuccess:E})):(x(new s.PrivyEmbeddedWalletError("User wallet creation failed")),g({shouldCallAuthOnSuccess:!1}))},onPasswordChange:v,onPasswordGenerate:()=>v(u.generatePassphrase()),onSubmit:async()=>(p(!0),U.execute().then((()=>new Promise((e=>setTimeout(e,250))))).finally((()=>p(!1))))})}};exports.EmbeddedWalletPasswordCreateScreen=n,exports.default=n;