From 54046d210bf65fb5fcae5c438caeeef4fdb01311 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Sat, 30 Aug 2025 00:09:23 +0200 Subject: [PATCH] update of skills section to use db --- src/components/Skills.jsx | 62 ++++++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 24 deletions(-) diff --git a/src/components/Skills.jsx b/src/components/Skills.jsx index 5fef275..b5593d8 100644 --- a/src/components/Skills.jsx +++ b/src/components/Skills.jsx @@ -1,35 +1,49 @@ +import React, { useState, useEffect } from 'react'; import SkillCard from "./SkillCard.jsx"; import "../styles/Skills.css"; function Skills() { + const [skills, setSkills] = useState([]); + const [error, setError] = useState(null); + + useEffect(() => { + const fetchProjects = async () => { + try { + const response = await fetch('/api/skills'); + if (!response.ok) { + throw new Error(`Erreur HTTP: ${response.status}`); + } + const data = await response.json(); + setSkills(data.data); + } catch (err) { + setError(err.message); + } + }; + fetchProjects(); + }, []); + + if (error) { + return
Erreur lors de la récupération des données : {error}
; + } + + const uniqueSkillTypes = [...new Set(skills.map(skill => skill.type))]; + + return (

Skills

-
-

Languages

-
- - - - - - - - + {uniqueSkillTypes.map(type => ( +
+

{type}

+
+ {skills + .filter(skill => skill.type === type) + .map(skill => ( + + ))} +
-
-
-

Librairies

-
- -
-
-
-

Tools

-
- -
-
+ ))}
) } -- 2.47.2