import React, { useState, useEffect } from 'react'; import { Models } from 'appwrite'; // Interface para dados do pagamento interface PagamentoData { pedidos: string; status: 'pendente' | 'pago' | 'cancelado'; metodo: 'pix' | 'cartao'; valor: number; } interface PagamentoFormProps { onSubmit: (data: PagamentoData) => Promise; onCancel?: () => void; initialData?: PagamentoData | null; loading?: boolean; } const statusOptions = ['pendente', 'pago', 'cancelado']; const metodoOptions = ['pix', 'cartao']; const PagamentoForm: React.FC = ({ onSubmit, onCancel, initialData, loading = false }) => { const [formData, setFormData] = useState({ pedidos: '', status: 'pendente', metodo: 'pix', valor: 0 }); const [message, setMessage] = useState<{ type: 'success' | 'error'; text: string } | null>(null); useEffect(() => { if (initialData) { setFormData({ pedidos: initialData.pedidos || '', status: initialData.status || 'pendente', metodo: initialData.metodo || 'pix', valor: Number(initialData.valor) || 0 }); } else { setFormData({ pedidos: '', status: 'pendente', metodo: 'pix', valor: 0 }); } }, [initialData]); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); const success = await onSubmit(formData); if (success) { setMessage({ type: 'success', text: initialData ? 'πŸ”„ Pagamento atualizado com sucesso!' : 'πŸŽ‰ Pagamento cadastrado com sucesso!' }); if (!initialData) { setFormData({ pedidos: '', status: 'pendente', metodo: 'pix', valor: 0 }); } setTimeout(() => setMessage(null), 3000); } else { setMessage({ type: 'error', text: initialData ? 'Erro ao atualizar pagamento' : 'Erro ao cadastrar pagamento' }); } }; const handleInputChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setFormData((prev: PagamentoData) => ({ ...prev, [name]: name === 'valor' ? Number(value) : value })); if (message) setMessage(null); }; return (

{initialData ? '✏️ Editar Pagamento' : 'Novo Pagamento'}

{initialData ? 'Atualize os dados do pagamento.' : 'Cadastre um novo pagamento.'}

{message && (
{message.text}
)}
{onCancel && ( )}
); }; export default PagamentoForm;