import React from "react"; import { ChartPie } from "@patternfly/react-charts"; import { TextContent, Text } from "@patternfly/react-core"; type ChartBarDataEntry = { name: string; x: string; y: number; }; function histogramToPieChartData( histogram: ReportPieChart.Histogram, legendLabel: string, ): ChartBarDataEntry[] { const { data } = histogram; return data .filter(y => y > 0) // Filtrar valores mayores que 0 .map((y, idx) => ({ name: legendLabel, x: `${idx + 1} ${legendLabel}`, // Cambia esto segĂșn tus necesidades y, })).sort((a, b) => a.y - b.y); } function getLegendData( histogram: ReportPieChart.Histogram,legendLabel:string): { name: string; }[] { return histogramToPieChartData(histogram, '').map(d => ({ name: `${d.x} ${legendLabel}: ${d.y} VM` })) } // eslint-disable-next-line @typescript-eslint/no-namespace export namespace ReportPieChart { export type Histogram = { data: number[]; minValue: number; step: number; }; export type Props = { histogram: Histogram; title: string; legendLabel: string; }; } export function ReportPieChart(props: ReportPieChart.Props): React.ReactNode { const { title, histogram,legendLabel } = props; return ( <> {title} `${datum.x}: ${datum.y}`} legendData={getLegendData(histogram,legendLabel)} legendOrientation="vertical" legendPosition="right" padding={{ bottom: 20, left: 20, right: 140, // Adjusted to accommodate legend top: 20, }} width={450} colorScale={['#73BCF7','#73C5C5','#F9E0A2','#BDE5B8','#D2D2D2','#F4B678','#CBC1FF','#FF7468','#7CDBF3','#E4F5BC']}/> ); }