"use client"; import React, { useEffect, useState } from "react"; import { PieChart, Pie, Cell, Tooltip, ResponsiveContainer } from "recharts"; import styles from "../styles/billing.module.css"; import Cookies from 'js-cookie'; const STATUS_COLORS: Record = { "done": "#10B981", "waiting": "#F59E0B", "error": "#EF4444", "process": "#3B82F6", "reject": "#800080", "new": "#E30B5C", }; const BillingPieChart: React.FC = () => { const [data, setData] = useState<{ name: string; value: number; fill: string }[]>([]); useEffect(() => { const token = Cookies.get("access_token"); if (!token) { console.warn("Токен авторизации не найден."); return; } fetch("/api/billing/chart/pie", { headers: { 'Authorization': `Bearer ${token}` } }) .then((res) => res.json()) .then((apiData) => { const mapped = apiData.map((item: { status: string; count: number }) => ({ name: item.status, value: item.count, fill: STATUS_COLORS[item.status] || "#A3A3A3", })); setData(mapped); }); }, []); return (

Статистика выплат

`${name}: ${value}`} > {data.map((entry, idx) => ( ))}
); }; export default BillingPieChart;