/** * Project list row. Mirrors the IssueRow layout shape from * `(tabs)/my-issues.tsx` (left icon + flex title + right column for * counts + time), per apps/mobile/CLAUDE.md "Visual alignment is baseline * → row's right-side elements stack vertically into a column". * * Layout: * [📦 icon] Project title [3/12] * [● in progress] [▍▍ high] 2d ago */ import { Pressable, View } from "react-native"; import type { Project } from "@multica/core/types"; import { Text } from "@/components/ui/text"; import { ProjectIcon } from "@/components/ui/project-icon"; import { ProjectStatusIcon } from "@/components/ui/project-status-icon"; import { ProjectPriorityIcon } from "@/components/ui/project-priority-icon"; import { projectPriorityLabel, projectStatusLabel, } from "@/lib/project-status"; import { timeAgo } from "@/lib/time-ago"; interface Props { project: Project; onPress: () => void; } export function ProjectRow({ project, onPress }: Props) { const totalIssues = project.issue_count; const showCount = totalIssues > 0; return ( {project.title} {projectStatusLabel(project.status)} {project.priority !== "none" ? ( {projectPriorityLabel(project.priority)} ) : null} {showCount ? ( {project.done_count}/{totalIssues} ) : ( )} {timeAgo(project.updated_at)} ); }