27 Commits

Author SHA1 Message Date
Giovanni 2ab10c7803 update fetch url to match new api prefix 2026-06-15 13:17:09 +02:00
Giovanni f5441f038c update fetch url to match new api prefix 2026-06-15 13:14:11 +02:00
Giovanni e92c4227d8 update fetch url to match new api prefix 2026-06-15 13:07:08 +02:00
Giovanni 6640136fd9 update fetch url to match new api prefix 2026-06-15 12:47:46 +02:00
Giovanni 285daa7d54 update fetch url to match new api prefix 2026-06-15 11:54:50 +02:00
Giovanni 56f475839d update fetch url to match new api prefix 2026-06-15 11:47:58 +02:00
Giovanni cc8d3c78cd update fetch url to match new api prefix 2026-06-15 11:46:00 +02:00
Giovanni 1b675fdd3e update fetch url to match new api prefix 2026-06-15 11:41:16 +02:00
Giovanni 37a113fbf6 update fetch url to match new api prefix 2026-06-15 11:39:30 +02:00
Giovanni 5401774e0e update fetch url to match new api prefix 2026-06-15 11:34:46 +02:00
Giovanni b142112ce0 update fetch url to match new api prefix 2026-06-15 11:28:56 +02:00
Giovanni 75d4f5d166 update fetch url to match new api prefix 2026-06-15 11:24:42 +02:00
Giovanni dfbe3123d5 Merge branch 'dev' 2026-04-23 15:53:05 +02:00
Giovanni-Josserand 41dc079844 Merge pull request 'dev' (#47) from dev into main
Reviewed-on: Giovanni-Josserand/Portfolio#47
2025-11-06 19:56:58 +00:00
Giovanni-Josserand 65060c6875 Merge pull request 'dev' (#45) from dev into main
Reviewed-on: Giovanni-Josserand/Portfolio#45
2025-11-06 19:54:39 +00:00
Giovanni-Josserand 1127a608bd Merge pull request 'Test to fix Qt image that doesn't display' (#43) from dev into main
Reviewed-on: Giovanni-Josserand/Portfolio#43
2025-11-06 18:48:13 +00:00
Giovanni-Josserand 1a26e0d2d8 Merge pull request 'dev' (#42) from dev into main
Reviewed-on: Giovanni-Josserand/Portfolio#42
2025-11-06 18:45:06 +00:00
Giovanni-Josserand 743160af3c Merge pull request 'dev' (#40) from dev into main
Reviewed-on: Giovanni-Josserand/Portfolio#40
2025-09-28 17:24:53 +00:00
Giovanni-Josserand 9b17d23901 Merge pull request 'dev' (#35) from dev into main
Reviewed-on: Giovanni-Josserand/Portfolio#35
2025-09-28 17:01:02 +00:00
Giovanni-Josserand c41760c313 Merge pull request 'dev' (#29) from dev into main
Reviewed-on: Giovanni-Josserand/Portfolio#29
2025-09-14 16:20:37 +00:00
Giovanni-Josserand 540bf7efec Merge pull request 'add of the new images' (#27) from dev into main
Reviewed-on: Giovanni-Josserand/Portfolio#27
2025-09-06 09:55:17 +00:00
Giovanni-Josserand fe2abff5e5 Merge pull request 'dev' (#26) from dev into main
Reviewed-on: Giovanni-Josserand/Portfolio#26
2025-09-06 09:48:46 +00:00
Giovanni-Josserand 40d8c49908 Merge pull request 'test debug error 404' (#21) from dev into main
Reviewed-on: Giovanni-Josserand/Portfolio#21
2025-08-31 19:36:31 +00:00
Giovanni-Josserand 3728385ebc Merge pull request 'dev' (#20) from dev into main
Reviewed-on: Giovanni-Josserand/Portfolio#20
2025-08-31 16:29:50 +00:00
Giovanni-Josserand cc7c586d4a Merge pull request 'repair CV link' (#16) from dev into main
Reviewed-on: Giovanni-Josserand/Portfolio#16
2025-08-28 19:34:59 +00:00
Giovanni-Josserand 1ec3121bc1 Merge pull request 'update of single project images URL' (#15) from dev into main
Reviewed-on: Giovanni-Josserand/Portfolio#15
2025-08-28 13:58:25 +00:00
Giovanni-Josserand 9700ae889e Merge pull request 'dev' (#14) from dev into main
Reviewed-on: Giovanni-Josserand/Portfolio#14
2025-08-28 13:35:44 +00:00
8 changed files with 15 additions and 23 deletions
+3 -3
View File
@@ -20,12 +20,12 @@ function Projects() {
useEffect(() => {
const fetchProjects = async () => {
try {
const response = await fetch('/api/shortProjects/');
const response = await fetch('/api/projects/');
if (!response.ok) {
throw new Error(`Erreur HTTP: ${response.status}`);
}
const data = await response.json();
setProjects(data.data);
setProjects(data);
} catch (err) {
setError(err.message);
}
@@ -88,7 +88,7 @@ function Projects() {
}
if (filters.technology.length > 0) {
const isSkill = filters.technology.every(tech => project.skills.includes(tech));
const isSkill = filters.technology.every(tech => project.skills.some(skill => skill.name === tech));
if(!isSkill){
return false
}
@@ -45,8 +45,8 @@ function SingleProject({ image, title, description, skills, id, school, beginnin
<ul className="single-project-skills-list">
{skills.map((skill) => (
<li key={skill}>
<SkillCard text={skill} />
<li key={skill.id}>
<SkillCard text={skill.name} />
</li>
))}
</ul>
@@ -4,30 +4,22 @@ import React, {useEffect, useState} from "react";
function Experiences() {
const [experiences, setExperiences] = useState([]);
const [experienceTasks, setExperienceTasks] = useState([]);
const [error, setError] = useState(null);
useEffect(() => {
const fetchExperiencesAndTasks = async () => {
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.data);
response = await fetch('/api/experienceTasks/');
if (!response.ok) {
throw new Error(`Erreur HTTP: ${response.status}`);
}
data = await response.json();
setExperienceTasks(data.data);
setExperiences(data);
} catch (err) {
setError(err.message);
}
};
fetchExperiencesAndTasks();
fetchExperiences();
}, []);
if (error) {
@@ -39,7 +31,7 @@ function Experiences() {
<h1 className="section-title">Experiences</h1>
<div className="experiences-container">
{experiences.map((exp) => (
<SingleExperience experience={exp} tasks={experienceTasks.filter(task => task.experience_id === exp.id)}/>
<SingleExperience experience={exp}/>
))}
</div>
</section>
@@ -1,6 +1,6 @@
import './SingleExperience.css';
function SingleExperience({ experience, tasks }) {
function SingleExperience({ experience }) {
return (
<div className="experience-card">
<div className="experience-card-left">
@@ -11,7 +11,7 @@ function SingleExperience({ experience, tasks }) {
<div className="experience-card-right">
<h3 className="experience-role">{experience.role}</h3>
<ul className="experience-tasks">
{tasks.map((task) => (
{experience.tasks.map((task) => (
<li>{task.description}</li>
))}
</ul>
+1 -1
View File
@@ -14,7 +14,7 @@ function Skills() {
throw new Error(`Erreur HTTP: ${response.status}`);
}
const data = await response.json();
setSkills(data.data);
setSkills(data);
} catch (err) {
setError(err.message);
}
@@ -11,7 +11,7 @@ function ProjectDetailsPage() {
useEffect(() => {
const fetchProject = async () => {
try {
const response = await fetch(`/api/longProjects/${id}`);
const response = await fetch(`/api/projects/${id}`);
if (!response.ok) {
throw new Error(`Erreur HTTP: ${response.status}`);
}
@@ -73,7 +73,7 @@ function ProjectDetails({project}) {
<ul>
{project.skills && project.skills.map((skill) => (
<li>
<SkillCard text={skill} />
<SkillCard text={skill.name} />
</li>
))}
</ul>
@@ -73,7 +73,7 @@ function Filter({ filters, setFilters }) {
throw new Error(`Erreur HTTP: ${response.status}`);
}
const data = await response.json();
setSkills(data.data);
setSkills(data);
} catch (err) {
setError(err.message);
}