"use client"; import { useState } from "react"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; interface SkillAnalysis { skillName: string; category: string; experts: Array<{ name: string; level: number; canMentor: boolean; }>; learners: Array<{ name: string; currentLevel: number; }>; averageLevel: number; totalEvaluations: number; expertCount: number; learnerCount: number; proficiencyRate: number; } interface TeamSkillsTabProps { skillAnalysis: SkillAnalysis[]; } function getSkillLevelLabel(level: number): string { if (level < 0.5) return "Débutant"; if (level < 1.5) return "Intermé."; if (level < 2.5) return "Avancé"; return "Expert"; } function getSkillLevelColor(level: number): string { if (level < 0.5) return "bg-red-500"; if (level < 1.5) return "bg-orange-500"; if (level < 2.5) return "bg-blue-500"; return "bg-green-500"; } function getSkillLevelBadgeClasses(level: number): string { if (level < 0.5) return "bg-red-500/20 border-red-500/30 text-red-300"; if (level < 1.5) return "bg-orange-500/20 border-orange-500/30 text-orange-300"; if (level < 2.5) return "bg-blue-500/20 border-blue-500/30 text-blue-300"; return "bg-green-500/20 border-green-500/30 text-green-300"; } export function TeamSkillsTab({ skillAnalysis }: TeamSkillsTabProps) { const [selectedCategory, setSelectedCategory] = useState("all"); const categories = Array.from(new Set(skillAnalysis.map((s) => s.category))); const filteredSkills = selectedCategory === "all" ? skillAnalysis : skillAnalysis.filter((s) => s.category === selectedCategory); return ( <> {/* Filtres par catégorie */}
{categories.map((category) => ( ))}
{/* Liste des compétences détaillée */}
{filteredSkills.map((skill, idx) => (

{skill.skillName}

{skill.category}

{getSkillLevelLabel(skill.averageLevel)}
Niveau: {skill.averageLevel.toFixed(1)}/3
{skill.totalEvaluations}
Éval.
{skill.expertCount}
Experts
{skill.learnerCount}
Appren.
{skill.experts.filter((e) => e.canMentor).length > 0 && (
Mentors:
{skill.experts .filter((e) => e.canMentor) .slice(0, 2) .map((expert, i) => ( {expert.name.split(" ")[0]} ))} {skill.experts.filter((e) => e.canMentor).length > 2 && ( +{skill.experts.filter((e) => e.canMentor).length - 2} )}
)}
))}
); }