"use client";
import { ChevronRight, ChevronDown, Trash2 } from "lucide-react";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
interface TreeCategoryHeaderProps {
category: string;
isExpanded: boolean;
onToggle: () => void;
icon?: React.ReactNode;
itemCount: number;
itemLabel: string; // "skill" or "équipe" etc.
showSeparator?: boolean;
onDelete?: () => void;
canDelete?: boolean;
isDirection?: boolean; // Pour différencier les directions des catégories de skills
directionStats?: {
direction: string;
totalMembers: number;
hasMembers: boolean;
};
onDeleteCategory?: (categoryName: string) => void; // Nouvelle prop pour supprimer les catégories de skills
canDeleteCategory?: boolean; // Si la catégorie peut être supprimée
}
export function TreeCategoryHeader({
category,
isExpanded,
onToggle,
icon,
itemCount,
itemLabel,
showSeparator = false,
onDelete,
canDelete = true,
isDirection = false,
directionStats,
onDeleteCategory,
canDeleteCategory = false,
}: TreeCategoryHeaderProps) {
return (
{/* Séparateur entre catégories (sauf pour la première) */}
{showSeparator &&
}
{/* Header de catégorie */}
{isExpanded ? (
) : (
)}
{icon}
{category}
{isDirection && directionStats && directionStats.hasMembers && (
{directionStats.totalMembers} membre
{directionStats.totalMembers > 1 ? "s" : ""}
)}
{itemCount} {itemLabel}
{itemCount > 1 ? "s" : ""}
{isDirection && onDelete && (
)}
{/* Bouton de suppression pour les catégories de skills vides */}
{!isDirection && onDeleteCategory && itemCount === 0 && (
)}
);
}