"use client"; import { ArrowLeft, MoreHorizontal, Pencil, Trash2, Share2, Copy } from "lucide-react"; import { useRouter } from "next/navigation"; import Link from "next/link"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { Avatar, AvatarFallback } from "@/components/ui/avatar"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Project, ProjectStatus } from "@/types/project"; interface ProjectHeaderProps { project: Project; } // Función para generar iniciales function getInitials(name: string): string { return name .split(" ") .map((word) => word[0]) .join("") .toUpperCase() .slice(0, 2); } // Componente para el badge de estado function StatusBadge({ status }: { status: ProjectStatus }) { const statusConfig: Record = { "0": { label: "Borrador", className: "bg-gray-100 text-gray-700 border-gray-200 dark:bg-gray-800 dark:text-gray-300 dark:border-gray-700", }, "1": { label: "Abierto", className: "bg-blue-100 text-blue-700 border-blue-200 dark:bg-blue-900/30 dark:text-blue-400 dark:border-blue-800", }, "2": { label: "Cerrado", className: "bg-green-100 text-green-700 border-green-200 dark:bg-green-900/30 dark:text-green-400 dark:border-green-800", }, }; const config = statusConfig[status] || statusConfig["0"]; return ( {config.label} ); } export function ProjectHeader({ project }: ProjectHeaderProps) { const router = useRouter(); const initials = getInitials(project.name); const handleCopyRef = () => { navigator.clipboard.writeText(project.ref); }; return (
{/* Navegación */}
Proyectos / {project.ref}
{/* Header principal */}
{/* Avatar */} {initials} {/* Info principal */}

{project.name}

{project.client !== "Sin cliente" && ( <> | {project.client} )}
{/* Acciones */}
Editar proyecto Compartir Eliminar
); }