"use client" import { Avatar, AvatarImage, AvatarFallback } from "@/components/ui/avatar" import { Button } from "@/components/ui/button" import { TagBadge } from "@/components/ui/badge" import { InfiniteScrollList } from "@/components/ui/infinite-scroll-list" import RenderContactStatusText from "./components/RenderContactStatusText" import { useHeartbeatRelationListInfinite } from "@/hooks/useIm" import { HeartbeatRelationListOutput } from "@/services/im/types" import { useMemo } from "react" import { useRouter } from "next/navigation" import { Tag } from "@/components/ui/tag" import AIRelationTag from "@/components/features/AIRelationTag" import Link from "next/link" // 联系人数据类型现在使用API返回的数据结构 type ContactItem = HeartbeatRelationListOutput // 联系人卡片组件 const ContactCard = ({ contact }: { contact: ContactItem }) => { const router = useRouter(); // 计算年龄 const age = useMemo(() => { if (!contact.birthday) return null; const birthYear = new Date(contact.birthday).getFullYear(); const currentYear = new Date().getFullYear(); return currentYear - birthYear; }, [contact.birthday]); // 获取性别标识 const getGenderText = (sex?: number) => { switch (sex) { case 0: return "Male"; case 1: return "Female"; case 2: return "Custom"; default: return ""; } }; // 跳转到聊天页面 const handleChatClick = () => { if (contact.aiId) { router.push(`/chat/${contact.aiId}`); } }; return (
Start chatting with AI characters to build your crushes