/** * CodeBlockRenderer - 代码块渲染器 * * Tool C 专用:显示 AI 生成的代码,支持语法高亮和执行 */ import React, { useEffect } from 'react'; import { Button } from 'antd'; import { PlayCircleOutlined, LoadingOutlined } from '@ant-design/icons'; import Prism from 'prismjs'; import 'prismjs/themes/prism-tomorrow.css'; import 'prismjs/components/prism-python'; import type { CodeBlockRendererProps } from './types'; export const CodeBlockRenderer: React.FC = ({ code, language = 'python', onExecute, isExecuting = false, executionResult, }) => { // 语法高亮 useEffect(() => { Prism.highlightAll(); }, [code]); const handleExecute = () => { if (onExecute && !isExecuting) { onExecute(code); } }; return (
{language} {onExecute && ( )}
        
          {code}
        
      
{executionResult && (
{executionResult.success ? ( ✅ 执行成功 ) : ( ❌ {executionResult.message || '执行失败'} )}
)}
); }; export default CodeBlockRenderer;