Skip to content

Commit e19169d

Browse files
committed
fix(chat): clean up draft messages when send message fails
1 parent 4d05971 commit e19169d

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

chat/src/components/ChatInterface.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ interface StatusChangeEvent {
3333
status: string;
3434
}
3535

36+
const isDraftMessage = (message: Message | DraftMessage): boolean => {
37+
return message.id === undefined;
38+
};
39+
3640
export default function ChatInterface() {
3741
const [messages, setMessages] = useState<(Message | DraftMessage)[]>([]);
3842
const [loading, setLoading] = useState<boolean>(false);
@@ -95,7 +99,7 @@ export default function ChatInterface() {
9599
setMessages((prevMessages) => {
96100
// Clean up draft messages
97101
const updatedMessages = [...prevMessages].filter(
98-
(m) => m.id !== undefined
102+
(m) => !isDraftMessage(m)
99103
);
100104

101105
// Check if message with this ID already exists
@@ -227,6 +231,9 @@ export default function ChatInterface() {
227231
});
228232
} finally {
229233
if (type === "user") {
234+
setMessages((prevMessages) =>
235+
prevMessages.filter((m) => !isDraftMessage(m))
236+
);
230237
setLoading(false);
231238
}
232239
}

0 commit comments

Comments
 (0)