import { BadgeDelta, Card, Flex, Metric, ProgressBar, Text } from "@tremor/react"; import { useEffect, useState } from "react"; import { axiosInstance } from "src/api/AxiosConfig"; export function KpiCard() { const [kpiCardData, setKpiCardData] = useState({ completedThisWeek: 0, completedLastWeek: 0, incOrdec: undefined, percentage: 0, }); useEffect(() => { const fetchKpiCardData = async () => { try { const response = await axiosInstance.get("/dashboard/stats/"); const completedThisWeek = response.data.completed_this_week || 0; const completedLastWeek = response.data.completed_last_week || 0; const percentage = (completedThisWeek / completedLastWeek) * 100; let incOrdec = undefined; if (completedThisWeek <= completedLastWeek) { incOrdec = "moderateDecrease"; } if (completedThisWeek > completedLastWeek) { incOrdec = "moderateIncrease"; } setKpiCardData({ completedThisWeek, completedLastWeek, incOrdec, percentage, }); } catch (error) { console.error("Error fetching KPI card data:", error); } }; fetchKpiCardData(); }, []); return (
{kpiCardData.completedThisWeek}
{kpiCardData.percentage.toFixed(0)}%
vs. {kpiCardData.completedLastWeek} (last week)
); }