import React, { useState, useEffect } from 'react'; import { Models } from '@/lib/appwrite'; interface CatalogoProdutoFormProps { onSubmit: (data: { descricao: string }) => Promise; onCancel?: () => void; initialData?: Models.Document | null; loading?: boolean; } type CatalogoProdutoDocument = Models.Document & { descricao?: string; }; const CatalogoProdutoForm: React.FC = ({ onSubmit, onCancel, initialData, loading = false, }) => { const [formData, setFormData] = useState<{ descricao: string }>({ descricao: '' }); const [message, setMessage] = useState<{ type: 'success' | 'error'; text: string } | null>(null); useEffect(() => { if (initialData) { const document = initialData as CatalogoProdutoDocument; setFormData({ descricao: document.descricao || '' }); } else { setFormData({ descricao: '' }); } }, [initialData]); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); const success = await onSubmit(formData); if (success) { setMessage({ type: 'success', text: initialData ? '🔄 Catálogo de produto atualizado com sucesso!' : '🎉 Catálogo de produto cadastrado com sucesso!' }); if (!initialData) { setFormData({ descricao: '' }); } setTimeout(() => setMessage(null), 3000); } else { setMessage({ type: 'error', text: initialData ? 'Erro ao atualizar catálogo de produto' : 'Erro ao cadastrar catálogo de produto' }); } }; const handleChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value })); if (message) setMessage(null); }; return (

{initialData ? 'Editar Catálogo de Produto' : 'Novo Catálogo de Produto'}

{initialData ? 'Atualize os dados do catálogo de produto.' : 'Cadastre um novo catálogo de produto na plataforma SaveInMed.'}

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