import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, Cell, } from 'recharts' import { COLOR } from '../../utils/colores' import { useChartTheme } from '../../hooks/useChartTheme' const getCategoria = (s) => { const fallecidos = parseInt(s.cantidad_fallecidos ?? s.fallecidos, 10) || 0 const lesionados = parseInt(s.cantidad_lesionados ?? s.heridos, 10) || 0 if (fallecidos > 0) return 'fatales' if (lesionados > 0) return 'conLes' return 'sinLes' } export default function PorLocalidad({ siniestros, tipo = 'todas' }) { const { tickColor, gridColor, tooltipBg, tooltipBorder, tooltipLabel } = useChartTheme() const conteo = {} siniestros.forEach((s) => { const categoria = getCategoria(s) if (tipo !== 'todas' && categoria !== tipo) return const loc = (s.localidad || s.localidad_ocurrencia || 'Sin dato').trim() || 'Sin dato' conteo[loc] = conteo[loc] || { total: 0, fatales: 0, conLes: 0, sinLes: 0, } conteo[loc].total += 1 conteo[loc][categoria] += 1 }) const data = Object.entries(conteo) .map(([localidad, values]) => { const mayorCategoria = ['fatales', 'conLes', 'sinLes'].sort( (a, b) => values[b] - values[a] )[0] return { localidad, total: values.total, categoria: mayorCategoria, } }) .sort((a, b) => b.total - a.total) .slice(0, 10) return (
{data.map((entry) => ( ))}
) }