diff --git a/components/AIAnalysisPanel.tsx b/components/AIAnalysisPanel.tsx index b4c3f46..3aea769 100644 --- a/components/AIAnalysisPanel.tsx +++ b/components/AIAnalysisPanel.tsx @@ -4,6 +4,12 @@ import TradeModal from './TradeModal' import ScreenshotGallery from './ScreenshotGallery' const layouts = (process.env.NEXT_PUBLIC_TRADINGVIEW_LAYOUTS || 'ai,Diy module').split(',').map(l => l.trim()) + +// Layout display names mapping +const layoutDisplayNames: { [key: string]: string } = { + 'ai': 'ai', + 'Diy module': 'Diy module' +} const timeframes = [ { label: '1m', value: '1' }, { label: '5m', value: '5' }, @@ -57,7 +63,7 @@ interface AIAnalysisPanelProps { export default function AIAnalysisPanel({ onAnalysisComplete }: AIAnalysisPanelProps = {}) { const [symbol, setSymbol] = useState('BTCUSD') - const [selectedLayouts, setSelectedLayouts] = useState(['ai', 'diy']) // Default to both AI and DIY + const [selectedLayouts, setSelectedLayouts] = useState(['ai', 'Diy module']) // Default to both layouts const [selectedTimeframes, setSelectedTimeframes] = useState(['60']) // Support multiple timeframes const [loading, setLoading] = useState(false) const [result, setResult] = useState(null) @@ -134,11 +140,25 @@ export default function AIAnalysisPanel({ onAnalysisComplete }: AIAnalysisPanelP } }, [eventSource]) + // Normalize layout key to match backend expectations + const normalizeLayoutKey = (layout: string): string => { + // Keep the exact names as they appear in TradingView + if (layout === 'ai') return 'ai' + if (layout === 'Diy module') return 'Diy module' + return layout + } + + // Get display name for layout (keep exact TradingView names) + const getLayoutDisplayName = (layout: string): string => { + return layoutDisplayNames[layout] || layout + } + const toggleLayout = (layout: string) => { + const normalizedLayout = normalizeLayoutKey(layout) setSelectedLayouts(prev => - prev.includes(layout) - ? prev.filter(l => l !== layout) - : [...prev, layout] + prev.includes(normalizedLayout) + ? prev.filter(l => l !== normalizedLayout) + : [...prev, normalizedLayout] ) } @@ -680,39 +700,47 @@ export default function AIAnalysisPanel({ onAnalysisComplete }: AIAnalysisPanelP
- {layouts.map(layout => ( -
diff --git a/lib/enhanced-screenshot.ts b/lib/enhanced-screenshot.ts index fa26615..fa9ca4e 100644 --- a/lib/enhanced-screenshot.ts +++ b/lib/enhanced-screenshot.ts @@ -17,7 +17,8 @@ export interface ScreenshotConfig { const LAYOUT_URLS = { 'ai': 'Z1TzpUrf', 'diy': 'vWVvjLhP', - 'Diy module': 'vWVvjLhP' // Alternative mapping for 'Diy module' + 'Diy module': 'vWVvjLhP', // Exact TradingView name + 'diy module': 'vWVvjLhP' // Lowercase fallback } export class EnhancedScreenshotService {