import { useState } from 'react' import { SkillLevelSelect } from '@/components/SkillLevelBadge' import { Button } from '@/components/ui/button' import { Card, CardContent } from '@/components/ui/card' import { Save } from 'lucide-react' export function SkillMemberForm({ member, categories, skills, levels, isAdmin, currentUserId, onSave }) { const canEdit = isAdmin || currentUserId === member.id const initial = {} skills.forEach((s) => { const key = `${member.id}-${s.id}` initial[s.id] = levels[key]?.level || 0 }) const [editedLevels, setEditedLevels] = useState(initial) const hasChanges = skills.some((s) => { const key = `${member.id}-${s.id}` return (editedLevels[s.id] || 0) !== (levels[key]?.level || 0) }) function handleSave() { const changes = [] skills.forEach((s) => { const key = `${member.id}-${s.id}` const current = levels[key]?.level || 0 const edited = editedLevels[s.id] || 0 if (edited !== current) { changes.push({ skillId: s.id, oldLevel: current || null, newLevel: edited }) } }) if (changes.length > 0) onSave(member.id, changes) } return (

Modification des compétences de {member.full_name || member.email}

{categories.map((cat) => { const catSkills = skills.filter((s) => s.category_id === cat.id) if (catSkills.length === 0) return null return (

{cat.name}

{catSkills.map((s) => (
{s.name} {canEdit ? ( setEditedLevels((prev) => ({ ...prev, [s.id]: v }))} /> ) : ( {levels[`${member.id}-${s.id}`]?.level || '—'} )}
))}
) })} {canEdit && (
)}
) }