refactor(ckbox): 统一联系人数据结构并简化聊天会话处理

- 将ContactData接口添加索引签名以支持动态属性
- 移除ChatSession接口,直接使用ContactData作为聊天会话类型
- 简化组件间数据传递和状态管理
- 更新相关组件props类型定义
This commit is contained in:
2025-08-22 15:17:47 +08:00
parent b32e6cac0c
commit 812cb97713
7 changed files with 81 additions and 47 deletions

View File

@@ -6,7 +6,7 @@ import styles from "./ContactListSimple.module.scss";
interface ContactListSimpleProps {
contacts: ContactData[];
onContactClick: (contact: ContactData) => void;
selectedContactId?: number;
selectedContactId?: ContactData;
}
const ContactListSimple: React.FC<ContactListSimpleProps> = ({
@@ -24,18 +24,16 @@ const ContactListSimple: React.FC<ContactListSimpleProps> = ({
<List.Item
key={contact.id}
onClick={() => onContactClick(contact)}
className={`${styles.contactItem} ${contact.id === selectedContactId ? styles.selected : ""}`}
className={`${styles.contactItem} ${contact.id === selectedContactId?.id ? styles.selected : ""}`}
>
<div className={styles.avatarContainer}>
<Badge dot={contact.online} color="green" offset={[-5, 5]}>
<Avatar
src={contact.avatar}
icon={
!contact.avatar && <span>{contact.nickname.charAt(0)}</span>
}
className={styles.avatar}
/>
</Badge>
<Avatar
src={contact.avatar}
icon={
!contact.avatar && <span>{contact.nickname.charAt(0)}</span>
}
className={styles.avatar}
/>
</div>
<div className={styles.contactInfo}>
<div className={styles.name}>{contact.nickname}</div>