@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("react-device-detect"),n=require("./use-export-wallet-B5ujV5Nk.js"),i=require("./context-D-ZJYjUg.js"),o=require("./useActiveWallet-Cn6zOXx5.js"),a=require("./internal-context-BJv4f_bO.js"),s=require("./get-is-unified-wallet-UpdjHxOV.js"),l=require("./ScreenLayout-CMb-Fua0.js"),c=require("./index-C8lpxYDX.js"),u=require("./ConnectionStatusScreen-D2pFs10v.js");require("@privy-io/js-sdk-core"),require("eventemitter3"),require("viem/utils"),require("./useWallets-CKAypPZB.js"),require("tinycolor2"),require("zustand"),require("styled-components"),require("./events-context-Di6--rDg.js"),require("viem"),require("./getPublicClient-BsmZyCGX.js"),require("ofetch"),require("@privy-io/are-addresses-equal"),require("./ModalHeader-BCPQgekO.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-BfKedqka.js"),require("./index-ByFhjjzH.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-cfS6o4tX.js"),require("@scure/base"),require("@headlessui/react"),require("@walletconnect/ethereum-provider"),require("@privy-io/urls"),require("./PrivyPluginContext-DsgaS6n9.js"),require("./getEmbeddedConnectedWallet-pJd-l936.js"),require("js-cookie"),require("./frame-Oz7volks.js"),require("@privy-io/routes"),require("x402/client"),require("@privy-io/api-base"),require("viem/accounts"),require("./use-sign-with-user-signer-Cu_6Bx7m.js"),require("./Link-BdtTp2J4.js"),require("./useI18n-DFGBJl_S.js"),require("./shouldProceedtoEmbeddedWalletCreationFlow-DADJI9f0.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:j}=a.usePrivyInternal(),[g,S]=r.useState(void 0),[v,f]=r.useState(0),h=o.useExternalWalletListing(C?.connector?.walletClientType||"unknown"),x="connected"===C?.status,E="switching_to_supported_chain"===C?.status;r.useEffect((()=>{if(x){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(j,i.DEFAULT_SUCCESS_SCREEN_DURATION_MS);return()=>clearTimeout(e)}}),[x]);r.useEffect((()=>{C?.connectError&&(e=>{S(u.getErrorDetails(e))})(C?.connectError)}),[C]);let b=C?.connector?.connectorType||"injected",k=C?.connector?.walletClientType||"unknown",R=h?.metadata?.shortName||h?.name||C?.connector?.walletBranding.name||"Browser Extension",T=h?.image_url?.md||C?.connector?.walletBranding.icon||(r=>/*#__PURE__*/e.jsx(c.BrowserExtensionWallet,{...r})),_="Browser Extension"===R?R.toLowerCase():R;n=x?`Successfully connected with ${_}`:g?g.message:E?"Switching networks":`Waiting for ${_}`;let M="Don’t see your wallet? Check your other browser windows.";return x?M="You’re good to go!":v>=2&&g?M="Unable to connect wallet":g?M=g.detail:E?M="Switch your wallet to the requested network.":"metamask"===k&&t.isMobile?M="Click to continue to open and connect MetaMask.":"metamask"===k?M="For the best experience, connect only one wallet at a time.":"wallet_connect_v2"===b?M="Open your mobile wallet app to continue":"coinbase_wallet"===b&&(M="Confirm in the Coinbase app/popup to continue."),/*#__PURE__*/e.jsx(d,{walletName:R,walletLogo:T,success:x,errorMessage:g,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;