public setChatMessage()

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);
        }
      });
    }
  }