@privy-io/react-auth
Version:
React client for the Privy Auth API
2 lines (1 loc) • 4.66 kB
JavaScript
"use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("./get-is-unified-wallet-D4ouXJpi.js"),s=require("./context-DFq1obBO.js"),o=require("./internal-context-NWsAL807.js"),a=require("./useWallets-BLFNjTwC.js"),i=require("./SetWalletPasswordForm-C3YB2v_1.js");require("viem"),require("@privy-io/js-sdk-core"),require("tinycolor2"),require("ofetch"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("./Layouts-dRL0OSpp.js"),require("styled-components"),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("./useActiveWallet-BOX8xCn9.js"),require("zustand"),require("react-device-detect"),require("./prepareFundingModalData-Cnd6rhhJ.js"),require("eventemitter3"),require("./events-context-Di6--rDg.js"),require("viem/utils"),require("./getPublicClient-CGlodIp_.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[n,d]=r.useState(null),[c,l]=r.useState(!1),[u,y]=r.useState(null),[v,w]=r.useState(""),{authenticated:h,user:p}=t.usePrivyContext(),{client:q,walletProxy:g,refreshSessionAndUser:m,closePrivyModal:P,createAnalyticsEvent:f}=o.usePrivyInternal(),{navigate:M,data:b,onUserCloseViaDialogOrKeybindRef:A}=t.usePrivyModal(),E=s.useAppConfig(),{onSuccess:I,onFailure:_}=b.setWalletPassword,j=t.getPrivyPrimaryWallet(p),C="user-passcode"===n?.recoveryMethod,S="user-passcode"===j?.recoveryMethod;r.useEffect((()=>{h||(M("LandingScreen"),_(new o.PrivyUnauthenticatedError("User must be authenticated before setting a password on a Privy wallet")))}),[h]);let x=()=>u?(_(u),void P({shouldCallAuthOnSuccess:!1})):C?(I(n),void P({shouldCallAuthOnSuccess:!1})):(_(new o.PrivyEmbeddedWalletError("Exited before password was added to wallet")),void P({shouldCallAuthOnSuccess:!1}));A.current=x;/*#__PURE__*/return e.jsx(i.SetWalletPasswordForm,{appName:E?.name||"privy",config:{initiatedBy:"user",onCancel:x},error:u?"An error has occurred, please try again.":void 0,buttonLoading:c,buttonHideAnimations:!1,password:v,isResettingPassword:S,onPasswordGenerate:()=>w(i.generatePassphrase()),onPasswordChange:w,onSubmit:async()=>{C?(I(n),P({shouldCallAuthOnSuccess:!1})):(l(!0),y(null),await(async()=>{let e=await q.getAccessToken();if(e&&p&&j?.address&&v&&g)try{f({eventName:"embedded_wallet_set_recovery_started",payload:{walletAddress:j.address,existingRecoveryMethod:j.recoveryMethod,targetRecoveryMethod:"user-passcode",isResettingPassword:S}});let{entropyId:r,entropyIdVerifier:s}=a.getEntropyDetailsForUser(p);if(!(await g.setRecovery({accessToken:e,entropyId:r,entropyIdVerifier:s,recoveryPassword:v,recoveryMethod:"user-passcode"})).entropyId)return y(new o.PrivyEmbeddedWalletError("Error setting password on privy wallet")),void f({eventName:"embedded_wallet_set_recovery_failed",payload:{walletAddress:j.address,existingRecoveryMethod:j.recoveryMethod,targetRecoveryMethod:"user-passcode",isResettingPassword:S,reason:"error setting password"}});let i=await m(),n=t.getPrivyPrimaryWallet(i);if(!n)return y(new o.PrivyEmbeddedWalletError("Error setting password on privy wallet")),void f({eventName:"embedded_wallet_set_recovery_failed",payload:{walletAddress:j.address,existingRecoveryMethod:j.recoveryMethod,targetRecoveryMethod:"user-passcode",isResettingPassword:S,reason:"wallet disconnected"}});d(n),f({eventName:"embedded_wallet_set_recovery_completed",payload:{walletAddress:j.address,existingRecoveryMethod:j.recoveryMethod,targetRecoveryMethod:"user-passcode",isResettingPassword:S}})}catch(e){console.warn(e),y(e instanceof Error?e:Error("Error setting password on privy wallet")),f({eventName:"embedded_wallet_set_password_failed",payload:{walletAddress:j.address,reason:e}})}})(),l(!1))},onClose:x})}};exports.EmbeddedWalletPasswordUpdateScreen=n,exports.default=n;