import { useEffect, useState } from 'react' import { useParams, Link } from 'react-router-dom' import { Dog, GitBranch, Edit, Trash2 } from 'lucide-react' import axios from 'axios' function DogDetail() { const { id } = useParams() const [dog, setDog] = useState(null) const [loading, setLoading] = useState(true) useEffect(() => { fetchDog() }, [id]) const fetchDog = async () => { try { const res = await axios.get(`/api/dogs/${id}`) setDog(res.data) setLoading(false) } catch (error) { console.error('Error fetching dog:', error) setLoading(false) } } if (loading) { return
Loading...
} if (!dog) { return
Dog not found
} return (

{dog.name}

View Pedigree

Basic Information

Breed: {dog.breed}
Sex: {dog.sex === 'male' ? 'Male ♂' : 'Female ♀'}
{dog.birth_date && (
Birth Date: {new Date(dog.birth_date).toLocaleDateString()}
)} {dog.color && (
Color: {dog.color}
)} {dog.registration_number && (
Registration: {dog.registration_number}
)} {dog.microchip && (
Microchip: {dog.microchip}
)}

Photos

{dog.photo_urls && dog.photo_urls.length > 0 ? (
{dog.photo_urls.map((url, index) => ( {`${dog.name} ))}
) : (

No photos uploaded

)}
{dog.notes && (

Notes

{dog.notes}

)}

Parents

Sire (Father)

{dog.sire ? ( {dog.sire.name} ) : (

Unknown

)}

Dam (Mother)

{dog.dam ? ( {dog.dam.name} ) : (

Unknown

)}
{dog.offspring && dog.offspring.length > 0 && (

Offspring ({dog.offspring.length})

{dog.offspring.map(child => ( {child.name} - {child.sex === 'male' ? '♂' : '♀'} ))}
)}
) } export default DogDetail