in packages/chat-stateful-client/src/ChatContext.ts [345:365]
public setChatMessage(threadId: string, message: ChatMessageWithStatus): void {
this.parseAttachments(threadId, message);
const { id: messageId, clientMessageId } = message;
if (messageId || clientMessageId) {
this.modifyState((draft: ChatClientState) => {
const threadMessages = draft.threads[threadId]?.chatMessages;
const isLocalIdInMap = threadMessages && clientMessageId && threadMessages[clientMessageId];
const messageKey = !messageId || isLocalIdInMap ? clientMessageId : messageId;
if (threadMessages && messageKey) {
threadMessages[messageKey] = message;
}
// remove typing indicator when receive a message from a user
const thread = draft.threads[threadId];
if (thread) {
this.filterTypingIndicatorForUser(thread, message.sender);
}
});
}
}