import React, { useState } from 'react'; import { usePolkadot } from '@/contexts/PolkadotContext'; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from '@/components/ui/dialog'; import { Button } from '@/components/ui/button'; import { Copy, CheckCircle, QrCode } from 'lucide-react'; import { useToast } from '@/hooks/use-toast'; import QRCode from 'qrcode'; interface ReceiveModalProps { isOpen: boolean; onClose: () => void; } export const ReceiveModal: React.FC = ({ isOpen, onClose }) => { const { selectedAccount } = usePolkadot(); const { toast } = useToast(); const [copied, setCopied] = useState(false); const [qrCodeDataUrl, setQrCodeDataUrl] = useState(''); React.useEffect(() => { if (selectedAccount && isOpen) { // Generate QR code QRCode.toDataURL(selectedAccount.address, { width: 300, margin: 2, color: { dark: '#ffffff', light: '#0f172a' } }).then(setQrCodeDataUrl).catch(console.error); } }, [selectedAccount, isOpen]); const handleCopyAddress = async () => { if (!selectedAccount) return; try { await navigator.clipboard.writeText(selectedAccount.address); setCopied(true); toast({ title: "Address Copied!", description: "Your wallet address has been copied to clipboard", }); setTimeout(() => setCopied(false), 2000); } catch (error) { toast({ title: "Copy Failed", description: "Failed to copy address to clipboard", variant: "destructive", }); } }; if (!selectedAccount) { return null; } return ( Receive Tokens Share this address to receive HEZ, PEZ, and other tokens
{/* QR Code */}
{qrCodeDataUrl ? ( QR Code ) : (
)}
{/* Account Name */}
Account Name
{selectedAccount.meta.name || 'Unnamed Account'}
{/* Address */}
Wallet Address
{selectedAccount.address}
{/* Warning */}

Important: Only send PezkuwiChain compatible tokens to this address. Sending other tokens may result in permanent loss.

); };