"use client"; import { useState } from "react"; import { ArrowLeft, MoreHorizontal, Pencil, Trash2, Share2, Copy } from "lucide-react"; import { useRouter } from "next/navigation"; import Link from "next/link"; import { toast } from "sonner"; import { Button } from "@/components/ui/button"; import { Avatar, AvatarFallback } from "@/components/ui/avatar"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { ProjectStatusBadge } from "@/components/ui/project-status-badge"; import { ProjectFormSheet } from "@/components/project-form/project-form-sheet"; import { DeleteConfirmationDialog } from "@/components/ui/delete-confirmation-dialog"; import { deleteProject } from "@/lib/projectsService"; import { Project } from "@/types/project"; interface ProjectHeaderProps { project: Project; onProjectUpdated?: (project: Project) => void; onProjectDeleted?: () => void; } // Función para generar iniciales function getInitials(name: string): string { return name .split(" ") .map((word) => word[0]) .join("") .toUpperCase() .slice(0, 2); } export function ProjectHeader({ project, onProjectUpdated, onProjectDeleted }: ProjectHeaderProps) { const router = useRouter(); const initials = getInitials(project.name); const [isEditSheetOpen, setIsEditSheetOpen] = useState(false); const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState(false); const [isDeleting, setIsDeleting] = useState(false); const handleCopyRef = () => { navigator.clipboard.writeText(project.ref); }; const handleEditSuccess = (updatedProject: Project) => { onProjectUpdated?.(updatedProject); }; const handleConfirmDelete = async () => { setIsDeleting(true); try { await deleteProject(project.id); onProjectDeleted?.(); router.push('/proyectos'); } catch (error) { console.error("Error deleting project:", error); toast.error("Error al eliminar el proyecto", { description: "No se pudo eliminar el proyecto. Inténtalo de nuevo.", }); } finally { setIsDeleting(false); } }; return (
{/* Navegación */}
Proyectos / {project.ref}
{/* Header principal */}
{/* Avatar */} {initials} {/* Info principal */}

{project.name}

{project.client !== "Sin cliente" && ( <> | {project.client} )}
{/* Acciones */}
setIsEditSheetOpen(true)}> Editar proyecto Compartir setIsDeleteDialogOpen(true)} > Eliminar
{/* Sheet de edición */} {/* Diálogo de confirmación de eliminación */}
); }