import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { TeamMemberProfile, SkillGap } from "@/lib/team-review-types"; import { Badge } from "@/components/ui/badge"; import { ScrollArea } from "@/components/ui/scroll-area"; import { Avatar, AvatarFallback } from "@/components/ui/avatar"; import { GraduationCap } from "lucide-react"; interface LearningSectionProps { members: TeamMemberProfile[]; skillGaps: SkillGap[]; } export function LearningSection({ members, skillGaps }: LearningSectionProps) { // Trouver les apprenants const learners = members.filter((member) => member.learningSkills > 0); // Organiser les besoins d'apprentissage par apprenant const learningNeeds = learners.map((learner) => { const needs = learner.skills .filter((skill) => skill.wantsToLearn) .map((skill) => { const gap = skillGaps.find((g) => g.skillId === skill.skillId); if (!gap) return null; const mentors = members.filter((member) => member.skills.some( (s) => s.skillId === skill.skillId && s.canMentor && ["autonomous", "expert"].includes(s.level) ) ); return { skill: skill.skillName, category: skill.category, currentLevel: skill.level, mentors, isHighRisk: gap.risk === "high", }; }) .filter(Boolean); return { learner, needs, }; }); const getLevelColor = (level: string) => { const colors = { never: "bg-white/5 text-slate-300 border-white/20", "not-autonomous": "bg-yellow-500/20 text-yellow-200 border-yellow-500/30", autonomous: "bg-green-500/20 text-green-200 border-green-500/30", expert: "bg-blue-500/20 text-blue-200 border-blue-500/30", }; return colors[level as keyof typeof colors]; }; return ( Besoins en formation
{learningNeeds.map(({ learner, needs }) => (
{learner.member.firstName[0]} {learner.member.lastName[0]}

{learner.member.firstName} {learner.member.lastName}

{learner.learningSkills} compétences à développer

{needs.map( (need, idx) => need && (
{need.category} {need.skill} {need.isHighRisk && ( Prioritaire )}
Niveau actuel : {need.currentLevel}
{need.mentors.length > 0 && (

Mentors disponibles :

{need.mentors.map((mentor) => ( {mentor.member.firstName}{" "} {mentor.member.lastName} ))}
)}
) )}
))}
); }