@mojito-inc/connect-wallet
Version:
Connecting wallet via metamask, wallet connect, email
24 lines (21 loc) • 1.64 kB
JavaScript
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 };