"use client" import { useState } from "react" import { SiteHeader } from "@/components/site-header" import { useFamily } from "@/context/family-context" import { Input } from "@/components/ui/input" import { Button } from "@/components/ui/button" import { Card, CardContent } from "@/components/ui/card" import { Search, Plus, Filter } from "lucide-react" import Link from "next/link" import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar" export default function MembersPage() { const { treeData, searchResults, searchMembers } = useFamily() const [query, setQuery] = useState("") const displayMembers = query ? searchResults : Object.values(treeData.members).sort( (a, b) => a.generation - b.generation || (a.birthDate || "").localeCompare(b.birthDate || ""), ) return (

家族成员列表

{ setQuery(e.target.value) searchMembers(e.target.value) }} />
{displayMembers.map((member) => ( {member.surname}

{member.fullName} {member.courtesyName && ( 字 {member.courtesyName} )}

{member.generation}世

{member.generationName ? `字辈: ${member.generationName}` : "未录入字辈"}

{member.ancestralHome || "籍贯未知"}

{member.lifeStatus === "deceased" && ( 已故 )} {member.tags?.map((tag) => ( {tag} ))}
))}
) }