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 (
-