diff --git a/src/components/ApiClient/ApiClientLayout.tsx b/src/components/ApiClient/ApiClientLayout.tsx index 28e9b75..84ed722 100644 --- a/src/components/ApiClient/ApiClientLayout.tsx +++ b/src/components/ApiClient/ApiClientLayout.tsx @@ -5,14 +5,7 @@ import { TemplateManager } from "./TemplateManager" import { JobRunner } from "./JobRunner" import { ResultsGallery } from "./ResultsGallery" -type ApiTab = "server" | "templates" | "jobs" | "results" - -const tabs: { key: ApiTab; label: string; icon: string }[] = [ - { key: "server", label: "Server", icon: "dns" }, - { key: "templates", label: "Templates", icon: "description" }, - { key: "jobs", label: "Jobs", icon: "play_circle" }, - { key: "results", label: "Results", icon: "analytics" }, -] +type ApiSection = "server" | "templates" | "jobs" | "results" interface EBProps { children: ReactNode @@ -51,74 +44,85 @@ class SafeWrap extends Component { } } -function Sidebar({ active, onChange }: { active: ApiTab; onChange: (t: ApiTab) => void }) { - const setActiveTab = (tab: ApiTab) => { - if (tab === "jobs" || tab === "results") { - // Auto-activate works in both directions - } - onChange(tab) - } +const sections: { key: ApiSection; label: string; icon: string }[] = [ + { key: "server", label: "Server", icon: "dns" }, + { key: "templates", label: "Templates", icon: "description" }, + { key: "jobs", label: "Jobs", icon: "play_circle" }, + { key: "results", label: "Results", icon: "analytics" }, +] +function LeftPanel({ active, onChange }: { active: ApiSection; onChange: (s: ApiSection) => void }) { + const runs = useApiStore((s) => s.runs) return ( -