refactor: SSR on skills management

This commit is contained in:
Julien Froidefond
2025-08-25 09:04:33 +02:00
parent e02af4f992
commit 0c7903bcb2
6 changed files with 51 additions and 52 deletions

View File

@@ -11,9 +11,12 @@ interface SkillFormData {
icon: string;
}
export function useSkillsManagement(skillCategories: SkillCategory[]) {
const [skills, setSkills] = useState<Skill[]>([]);
const [isLoading, setIsLoading] = useState(true);
export function useSkillsManagement(
skillCategories: SkillCategory[],
initialSkills?: any[]
) {
const [skills, setSkills] = useState<Skill[]>(initialSkills || []);
const [isLoading, setIsLoading] = useState(!initialSkills);
const [editingSkill, setEditingSkill] = useState<Skill | null>(null);
const [skillFormData, setSkillFormData] = useState<SkillFormData>({
name: "",
@@ -24,28 +27,28 @@ export function useSkillsManagement(skillCategories: SkillCategory[]) {
const [isSubmitting, setIsSubmitting] = useState(false);
const { toast } = useToast();
// Charger les skills depuis l'API
const fetchSkills = async () => {
try {
setIsLoading(true);
const skillsData = await adminClient.getSkills();
setSkills(skillsData);
} catch (error) {
console.error("Error fetching skills:", error);
toast({
title: "Erreur",
description: "Impossible de charger les skills",
variant: "destructive",
});
} finally {
setIsLoading(false);
}
};
// Charger les skills au montage du composant
// Charger les skills depuis l'API si pas de skills initiales
useEffect(() => {
fetchSkills();
}, []);
if (!initialSkills) {
const fetchSkills = async () => {
try {
setIsLoading(true);
const skillsData = await adminClient.getSkills();
setSkills(skillsData);
} catch (error) {
console.error("Error fetching skills:", error);
toast({
title: "Erreur",
description: "Impossible de charger les skills",
variant: "destructive",
});
} finally {
setIsLoading(false);
}
};
fetchSkills();
}
}, [initialSkills]);
const resetForm = () => {
setSkillFormData({ name: "", categoryId: "", description: "", icon: "" });