import { Box, CircularProgress, Alert } from '@mui/material'; import type { CotizacionGrano } from '../models/mercadoModels'; import { useApiData } from '../hooks/useApiData'; import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts'; import { formatFullDateTime } from '../utils/formatters'; interface GrainsHistoricalChartWidgetProps { nombre: string; } const formatTooltipLabel = (label: string) => { return formatFullDateTime(label); }; const formatXAxis = (tickItem: string) => { const date = new Date(tickItem); return date.toLocaleDateString('es-AR', { day: '2-digit', month: '2-digit' }); }; export const GrainsHistoricalChartWidget = ({ nombre }: GrainsHistoricalChartWidgetProps) => { const apiUrl = `/mercados/granos/history/${encodeURIComponent(nombre)}?dias=30`; const { data, loading, error } = useApiData(apiUrl); if (loading) { return ; } if (error) { return {error}; } if (!data || data.length < 2) { return No hay suficientes datos históricos para graficar este grano.; } return ( {/* Para los granos, usamos la fecha de operación en el eje X, que es más relevante */} `$${tick.toLocaleString('es-AR')}`} /> [`$${value.toFixed(0)}`, 'Precio']} labelFormatter={formatTooltipLabel} /> ); };