import { Icon } from "../../icon"; import { WorkspaceCreateForm } from "../workspace/workspace-create-form"; import type { ProjectWithRepos, WorkspaceSummary } from "../../../types"; interface Props { project: ProjectWithRepos; expanded: boolean; deleteConfirm: boolean; workspaceLoading: string | null; showCreateForm: string | null; onToggle: () => void; onEdit: () => void; onDelete: () => void; onConfirmDelete: () => void; onCancelDelete: () => void; onCreateWorkspace: (repoId: string) => void; onWorkspaceAction: (repoId: string, workspace: WorkspaceSummary, action: "sync" | "delete") => void; onCancelCreate: () => void; onCreated: () => void; } export const ProjectCard = ({ project, expanded, deleteConfirm, workspaceLoading, showCreateForm, onToggle, onEdit, onDelete, onConfirmDelete, onCancelDelete, onCreateWorkspace, onWorkspaceAction, onCancelCreate, onCreated, }: Props) => { return (
{deleteConfirm ? (
Are you sure?
) : ( )}
{expanded && (
{project.repositories.length === 0 ? (

No repositories yet.

) : (
{project.repositories.map((repo) => (

{repo.name}

{showCreateForm === repo.id && ( )} {repo.workspaces.length === 0 ? (

No workspaces.

) : (
{repo.workspaces.map((ws) => (
{ws.name} {ws.branch} {ws.instance_count > 0 && ( {ws.instance_count} tool{ws.instance_count > 1 ? "s" : ""} )}
))}
)}
))}
)}
)}
); };