Files
fusion/packages/dashboard/app/components/AgentsOverviewBar.tsx
Fusion 03556ddbeb feat(FN-3224): update agents layout documentation
The merge lands a documentation update to `docs/agents.md`, correcting or refining the agents layout section (2 lines changed). No code or behavior changes.

Fusion-Task-Id: FN-3224
2026-05-03 04:43:14 -07:00

57 lines
1.8 KiB
TypeScript

import { ChevronDown, ChevronRight } from "lucide-react";
import { AgentMetricsBar } from "./AgentMetricsBar";
import { ActiveAgentsPanel } from "./ActiveAgentsPanel";
import type { Agent, AgentStats } from "../api";
import "./AgentsOverviewBar.css";
interface AgentsOverviewBarProps {
stats: AgentStats | null;
activeAgents: Agent[];
projectId?: string;
isOpen: boolean;
onToggle: () => void;
onSelectAgent?: (agentId: string) => void;
onOpenTaskLogs?: (taskId: string) => void;
}
export function AgentsOverviewBar({
stats,
activeAgents,
projectId,
isOpen,
onToggle,
onSelectAgent,
onOpenTaskLogs,
}: AgentsOverviewBarProps) {
return (
<section className="agents-overview-bar" aria-label="Agents overview">
<button
type="button"
className="agents-overview-bar__toggle"
aria-expanded={isOpen}
onClick={onToggle}
>
<span className="agents-overview-bar__title-wrap">
{isOpen ? <ChevronDown size={16} aria-hidden="true" /> : <ChevronRight size={16} aria-hidden="true" />}
<span className="agents-overview-bar__title">Overview</span>
</span>
<span className="agents-overview-bar__meta text-secondary">
{stats?.activeCount ?? 0} active · {activeAgents.length} running
</span>
</button>
{isOpen ? (
<div className="agents-overview-bar__content">
<AgentMetricsBar stats={stats} className="agents-overview-bar__metrics" />
<ActiveAgentsPanel
agents={activeAgents}
projectId={projectId}
onAgentSelect={onSelectAgent}
onOpenTaskLogs={onOpenTaskLogs}
className="agents-overview-bar__active-panel"
/>
</div>
) : null}
</section>
);
}