refactor(ckbox): 统一联系人数据结构并简化聊天会话处理
- 将ContactData接口添加索引签名以支持动态属性 - 移除ChatSession接口,直接使用ContactData作为聊天会话类型 - 简化组件间数据传递和状态管理 - 更新相关组件props类型定义
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user