/** * Chat Page */ import { useEffect, useRef } from 'react'; import { Wifi, WifiOff } from 'lucide-react'; import { useChat, ChatMessage, StreamingMessage, TypingIndicator, ChatInput, } from '@ai-assistant/ui'; interface ChatPageProps { sessionId: string; onSessionNotFound?: () => void; responsive?: boolean; } export function ChatPage({ sessionId, onSessionNotFound, responsive = false }: ChatPageProps) { const { messages, isConnected, isLoading, streamingContent, sendMessage, cancelProcessing, } = useChat({ sessionId, onError: (error) => { console.error('Chat error:', error); }, onSessionNotFound, }); const messagesEndRef = useRef(null); // 自动滚动到底部 useEffect(() => { messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' }); }, [messages, streamingContent]); return (
{/* Header */}

Chat

{isConnected ? ( <> Connected ) : ( <> Disconnected )}
{/* Messages */}
{messages.length === 0 && !isLoading && (

Start a conversation

Type a message below to begin chatting with your AI assistant.

)} {messages.map((message) => ( ))} {streamingContent && } {isLoading && !streamingContent && }
{/* Input */}
); }