"use client"; import { useState } from "react"; import { Button } from "@/components/ui/button"; interface Message { role: "user" | "assistant"; content: string; } interface StepMetadata { message?: string; conversation?: Message[]; } export interface Step { type: string; article: string; links?: unknown[]; metadata?: StepMetadata; } export interface Run { steps: Step[]; start_article: string; destination_article: string; } interface ReasoningTraceProps { run: Run | null | undefined; } const MAX_MESSAGE_LENGTH = 200; function ExpandableMessage({ message }: { message: Message }) { const [isExpanded, setIsExpanded] = useState(false); const isLongMessage = message.content.length > MAX_MESSAGE_LENGTH; const toggleExpand = () => setIsExpanded(!isExpanded); return (
{message.role}
{isLongMessage && !isExpanded ? `${message.content.substring(0, MAX_MESSAGE_LENGTH)}...` : message.content}
{isLongMessage && ( )}"{step.metadata.message}"
)}