import { useState } from 'react'; import { Plus, Users } from 'lucide-react'; import { useQuery } from '@tanstack/react-query'; import api from '@/lib/api'; import type { Person } from '@/types'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { GridSkeleton } from '@/components/ui/skeleton'; import { EmptyState } from '@/components/ui/empty-state'; import PersonCard from './PersonCard'; import PersonForm from './PersonForm'; export default function PeoplePage() { const [showForm, setShowForm] = useState(false); const [editingPerson, setEditingPerson] = useState(null); const [search, setSearch] = useState(''); const { data: people = [], isLoading } = useQuery({ queryKey: ['people'], queryFn: async () => { const { data } = await api.get('/people'); return data; }, }); const filteredPeople = people.filter((person) => person.name.toLowerCase().includes(search.toLowerCase()) ); const handleEdit = (person: Person) => { setEditingPerson(person); setShowForm(true); }; const handleCloseForm = () => { setShowForm(false); setEditingPerson(null); }; return (

People

setSearch(e.target.value)} className="max-w-md" />
{isLoading ? ( ) : filteredPeople.length === 0 ? ( setShowForm(true)} /> ) : (
{filteredPeople.map((person) => ( ))}
)}
{showForm && }
); }