import { useState } from 'react';
import { Box, Paper, Typography, ToggleButton, ToggleButtonGroup, CircularProgress, Alert } from '@mui/material';
import ArrowUpwardIcon from '@mui/icons-material/ArrowUpward';
import ArrowDownwardIcon from '@mui/icons-material/ArrowDownward';
import RemoveIcon from '@mui/icons-material/Remove';
import type { CotizacionBolsa } from '../models/mercadoModels';
import { formatInteger, formatCurrency } from '../utils/formatters'; // <-- CORREGIDO: necesitamos formatCurrency
import { HistoricalChartWidget } from './HistoricalChartWidget';
import { useApiData } from '../hooks/useApiData';
// --- V SUB-COMPONENTE AÑADIDO V ---
const VariacionMerval = ({ actual, anterior }: { actual: number, anterior: number }) => {
    if (anterior === 0) return null; // Evitar división por cero
    const variacionPuntos = actual - anterior;
    const variacionPorcentaje = (variacionPuntos / anterior) * 100;
    const isPositive = variacionPuntos > 0;
    const isNegative = variacionPuntos < 0;
    const color = isPositive ? 'success.main' : isNegative ? 'error.main' : 'text.secondary';
    const Icon = isPositive ? ArrowUpwardIcon : isNegative ? ArrowDownwardIcon : RemoveIcon;
    return (
        
            
            
                
                    {formatCurrency(variacionPuntos)}
                
                
                    ({variacionPorcentaje.toFixed(2)}%)
                
            
        
    );
};
// --- ^ SUB-COMPONENTE AÑADIDO ^ ---
export const MervalHeroCard = () => {
    const { data: allLocalData, loading, error } = useApiData('/mercados/bolsa/local');
    const [dias, setDias] = useState(30);
    const handleRangoChange = ( _event: React.MouseEvent, nuevoRango: number | null ) => {
        if (nuevoRango !== null) { setDias(nuevoRango); }
    };
    
    const mervalData = allLocalData?.find(d => d.ticker === '^MERV');
    if (loading) { return ; }
    if (error) { return {error}; }
    if (!mervalData) { return No se encontraron datos para el índice MERVAL.; }
    return (
        
            
                
                    Índice S&P MERVAL
                    {formatInteger(mervalData.precioActual)}
                
                
                    {/* Ahora sí encontrará el componente */}
                    
                
            
            
                
                    
                        Semanal
                        Mensual
                        Anual
                    
                
                
            
        
    );
};