diff --git a/client/src/pages/PairingSimulator.jsx b/client/src/pages/PairingSimulator.jsx index c214863..8bede56 100644 --- a/client/src/pages/PairingSimulator.jsx +++ b/client/src/pages/PairingSimulator.jsx @@ -15,14 +15,19 @@ export default function PairingSimulator() { const [geneticChecking, setGeneticChecking] = useState(false) useEffect(() => { - // include_external=1 ensures external sires/dams appear for pairing - fetch('/api/dogs?include_external=1') - .then(r => r.json()) + // /all returns an unpaginated array of every active dog (kennel + external), + // so external sires/dams appear and nothing is cut off by pagination + fetch('/api/dogs/all') + .then(r => r.ok ? r.json() : Promise.reject(new Error(`HTTP ${r.status}`))) .then(data => { - setDogs(Array.isArray(data) ? data : (data.dogs || [])) + setDogs(Array.isArray(data) ? data : (data.data || [])) + setDogsLoading(false) + }) + .catch((err) => { + console.error('Failed to load dogs for pairing:', err) + setError('Failed to load dogs — refresh to try again') setDogsLoading(false) }) - .catch(() => setDogsLoading(false)) }, []) // Check for direct relation whenever both sire and dam are selected