移除MessageList组件中的调试日志,新增通过ID查找消息的功能,优化消息处理逻辑,提升代码可读性和用户体验。

This commit is contained in:
超级老白兔
2025-10-25 19:00:20 +08:00
parent 5f1a1e9f0e
commit 27a108027b
4 changed files with 33 additions and 12 deletions

View File

@@ -348,9 +348,6 @@ const MessageList: React.FC<MessageListProps> = () => {
// 初始化加载会话列表
useEffect(() => {
const initializeSessions = async () => {
console.log("MessageList 初始化加载currentUserId:", currentUserId);
console.log("user 对象:", user);
if (!currentUserId || currentUserId === 0) {
console.warn("currentUserId 无效,跳过加载:", currentUserId);
return;

View File

@@ -103,4 +103,5 @@ export interface WeChatState {
receivedMsg: (message: ChatRecord) => void;
/** 查找消息 */
findMessageBySeq: (seq: number) => ChatRecord | undefined;
findMessageById: (id: number) => ChatRecord | undefined;
}

View File

@@ -87,6 +87,9 @@ export const useWeChatStore = create<WeChatState>()(
findMessageBySeq: (seq: number) => {
return get().currentMessages.find(msg => msg.seq === seq);
},
findMessageById: (id: number) => {
return get().currentMessages.find(msg => msg.id === id);
},
/** 更新指定消息内容 */
updateMessage: (messageId, updates) => {
set(state => ({

View File

@@ -12,6 +12,7 @@ const addMessage = useWeChatStore.getState().addMessage;
const recallMessage = useWeChatStore.getState().recallMessage;
const receivedMsg = useWeChatStore.getState().receivedMsg;
const findMessageBySeq = useWeChatStore.getState().findMessageBySeq;
const findMessageById = useWeChatStore.getState().findMessageById;
const updateMessage = useWeChatStore.getState().updateMessage;
const updateMomentCommonLoading =
useWeChatStore.getState().updateMomentCommonLoading;
@@ -43,6 +44,7 @@ const messageHandlers: Record<string, MessageHandler> = {
},
// 发送消息响应
CmdSendMessageResp: message => {
console.log("CmdSendMessageResp", message);
const msg = findMessageBySeq(message.seq);
if (msg) {
updateMessage(message.seq, {
@@ -127,10 +129,10 @@ const messageHandlers: Record<string, MessageHandler> = {
try {
// 被踢出时删除所有缓存数据
localStorage.clear();
await db.kfUsers.clear();
await db.weChatGroup.clear();
await db.contracts.clear();
await db.newContactList.clear();
await db.chatSessions.clear();
await db.contactsUnified.clear();
await db.contactLabelMap.clear();
await db.userLoginRecords.clear();
} finally {
(window as any).__CKB_AUTH_FAILED_SHOWN__ = false;
window.location.href = "/login";
@@ -145,12 +147,30 @@ const messageHandlers: Record<string, MessageHandler> = {
CmdMessageRecalled: message => {
const MessageId = message.friendMessageId || message.chatroomMessageId;
recallMessage(MessageId);
// {
// "friendMessageId": 745007874,
// "chatroomMessageId": 0,
// "seq": 2076470,
// "cmdType": "CmdMessageRecalled"
},
CmdVoiceToTextResult: message => {
const msg = findMessageById(
message.friendMessageId || message.chatroomMessageId,
);
console.log("CmdVoiceToTextResult", msg);
const content = JSON.parse(msg.content);
if (msg) {
updateMessage(msg.id, {
content: JSON.stringify({
...content,
text: message.text,
}),
});
}
// {
// "friendMessageId":753361041,
// "chatroomMessageId":0,
// "text":"以后我会好好对待你。",
// "seq":76698,
// "cmdType":"CmdVoiceToTextResult"
// }
console.log("CmdVoiceToTextResult", message);
},
// 可以继续添加更多处理器...