import React, { useState, useEffect } from 'react'; import { Models } from 'appwrite'; import { CategoriaFormData } from '@/hooks/useCategorias'; import { Plus } from 'lucide-react'; interface CategoriaFormProps { onSubmit: (data: CategoriaFormData) => Promise; onCancel?: () => void; initialData?: Models.Document | null; loading?: boolean; } const CategoriaForm: React.FC = ({ onSubmit, onCancel, initialData, loading = false }) => { const [formData, setFormData] = useState({ nome: '' }); const [message, setMessage] = useState<{ type: 'success' | 'error'; text: string } | null>(null); useEffect(() => { if (initialData) { setFormData({ nome: initialData.nome || '' }); } else { setFormData({ nome: '' }); } }, [initialData]); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); const success = await onSubmit(formData); if (success) { setMessage({ type: 'success', text: initialData ? '🔄 Categoria atualizada com sucesso!' : '🎉 Categoria cadastrada com sucesso!' }); if (!initialData) { setFormData({ nome: '' }); } setTimeout(() => setMessage(null), 3000); } else { setMessage({ type: 'error', text: initialData ? 'Erro ao atualizar categoria' : 'Erro ao cadastrar categoria' }); } }; const handleInputChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value })); if (message) setMessage(null); }; return (

{initialData ? 'Editar Categoria' : 'Nova Categoria'}

{initialData ? 'Atualize os dados da categoria.' : 'Cadastre uma nova categoria na plataforma SaveInMed.'}

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