🐛fix: Fix message saving missing the last conversation

- Modify saveMessagesImmediately to accept messages parameter
- Pass updated message list to all save calls instead of relying on closure
- Ensure complete message history is saved including the last message
- Fix timing issue where old message state was being saved

This fixes the issue where the last conversation was not being persisted to localStorage.
This commit is contained in:
Apple\Apple
2025-06-02 21:39:51 +08:00
parent 27ad46cdd5
commit e9b74651c2
5 changed files with 27 additions and 25 deletions

View File

@@ -57,8 +57,8 @@ export const useMessageEdit = (
onOk: () => {
const messagesUntilUser = updatedMessages.slice(0, messageIndex + 1);
setMessage(messagesUntilUser);
// 编辑后保存(重新生成的情况)
setTimeout(() => saveMessages(), 0);
// 编辑后保存(重新生成的情况),传入更新后的消息列表
setTimeout(() => saveMessages(messagesUntilUser), 0);
setTimeout(() => {
const payload = buildApiPayload(messagesUntilUser, null, inputs, parameterEnabled);
@@ -68,16 +68,16 @@ export const useMessageEdit = (
},
onCancel: () => {
setMessage(updatedMessages);
// 编辑后保存(仅保存的情况)
setTimeout(() => saveMessages(), 0);
// 编辑后保存(仅保存的情况),传入更新后的消息列表
setTimeout(() => saveMessages(updatedMessages), 0);
}
});
return prevMessages;
}
}
// 编辑后保存(普通情况)
setTimeout(() => saveMessages(), 0);
// 编辑后保存(普通情况),传入更新后的消息列表
setTimeout(() => saveMessages(updatedMessages), 0);
return updatedMessages;
});