UNPKG

@privy-io/react-auth

Version:

React client for the Privy Auth API

2 lines (1 loc) 4.6 kB
"use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("./context-BPd2qxKv.js"),i=require("./index-Dz7affvL.js"),o=require("./internal-context-NWsAL807.js"),a=require("./get-is-unified-wallet-D6pn8A8g.js"),s=require("./useActiveWallet-B-Pd49hn.js"),u=require("./shouldProceedtoEmbeddedWalletCreationFlow-BjZ_f-Zv.js"),n=require("./ScreenLayout-D6r13vU7.js");require("@privy-io/js-sdk-core"),require("tinycolor2"),require("uuid"),require("jose"),require("eventemitter3"),require("./useWallets-Bi_kf80t.js"),require("./prepareFundingModalData-Do7d2fgq.js"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("mipd"),require("react-device-detect"),require("viem/utils"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("./usePrivy-CANb3vg4.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("viem"),require("./getPublicClient-CGlodIp_.js"),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("./Button-BEaVAnh4.js"),require("./Screen-J7z62u7O.js"),require("./ModalHeader-n6Aqpos_.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=({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:h,closePrivyModal:A,createAnalyticsEvent:S}=o.usePrivyInternal(),{logout:f}=s.useLogout(),[v,C]=r.useState({}),y=l?.crossAppAuth,E=new o.PrivyClientError(`There was an issue connecting your ${y?.name} account. Please try again.`),g=new i.RunEffectOnce((async e=>{if(y?.popup)try{let r=await m({appId:e,popup:y.popup,action:y.action});C({data:r})}catch(e){if(e instanceof o.PrivyClientError)C({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:${y.appId}`,embeddedWalletAddress:e.data?.data?.otherUser?.embeddedWalletAddress,oAuthUserInfo:e.data?.data?.otherUser?.oAuthUserInfo}}),void d("LinkConflictScreen");y.popup&&y.popup.close(),C({error:E})}else C({error:E})}else C({error:E})})),j=()=>{v.data&&(h(),y?.onSuccess(v.data),A({shouldCallAuthOnSuccess:!0,isSuccess:!0})),y?.onError(v.error??new o.PrivyClientError("User canceled flow")),A({shouldCallAuthOnSuccess:!1,isSuccess:!1})};return q.current=j,r.useEffect((()=>{y?.appId?.length&&g.execute(y.appId)}),[y?.appId]),r.useEffect((()=>{if(!v.data)return;let e=v.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),S({eventName:"embedded_wallet_creation_failure_logout",payload:{error:e,provider:`privy:${y?.appId}`,screen:"CrossAppAuthScreen"}}),f()},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)}),[v.data]),y?.appId?/*#__PURE__*/e.jsx(c,{providerApp:{id:y?.appId,logoUrl:y?.logoUrl,name:y?.name},success:!!v.data,error:v.error,onClose:j}):(console.warn("Missing data for Screen"),null)},isShownBeforeReady:!0};exports.CrossAppAuthScreen=l,exports.CrossAppAuthScreenView=c,exports.default=l;