import React, { useState, useEffect } from 'react'; import { LaboratorioFormData } from '@/hooks/useLaboratorios'; import { LaboratorioBff } from '@/services/laboratorioApiService'; interface LaboratorioFormProps { onSubmit: (data: LaboratorioFormData) => Promise; onCancel?: () => void; initialData?: LaboratorioBff | null; loading?: boolean; } const LaboratorioForm: 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 ? '🔄 Laboratório atualizado com sucesso!' : '🎉 Laboratório cadastrado com sucesso!' }); if (!initialData) { setFormData({ nome: '' }); } setTimeout(() => setMessage(null), 3000); } else { setMessage({ type: 'error', text: initialData ? 'Erro ao atualizar laboratório' : 'Erro ao cadastrar laboratório' }); } }; const handleInputChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value })); if (message) setMessage(null); }; return (

{initialData ? '✏️ Editar Laboratório' : ' Novo Laboratório'}

{initialData ? 'Atualize os dados do laboratório.' : 'Cadastre um novo laboratório na plataforma SaveInMed.'}

{message && (
{message.text}
)}
{onCancel && ( )}
{loading && (
{initialData ? 'Atualizando laboratório...' : 'Criando laboratório...'}
)}
); }; export default LaboratorioForm;