import React, { useState } from 'react'; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from '@/components/ui/dialog'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { AlertCircle } from 'lucide-react'; interface AddTokenModalProps { isOpen: boolean; onClose: () => void; onAddToken: (assetId: number) => Promise; } export const AddTokenModal: React.FC = ({ isOpen, onClose, onAddToken, }) => { const [assetId, setAssetId] = useState(''); const [error, setError] = useState(''); const [isLoading, setIsLoading] = useState(false); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); const id = parseInt(assetId); if (isNaN(id) || id < 0) { setError('Please enter a valid asset ID (number)'); return; } setIsLoading(true); try { await onAddToken(id); setAssetId(''); setError(''); } catch (err) { setError('Failed to add token. Please check the asset ID and try again.'); } finally { setIsLoading(false); } }; const handleClose = () => { setAssetId(''); setError(''); onClose(); }; return ( Add Custom Token Enter the asset ID of the token you want to track. Note: Core tokens (HEZ, PEZ) are already displayed separately.
setAssetId(e.target.value)} placeholder="e.g., 3" className="bg-gray-800 border-gray-700 text-white placeholder:text-gray-500" min="0" required />

Each token on the network has a unique asset ID

{error && (

{error}

)}
); };