"use client" import { useEffect, useState } from "react" import { useSession } from "next-auth/react" import Link from "next/link" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Button } from "@/components/ui/button" import { Users, Calendar, Plus, ArrowRight } from "lucide-react" import { format } from "date-fns" import { zhCN } from "date-fns/locale" interface FamilyTree { id: string name: string description: string | null createdAt: string updatedAt: string _count: { members: number collaborators: number } } export function FamilyTreesList() { const { data: session } = useSession() const [trees, setTrees] = useState([]) const [loading, setLoading] = useState(true) useEffect(() => { if (session?.user?.id) { fetch('/api/trees') .then(res => res.json()) .then(data => { if (data.trees) { setTrees(data.trees) } setLoading(false) }) .catch(err => { console.error('获取家族树失败:', err) setLoading(false) }) } else { setLoading(false) } }, [session?.user?.id]) if (!session) { return ( 我的家族树 请先登录查看您的家族树 ) } if (loading) { return ( 我的家族树

加载中...

) } return (
我的家族树 {trees.length > 0 ? `共 ${trees.length} 个家族树` : '还没有家族树'}
{trees.length === 0 ? (

您还没有创建任何家族树

) : (
{trees.map((tree) => (

{tree.name}

{tree.description && (

{tree.description}

)}
{tree._count.members} 个成员 创建于 {format(new Date(tree.createdAt), 'yyyy年MM月dd日', { locale: zhCN })}
))}
)}
) }