import { useEffect, useState } from 'react' import { Monitor, FileText, Clock, AlertTriangle, Maximize2, Minimize2, RotateCw } from 'lucide-react' import { Button } from './Button' import type { ToolResult } from '../App' import './ResultsPane.css' interface ResultsPaneProps { result: ToolResult | null isExecuting: boolean onReload?: () => void } type Tab = 'ui' | 'text' export function ResultsPane({ result, isExecuting, onReload }: ResultsPaneProps) { const [activeTab, setActiveTab] = useState('ui') const [isFullscreen, setIsFullscreen] = useState(false) const hasUI = result?.htmlContent != null const hasText = result?.textContent != null useEffect(() => { if (hasUI) { setActiveTab('ui') } else if (hasText) { setActiveTab('text') } }, [hasText, hasUI]) return (
{result?.timestamp && ( {result.timestamp.toLocaleTimeString()} )} {onReload && (
{isExecuting ? (

Executing tool...

) : !result ? (

Execute a tool to see results

) : result.isError ? (

Error

{result.textContent}
) : activeTab === 'ui' ? ( hasUI ? (