feat: add multiple skills addition and optimize evaluation handling
- Introduced `addMultipleSkillsToEvaluation` function in `EvaluationClientWrapper` for batch skill addition. - Updated `SkillEvaluation` and `SkillSelector` components to utilize the new multiple skills addition feature. - Implemented optimistic UI updates for skill level, mentor status, and learning status changes, enhancing user experience. - Refactored evaluation state management to improve performance and maintainability. - Added error handling and rollback mechanisms for better reliability during API interactions.
This commit is contained in:
@@ -23,12 +23,17 @@ export function SkillEvaluation({
|
||||
evaluations,
|
||||
}: SkillEvaluationProps) {
|
||||
const {
|
||||
currentEvaluation: contextEvaluation,
|
||||
updateSkillLevel,
|
||||
updateSkillMentorStatus,
|
||||
updateSkillLearningStatus,
|
||||
addSkillToEvaluation,
|
||||
addMultipleSkillsToEvaluation,
|
||||
removeSkillFromEvaluation,
|
||||
} = useEvaluationContext();
|
||||
|
||||
// Utiliser l'évaluation du contexte (avec état optimiste) ou celle des props (SSR)
|
||||
const activeEvaluations = contextEvaluation?.evaluations || evaluations;
|
||||
const searchParams = useSearchParams();
|
||||
const router = useRouter();
|
||||
const categoryParam = searchParams.get("category");
|
||||
@@ -57,7 +62,7 @@ export function SkillEvaluation({
|
||||
const currentCategory = categories.find(
|
||||
(cat) => cat.category === selectedCategory
|
||||
);
|
||||
const currentEvaluation = evaluations.find(
|
||||
const currentEvaluation = activeEvaluations.find(
|
||||
(evaluation) => evaluation.category === selectedCategory
|
||||
);
|
||||
|
||||
@@ -85,9 +90,10 @@ export function SkillEvaluation({
|
||||
<div className="space-y-8">
|
||||
<SkillSelector
|
||||
categories={categories}
|
||||
evaluations={evaluations}
|
||||
evaluations={activeEvaluations}
|
||||
selectedCategory={selectedCategory}
|
||||
onAddSkill={addSkillToEvaluation}
|
||||
onAddMultipleSkills={addMultipleSkillsToEvaluation}
|
||||
onRemoveSkill={removeSkillFromEvaluation}
|
||||
/>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user