"use client"; import { Chip, Divider, Spacer } from "@nextui-org/react"; import { TrendingUp } from "lucide-react"; import * as React from "react"; import { Label, Pie, PieChart } from "recharts"; import { NotificationIcon, SuccessIcon } from "../icons"; import { ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent, } from "../ui"; const calculatePercent = ( chartData: { findings: string; number: number; fill: string }[], ) => { const total = chartData.reduce((sum, item) => sum + item.number, 0); return chartData.map((item) => ({ ...item, percent: Math.round((item.number / total) * 100) + "%", })); }; const chartData = [ { findings: "Success", number: 436, fill: "var(--color-success)", }, { findings: "Fail", number: 293, fill: "var(--color-fail)" }, ]; const updatedChartData = calculatePercent(chartData); const chartConfig = { number: { label: "Findings", }, success: { label: "Success", color: "hsl(var(--chart-success))", }, fail: { label: "Fail", color: "hsl(var(--chart-fail))", }, } satisfies ChartConfig; export function StatusChart() { const totalVisitors = React.useMemo(() => { return chartData.reduce((acc, curr) => acc + curr.number, 0); }, []); return (
} />
} color="success" radius="lg" size="md" > {chartData[0].number} {updatedChartData[0].percent}
No change from last scan
} color="danger" radius="lg" size="md" > {chartData[1].number} {updatedChartData[1].percent}
+2 findings from last scan
); }