fix: improve trading and UI

This commit is contained in:
tinkle-community
2025-12-11 00:47:12 +08:00
parent e9e60c82cb
commit 19937ee260
13 changed files with 328 additions and 76 deletions

View File

@@ -1,4 +1,4 @@
import { Bot, BarChart3, Trash2, Pencil } from 'lucide-react'
import { Bot, BarChart3, Trash2, Pencil, Eye, EyeOff } from 'lucide-react'
import { t, type Language } from '../../../i18n/translations'
import { getModelDisplayName } from '../index'
import type { TraderInfo, Exchange } from '../../../types'
@@ -12,6 +12,7 @@ interface TradersGridProps {
onEditTrader: (traderId: string) => void
onDeleteTrader: (traderId: string) => void
onToggleTrader: (traderId: string, running: boolean) => void
onToggleCompetition?: (traderId: string, showInCompetition: boolean) => void
}
export function TradersGrid({
@@ -22,6 +23,7 @@ export function TradersGrid({
onEditTrader,
onDeleteTrader,
onToggleTrader,
onToggleCompetition,
}: TradersGridProps) {
// Helper function to get exchange display name
const getExchangeDisplayName = (exchangeId: string | undefined) => {
@@ -166,6 +168,31 @@ export function TradersGrid({
{trader.is_running ? t('stop', language) : t('start', language)}
</button>
{onToggleCompetition && (
<button
onClick={() => onToggleCompetition(trader.trader_id, trader.show_in_competition ?? true)}
className="px-2 md:px-3 py-1.5 md:py-2 rounded text-xs md:text-sm font-semibold transition-all hover:scale-105 whitespace-nowrap flex items-center gap-1"
style={
trader.show_in_competition !== false
? {
background: 'rgba(14, 203, 129, 0.1)',
color: '#0ECB81',
}
: {
background: 'rgba(132, 142, 156, 0.1)',
color: '#848E9C',
}
}
title={trader.show_in_competition !== false ? '在竞技场显示' : '在竞技场隐藏'}
>
{trader.show_in_competition !== false ? (
<Eye className="w-3 h-3 md:w-4 md:h-4" />
) : (
<EyeOff className="w-3 h-3 md:w-4 md:h-4" />
)}
</button>
)}
<button
onClick={() => onDeleteTrader(trader.trader_id)}
className="px-2 md:px-3 py-1.5 md:py-2 rounded text-xs md:text-sm font-semibold transition-all hover:scale-105"