+
+
GitHub
+
+
+ {/* Language Toggle */}
+
+
+
+
+
+ {/* Page Toggle */}
+
+
+
+
+
{/* Trader Selector (only show on trader page) */}
{currentPage === 'trader' && traders && traders.length > 0 && (
)}
- {/* Language Toggle */}
-
-
-
-
-
{/* Status Indicator (only show on trader page) */}
{currentPage === 'trader' && status && (
0 : false}
+ positive={(account?.total_pnl ?? 0) > 0}
/>
= 0 ? '+' : ''}${account?.total_pnl?.toFixed(2) || '0.00'} USDT`}
+ value={`${account?.total_pnl !== undefined && account.total_pnl >= 0 ? '+' : ''}${account?.total_pnl?.toFixed(2) || '0.00'} USDT`}
change={account?.total_pnl_pct || 0}
- positive={account ? (account.total_pnl || 0) >= 0 : false}
+ positive={(account?.total_pnl ?? 0) >= 0}
/>
@@ -511,7 +544,7 @@ function StatCard({
// Decision Card Component with CoT Trace - Binance Style
function DecisionCard({ decision, language }: { decision: DecisionRecord; language: Language }) {
- const [showInput, setShowInput] = useState(false);
+ const [showInputPrompt, setShowInputPrompt] = useState(false);
const [showCoT, setShowCoT] = useState(false);
return (
@@ -535,20 +568,20 @@ function DecisionCard({ decision, language }: { decision: DecisionRecord; langua