UNPKG

@privy-io/react-auth

Version:

React client for the Privy Auth API

2 lines (1 loc) 4.53 kB
"use strict";var e=require("react/jsx-runtime"),r=require("react"),i=require("./context-D-ZJYjUg.js"),t=require("./index-C8lpxYDX.js"),s=require("./internal-context-BJv4f_bO.js"),o=require("./get-is-unified-wallet-UpdjHxOV.js"),a=require("./SetWalletPasswordForm-BslxSGLC.js");require("@privy-io/js-sdk-core"),require("tinycolor2"),require("uuid"),require("jose"),require("eventemitter3"),require("./useActiveWallet-Cn6zOXx5.js"),require("zustand"),require("styled-components"),require("react-device-detect"),require("./use-export-wallet-B5ujV5Nk.js"),require("viem/utils"),require("./useWallets-CKAypPZB.js"),require("./events-context-Di6--rDg.js"),require("viem"),require("./getPublicClient-BsmZyCGX.js"),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("ofetch"),require("js-cookie"),require("./frame-Oz7volks.js"),require("@privy-io/routes"),require("x402/client"),require("@privy-io/api-base"),require("@privy-io/are-addresses-equal"),require("viem/accounts"),require("./use-sign-with-user-signer-Cu_6Bx7m.js"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("./Layouts-D3TOcPhm.js"),require("./ModalHeader-BCPQgekO.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-e1wjsjhc.js"),require("@heroicons/react/24/outline/ArrowPathIcon"),require("@heroicons/react/24/outline/EyeIcon"),require("@heroicons/react/24/outline/EyeSlashIcon"),require("./Checkbox-DzxHC5tk.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-CgYJ5Fmg.js");const u={component:()=>{let{navigate:u,data:n,onUserCloseViaDialogOrKeybindRef:c}=o.usePrivyModal(),l=i.useAppConfig(),[d,q]=r.useState(""),[h,w]=r.useState(!1),[y,p]=r.useState(),[v,m]=r.useState(null),{create:j}=t.useCreateWalletWithoutFallback(),{authenticated:f,user:C}=o.usePrivyContext(),{closePrivyModal:P,isNewUserThisSession:g,initializeWalletProxy:S}=s.usePrivyInternal(),{onSuccess:b,onFailure:x,callAuthOnSuccessOnClose:I,shouldCreateEth:E,shouldCreateSol:W}=n.createWallet,[A,U]=r.useState(null),k=new t.RunEffectOnce((async()=>{try{let e;if(E&&W)e=await j({recoveryMethod:"user-passcode",recoveryPassword:y,chainType:"ethereum",walletIndex:0,latestUser:C}),e=await j({chainType:"solana",walletIndex:0,latestUser:e.user});else if(W)e=await j({recoveryMethod:"user-passcode",recoveryPassword:y,chainType:"solana",walletIndex:0,latestUser:C});else{if(!E)throw Error("Invalid args to create wallet");e=await j({recoveryMethod:"user-passcode",recoveryPassword:y,chainType:"ethereum",walletIndex:0,latestUser:C})}U(e),g?u("EmbeddedWalletCreatedScreen"):(b(e),P({shouldCallAuthOnSuccess:I}))}catch(e){q(e.message)}}));r.useEffect((()=>{v||S(3e4).then((e=>m(e)))}),[v]),r.useEffect((()=>{if(!f||!C)return u("LandingScreen"),void x(Error("User must be authenticated before creating a Privy wallet"))}),[f]),c.current=()=>null;/*#__PURE__*/return e.jsx(a.SetWalletPasswordForm,{config:{initiatedBy:"automatic"},appName:l?.name||"privy",loading:!v,buttonLoading:h,buttonHideAnimations:!A&&h,isResettingPassword:!1,error:d,password:y||"",onClose:()=>{A&&"user-passcode"!==A.account.recoveryMethod?(x(new s.PrivyEmbeddedWalletError("User created a wallet but failed to set a password for it")),P({shouldCallAuthOnSuccess:!1})):A?(b(A),P({shouldCallAuthOnSuccess:I})):(x(new s.PrivyEmbeddedWalletError("User wallet creation failed")),P({shouldCallAuthOnSuccess:!1}))},onPasswordChange:p,onPasswordGenerate:()=>p(a.generatePassphrase()),onSubmit:async()=>(w(!0),k.execute().then((()=>new Promise((e=>setTimeout(e,250))))).finally((()=>w(!1))))})}};exports.EmbeddedWalletPasswordCreateScreen=u,exports.default=u;