aichat-core
Version:
AI 流式聊天业务核心TS模型封装及业务实现模块
37 lines (36 loc) • 1.6 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { useEffect } from "react";
import ChatMesageMarkDown from "../chat-markdown";
import ChatAttachments from "../chat-attachements";
var ChatContent = function (_a) {
var content = _a.content;
useEffect(function () { }, []);
var buildContentComponent = function (content) {
if (typeof content === "string") {
return _jsx(ChatMesageMarkDown, { content: content });
}
if (Array.isArray(content)) {
var imageUrls = [];
for (var i = 0; i < content.length; i++) {
if (content[i].type === "image_url" && content[i].image_url) {
imageUrls.push(content[i].image_url.url);
}
}
for (var i = 0; i < content.length; i++) {
if (content[i].type === "text" && content[i].text) {
content = content[i].text;
break;
}
}
var textContent = content;
if (textContent && imageUrls && imageUrls.length > 0) {
return (_jsxs("div", { children: [_jsx(ChatMesageMarkDown, { content: textContent }), _jsx(ChatAttachments, { items: imageUrls })] }));
}
if (textContent && (!imageUrls || imageUrls.length === 0))
return _jsx(ChatMesageMarkDown, { content: textContent });
}
return content;
};
return (_jsx("div", { className: "chat-bubble-item-content", children: buildContentComponent(content) }));
};
export default ChatContent;