import type { TraderConfigData } from '../types' import { PunkAvatar, getTraderAvatar } from './PunkAvatar' // 提取下划线后面的名称部分 function getShortName(fullName: string): string { const parts = fullName.split('_') return parts.length > 1 ? parts[parts.length - 1] : fullName } interface TraderConfigViewModalProps { isOpen: boolean onClose: () => void traderData?: TraderConfigData | null } export function TraderConfigViewModal({ isOpen, onClose, traderData, }: TraderConfigViewModalProps) { if (!isOpen || !traderData) return null const InfoRow = ({ label, value, }: { label: string value: string | number | boolean }) => (
{label} {typeof value === 'boolean' ? (value ? '是' : '否') : value}
) return (
e.stopPropagation()} > {/* Header */}

交易员配置

{traderData.trader_name} 的配置信息

{/* Running Status */}
{traderData.is_running ? '●' : '○'} {traderData.is_running ? '运行中' : '已停止'}
{/* Content */}
{/* Basic Info */}

🤖 基础信息

{/* Strategy Info - only show if strategy is bound */} {traderData.strategy_id && (

📋 使用策略

)}
{/* Footer */}
) }