"use client"; import { Task } from "@/types"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Badge } from "@/components/ui/badge"; import { TabOverview } from "./tab-overview"; import { TabPlan } from "./tab-plan"; import { TabProgress } from "./tab-progress"; import { TabCommits } from "./tab-commits"; import { TabNotes } from "./tab-notes"; import { TabDependencies } from "./tab-dependencies"; import { TabSessions } from "./tab-sessions"; import { FileText, Layout, Clock, GitCommit, StickyNote, Link2, MessageSquare, } from "lucide-react"; interface TaskTabsProps { task: Task; } export function TaskTabs({ task }: TaskTabsProps) { // Calculate badge counts const progressCount = task.progress_updates.length + task.checkpoints.length; const commitCount = task.commits.length; const notesCount = (task.dev_notes ? 1 : 0) + (task.qa_notes ? 1 : 0) + (task.auditor_notes ? 1 : 0) + (task.quick_context ? 1 : 0); const depsCount = task.dependency_ids.length + task.blocker_ids.length; const sessionsCount = task.sessions?.length || 0; return ( Overview Plan {task.plan && ( {task.plan.sub_tasks.length} )} Progress {progressCount > 0 && ( {progressCount} )} Sessions {sessionsCount > 0 && ( {sessionsCount} )} Commits {commitCount > 0 && ( {commitCount} )} Notes {notesCount > 0 && ( {notesCount} )} Deps {depsCount > 0 && ( {depsCount} )}
); }