From f17d6aca22527de2634bd95514c2c9a152b85faf Mon Sep 17 00:00:00 2001 From: hailin Date: Thu, 29 May 2025 21:01:32 +0800 Subject: [PATCH] . --- chatdesk-ui/components/messages/message.tsx | 69 +++++++++++++++------ 1 file changed, 51 insertions(+), 18 deletions(-) diff --git a/chatdesk-ui/components/messages/message.tsx b/chatdesk-ui/components/messages/message.tsx index dc6f702..c6a0acc 100644 --- a/chatdesk-ui/components/messages/message.tsx +++ b/chatdesk-ui/components/messages/message.tsx @@ -38,32 +38,63 @@ interface MessageProps { // ✅ 提取为组件,放在同文件中也没问题 +// const MessageContent: React.FC<{ content: string }> = ({ content }) => { +// const [showThink, setShowThink] = useState(false) + +// let thinkContent = "" +// let visibleContent = content.trim() + +// const fullMatch = content.match(/([\s\S]*?)<\/think>/i) +// if (fullMatch) { +// thinkContent = fullMatch[1].trim() +// visibleContent = content.replace(fullMatch[0], "").trim() +// } else { +// const endOnlyMatch = content.match(/([\s\S]*?)<\/think>/i) +// if (endOnlyMatch) { +// thinkContent = endOnlyMatch[1].trim() +// visibleContent = content.replace(endOnlyMatch[0], "").trim() +// } +// } + +// return ( +//
+// + +// {thinkContent && ( +//
+// + +// {showThink && ( +//
+// +//
+// )} +//
+// )} +//
+// ) +// } + const MessageContent: React.FC<{ content: string }> = ({ content }) => { const [showThink, setShowThink] = useState(false) - let thinkContent = "" - let visibleContent = content.trim() - - const fullMatch = content.match(/([\s\S]*?)<\/think>/i) - if (fullMatch) { - thinkContent = fullMatch[1].trim() - visibleContent = content.replace(fullMatch[0], "").trim() - } else { - const endOnlyMatch = content.match(/([\s\S]*?)<\/think>/i) - if (endOnlyMatch) { - thinkContent = endOnlyMatch[1].trim() - visibleContent = content.replace(endOnlyMatch[0], "").trim() - } - } + const thinkMatch = content.match(/([\s\S]*?)<\/think>/i) + const thinkContent = thinkMatch?.[1]?.trim() || "" + const visibleContent = thinkMatch + ? content.replace(thinkMatch[0], "").trim() + : content.trim() return (
- - - {thinkContent && ( + {thinkMatch && thinkContent && (
)} + +
) }