移除MessageList组件中的调试日志,新增通过ID查找消息的功能,优化消息处理逻辑,提升代码可读性和用户体验。
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -103,4 +103,5 @@ export interface WeChatState {
|
||||
receivedMsg: (message: ChatRecord) => void;
|
||||
/** 查找消息 */
|
||||
findMessageBySeq: (seq: number) => ChatRecord | undefined;
|
||||
findMessageById: (id: number) => ChatRecord | undefined;
|
||||
}
|
||||
|
||||
@@ -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 => ({
|
||||
|
||||
@@ -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);
|
||||
},
|
||||
|
||||
// 可以继续添加更多处理器...
|
||||
|
||||
Reference in New Issue
Block a user