import { useState } from "react"; import { motion, AnimatePresence } from "framer-motion"; import { Wallet, ChevronDown, ExternalLink, LogOut, Usb, Smartphone } from "lucide-react"; import { useWallet } from "@/hooks/useWallet"; import { CHAIN_INFO, type ChainId } from "@/types/wallet"; import OnboardingWizard from "./OnboardingWizard"; const ConnectWallet = () => { const { wallet, isConnecting, error, connectTronLink, connectWalletConnect, connectCoinbase, disconnect, shortenAddress, setError } = useWallet(); const [menuOpen, setMenuOpen] = useState(false); const [showOnboarding, setShowOnboarding] = useState(false); const [selectedChain, setSelectedChain] = useState("bttc"); const handleConnect = async (type: "tronlink" | "walletconnect" | "coinbase") => { setMenuOpen(false); if (type === "tronlink") { await connectTronLink(selectedChain); } else if (type === "coinbase") { await connectCoinbase(selectedChain); } else { await connectWalletConnect(selectedChain); } }; // After connecting, show onboarding wizard const handleStartOnboarding = () => { setShowOnboarding(true); setMenuOpen(false); }; if (wallet.connected) { return ( <>
{menuOpen && (
Connected to
{CHAIN_INFO[wallet.chain!].name}
{wallet.address}
View on Explorer
)}
{showOnboarding && ( setShowOnboarding(false)} /> )} ); } return (
{menuOpen && !isConnecting && ( {/* Chain selector */}
Choose network
{(["bttc", "tron"] as ChainId[]).map((c) => ( ))}
{/* Wallet options */}
{error && (
{error}
)}

Don't have a wallet?{" "} Get TronLink →

)}
); }; export default ConnectWallet;