import { useCallback } from "react"; import { dashboardApi } from "../api/dashboard"; import { useCompany } from "../context/CompanyContext"; import { useApi } from "../hooks/useApi"; import { formatCents } from "../lib/utils"; import { Card, CardContent } from "@/components/ui/card"; export function Dashboard() { const { selectedCompanyId, selectedCompany } = useCompany(); const fetcher = useCallback(() => { if (!selectedCompanyId) { return Promise.resolve(null); } return dashboardApi.summary(selectedCompanyId); }, [selectedCompanyId]); const { data, loading, error } = useApi(fetcher); if (!selectedCompanyId) { return
Create or select a company to view the dashboard.
; } return ({selectedCompany?.name}
Loading...
} {error &&{error.message}
} {data && (Agents
Running: {data.agents.running}
Paused: {data.agents.paused}
Error: {data.agents.error}
Tasks
Open: {data.tasks.open}
In Progress: {data.tasks.inProgress}
Blocked: {data.tasks.blocked}
Costs
{formatCents(data.costs.monthSpendCents)} / {formatCents(data.costs.monthBudgetCents)}
Utilization: {data.costs.monthUtilizationPercent}%
Governance
Pending approvals: {data.pendingApprovals}
Stale tasks: {data.staleTasks}