import { useState } from "react"; import type { DirectiveSummary } from "../../lib/api"; import { DirectiveListItem } from "./DirectiveListItem"; interface DirectiveListProps { directives: DirectiveSummary[]; loading: boolean; onSelect: (id: string) => void; onCreate: () => void; selectedId?: string; onArchive: (directive: DirectiveSummary) => void; } export function DirectiveList({ directives, loading, onSelect, onCreate, selectedId, onArchive, }: DirectiveListProps) { const [filter, setFilter] = useState<"all" | "active" | "completed" | "failed">("all"); const filteredDirectives = directives.filter((d) => { if (filter === "all") return true; if (filter === "active") return ["draft", "planning", "active", "paused"].includes(d.status); if (filter === "completed") return d.status === "completed"; if (filter === "failed") return d.status === "failed"; return true; }); return (

Directives

{/* Filters */}
{(["all", "active", "completed", "failed"] as const).map((f) => ( ))}
{/* List */}
{loading ? (

Loading...

) : filteredDirectives.length === 0 ? (

No directives found

) : ( filteredDirectives.map((d) => ( onSelect(d.id)} onArchive={() => onArchive(d)} /> )) )}
); }