/** * EvmConnectButton — Replaces RainbowKit's ConnectButton. * Uses wagmi's injected connector (MetaMask, Coinbase, Brave, etc.) * No WalletConnect cloud dependency required. */ import { useAccount, useConnect, useDisconnect } from 'wagmi'; import { Wallet, CheckCircle, LogOut } from 'lucide-react'; interface EvmConnectButtonProps { showBalance?: boolean; chainStatus?: string; accountStatus?: string; } export default function EvmConnectButton(props?: EvmConnectButtonProps) { const { address, isConnected } = useAccount(); const { connect, connectors } = useConnect(); const { disconnect } = useDisconnect(); if (isConnected && address) { return (
{address.slice(0, 6)}...{address.slice(-4)}
); } return ( ); } // Also export as Custom for the ConnectButton.Custom pattern used by HumanPaymentSection export const ConnectButton = { Custom: ({ children }: { children: (props: { openConnectModal: () => void; mounted: boolean }) => React.ReactNode }) => { const { isConnected } = useAccount(); const { connect, connectors } = useConnect(); const openConnectModal = () => { const injected = connectors.find(c => c.id === 'injected') || connectors[0]; if (injected) connect({ connector: injected }); }; return <>{children({ openConnectModal, mounted: true })}; } };