From 0d5cd329ca8c8c1c18800c7f4f2f20c09226a89a Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Sat, 14 Mar 2026 22:56:42 +0800 Subject: [PATCH] feat(home): add Thinking fold button, improve message styling --- src/components/chat/Message.tsx | 21 ++++++++++++++------- src/components/chat/Messages.tsx | 4 ++-- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/components/chat/Message.tsx b/src/components/chat/Message.tsx index 40212bc..4ab6aa6 100644 --- a/src/components/chat/Message.tsx +++ b/src/components/chat/Message.tsx @@ -1,6 +1,6 @@ -import { memo } from 'react' +import { memo, useState } from 'react' import { cn } from '@/lib/utils' -import { ArrowDownIcon, SparklesIcon } from 'lucide-react' +import { ArrowDownIcon, SparklesIcon, ChevronDown, ChevronRight } from 'lucide-react' interface MessageProps { message: { @@ -14,6 +14,7 @@ interface MessageProps { function PureMessage({ message, isLoading }: MessageProps) { const isUser = message.role === 'user' + const [reasoningCollapsed, setReasoningCollapsed] = useState(true) return (
{message.parts?.map((part: { type: string; text?: string }, i: number) => { const safeString = (val: unknown): string => { @@ -36,7 +37,7 @@ function PureMessage({ message, isLoading }: MessageProps) { if (part.type === 'text') { return ( -
+
{safeString(part.text)}
) @@ -45,11 +46,17 @@ function PureMessage({ message, isLoading }: MessageProps) { if (part.type === 'reasoning') { return (
-
+
setReasoningCollapsed(!reasoningCollapsed)} + > + {reasoningCollapsed ? : } Thinking
-
{safeString(part.text)}
+ {!reasoningCollapsed && ( +
{safeString(part.text)}
+ )}
) } diff --git a/src/components/chat/Messages.tsx b/src/components/chat/Messages.tsx index d8e04a6..266fc90 100644 --- a/src/components/chat/Messages.tsx +++ b/src/components/chat/Messages.tsx @@ -48,12 +48,12 @@ export function Messages({ messages, status, hasMoreMessages, loadMoreMessages } } return ( -
+
-
+
{hasMoreMessages && (