import type { TraderConfigData } from '../../types' import { t } from '../../i18n/translations' import { useLanguage } from '../../contexts/LanguageContext' import { PunkAvatar, getTraderAvatar } from '../common/PunkAvatar' // Extract the name part after the last underscore 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) { const { language } = useLanguage() if (!isOpen || !traderData) return null const InfoRow = ({ label, value, }: { label: string value: string | number | boolean }) => (
{label} {typeof value === 'boolean' ? (value ? t('traderConfigView.yes', language) : t('traderConfigView.no', language)) : value}
) return (
e.stopPropagation()} > {/* Header */}

{t('traderConfigView.traderConfig', language)}

{t('traderConfigView.configInfo', language, { name: traderData.trader_name })}

{/* Running Status */}
{traderData.is_running ? '●' : '○'} {traderData.is_running ? t('traderConfigView.running', language) : t('traderConfigView.stopped', language)}
{/* Content */}
{/* Basic Info */}

{'🤖 ' + t('traderConfigView.basicInfo', language)}

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

{'📋 ' + t('traderConfigView.strategyUsed', language)}

)}
{/* Footer */}
) }