@privy-io/react-auth
Version:
React client for the Privy Auth API
2 lines (1 loc) • 4.58 kB
JavaScript
;var e=require("react/jsx-runtime"),r=require("react"),t=require("react-device-detect"),n=require("./prepareFundingModalData-Cnd6rhhJ.js"),i=require("./context-DFq1obBO.js"),o=require("./useActiveWallet-BOX8xCn9.js"),a=require("./internal-context-NWsAL807.js"),s=require("./get-is-unified-wallet-D4ouXJpi.js"),l=require("./ScreenLayout-BeH-Q6N2.js"),c=require("./index-NJrQkxJ7.js"),u=require("./ConnectionStatusScreen-C1nqbW_A.js");require("@privy-io/js-sdk-core"),require("eventemitter3"),require("tinycolor2"),require("zustand"),require("styled-components"),require("./events-context-Di6--rDg.js"),require("viem"),require("viem/utils"),require("./getPublicClient-CGlodIp_.js"),require("./useWallets-BLFNjTwC.js"),require("ofetch"),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"),require("uuid"),require("jose"),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("./Link-DmzPZ_M7.js"),require("./useI18n-CY6Et_lH.js"),require("./shouldProceedtoEmbeddedWalletCreationFlow-DZvEYqlO.js");const d=({walletLogo:r,success:t,errorMessage:i,title:o,subtitle:a,onRetry:s,onUseDifferentWallet:c,onBack:u,numRetries:d,maxRetries:q})=>/*#__PURE__*/e.jsx(l.ScreenLayout,{title:o,subtitle:a,icon:r,iconVariant:"loading",iconLoadingStatus:{success:t,fail:!!i},primaryCta:i===n.ConnectorErrors.ERROR_USER_EXISTS?{label:"Use a different wallet",onClick:c}:!t&&i?.retryable&&d<q?{label:"Retry",onClick:s,disabled:!i?.retryable||d>=q}:!t&&i&&d>=q?{label:"Use a different wallet",onClick:c}:void 0,onBack:u,watermark:!0}),q={component:()=>{let n,{navigateBack:l,navigate:q,lastScreen:w,currentScreen:p,data:m,setModalData:y}=s.usePrivyModal(),{walletConnectionStatus:C,closePrivyModal:g}=a.usePrivyInternal(),[j,S]=r.useState(void 0),[v,f]=r.useState(0),h=o.useExternalWalletListing(C?.connector?.walletClientType||"unknown"),b="connected"===C?.status,k="switching_to_supported_chain"===C?.status;r.useEffect((()=>{if(b){let e;if(m?.externalConnectWallet?.onCompleteNavigateTo){let r=m.externalConnectWallet.onCompleteNavigateTo,t=C.connectedWallet?.address;e=setTimeout((()=>{if(m.funding&&C.connector){let e=C.connector.wallets.find((e=>e.address===t));y({...m,funding:{...m.funding,connectedWallet:e}})}q(r({address:t,walletClientType:C.connector?.walletClientType,walletChainType:C.connector?.chainType}))}),i.DEFAULT_SUCCESS_SCREEN_DURATION_MS)}else e=setTimeout(g,i.DEFAULT_SUCCESS_SCREEN_DURATION_MS);return()=>clearTimeout(e)}}),[b]);r.useEffect((()=>{C?.connectError&&(e=>{S(u.getErrorDetails(e))})(C?.connectError)}),[C]);let E=C?.connector?.connectorType||"injected",x=C?.connector?.walletClientType||"unknown",T=h?.metadata?.shortName||h?.name||C?.connector?.walletBranding.name||"Browser Extension",R=h?.image_url?.md||C?.connector?.walletBranding.icon||(r=>/*#__PURE__*/e.jsx(c.BrowserExtensionWallet,{...r})),_="Browser Extension"===T?T.toLowerCase():T;n=b?`Successfully connected with ${_}`:j?j.message:k?"Switching networks":`Waiting for ${_}`;let M="Don’t see your wallet? Check your other browser windows.";return b?M="You’re good to go!":v>=2&&j?M="Unable to connect wallet":j?M=j.detail:k?M="Switch your wallet to the requested network.":"metamask"===x&&t.isMobile?M="Click to continue to open and connect MetaMask.":"metamask"===x?M="For the best experience, connect only one wallet at a time.":"wallet_connect_v2"===E?M="Open your mobile wallet app to continue":"coinbase_wallet"===E&&(M="Confirm in the Coinbase app/popup to continue."),/*#__PURE__*/e.jsx(d,{walletName:T,walletLogo:R,success:b,errorMessage:j,title:n,subtitle:M,onRetry:()=>{f(v+1),S(void 0),C?.connectRetry()},onUseDifferentWallet:l,onBack:p===w?void 0:l,numRetries:v,maxRetries:2})}};exports.ConnectOnlyStatusScreen=q,exports.ConnectOnlyStatusScreenView=d,exports.default=q;