import React, { useState } from 'react'; const HealthBarChart = (props) => { const { filteredData, onBarClick } = props; const [hoveredBar, setHoveredBar] = useState(null); if (!filteredData || !Array.isArray(filteredData)) { console.error('Invalid chart data format'); return null; } const formatData = () => { return filteredData.map((item) => ({ label: item.date, value: item.avgRunFinished, color: item.color, executionIds: item.executionIds, })); }; const handleBarClick = (data) => { if (onBarClick) { onBarClick(data); } }; const chartData = formatData(); const barWidth = `calc((100% - ${(chartData.length - 1) * 5}px) / ${chartData.length})`; const barGap = '5px'; return (
{/* Chart Container */}
{chartData.map((item, index) => (
setHoveredBar(item)} onMouseLeave={() => setHoveredBar(null)} onClick={() => handleBarClick(item)} /> ))}
{/* Tooltip */} {hoveredBar && (
Date: {hoveredBar.label}
Uptime: {hoveredBar.value}%
Executions: {hoveredBar.executionIds.length}
)}
); }; export default HealthBarChart;