import { useCallback } from "react"; import { costsApi } from "../api/costs"; import { useCompany } from "../context/CompanyContext"; import { useApi } from "../hooks/useApi"; import { formatCents } from "../lib/utils"; import { Card, CardContent } from "@/components/ui/card"; export function Costs() { const { selectedCompanyId } = useCompany(); const fetcher = useCallback(async () => { if (!selectedCompanyId) { return null; } const [summary, byAgent, byProject] = await Promise.all([ costsApi.summary(selectedCompanyId), costsApi.byAgent(selectedCompanyId), costsApi.byProject(selectedCompanyId), ]); return { summary, byAgent, byProject }; }, [selectedCompanyId]); const { data, loading, error } = useApi(fetcher); if (!selectedCompanyId) { return
Select a company first.
; } return (Loading...
} {error &&{error.message}
} {data && ( <>Month to Date
{formatCents(data.summary.monthSpendCents)} / {formatCents(data.summary.monthBudgetCents)}
Utilization {data.summary.monthUtilizationPercent}%
No cost events yet.
}No project-attributed costs yet.
}