Skip to content

Commit 613494f

Browse files
Refactor database message updates in useChatMessages.ts
- Replaced transaction-based message updates with a more streamlined modify method for better readability and performance. - Added deletion of AI messages on error handling to ensure data integrity.
1 parent d56dba3 commit 613494f

File tree

1 file changed

+15
-16
lines changed

1 file changed

+15
-16
lines changed

app/composables/messages/useChatMessages.ts

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -100,22 +100,16 @@ export const useChatMessages = (
100100

101101
const answer = chunk.metadata.answer;
102102

103-
await db.transaction("rw", db.messages, async () => {
104-
const currentAiMessage = await db.messages.get(messageId);
105-
if (!currentAiMessage) {
106-
return;
107-
}
108-
109-
if (
110-
currentAiMessage.content === "…" ||
111-
currentAiMessage.content === ""
112-
) {
113-
currentAiMessage.content = answer;
114-
} else {
115-
currentAiMessage.content += answer;
116-
}
117-
await db.messages.put(currentAiMessage);
118-
});
103+
await db.messages
104+
.where("id")
105+
.equals(messageId)
106+
.modify((message) => {
107+
if (message.content === "…" || message.content === "") {
108+
message.content = answer;
109+
} else {
110+
message.content += answer;
111+
}
112+
});
119113
}
120114

121115
/**
@@ -292,6 +286,11 @@ export const useChatMessages = (
292286
}).catch((error) => {
293287
console.error("Failed to send chat message:", error);
294288
status.value = "ready";
289+
db.messages
290+
.where("id")
291+
.equals(aiMessageIndex)
292+
.delete()
293+
.catch(console.error);
295294
handleApiError(error);
296295
});
297296

0 commit comments

Comments
 (0)