import React, { useState } from 'react'; import { Wallet, Chrome, ExternalLink, Copy, Check, LogOut } from 'lucide-react'; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from '@/components/ui/dialog'; import { Button } from '@/components/ui/button'; import { usePolkadot } from '@/contexts/PolkadotContext'; import { formatAddress } from '@/lib/wallet'; interface WalletModalProps { isOpen: boolean; onClose: () => void; } export const WalletModal: React.FC = ({ isOpen, onClose }) => { const { accounts, selectedAccount, setSelectedAccount, connectWallet, disconnectWallet, error } = usePolkadot(); const [copied, setCopied] = useState(false); const handleCopyAddress = () => { if (selectedAccount?.address) { navigator.clipboard.writeText(selectedAccount.address); setCopied(true); setTimeout(() => setCopied(false), 2000); } }; const handleConnect = async () => { await connectWallet(); }; const handleSelectAccount = (account: typeof accounts[0]) => { setSelectedAccount(account); onClose(); }; const handleDisconnect = () => { disconnectWallet(); onClose(); }; return ( {selectedAccount ? 'Wallet Connected' : 'Connect Wallet'} {selectedAccount ? 'Manage your Polkadot account' : 'Connect your Polkadot.js extension to interact with PezkuwiChain'} {/* No Extension Error */} {error && error.includes('extension') && (

Polkadot.js extension not detected. Please install it to continue.

After installing, refresh the page and try again

)} {/* Connected State */} {selectedAccount && !error && (
{/* Account Info */}
Account Name
{selectedAccount.meta.name || 'Unnamed Account'}
Address
{formatAddress(selectedAccount.address)}
Source
{selectedAccount.meta.source || 'polkadot-js'}
{/* Actions */}
{/* Switch Account */} {accounts.length > 1 && (
Switch Account
{accounts.map((account) => ( ))}
)}
)} {/* Not Connected State */} {!selectedAccount && !error && (
{accounts.length > 0 ? ( // Has accounts, show selection
Select an account to connect:
{accounts.map((account) => ( ))}
) : ( // No accounts, show connect button
Don't have Polkadot.js?{' '} Download here
)}
)}
); };