feat(消息列表): 添加未读消息计数和最近一天消息提示

- 在消息列表项中添加未读消息计数气泡显示
- 默认不展开微信好友分组
- 在消息列表底部添加"最近一天的消息"提示栏
This commit is contained in:
超级老白兔
2025-08-28 18:30:11 +08:00
parent d878a1fcaa
commit bc6d85acca
3 changed files with 49 additions and 2 deletions

View File

@@ -1,6 +1,7 @@
.messageList {
height: 100%;
overflow-y: auto;
position: relative;
.messageItem {
padding: 12px 16px;
@@ -66,6 +67,33 @@
text-overflow: ellipsis;
white-space: nowrap;
flex: 1;
position: relative;
padding-right: 5px;
height: 18px; // 添加固定高度
line-height: 18px; // 设置行高与高度一致
&::before {
content: attr(data-count);
position: absolute;
right: -5px;
top: 0;
background-color: #ff4d4f;
color: white;
border-radius: 10px;
padding: 0 6px;
font-size: 10px;
line-height: 16px;
min-width: 16px;
height: 16px;
text-align: center;
display: none;
}
&[data-count]:not([data-count=""]):not([data-count="0"]) {
&::before {
display: inline-block;
}
}
}
.onlineIndicator {
@@ -78,6 +106,19 @@
}
}
}
.lastDayMessage {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background-color: #f9f9f9;
padding: 8px 16px;
font-size: 12px;
color: #8c8c8c;
text-align: center;
border-top: 1px solid #f0f0f0;
}
}
// 响应式设计

View File

@@ -49,7 +49,12 @@ const MessageList: React.FC<MessageListProps> = ({
</div>
</div>
<div className={styles.messageContent}>
<div className={styles.lastMessage}>
<div
className={styles.lastMessage}
data-count={
session.unreadCount > 0 ? session.unreadCount : ""
}
>
{session?.lastMessage}
</div>
</div>
@@ -58,6 +63,7 @@ const MessageList: React.FC<MessageListProps> = ({
</List.Item>
)}
/>
<div className={styles.lastDayMessage}></div>
</div>
);
};

View File

@@ -18,7 +18,7 @@ const ContactListSimple: React.FC<WechatFriendsProps> = ({
selectedContactId,
}) => {
const newContractList = useCkChatStore(state => state.newContractList);
const [activeKey, setActiveKey] = useState<string[]>(["0"]); // 默认展开第一个分组
const [activeKey, setActiveKey] = useState<string[]>([]); // 默认展开第一个分组
// 分页加载相关状态
const [visibleContacts, setVisibleContacts] = useState<{