import React, { useState, useEffect, useRef } from 'react'; import SvgIcon from '../../components/SvgIcon'; export default function ChatWindow({ chatId, knowledgeBaseId }) { const [messages, setMessages] = useState([]); const [inputMessage, setInputMessage] = useState(''); const [isLoading, setIsLoading] = useState(false); const [knowledgeBase, setKnowledgeBase] = useState(null); const messagesEndRef = useRef(null); // Fetch knowledge base details useEffect(() => { // In a real app, you would fetch the knowledge base details from the API const mockKnowledgeBases = [ { id: '1', title: '产品开发知识库', description: '产品开发流程及规范说明文档', }, { id: '2', title: '市场分析知识库', description: '2025年Q1市场分析总结', }, { id: '3', title: '财务知识库', description: '月度财务分析报告', }, { id: '4', title: '技术架构知识库', description: '系统架构设计文档', }, { id: '5', title: '用户研究知识库', description: '用户调研和反馈分析', }, ]; const kb = mockKnowledgeBases.find((kb) => kb.id === knowledgeBaseId); setKnowledgeBase(kb); // In a real app, you would fetch the chat messages from the API // For now, we'll just add a welcome message if (kb) { setMessages([ { id: '1', sender: 'bot', content: `欢迎使用 ${kb.title},有什么可以帮助您的?`, timestamp: new Date().toISOString(), }, ]); } }, [chatId, knowledgeBaseId]); // Scroll to bottom when messages change useEffect(() => { messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' }); }, [messages]); const handleSendMessage = (e) => { e.preventDefault(); if (!inputMessage.trim()) return; // Add user message const userMessage = { id: Date.now().toString(), sender: 'user', content: inputMessage, timestamp: new Date().toISOString(), }; setMessages((prev) => [...prev, userMessage]); setInputMessage(''); setIsLoading(true); // Simulate bot response after a delay setTimeout(() => { const botMessage = { id: (Date.now() + 1).toString(), sender: 'bot', content: `这是来自 ${knowledgeBase?.title} 的回复:${inputMessage}`, timestamp: new Date().toISOString(), }; setMessages((prev) => [...prev, botMessage]); setIsLoading(false); }, 1000); }; return (