import { useEffect, useState } from 'react' import { Link } from 'react-router-dom' import { Dog, Plus, Search } from 'lucide-react' import axios from 'axios' import DogForm from '../components/DogForm' function DogList() { const [dogs, setDogs] = useState([]) const [filteredDogs, setFilteredDogs] = useState([]) const [search, setSearch] = useState('') const [sexFilter, setSexFilter] = useState('all') const [loading, setLoading] = useState(true) const [showAddModal, setShowAddModal] = useState(false) useEffect(() => { fetchDogs() }, []) useEffect(() => { filterDogs() }, [dogs, search, sexFilter]) const fetchDogs = async () => { try { const res = await axios.get('/api/dogs') setDogs(res.data) setLoading(false) } catch (error) { console.error('Error fetching dogs:', error) setLoading(false) } } const filterDogs = () => { let filtered = dogs if (search) { filtered = filtered.filter(dog => dog.name.toLowerCase().includes(search.toLowerCase()) || (dog.registration_number && dog.registration_number.toLowerCase().includes(search.toLowerCase())) ) } if (sexFilter !== 'all') { filtered = filtered.filter(dog => dog.sex === sexFilter) } setFilteredDogs(filtered) } const handleSave = () => { fetchDogs() } if (loading) { return
{dog.breed} • {dog.sex === 'male' ? '♂' : '♀'}
{dog.registration_number && ({dog.registration_number}
)} {dog.birth_date && (Born: {new Date(dog.birth_date).toLocaleDateString()}
)} ))}No dogs found matching your search criteria.