import React, { useState, useEffect } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; import { patientService } from '../../services/patientService'; import ErrorAlert from '../../components/ErrorAlert'; import SuccessAlert from '../../components/SuccessAlert'; function PatientForm() { const { id } = useParams(); const navigate = useNavigate(); const [formData, setFormData] = useState({ firstName: '', lastName: '', emailAddress: '', embg: '', phoneNumber: '', dateOfBirth: '', gender: '', bloodType: '', }); const [error, setError] = useState(null); const [success, setSuccess] = useState(null); const [loading, setLoading] = useState(false); useEffect(() => { if (id) { const fetchPatient = async () => { try { setLoading(true); const response = await patientService.getPatientById(id); setFormData(response.data); } catch (err) { setError('Failed to fetch patient'); } finally { setLoading(false); } }; fetchPatient(); } }, [id]); const handleChange = (e) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value })); }; const handleSubmit = async (e) => { e.preventDefault(); if (!formData.firstName || !formData.lastName || !formData.embg) { setError('Please fill in all required fields'); return; } try { setLoading(true); if (id) { await patientService.updatePatient(id, formData); setSuccess('Patient updated successfully!'); } else { await patientService.createPatient(formData); setSuccess('Patient created successfully!'); } setTimeout(() => navigate('/patients'), 1500); } catch (err) { setError(err.response?.data?.error || 'Failed to save patient'); } finally { setLoading(false); } }; return (