# ChatContainer

## 调试

```js
// 添加 系统消息（分隔符）
window._addMsg_({
  type: 'SYSTEM',
  dividerContent: "Genius Updated",
});

// 添加 系统消息
window._addMsg_({
  type: 'SYSTEM',
  content: "这是一条系统消息",
});

// 添加 hint，messageId 要和后的接受的 messageId 相同，所以和下面那个一起复制执行才会出现
window._appendHint_({
    messageId: "1",
    multipleData: [{
        modal: {
            answer: "Test Hint: Generating answers for you..."
        },
        singleDataType: "text"
    }],
    type: "hint",
});

// 添加 接受消息 多条消息根据 messageId 进行合并
window._addMsg_({
  type: 'RECEIVE',
  multipleData: [{
    modal: {
        answer: "Test Answer: 这里是接受消息"
    },
    singleDataType: "text"
  }],
  messageId: "1",
});

// 添加 发出消息
window._addMsg_({
  type: 'SEND',
  data: { content: "send" },
});

// 添加 卡片（ScrawlCard）
window._addMsg_({
    type: "RECEIVE",
    multipleData: [{
        modal: {
            template: "{\"templateName\":\"Single\",\"source\":\"skill\",\"params\":{\"link\":\"https://mindshowcase.myshopify.com/products/ergonomic-office-chair-with-3d-adjustable-armrest-lumbar-support-high-back-breathable-mesh-desk-computer\",\"citationId\":\"9\"}}"
        },
        singleDataType: "template"
    }],
})
// 添加 卡片（StandardCard）
window._addMsg_({
    type: "RECEIVE",
    multipleData: [{
        modal: {
            template: "{\"templateName\":\"StandardCard\",\"source\":\"skill\",\"params\":{\"subTitle\":\" ¥6,600\",\"link\":\"https://www.dot-st.com/nikoand/disp/item/2194572/\",\"citationId\":\"25\",\"pic\":\"https://pdimg.dot-st.com/images/nikoand/goods/itemImg219/2194572/item_2194572_main_78_1111111111_b.jpg\",\"title\":\"[MODE NORM CORE]シャカマキシドロストスカート\"}}"
        },
        singleDataType: "template"
    }],
})

// 添加引用
[
    {
        "type": "text",
        "messageId": "b640baac-1cff-44e5-a607-57a4c52fd5b4_____1684293288614",
        "sender": "umm",
        "multipleData": [
            {
                "singleDataType": "text",
                "modal": {
                    "answer": "引用一"
                }
            }
        ]
    },
    {
        "type": "template",
        "messageId": "b640baac-1cff-44e5-a607-57a4c52fd5b4_____1684293288614",
        "sender": "umm",
        "multipleData": [
            {
                "singleDataType": "template",
                "modal": {
                    "template": "{\"templateName\":\"citation\",\"source\":\"skill\",\"params\":{\"link\":\"https://www.baidu.com\",\"citationId\":\"2\"}}"
                }
            }
        ]
    },
    {
        "type": "text",
        "messageId": "b640baac-1cff-44e5-a607-57a4c52fd5b4_____1684293288614",
        "sender": "umm",
        "multipleData": [
            {
                "singleDataType": "text",
                "modal": {
                    "answer": "引用二"
                }
            }
        ]
    },
    {
        "type": "template",
        "messageId": "b640baac-1cff-44e5-a607-57a4c52fd5b4_____1684293288614",
        "sender": "umm",
        "multipleData": [
            {
                "singleDataType": "template",
                "modal": {
                    "template": "{\"templateName\":\"citation\",\"source\":\"skill\",\"params\":{\"link\":\"https://www.bing.com\",\"citationId\":\"2\"}}"
                }
            }
        ]
    }
].forEach((msg) => {
  window._addMsg_({
    type: msg.sender === "umm" ? 'RECEIVE' : 'SEND',
    data: msg.sender === "umm" ? { content: "" } : msg,
    multipleData: msg.multipleData || [],
    messageId: msg.messageId,
    seqId: msg.seqId || "",
    sources: msg.sources,
  });
});

// msgList
[].forEach(msg => {
    window._addMsg_({
        type: msg.__clientType === 'RECEIVE' ? 'RECEIVE' : 'SEND',
        data: msg.__clientType === 'RECEIVE' ? { content: "" } : msg.data,
        multipleData: msg.multipleData,
        messageId: msg.messageId,
        seqId: msg.seqId,
        sources: msg.sources,
    });
});

// history msgList
[].forEach((msg) => {
  window._addMsg_({
    type: msg.sender === "umm" ? 'RECEIVE' : 'SEND',
    data: msg.sender === "umm" ? { content: "" } : msg,
    multipleData: msg.multipleData || [],
    messageId: msg.messageId,
    seqId: msg.seqId || "",
    sources: msg.sources,
  });
});

// RocketMQ
[].forEach(msg => {
  if (msg.messageGroupType === 'hint') {
    window._appendHint_({
        type: 'hint',
        messageId: msg.messageId,
        multipleData: [{
              modal: {
                answer: msg.answer
              },
              singleDataType: msg.answerType
          }],
    });
  } else {
    window._addMsg_({
      type: 'answer' in msg ? 'RECEIVE' : 'SEND',
      data: {content: msg.answer ? "" : msg.question},
      messageId: msg.answer ? msg.messageId : msg.message_id,
      multipleData: [{
            modal: {
                [msg.answerType === 'template' ? 'template' : 'answer']: msg.answer
            },
            singleDataType: msg.answerType
        }],
  });
  }
});

```
