UNPKG

@mojito-inc/connect-wallet

Version:

Connecting wallet via metamask, wallet connect, email

24 lines (21 loc) 1.64 kB
import * as React from 'react'; import { useMemo } from 'react'; import { ThirdwebProvider, AutoConnect } from 'thirdweb/react'; import { inAppWallet } from 'thirdweb/wallets'; import { ThirdWebClientProvider } from './ThirdWebClientProvider.js'; import { Web3ModalProvider } from './Web3ModalWrapperProvider.js'; import SolanaWalletProvider from './SolanaWalletProvider.js'; import MagicWalletProvider from './MagicWalletProvider.js'; import { getThirdWebClient } from '../utils/thirdWebClient.utils.js'; const WalletsProvider = ({ children, activeChain, clientId, magicProjectId, metaData, solanaWalletEnv, walletConnectProjectId, walletType, customRPCUrl, }) => { const isEthereumWallet = useMemo(() => walletType === 'ethereum', [walletType]); const isSolanaWallet = useMemo(() => walletType === 'solana', [walletType]); return (React.createElement(React.Fragment, null, isEthereumWallet && (React.createElement(ThirdWebClientProvider, { projectId: clientId, activeChain: activeChain }, React.createElement(ThirdwebProvider, null, React.createElement(AutoConnect, { wallets: [inAppWallet()], client: getThirdWebClient(clientId) }), React.createElement(Web3ModalProvider, { metaData: metaData, projectId: walletConnectProjectId }, children)))), isSolanaWallet && (React.createElement(SolanaWalletProvider, { customRPCUrl: customRPCUrl, env: solanaWalletEnv }, React.createElement(MagicWalletProvider, { customRPCUrl: customRPCUrl, magicWalletId: magicProjectId, env: solanaWalletEnv }, children))))); }; export { WalletsProvider as default };