'use client'; import React, { useEffect, useState } from 'react'; import { useSDK, MetaMaskProvider } from '@metamask/sdk-react'; import { Button } from '@/components/ui/button'; import { Popover, PopoverContent, PopoverTrigger, } from '@/components/ui/popover'; function WalletIcon(props: React.SVGProps) { return ( ); } function formatAddress(address: string | undefined): string { if (!address) return ''; return `${address.slice(0, 6)}...${address.slice(-4)}`; } function MetaMaskConnect() { const { sdk, connected, connecting, account } = useSDK(); const [metaMaskInstalled, setMetaMaskInstalled] = useState(false); const isMetaMaskInstalled = () => typeof window !== 'undefined' && typeof window.ethereum !== 'undefined'; useEffect(() => { if (isMetaMaskInstalled()) { setMetaMaskInstalled(true); } }, []); const connect = async () => { try { await sdk?.connect(); } catch (err) { console.warn(`No accounts found`, err); } }; const disconnect = () => { if (sdk) { sdk.terminate(); } }; if (!metaMaskInstalled) { return ( ); } return (
{connected ? ( ) : ( )}
); } export default function MetaMaskConnectWrapper() { return ( ); }