From 3a50753c8afa162457684fabd1cd57370f225078 Mon Sep 17 00:00:00 2001 From: dmolinari Date: Mon, 7 Jul 2025 10:01:10 -0300 Subject: [PATCH] Fix: Time Zone Format --- .../components/AgroHistoricalChartWidget.tsx | 15 +++++++++++---- .../components/GrainsHistoricalChartWidget.tsx | 11 ++++++++++- .../src/components/HistoricalChartWidget.tsx | 17 ++++++++++++----- 3 files changed, 33 insertions(+), 10 deletions(-) diff --git a/frontend/src/components/AgroHistoricalChartWidget.tsx b/frontend/src/components/AgroHistoricalChartWidget.tsx index f7a3816..2ab632a 100644 --- a/frontend/src/components/AgroHistoricalChartWidget.tsx +++ b/frontend/src/components/AgroHistoricalChartWidget.tsx @@ -2,15 +2,15 @@ import { Box, CircularProgress, Alert } from '@mui/material'; import type { CotizacionGanado } 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 AgroHistoricalChartWidgetProps { categoria: string; especificaciones: string; } -const formatXAxis = (tickItem: string) => { - const date = new Date(tickItem); - return date.toLocaleDateString('es-AR', { day: '2-digit', month: '2-digit' }); +const formatTooltipLabel = (label: string) => { + return formatFullDateTime(label); }; export const AgroHistoricalChartWidget = ({ categoria, especificaciones }: AgroHistoricalChartWidgetProps) => { @@ -29,13 +29,20 @@ export const AgroHistoricalChartWidget = ({ categoria, especificaciones }: AgroH return No hay suficientes datos históricos para graficar esta categoría.; } + const formatXAxis = (tickItem: string) => { + return new Date(tickItem).toLocaleDateString('es-AR', { day: '2-digit', month: '2-digit' }); + }; + return ( `$${tick.toLocaleString('es-AR')}`} /> - [`$${value.toFixed(2)}`, 'Precio Promedio']} /> + [`$${value.toFixed(2)}`, 'Precio Promedio']} + labelFormatter={formatTooltipLabel} + /> diff --git a/frontend/src/components/GrainsHistoricalChartWidget.tsx b/frontend/src/components/GrainsHistoricalChartWidget.tsx index c81d142..a96baf3 100644 --- a/frontend/src/components/GrainsHistoricalChartWidget.tsx +++ b/frontend/src/components/GrainsHistoricalChartWidget.tsx @@ -2,11 +2,16 @@ 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' }); @@ -32,9 +37,13 @@ export const GrainsHistoricalChartWidget = ({ nombre }: GrainsHistoricalChartWid + {/* 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']} /> + [`$${value.toFixed(0)}`, 'Precio']} + labelFormatter={formatTooltipLabel} + /> diff --git a/frontend/src/components/HistoricalChartWidget.tsx b/frontend/src/components/HistoricalChartWidget.tsx index d3c87e1..8aaba60 100644 --- a/frontend/src/components/HistoricalChartWidget.tsx +++ b/frontend/src/components/HistoricalChartWidget.tsx @@ -2,6 +2,7 @@ import { Box, CircularProgress, Alert } from '@mui/material'; import type { CotizacionBolsa } 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 HistoricalChartWidgetProps { ticker: string; @@ -9,10 +10,8 @@ interface HistoricalChartWidgetProps { dias: number; } -// Formateador para el eje X (muestra DD/MM) -const formatXAxis = (tickItem: string) => { - const date = new Date(tickItem); - return date.toLocaleDateString('es-AR', { day: '2-digit', month: '2-digit' }); +const formatTooltipLabel = (label: string) => { + return formatFullDateTime(label); }; export const HistoricalChartWidget = ({ ticker, mercado, dias }: HistoricalChartWidgetProps) => { @@ -31,13 +30,21 @@ export const HistoricalChartWidget = ({ ticker, mercado, dias }: HistoricalChart return No hay suficientes datos históricos para graficar.; } + // Formateador para el eje X que solo muestra día/mes + const formatXAxis = (tickItem: string) => { + return new Date(tickItem).toLocaleDateString('es-AR', { day: '2-digit', month: '2-digit' }); + }; + return ( `$${tick.toLocaleString('es-AR')}`} /> - [`$${value.toFixed(2)}`, 'Precio']} /> + [`$${value.toFixed(2)}`, 'Precio']} + labelFormatter={formatTooltipLabel} + />