+
+ handleShowDetail(record)}
+ style={{
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ width: '32px',
+ height: '32px',
+ cursor: 'pointer',
+ borderRadius: '6px',
+ transition: 'background-color 0.2s'
+ }}
+ onMouseEnter={(e) => e.currentTarget.style.backgroundColor = '#f0f0f0'}
+ onMouseLeave={(e) => e.currentTarget.style.backgroundColor = 'transparent'}
+ >
+
+
+
+
{record.website && (
- } onClick={() => window.open(record.website, '_blank', 'noopener,noreferrer')}>
- {t('leaderList.openWebsite')}
-
+
+ window.open(record.website, '_blank', 'noopener,noreferrer')}
+ style={{
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ width: '32px',
+ height: '32px',
+ cursor: 'pointer',
+ borderRadius: '6px',
+ transition: 'background-color 0.2s'
+ }}
+ onMouseEnter={(e) => e.currentTarget.style.backgroundColor = '#f0f0f0'}
+ onMouseLeave={(e) => e.currentTarget.style.backgroundColor = 'transparent'}
+ >
+
+
+
)}
- } onClick={() => navigate(`/leaders/edit?id=${record.id}`)}>
- {t('common.edit')}
-
+
+
+ navigate(`/leaders/edit?id=${record.id}`)}
+ style={{
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ width: '32px',
+ height: '32px',
+ cursor: 'pointer',
+ borderRadius: '6px',
+ transition: 'background-color 0.2s'
+ }}
+ onMouseEnter={(e) => e.currentTarget.style.backgroundColor = '#f0f0f0'}
+ onMouseLeave={(e) => e.currentTarget.style.backgroundColor = 'transparent'}
+ >
+
+
+
+
+
+ {
+ if (record.copyTradingCount > 0) {
+ navigate(`/copy-trading?leaderId=${record.id}`)
+ }
+ }}
+ style={{
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ width: '32px',
+ height: '32px',
+ cursor: record.copyTradingCount === 0 ? 'not-allowed' : 'pointer',
+ borderRadius: '6px',
+ opacity: record.copyTradingCount === 0 ? 0.4 : 1,
+ transition: 'background-color 0.2s'
+ }}
+ onMouseEnter={(e) => record.copyTradingCount > 0 && (e.currentTarget.style.backgroundColor = '#f0f0f0')}
+ onMouseLeave={(e) => e.currentTarget.style.backgroundColor = 'transparent'}
+ >
+
+
+
+
+
+
+
+ {
+ if (record.backtestCount > 0) {
+ navigate(`/backtest?leaderId=${record.id}`)
+ }
+ }}
+ style={{
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ width: '32px',
+ height: '32px',
+ cursor: record.backtestCount === 0 ? 'not-allowed' : 'pointer',
+ borderRadius: '6px',
+ opacity: record.backtestCount === 0 ? 0.4 : 1,
+ transition: 'background-color 0.2s'
+ }}
+ onMouseEnter={(e) => record.backtestCount > 0 && (e.currentTarget.style.backgroundColor = '#f0f0f0')}
+ onMouseLeave={(e) => e.currentTarget.style.backgroundColor = 'transparent'}
+ >
+
+
+
+
+
+
0 ? t('leaderList.deleteConfirmDesc', { count: record.copyTradingCount }) : undefined}
@@ -314,9 +393,24 @@ const LeaderList: React.FC = () => {
okText={t('common.confirm')}
cancelText={t('common.cancel')}
>
- }>
- {t('common.delete')}
-
+
+ e.currentTarget.style.backgroundColor = '#fff1f0'}
+ onMouseLeave={(e) => e.currentTarget.style.backgroundColor = 'transparent'}
+ >
+
+
+
)
@@ -346,71 +440,148 @@ const LeaderList: React.FC = () => {
dataSource={leaders}
renderItem={(leader) => {
const balance = balanceMap[leader.id]
+ const isLoading = balanceLoading[leader.id]
return (
-