42 lines
1.2 KiB
React
42 lines
1.2 KiB
React
import './Experiences.css';
|
|
import SingleExperience from '../SingleExperience/SingleExperience.jsx';
|
|
import React, {useEffect, useState} from "react";
|
|
|
|
function Experiences() {
|
|
const [experiences, setExperiences] = useState([]);
|
|
const [error, setError] = useState(null);
|
|
|
|
useEffect(() => {
|
|
const fetchExperiences = async () => {
|
|
try {
|
|
let response = await fetch('/api/experiences/');
|
|
if (!response.ok) {
|
|
throw new Error(`Erreur HTTP: ${response.status}`);
|
|
}
|
|
let data = await response.json();
|
|
setExperiences(data);
|
|
} catch (err) {
|
|
setError(err.message);
|
|
}
|
|
};
|
|
fetchExperiences();
|
|
}, []);
|
|
|
|
if (error) {
|
|
return <div>Error retrieving data: {error}</div>;
|
|
}
|
|
|
|
return (
|
|
<section id="experiences-section">
|
|
<h1 className="section-title">Experiences</h1>
|
|
<div className="experiences-container">
|
|
{experiences.map((exp) => (
|
|
<SingleExperience experience={exp}/>
|
|
))}
|
|
</div>
|
|
</section>
|
|
);
|
|
}
|
|
|
|
export default Experiences;
|