UNPKG

@privy-io/react-auth

Version:

React client for the Privy Auth API

2 lines (1 loc) 4.57 kB
"use strict";var e=require("react/jsx-runtime"),r=require("lucide-react"),t=require("react"),s=require("styled-components"),i=require("./context-DFq1obBO.js"),o=require("./internal-context-NWsAL807.js"),u=require("./get-is-unified-wallet-D4ouXJpi.js"),a=require("./shouldProceedtoEmbeddedWalletCreationFlow-DZvEYqlO.js"),n=require("./ScreenLayout-BeH-Q6N2.js");require("@privy-io/js-sdk-core"),require("tinycolor2"),require("ofetch"),require("viem"),require("./index-NJrQkxJ7.js"),require("uuid"),require("jose"),require("eventemitter3"),require("./useActiveWallet-BOX8xCn9.js"),require("zustand"),require("react-device-detect"),require("./prepareFundingModalData-Cnd6rhhJ.js"),require("./events-context-Di6--rDg.js"),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("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-Bm_Ft0Dw.js"),require("./Screen-D9Tvi297.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("./index-CRFXS9pP.js");const c=({status:t,passkeySignupFlow:s=!1,error:i,onRetry:u})=>/*#__PURE__*/e.jsx(n.ScreenLayout,{title:(()=>{switch(t){case"loading":return"Waiting for passkey";case"success":return"Success";case"error":return"Something went wrong"}})(),subtitle:/*#__PURE__*/e.jsx(d,{children:(()=>{switch(t){case"loading":return s?"Please follow prompts to register your passkey.":"Please follow prompts to verify your passkey.\nYou will have to sign up with another method first to register a passkey for your account.";case"success":return"You've successfully logged in with your passkey.";case"error":if(i instanceof o.PrivyError){if(i.privyErrorCode===o.PrivyErrorCode.CANNOT_LINK_MORE_OF_TYPE)return"Cannot link more passkeys to account.";if(i.privyErrorCode===o.PrivyErrorCode.PASSKEY_NOT_ALLOWED)return"Passkey request timed out or rejected by user.\nYou will have to sign up with another method first to register a passkey for your account."}return"An unknown error occurred.\nYou will have to sign up with another method first to register a passkey for your account."}})()}),icon:r.FingerprintIcon,iconVariant:"loading",iconLoadingStatus:{success:"success"===t,fail:"error"===t},primaryCta:"error"===t&&u?{label:"Retry",onClick:u}:"success"===t?{label:"Continue",disabled:!0}:void 0,watermark:!0}),l={component:()=>{let{data:r,setModalData:s,navigate:n}=u.usePrivyModal(),l=i.useAppConfig(),{loginWithPasskey:d,signupWithPasskey:p,closePrivyModal:y,createAnalyticsEvent:q}=o.usePrivyInternal(),{user:h,logout:f}=u.usePrivyContext(),{passkeySignupFlow:v}=r?.passkeyAuthModalData??{},g=i.DEFAULT_SUCCESS_SCREEN_DURATION_MS-500,[m,S]=t.useState("loading"),[w,j]=t.useState(null),C=t.useRef([]),k=e=>{C.current=[e,...C.current]};t.useEffect((()=>()=>{C.current.forEach((e=>clearTimeout(e))),C.current=[]}),[]);let E=async()=>{S("loading");try{v?await p():await d(),S("success")}catch(e){j(e),S("error")}};return t.useEffect((()=>{if("success"===m&&h){if(l?.legal.requireUsersAcceptTerms&&!h.hasAcceptedTerms)return void k(setTimeout((()=>{n("AffirmativeConsentScreen")}),g));if(!a.shouldProceedtoEmbeddedWalletCreationFlow(h,l?.embeddedWallets))return void k(setTimeout((()=>{y({shouldCallAuthOnSuccess:!0,isSuccess:!0})}),i.DEFAULT_SUCCESS_SCREEN_DURATION_MS));k(setTimeout((()=>{s({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),q({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,screen:"PasskeyStatusScreen"}}),f()},callAuthOnSuccessOnClose:!0}}),n("EmbeddedWalletOnAccountCreateScreen")}),g))}}),[h,m]),t.useEffect((()=>{E()}),[]),/*#__PURE__*/e.jsx(c,{status:m,passkeySignupFlow:v,error:w,onRetry:E})}};let d=/*#__PURE__*/s.styled.span.withConfig({displayName:"SubtitleText",componentId:"sc-5f92460f-0"})(["white-space:pre-wrap;"]);exports.PasskeyStatusScreen=l,exports.PasskeyStatusScreenView=c,exports.default=l;