移除MessageList组件中的调试日志,新增通过ID查找消息的功能,优化消息处理逻辑,提升代码可读性和用户体验。
This commit is contained in:
@@ -348,9 +348,6 @@ const MessageList: React.FC<MessageListProps> = () => {
|
|||||||
// 初始化加载会话列表
|
// 初始化加载会话列表
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const initializeSessions = async () => {
|
const initializeSessions = async () => {
|
||||||
console.log("MessageList 初始化加载,currentUserId:", currentUserId);
|
|
||||||
console.log("user 对象:", user);
|
|
||||||
|
|
||||||
if (!currentUserId || currentUserId === 0) {
|
if (!currentUserId || currentUserId === 0) {
|
||||||
console.warn("currentUserId 无效,跳过加载:", currentUserId);
|
console.warn("currentUserId 无效,跳过加载:", currentUserId);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -103,4 +103,5 @@ export interface WeChatState {
|
|||||||
receivedMsg: (message: ChatRecord) => void;
|
receivedMsg: (message: ChatRecord) => void;
|
||||||
/** 查找消息 */
|
/** 查找消息 */
|
||||||
findMessageBySeq: (seq: number) => ChatRecord | undefined;
|
findMessageBySeq: (seq: number) => ChatRecord | undefined;
|
||||||
|
findMessageById: (id: number) => ChatRecord | undefined;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,6 +87,9 @@ export const useWeChatStore = create<WeChatState>()(
|
|||||||
findMessageBySeq: (seq: number) => {
|
findMessageBySeq: (seq: number) => {
|
||||||
return get().currentMessages.find(msg => msg.seq === seq);
|
return get().currentMessages.find(msg => msg.seq === seq);
|
||||||
},
|
},
|
||||||
|
findMessageById: (id: number) => {
|
||||||
|
return get().currentMessages.find(msg => msg.id === id);
|
||||||
|
},
|
||||||
/** 更新指定消息内容 */
|
/** 更新指定消息内容 */
|
||||||
updateMessage: (messageId, updates) => {
|
updateMessage: (messageId, updates) => {
|
||||||
set(state => ({
|
set(state => ({
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ const addMessage = useWeChatStore.getState().addMessage;
|
|||||||
const recallMessage = useWeChatStore.getState().recallMessage;
|
const recallMessage = useWeChatStore.getState().recallMessage;
|
||||||
const receivedMsg = useWeChatStore.getState().receivedMsg;
|
const receivedMsg = useWeChatStore.getState().receivedMsg;
|
||||||
const findMessageBySeq = useWeChatStore.getState().findMessageBySeq;
|
const findMessageBySeq = useWeChatStore.getState().findMessageBySeq;
|
||||||
|
const findMessageById = useWeChatStore.getState().findMessageById;
|
||||||
const updateMessage = useWeChatStore.getState().updateMessage;
|
const updateMessage = useWeChatStore.getState().updateMessage;
|
||||||
const updateMomentCommonLoading =
|
const updateMomentCommonLoading =
|
||||||
useWeChatStore.getState().updateMomentCommonLoading;
|
useWeChatStore.getState().updateMomentCommonLoading;
|
||||||
@@ -43,6 +44,7 @@ const messageHandlers: Record<string, MessageHandler> = {
|
|||||||
},
|
},
|
||||||
// 发送消息响应
|
// 发送消息响应
|
||||||
CmdSendMessageResp: message => {
|
CmdSendMessageResp: message => {
|
||||||
|
console.log("CmdSendMessageResp", message);
|
||||||
const msg = findMessageBySeq(message.seq);
|
const msg = findMessageBySeq(message.seq);
|
||||||
if (msg) {
|
if (msg) {
|
||||||
updateMessage(message.seq, {
|
updateMessage(message.seq, {
|
||||||
@@ -127,10 +129,10 @@ const messageHandlers: Record<string, MessageHandler> = {
|
|||||||
try {
|
try {
|
||||||
// 被踢出时删除所有缓存数据
|
// 被踢出时删除所有缓存数据
|
||||||
localStorage.clear();
|
localStorage.clear();
|
||||||
await db.kfUsers.clear();
|
await db.chatSessions.clear();
|
||||||
await db.weChatGroup.clear();
|
await db.contactsUnified.clear();
|
||||||
await db.contracts.clear();
|
await db.contactLabelMap.clear();
|
||||||
await db.newContactList.clear();
|
await db.userLoginRecords.clear();
|
||||||
} finally {
|
} finally {
|
||||||
(window as any).__CKB_AUTH_FAILED_SHOWN__ = false;
|
(window as any).__CKB_AUTH_FAILED_SHOWN__ = false;
|
||||||
window.location.href = "/login";
|
window.location.href = "/login";
|
||||||
@@ -145,12 +147,30 @@ const messageHandlers: Record<string, MessageHandler> = {
|
|||||||
CmdMessageRecalled: message => {
|
CmdMessageRecalled: message => {
|
||||||
const MessageId = message.friendMessageId || message.chatroomMessageId;
|
const MessageId = message.friendMessageId || message.chatroomMessageId;
|
||||||
recallMessage(MessageId);
|
recallMessage(MessageId);
|
||||||
// {
|
},
|
||||||
// "friendMessageId": 745007874,
|
|
||||||
// "chatroomMessageId": 0,
|
CmdVoiceToTextResult: message => {
|
||||||
// "seq": 2076470,
|
const msg = findMessageById(
|
||||||
// "cmdType": "CmdMessageRecalled"
|
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