"use client" import Link from "next/link" import { useParams, useRouter } from "next/navigation" import { useFamily } from "@/context/family-context" import { SiteHeader } from "@/components/site-header" import { MemberForm } from "@/components/members/member-form" import { Button } from "@/components/ui/button" import { ArrowLeft, Edit, Trash, Share2, Printer } from "lucide-react" import { useState, useEffect } from "react" import type { FamilyMember } from "@/types/family" import { db } from "@/lib/db" export default function MemberProfilePage() { const { id } = useParams() const { getMember, updateMember, deleteMember } = useFamily() const router = useRouter() const [isEditing, setIsEditing] = useState(false) const [avatarBlobUrl, setAvatarBlobUrl] = useState(undefined) const member = getMember(id as string) // Load avatar blob if exists useEffect(() => { if (member?.avatarImageId) { db.images.get(member.avatarImageId).then((image) => { if (image) { const url = URL.createObjectURL(image.blob) setAvatarBlobUrl(url) return () => URL.revokeObjectURL(url) } }) } else { setAvatarBlobUrl(undefined) } }, [member?.avatarImageId]) if (!member) { return (

Member not found

) } const handleSave = (updatedMember: FamilyMember) => { updateMember(updatedMember.id, updatedMember) setIsEditing(false) } const handleDelete = () => { if (confirm("确定要删除这位成员吗?这将同时删除其关联关系。")) { deleteMember(member.id) router.push("/members") } } if (isEditing) { return (

编辑成员: {member.fullName}

setIsEditing(false)} />
) } return (
{/* Header Section */}
{avatarBlobUrl || member.avatarUrl ? ( {member.fullName} ) : ( {member.surname} )}

{member.fullName}

{member.generation}世
{member.courtesyName && (

字:{member.courtesyName}

)} {member.artName && (

号:{member.artName}

)} {member.ancestralHome &&

籍贯:{member.ancestralHome}

}
{/* Content Grid */}
{/* Main Biography */}

生平事迹

{member.bio ? (

{member.bio}

) : (

暂无生平记录...

)}

家族关系

父亲 (Father)

{member.fatherId ? ( 查看父亲资料 ) : ( - )}

子女 (Children)

{member.childrenIds?.length > 0 ? ( member.childrenIds.map((childId) => ( {childId} {/* In real app, fetch name */} )) ) : ( 无记录 )}
{/* Sidebar Info */}

详细信息

出生日期
{member.birthDate || "-"}
逝世日期
{member.deathDate || "-"}
字辈
{member.generationName || "-"}
谥号
{member.posthumousName || "-"}
墓地
{member.burialPlace || "-"}
) }