//@ts-nocheck import React from 'react' import { ResponsiveContainer, Tooltip } from 'recharts'; import { PieChart, Pie, Cell } from 'recharts'; import { Styles } from '../../common'; import { NoContent } from 'UI'; import { filtersMap } from 'Types/filter/newFilter'; import { numberWithCommas } from 'App/utils'; interface Props { metric: any, data: any; colors: any; onClick?: (filters) => void; } function CustomMetricPieChart(props: Props) { const { metric, data = { values: [] }, onClick = () => null } = props; const onClickHandler = (event) => { if (event && !event.payload.group) { const filters = Array(); let filter = { ...filtersMap[metric.metricOf] } filter.value = [event.payload.name] filter.type = filter.key delete filter.key delete filter.operatorOptions delete filter.category delete filter.icon delete filter.label delete filter.options filters.push(filter); onClick(filters); } } return ( { const RADIAN = Math.PI / 180; let radius1 = 15 + innerRadius + (outerRadius - innerRadius); let radius2 = innerRadius + (outerRadius - innerRadius); let x2 = cx + radius1 * Math.cos(-midAngle * RADIAN); let y2 = cy + radius1 * Math.sin(-midAngle * RADIAN); let x1 = cx + radius2 * Math.cos(-midAngle * RADIAN); let y1 = cy + radius2 * Math.sin(-midAngle * RADIAN); const percentage = value * 100 / data.values.reduce((a, b) => a + b.sessionCount, 0); if (percentage<3){ return null; } return( ) }} label={({ cx, cy, midAngle, innerRadius, outerRadius, value, index }) => { const RADIAN = Math.PI / 180; let radius = 20 + innerRadius + (outerRadius - innerRadius); let x = cx + radius * Math.cos(-midAngle * RADIAN); let y = cy + radius * Math.sin(-midAngle * RADIAN); const percentage = (value / data.values.reduce((a, b) => a + b.sessionCount, 0)) * 100; let name = data.values[index].name || 'Unidentified'; name = name.length > 20 ? name.substring(0, 20) + '...' : name; if (percentage<3){ return null; } return ( cx ? "start" : "end"} dominantBaseline="central" fill='#666' > {name || 'Unidentified'} {numberWithCommas(value)} ); }} > {data && data.values && data.values.map((entry, index) => ( ))}
Top 5
) } export default CustomMetricPieChart;