"use client"; import { useEffect, useState } from "react"; interface Child { id: string; name: string; birthDate: string; familyId: string; familyName: string; age: string; } export default function AdminChildren() { const [children, setChildren] = useState([]); const [loading, setLoading] = useState(true); const [search, setSearch] = useState(""); useEffect(() => { fetchChildren(); }, []); const fetchChildren = async () => { try { const res = await fetch("/api/admin/children", { credentials: "include" }); const data = await res.json(); setChildren(data.children || []); } catch (err) { console.error("Failed to fetch children:", err); } setLoading(false); }; const filteredChildren = children.filter((c) => c.name.toLowerCase().includes(search.toLowerCase()) || c.familyName.toLowerCase().includes(search.toLowerCase()) ); const exportCSV = () => { const headers = ["Name", "Birth Date", "Family", "Age"]; const rows = filteredChildren.map((c) => [c.name, c.birthDate, c.familyName, c.age]); const csv = [headers, ...rows].map((row) => row.join(",")).join("\n"); const blob = new Blob([csv], { type: "text/csv" }); const url = URL.createObjectURL(blob); const a = document.createElement("a"); a.href = url; a.download = "children.csv"; a.click(); }; if (loading) { return
Loading...
; } return (

Children

{children.length} total children

setSearch(e.target.value)} className="w-full bg-gray-800 border border-gray-700 rounded-lg px-4 py-2 text-white" />
{filteredChildren.map((child) => ( ))}
Child Birth Date Age Family
{child.name} {child.birthDate?.slice(0, 10)} {child.age} {child.familyName}
{filteredChildren.length === 0 && (
No children found
)}
); }