@privy-io/react-auth
Version:
React client for the Privy Auth API
2 lines (1 loc) • 4.63 kB
JavaScript
;var e=require("react/jsx-runtime"),r=require("react"),t=require("./context-Cg3IEi80.js"),i=require("./index-DchMyzt9.js"),o=require("./internal-context-BJv4f_bO.js"),a=require("./privy-context-CrM9_s6G.js"),s=require("./useActiveWallet-BfMD5hzE.js"),u=require("./shouldProceedtoEmbeddedWalletCreationFlow-BUJZ4s-V.js"),n=require("./ScreenLayout-C4QHZMbl.js");require("@privy-io/js-sdk-core"),require("tinycolor2"),require("uuid"),require("jose"),require("eventemitter3"),require("./useWallets-dikDynAG.js"),require("viem"),require("./use-export-wallet-_EIyxyle.js"),require("viem/utils"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("mipd"),require("react-device-detect"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("./usePrivy-C-Rab7yP.js"),require("./events-context-Di6--rDg.js"),require("@scure/base"),require("styled-components"),require("zustand"),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("./ModalHeader-C5Wuo3-1.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("./Screen-DWnRbzSA.js"),require("./index-ByFhjjzH.js");const c=({providerApp:t,success:i,error:o,onClose:a})=>{let{title:s,subtitle:u}=r.useMemo((()=>i?{title:`Successfully connected with ${t.name}`,subtitle:"You're good to go!"}:o?{title:"Authentication failed",subtitle:o.message}:{title:`Connecting to ${t.name}`,subtitle:`Please check the pop-up from ${t.name} to continue`}),[i,o,t.name]);/*#__PURE__*/return e.jsx(n.ScreenLayout,{title:s,subtitle:u,icon:t.logoUrl,iconVariant:"loading",iconLoadingStatus:{success:i,fail:!!o},onBack:a,watermark:!0})},l={component:()=>{let n=t.useAppConfig(),{data:l,navigate:d,setModalData:p,onUserCloseViaDialogOrKeybindRef:q}=a.usePrivyModal(),{crossAppAuthFlow:m,updateWallets:S,closePrivyModal:v,createAnalyticsEvent:A}=o.usePrivyInternal(),{logout:h}=s.useLogout(),[f,y]=r.useState({}),C=l?.crossAppAuth,E=new o.PrivyClientError(`There was an issue connecting your ${C?.name} account. Please try again.`),g=new i.RunEffectOnce((async e=>{if(C?.popup)try{let r=await m({appId:e,popup:C.popup,action:C.action,disableSignup:C.disableSignup});y({data:r})}catch(e){if(e instanceof o.PrivyClientError)y({error:e});else if(e instanceof o.PrivyApiError){if(e.privyErrorCode===o.PrivyErrorCode.ACCOUNT_TRANSFER_REQUIRED&&e.data?.data?.nonce)return p({accountTransfer:{nonce:e.data?.data?.nonce,account:e.data?.data?.subject,displayName:e.data?.data?.account?.displayName,linkMethod:`privy:${C.appId}`,embeddedWalletAddress:e.data?.data?.otherUser?.embeddedWalletAddress,oAuthUserInfo:e.data?.data?.otherUser?.oAuthUserInfo}}),void d("LinkConflictScreen");C.popup&&C.popup.close(),y({error:E})}else y({error:E})}else y({error:E})})),j=()=>{f.data&&(S(),C?.onSuccess(f.data),v({shouldCallAuthOnSuccess:!0,isSuccess:!0})),C?.onError(f.error??new o.PrivyClientError("User canceled flow")),v({shouldCallAuthOnSuccess:!1,isSuccess:!1})};return q.current=j,r.useEffect((()=>{C?.appId?.length&&g.execute(C.appId)}),[C?.appId]),r.useEffect((()=>{if(!f.data)return;let e=f.data;if(n.legal.requireUsersAcceptTerms&&!e.hasAcceptedTerms){let e=setTimeout((()=>{d("AffirmativeConsentScreen")}),t.DEFAULT_SUCCESS_SCREEN_DURATION_MS);return()=>clearTimeout(e)}if(u.shouldProceedtoEmbeddedWalletCreationFlow(e,n.embeddedWallets)){let e=setTimeout((()=>{p({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),A({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,provider:`privy:${C?.appId}`,screen:"CrossAppAuthScreen"}}),h()},callAuthOnSuccessOnClose:!0}}),d("EmbeddedWalletOnAccountCreateScreen")}),t.DEFAULT_SUCCESS_SCREEN_DURATION_MS);return()=>clearTimeout(e)}let r=setTimeout(j,t.DEFAULT_SUCCESS_SCREEN_DURATION_MS);return()=>clearTimeout(r)}),[f.data]),C?.appId?/*#__PURE__*/e.jsx(c,{providerApp:{id:C?.appId,logoUrl:C?.logoUrl,name:C?.name},success:!!f.data,error:f.error,onClose:j}):(console.warn("Missing data for Screen"),null)},isShownBeforeReady:!0};exports.CrossAppAuthScreen=l,exports.CrossAppAuthScreenView=c,exports.default=l;