import React from 'react'; import type { BotState } from '../hooks/useWebSocket'; import { TrendingUp, Zap } from 'lucide-react'; interface LivePulseTickerProps { botState: BotState; } export const LivePulseTicker: React.FC = ({ botState }) => { const symbols = Object.keys(botState.symbols); const volatileSymbols = symbols .sort((a, b) => Math.abs(botState.symbols[b].change24h || 0) - Math.abs(botState.symbols[a].change24h || 0)) .slice(0, 8); const aiSetups = symbols .filter(s => botState.symbols[s].rules['AIAnalysisRule']?.metadata?.confidence !== undefined) .sort((a, b) => (botState.symbols[b].rules['AIAnalysisRule']?.metadata?.confidence || 0) - (botState.symbols[a].rules['AIAnalysisRule']?.metadata?.confidence || 0)) .slice(0, 3); return (
{/* Market Ticker Section */}
Market Pulse
{volatileSymbols.map(s => { const change = botState.symbols[s].change24h || 0; return (
{s.split('/')[0]} = 0 ? '#00ff88' : '#ff3366', fontFamily: 'monospace' }}> {change >= 0 ? '+' : ''}{change.toFixed(2)}%
); })}
{/* AI Highlight Section */}
AI Top Picks
{aiSetups.map(s => (
{s.split('/')[0]} {botState.symbols[s].rules['AIAnalysisRule']?.metadata?.confidence}%
))} {aiSetups.length === 0 && SCANNING...}
); };