import { useState, useEffect } from 'react' import { X } from 'lucide-react' import axios from 'axios' function LitterForm({ litter, prefill, onClose, onSave }) { const [formData, setFormData] = useState({ sire_id: '', dam_id: '', breeding_date: '', whelping_date: '', puppy_count: 0, notes: '' }) const [dogs, setDogs] = useState([]) const [loading, setLoading] = useState(false) const [error, setError] = useState('') useEffect(() => { fetchDogs() if (litter) { setFormData({ sire_id: litter.sire_id || '', dam_id: litter.dam_id || '', breeding_date: litter.breeding_date || '', whelping_date: litter.whelping_date || '', puppy_count: litter.puppy_count || 0, notes: litter.notes || '' }) } else if (prefill) { // Pre-populate from BreedingCalendar "Record Litter" flow setFormData(prev => ({ ...prev, dam_id: prefill.dam_id ? String(prefill.dam_id) : '', breeding_date: prefill.breeding_date || '', whelping_date: prefill.whelping_date || '', })) } }, [litter, prefill]) const fetchDogs = async () => { try { const res = await axios.get('/api/dogs') setDogs(res.data) } catch (error) { console.error('Error fetching dogs:', error) } } const handleChange = (e) => { const { name, value } = e.target setFormData(prev => ({ ...prev, [name]: value })) } const handleSubmit = async (e) => { e.preventDefault() setError('') setLoading(true) try { if (litter) { await axios.put(`/api/litters/${litter.id}`, formData) } else { await axios.post('/api/litters', formData) } onSave() onClose() } catch (error) { setError(error.response?.data?.error || 'Failed to save litter') setLoading(false) } } const males = dogs.filter(d => d.sex === 'male') const females = dogs.filter(d => d.sex === 'female') return (