import { TaskMenuButton } from "./task-item-menu-button"; import { TaskItemChangeRequestStatus } from "./task-item-change-request-status"; import type { SidebarTaskRowTrailing } from "@/lib/state/slices/ui/sidebar-task-row-presentation"; import { formatRelativeTime, formatSidebarElapsedTime } from "@/lib/i18n/formats"; import { cn } from "@/lib/utils"; export type DiffStats = { additions: number; deletions: number }; function hasDiffStats(diffStats?: DiffStats): diffStats is DiffStats { return Boolean(diffStats?.additions || diffStats?.deletions); } function DiffStatsRight({ diffStats, menuOpen }: { diffStats: DiffStats; menuOpen: boolean }) { return (
+{diffStats.additions}{" "} -{diffStats.deletions}
); } export function TaskItemTrailing({ trailing, diffStats, menuOpen, effectiveMenuOpen, relativeTime, taskId, prInfo, }: { trailing: SidebarTaskRowTrailing; diffStats?: DiffStats; menuOpen: boolean; effectiveMenuOpen: boolean; relativeTime?: string; taskId?: string; prInfo?: { number: number; state: string; aggregateState?: string }; }) { const compactRelativeTime = formatSidebarElapsedTime(relativeTime ?? ""); const accessibleRelativeTime = formatRelativeTime(relativeTime ?? ""); if (trailing === "git_changes" && hasDiffStats(diffStats)) { return (
); } if (trailing === "relative_time" && compactRelativeTime) { return (
{accessibleRelativeTime}
); } if (trailing === "change_request_status" && (taskId || prInfo)) { return (
); } return ; }