"use client"; import { useEffect, useState } from "react"; import Link from "next/link"; import { getApiUrl } from "../utils/getApiUrl"; import Carousel from "../components/Carousel"; import "../assets/main.css"; import "../globals.css"; export default function Page() { const [projects, setProjects] = useState([]); const apiUrl = getApiUrl(); useEffect(() => { async function fetchProjects() { try { const response = await fetch(`${apiUrl}/api/projects?populate=picture&sort=order:asc`); // Récupération triée depuis Strapi if (!response.ok) { throw new Error(`Erreur de récupération des projets : ${response.statusText}`); } const data = await response.json(); // Tri des projets côté Next.js (au cas où Strapi ne le fait pas) const sortedProjects = (data.data ?? []).sort((a, b) => (a.order || 999) - (b.order || 999)); setProjects(sortedProjects); } catch (error) { console.error("❌ Erreur lors de la récupération des projets :", error); } } fetchProjects(); }, [apiUrl]); return (
{projects.map((project) => { const pictures = project.picture ?? []; const images = pictures.map((img) => ({ url: `${apiUrl}${img.url}`, alt: img.name || "Project image", })); return (
{images.length > 1 ? ( ) : ( {images[0]?.alt )}

{project.name}

{project.description}

); })}
); }