"use client"; // import { Bar, BarChart, CartesianGrid, Legend, ResponsiveContainer, Tooltip, XAxis, YAxis } from "@/components/ui/chart" import { Pie, PieChart, Cell, Tooltip } from "recharts"; import { useSharedContext } from "@/lib/shared-context"; import { useEffect, useState } from "react"; import { PRData, chartData } from "@/app/Interfaces/interface"; import { CustomPieTooltip } from "./pr-pie-all-data"; interface DataChartProps { data: PRData[]; } export function DataChart({ data }: DataChartProps) { // Extract keys excluding 'name' // const dataKeys = Object.keys(data[0]).filter((key) => key !== "name") const [chartData, setChartData] = useState([]); // const {prData} = useSharedContext() const status = [ { name: "approved", color: "bg-green-300", value: "rgb(134 239 172)", }, { name: "needs_revision", color: "bg-yellow-300", value: "rgb(253 224 71)", }, { name: "merged", color: "bg-purple-300", value: "rgb(216 180 254)", }, { name: "in_review", color: "bg-blue-300", value: "rgb(147 197 253)", }, ]; useEffect(() => { let buffer = status.map((status) => { return { name: status.name, value: data.filter((pr: PRData) => pr.status === status.name).length, }; }); setChartData(buffer); }, [data]); // Generate colors for each data key const colors = [ "hsl(var(--chart-1))", "hsl(var(--chart-2))", "hsl(var(--chart-3))", "hsl(var(--chart-4))", "hsl(var(--chart-5))", ]; return ( <> {/*
*/} {/*

PR Status Distribution

*/}
{chartData.map((entry, index) => ( status.name === entry.name)?.value } /> ))} {/* bg-white p-2 rounded shadow text-black */} } /> {/* Custom Legend */}
{chartData.map((entry, idx) => (
status.name === entry.name)?.color}`} /> {entry.name.split("_").join(" ")}
))}
{/*
*/} ); }