"use client"; import { FileText, Calendar, User, FolderOpen, Tag, Clock, AlertTriangle, CheckCircle2, Info, Hash } from "lucide-react"; import Link from "next/link"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Separator } from "@/components/ui/separator"; import { Task, TASK_STATUS_CONFIG, TASK_PRIORITY_CONFIG } from "@/types/task"; import { Project } from "@/types/project"; interface TaskInfoProps { task: Task; project: Project | null; } // Formatear fecha completa function formatFullDate(dateString: string | null): string { if (!dateString) return 'No definida'; return new Date(dateString).toLocaleDateString('es-ES', { weekday: 'long', day: '2-digit', month: 'long', year: 'numeric', }); } // Verificar si la tarea está vencida function isOverdue(task: Task): boolean { const endDate = task.endDate || task.plannedEndDate; if (!endDate) return false; return new Date(endDate) < new Date() && task.status !== '2'; } // Item de información function InfoItem({ icon: Icon, label, value, className = "", valueClassName = "" }: { icon: React.ElementType; label: string; value: React.ReactNode; className?: string; valueClassName?: string; }) { return (
{label}
{task.description}
) : (Esta tarea no tiene descripción.
)}