import React, { useState } from 'react'; import { Balance } from '../types'; interface AddBalanceModalProps { isOpen: boolean; onClose: () => void; onAddBalance: (balance: Omit) => void; onUpdateBalance?: (balance: Balance) => void; balanceToEdit?: Balance | null; } const AddBalanceModal: React.FC = ({ isOpen, onClose, onAddBalance, onUpdateBalance, balanceToEdit }) => { const [name, setName] = useState(''); const [initialAmount, setInitialAmount] = useState(''); React.useEffect(() => { if (balanceToEdit) { setName(balanceToEdit.name); setInitialAmount(balanceToEdit.initialAmount.toString()); } else { setName(''); setInitialAmount(''); } }, [balanceToEdit, isOpen]); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); if (!name || !initialAmount) { alert('Please fill all required fields.'); return; } if (balanceToEdit && onUpdateBalance) { onUpdateBalance({ ...balanceToEdit, name, initialAmount: parseFloat(initialAmount), }); } else { onAddBalance({ name, initialAmount: parseFloat(initialAmount), }); } resetForm(); }; const resetForm = () => { setName(''); setInitialAmount(''); onClose(); }; if (!isOpen) return null; return (

{balanceToEdit ? 'Edit Balance' : 'Add New Balance'}

setName(e.target.value)} className="w-full mt-1 px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-gray-800 transition" placeholder="e.g., Main Account, Savings" />
setInitialAmount(e.target.value)} className="w-full mt-1 px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-gray-800 transition" placeholder="0.00" />
); }; export default AddBalanceModal;