import React from "react"; import type { Project, Session, Phase } from "../types"; type Theme = "dark" | "light"; interface HeaderProps { projects: Project[]; sessions: Session[]; selectedProject: Project | null; selectedSession: Session | null; onSelectProject: (project: Project | null) => void; onSelectSession: (session: Session | null) => void; onCreateProject: () => void; onCreateSession: () => void; onDeleteProject?: (id: string) => void; onDeleteSession?: (id: string) => void; theme: Theme; onToggleTheme: () => void; } const phaseLabels: Record = { research: "Research", plan: "Plan", implement: "Implement", }; const phases: Phase[] = ["research", "plan", "implement"]; export function Header({ projects, sessions, selectedProject, selectedSession, onSelectProject, onSelectSession, onCreateProject, onCreateSession, onDeleteProject, onDeleteSession, theme, onToggleTheme, }: HeaderProps) { const handleDeleteProject = () => { if (!selectedProject || !onDeleteProject) return; if (confirm(`Delete project "${selectedProject.name}"? This cannot be undone.`)) { onDeleteProject(selectedProject.id); } }; const handleDeleteSession = () => { if (!selectedSession || !onDeleteSession) return; if (confirm(`Delete session "${selectedSession.name}"? This cannot be undone.`)) { onDeleteSession(selectedSession.id); } }; return (
{/* ── Wordmark ── */} Claude Flow {selectedProject && onDeleteProject && ( )} {selectedProject && ( <> {selectedSession && onDeleteSession && ( )} )}
{selectedSession && (
{phases.map((phase) => { const phaseIndex = phases.indexOf(phase); const currentIndex = phases.indexOf(selectedSession.phase); const isComplete = phaseIndex < currentIndex; const isActive = phase === selectedSession.phase; return ( {phaseLabels[phase]} ); })}
)} {/* ── Theme toggle ── */}
); }