From 516731e69a86b622b056a5efacae10e39b4dad49 Mon Sep 17 00:00:00 2001 From: Celes Renata Date: Wed, 15 Apr 2026 16:17:00 +0000 Subject: [PATCH] fix: remove explicit type annotations on Recharts formatter callbacks TypeScript strict mode in CI rejects explicit parameter types on Recharts formatter/tickFormatter callbacks. Use inference with 'as number' casts on the value instead. Also fix unsafe cast in PortfolioComposition and handle possibly-undefined percent. --- frontend/src/pages/trading/BacktestPanel.tsx | 2 +- frontend/src/pages/trading/PerformanceCharts.tsx | 6 +++--- frontend/src/pages/trading/PortfolioComposition.tsx | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/frontend/src/pages/trading/BacktestPanel.tsx b/frontend/src/pages/trading/BacktestPanel.tsx index 3fe4d1b..400f5b8 100644 --- a/frontend/src/pages/trading/BacktestPanel.tsx +++ b/frontend/src/pages/trading/BacktestPanel.tsx @@ -140,7 +140,7 @@ export function BacktestPanel() { [fmtUsd(value), 'Portfolio Value']} + formatter={(value) => [fmtUsd(value as number), 'Portfolio Value']} /> [`${value.toFixed(2)}%`, 'Cumulative Return']} + formatter={(value) => [`${Number(value).toFixed(2)}%`, 'Cumulative Return']} /> [`${value.toFixed(2)}%`, 'Daily Return']} + formatter={(value) => [`${Number(value).toFixed(2)}%`, 'Daily Return']} /> {chartData.map((entry, i) => ( @@ -97,7 +97,7 @@ export function PerformanceCharts() { [`${value.toFixed(2)}%`, 'Drawdown']} + formatter={(value) => [`${Number(value).toFixed(2)}%`, 'Drawdown']} /> { if (!status) return []; - const raw = (status as Record)['positions']; + const raw = (status as unknown as Record)['positions']; if (Array.isArray(raw)) return raw as Position[]; return []; }, [status]); @@ -105,7 +105,7 @@ export function PortfolioComposition() { cx="50%" cy="50%" outerRadius={100} - label={({ name, percent }) => `${name} ${(percent * 100).toFixed(0)}%`} + label={({ name, percent }) => `${name} ${((percent ?? 0) * 100).toFixed(0)}%`} > {sectorData.map((_, i) => ( @@ -114,7 +114,7 @@ export function PortfolioComposition() { fmtUsd(value)} + formatter={(value) => fmtUsd(value as number)} />