/* Copyright (C) 2025 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ import React from 'react'; import { Card, Chat, Typography, Button } from '@douyinfe/semi-ui'; import { MessageSquare, Eye, EyeOff } from 'lucide-react'; import { useTranslation } from 'react-i18next'; import CustomInputRender from './CustomInputRender'; const ChatArea = ({ chatRef, message, inputs, styleState, showDebugPanel, roleInfo, onMessageSend, onMessageCopy, onMessageReset, onMessageDelete, onStopGenerator, onClearMessages, onToggleDebugPanel, renderCustomChatContent, renderChatBoxAction, }) => { const { t } = useTranslation(); const renderInputArea = React.useCallback((props) => { return ; }, []); return ( {/* 聊天头部 */} {styleState.isMobile ? (
) : (
{t('AI 对话')} {inputs.model || t('选择模型开始对话')}
)} {/* 聊天内容区域 */}
null, }} renderInputArea={renderInputArea} roleConfig={roleInfo} style={{ height: '100%', maxWidth: '100%', overflow: 'hidden', }} chats={message} onMessageSend={onMessageSend} onMessageCopy={onMessageCopy} onMessageReset={onMessageReset} onMessageDelete={onMessageDelete} showClearContext showStopGenerate onStopGenerator={onStopGenerator} onClear={onClearMessages} className='h-full' placeholder={t('请输入您的问题...')} />
); }; export default ChatArea;