import { useAgent } from "@copilotkit/react-core/v2"; import { TodoList } from "./todo-list"; import type { SalesTodo } from "../../types"; import { SALES_STAGES } from "../../types"; interface SalesDashboardProps { agentId?: string; } export function SalesDashboard({ agentId }: SalesDashboardProps) { const { agent } = useAgent(agentId ? { agentId } : undefined); const todos: SalesTodo[] = agent.state?.todos || []; const onUpdate = (updatedTodos: SalesTodo[]) => { agent.setState({ todos: updatedTodos }); }; // Pipeline summary const totalValue = todos.reduce((sum, t) => sum + t.value, 0); const byStage = SALES_STAGES.reduce( (acc, stage) => { const stageTodos = todos.filter((t) => t.stage === stage); acc[stage] = { count: stageTodos.length, value: stageTodos.reduce((sum, t) => sum + t.value, 0), }; return acc; }, {} as Record, ); return (
{/* Pipeline Summary */}

Sales Pipeline

Total Pipeline

${totalValue.toLocaleString()}

{SALES_STAGES.filter((s) => !s.startsWith("closed")).map( (stage) => (

{stage.charAt(0).toUpperCase() + stage.slice(1)}

{byStage[stage]?.count || 0} deals

${(byStage[stage]?.value || 0).toLocaleString()}

), )}
{/* Todo List */}
); }