diff --git a/packages/thirdweb/src/exports/react.ts b/packages/thirdweb/src/exports/react.ts index a9b9a1f0495..e14f80c5eb1 100644 --- a/packages/thirdweb/src/exports/react.ts +++ b/packages/thirdweb/src/exports/react.ts @@ -103,3 +103,5 @@ export { type SwapStatus, type SwapStatusParams, } from "../react/hooks/pay/useSwapStatus.js"; + +export { defaultWallets } from "../react/wallets/defaultWallets.js"; diff --git a/packages/thirdweb/src/react/ui/ConnectWallet/Details.tsx b/packages/thirdweb/src/react/ui/ConnectWallet/Details.tsx index f2259b66efd..c650a1e90f5 100644 --- a/packages/thirdweb/src/react/ui/ConnectWallet/Details.tsx +++ b/packages/thirdweb/src/react/ui/ConnectWallet/Details.tsx @@ -59,6 +59,7 @@ import { personalWalletToSmartAccountMap, smartWalletMetadata, } from "../../../wallets/smart/index.js"; +import type { EmbeddedWallet } from "../../../wallets/embedded/core/wallet/index.js"; // TEMP const LocalWalletId = "localWallet"; @@ -357,7 +358,7 @@ export const ConnectedWalletDetails: React.FC<{ - {/* */} + {/* Send and Receive */} -// {emailQuery.data} -// -// ); -// } - -// return undefined; -// } +function EmbeddedWalletEmail() { + const user = useEmbeddedWalletUser(); + if (user?.email) { + return ( + + {user.email} + + ); + } + + return undefined; +} + +function useEmbeddedWalletUser() { + const activeWallet = useActiveWallet(); + const user = + activeWallet && + "isEmbeddedWallet" in activeWallet && + "getUser" in activeWallet + ? (activeWallet as EmbeddedWallet).getUser() + : undefined; + + return user; +} diff --git a/packages/thirdweb/src/react/wallets/defaultWallets.ts b/packages/thirdweb/src/react/wallets/defaultWallets.ts index 89ebdb4c3cf..e3480cc9af1 100644 --- a/packages/thirdweb/src/react/wallets/defaultWallets.ts +++ b/packages/thirdweb/src/react/wallets/defaultWallets.ts @@ -1,11 +1,13 @@ import type { WalletConfig } from "../types/wallets.js"; import { coinbaseConfig } from "./coinbase/coinbaseConfig.js"; +import { embeddedWalletConfig } from "./embedded/embeddedWalletConfig.js"; import { metamaskConfig } from "./metamask/metamaskConfig.js"; import { rainbowConfig } from "./rainbow/rainbowConfig.js"; import { walletConnectConfig } from "./walletConnect/walletConnectConfig.js"; import { zerionConfig } from "./zerion/zerionConfig.js"; export const defaultWallets: WalletConfig[] = [ + /* @__PURE__ */ embeddedWalletConfig(), /* @__PURE__ */ metamaskConfig(), /* @__PURE__ */ coinbaseConfig(), /* @__PURE__ */ walletConnectConfig(), diff --git a/packages/thirdweb/src/react/wallets/embedded/embeddedWalletConfig.tsx b/packages/thirdweb/src/react/wallets/embedded/embeddedWalletConfig.tsx index af9485a8279..3896de4a1f4 100644 --- a/packages/thirdweb/src/react/wallets/embedded/embeddedWalletConfig.tsx +++ b/packages/thirdweb/src/react/wallets/embedded/embeddedWalletConfig.tsx @@ -23,7 +23,7 @@ import type { export type EmbeddedWalletConfigOptions = { recommended?: boolean; - auth: { + auth?: { options: EmbeddedWalletAuth[]; }; }; @@ -50,7 +50,7 @@ export const embeddedWalletConfig = ( "apple", "facebook", ]; - const authOptions = options?.auth.options || defaultAuthOptions; + const authOptions = options?.auth?.options || defaultAuthOptions; const hasEmail = authOptions.includes("email"); const hasSocial = (hasEmail && authOptions.length > 1) ||