"use client"; import { useState } from "react"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { COVERAGE_OBJECTIVES, isCoverageBelowObjective, } from "@/lib/evaluation-utils"; interface SkillAnalysis { skillName: string; category: string; importance: "incontournable" | "majeure" | "standard"; experts: Array<{ name: string; level: number; canMentor: boolean; }>; learners: Array<{ name: string; currentLevel: number; }>; averageLevel: number; totalEvaluations: number; expertCount: number; learnerCount: number; proficiencyRate: number; coverage: 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) => { const target = COVERAGE_OBJECTIVES[skill.importance]; const isUnderTarget = isCoverageBelowObjective( skill.coverage, skill.importance ); return ( ); })}
Compétence Niveau Experts Appren. Couv. Mentors
{skill.skillName}
{skill.category}
{skill.averageLevel.toFixed(1)}
{skill.expertCount} {skill.learnerCount}
{skill.coverage.toFixed(0)}%
{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} )}
); }