import { useShallow } from "zustand/react/shallow"; import type { Project } from "../../lib/types"; import { useAppState, homeTabKey } from "../../store/appState"; import { useProjectActions } from "../../hooks/useProjectActions"; import { ProjectStatusIndicator } from "../ui/StatusIndicator"; interface Props { project: Project; } /** * Sidebar rows are select-only: name, paths, status, and hover controls. * Clicking a row opens (or focuses) that project's Project Home tab — the * settings form no longer lives in a 280px accordion. */ export default function ProjectRow({ project }: Props) { const { activeTabKey, selectedProjectId, openProjectHome, progress } = useAppState( useShallow((s) => ({ activeTabKey: s.activeTabKey, selectedProjectId: s.selectedProjectId, openProjectHome: s.openProjectHome, progress: s.containerProgress[project.id], })), ); const { busy, handleStart, handleStop, openClaudeTerminal } = useProjectActions(project); const isSelected = activeTabKey === homeTabKey(project.id) || selectedProjectId === project.id; const isRunning = project.status === "running"; const isTransitioning = project.status === "starting" || project.status === "stopping"; return (
{/* Hover / focus-within controls */}
); }