/**
* 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 })}>;
}
};