"use client"; import { Users, BarChart3, Award, BookOpen, Target } from "lucide-react"; import { COVERAGE_OBJECTIVES, isCoverageBelowObjective, } from "@/lib/evaluation-utils"; interface TeamInsights { averageTeamLevel: number; totalExperts: number; totalLearners: number; skillGaps: { incontournable: number; majeure: number; standard: number; }; strongSkills: { incontournable: number; majeure: number; standard: number; }; criticalSkillsCoverage: { incontournable: number; majeure: number; }; } interface TeamMetricsCardsProps { totalMembers: number; teamInsights: TeamInsights; skillCoverage: number; } 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"; } export function TeamMetricsCards({ totalMembers, teamInsights, skillCoverage, }: TeamMetricsCardsProps) { return (
Membres
{totalMembers}
personnes actives
Niveau équipe
{((teamInsights.averageTeamLevel / 3) * 100).toFixed(0)}%
{getSkillLevelLabel(teamInsights.averageTeamLevel)}
Incontournables
{teamInsights.criticalSkillsCoverage.incontournable.toFixed(0)}%
{teamInsights.skillGaps.incontournable} à renforcer
Majeures
{teamInsights.criticalSkillsCoverage.majeure.toFixed(0)}%
{teamInsights.skillGaps.majeure} à renforcer
Expertises
{teamInsights.totalExperts}
{teamInsights.strongSkills.incontournable + teamInsights.strongSkills.majeure}{" "} critiques maîtrisées
); }