@mojito-inc/connect-wallet
Version:
Connecting wallet via metamask, wallet connect, email
26 lines (23 loc) • 1.05 kB
JavaScript
import { useMemo } from 'react';
import { Magic } from 'magic-sdk';
import { SolanaExtension } from '@magic-ext/solana';
import { clusterApiUrl } from '@solana/web3.js';
import { useMagicConfig } from '../provider/MagicWalletProvider.js';
import { useWalletType } from '../provider/WalletTypeProvider.js';
const useMagic = () => {
const { walletType } = useWalletType();
const isSolanaWallet = useMemo(() => walletType === 'solana', [walletType]);
const { magicWalletId, env, customRPCUrl } = useMagicConfig();
const magic = magicWalletId && isSolanaWallet && typeof window !== 'undefined' ? new Magic(magicWalletId !== null && magicWalletId !== void 0 ? magicWalletId : '', {
// testMode: true,
deferPreload: false,
useStorageCache: false,
extensions: [
new SolanaExtension({
rpcUrl: customRPCUrl || clusterApiUrl(env !== null && env !== void 0 ? env : 'devnet'),
}),
],
}) : null;
return { magic };
};
export { useMagic };