'use client'; import { Container, Box, Typography, Alert, Dialog, DialogTitle, DialogContent, DialogActions, Button, Paper } from '@mui/material'; import ConversationHeader from '@/components/conversations/ConversationHeader'; import ConversationMetadata from '@/components/conversations/ConversationMetadata'; import ConversationContent from '@/components/conversations/ConversationContent'; import ConversationRatingSection from '@/components/conversations/ConversationRatingSection'; import useConversationDetails from './useConversationDetails'; import { useTranslation } from 'react-i18next'; /** * 多轮对话详情页面 */ export default function ConversationDetailPage({ params }) { const { projectId, conversationId } = params; const { t } = useTranslation(); // 使用自定义Hook管理状态和逻辑 const { conversation, messages, loading, editMode, saving, editData, setEditData, deleteDialogOpen, setDeleteDialogOpen, handleEdit, handleSave, handleCancel, handleDelete, handleNavigate, updateMessageContent } = useConversationDetails(projectId, conversationId); // 加载状态 if (loading) { return ( {t('datasets.loadingDataset')} ); } // 无数据状态 if (!conversation) { return ( {t('datasets.conversationNotFound')} ); } return ( {/* 顶部导航栏 */} setDeleteDialogOpen(true)} onNavigate={handleNavigate} /> {/* 主要布局:左右分栏 */} {/* 左侧主要内容区域 */} {/* 对话内容 */} {/* 右侧固定侧边栏 */} {/* 元数据展示 */} {/* 评分、标签、备注区域 */} { // 更新成功后刷新数据,保持页面状态同步 // 这里可以调用 useConversationDetails 的刷新逻辑 }} /> {/* 删除确认对话框 */} setDeleteDialogOpen(false)}> {t('datasets.confirmDelete')} {t('datasets.confirmDeleteConversation')} ); }