diff --git a/components/AIAnalysisPanel.tsx b/components/AIAnalysisPanel.tsx index f7db9b7..ff1f22c 100644 --- a/components/AIAnalysisPanel.tsx +++ b/components/AIAnalysisPanel.tsx @@ -1461,8 +1461,8 @@ export default function AIAnalysisPanel({ onAnalysisComplete }: AIAnalysisPanelP )} - {/* Screenshot Gallery */} - {result && result.screenshots && ( + {/* Screenshot Gallery - Single Analysis Only */} + {result && result.screenshots && !(result.type === 'multi_timeframe' || result.type === 'batch_comparative') && ( r.success && r.result.screenshots) - .sort((a: any, b: any) => { - // Sort by timeframe order: 5m, 15m, 30m, 1h, 2h, 4h, 1D - const timeframeOrder: {[key: string]: number} = { - '5': 1, '5m': 1, - '15': 2, '15m': 2, - '30': 3, '30m': 3, - '60': 4, '1h': 4, - '120': 5, '2h': 5, - '240': 6, '4h': 6, - 'D': 7, '1D': 7 - } - const orderA = timeframeOrder[a.timeframe] || timeframeOrder[a.timeframeLabel] || 999 - const orderB = timeframeOrder[b.timeframe] || timeframeOrder[b.timeframeLabel] || 999 - return orderA - orderB - }) - .flatMap((r: any) => r.result.screenshots)} + screenshots={ + result.type === 'batch_comparative' && result.screenshots + ? result.screenshots // Use direct screenshots array for batch analysis + : result.results // Use nested structure for legacy multi-timeframe + ?.filter((r: any) => r.success && r.result.screenshots) + ?.sort((a: any, b: any) => { + // Sort by timeframe order: 5m, 15m, 30m, 1h, 2h, 4h, 1D + const timeframeOrder: {[key: string]: number} = { + '5': 1, '5m': 1, + '15': 2, '15m': 2, + '30': 3, '30m': 3, + '60': 4, '1h': 4, + '120': 5, '2h': 5, + '240': 6, '4h': 6, + 'D': 7, '1D': 7 + } + const orderA = timeframeOrder[a.timeframe] || timeframeOrder[a.timeframeLabel] || 999 + const orderB = timeframeOrder[b.timeframe] || timeframeOrder[b.timeframeLabel] || 999 + return orderA - orderB + }) + ?.flatMap((r: any) => r.result.screenshots) || [] + } symbol={symbol} - timeframes={result.results - .filter((r: any) => r.success) - .sort((a: any, b: any) => { - // Sort by timeframe order: 5m, 15m, 30m, 1h, 2h, 4h, 1D - const timeframeOrder: {[key: string]: number} = { - '5': 1, '5m': 1, - '15': 2, '15m': 2, - '30': 3, '30m': 3, - '60': 4, '1h': 4, - '120': 5, '2h': 5, - '240': 6, '4h': 6, - 'D': 7, '1D': 7 - } - const orderA = timeframeOrder[a.timeframe] || timeframeOrder[a.timeframeLabel] || 999 - const orderB = timeframeOrder[b.timeframe] || timeframeOrder[b.timeframeLabel] || 999 - return orderA - orderB - }) - .map((r: any) => r.timeframeLabel)} + timeframes={ + result.type === 'batch_comparative' && result.timeframes + ? result.timeframes // Use direct timeframes array for batch analysis + : result.results // Use nested structure for legacy multi-timeframe + ?.filter((r: any) => r.success) + ?.sort((a: any, b: any) => { + // Sort by timeframe order: 5m, 15m, 30m, 1h, 2h, 4h, 1D + const timeframeOrder: {[key: string]: number} = { + '5': 1, '5m': 1, + '15': 2, '15m': 2, + '30': 3, '30m': 3, + '60': 4, '1h': 4, + '120': 5, '2h': 5, + '240': 6, '4h': 6, + 'D': 7, '1D': 7 + } + const orderA = timeframeOrder[a.timeframe] || timeframeOrder[a.timeframeLabel] || 999 + const orderB = timeframeOrder[b.timeframe] || timeframeOrder[b.timeframeLabel] || 999 + return orderA - orderB + }) + ?.map((r: any) => r.timeframeLabel) || [] + } enlargedImage={enlargedScreenshot} onImageClick={handleScreenshotClick} onClose={() => setEnlargedScreenshot(null)}