"use client"; import { useEffect, useState } from "react"; import { fetchData } from "../utils/fetchData"; import { getApiUrl } from "../utils/getApiUrl"; import Carousel from "./Carousel"; import ReactMarkdown from "react-markdown"; interface ImageData { url: string; formats?: { large?: { url: string; }; }; name?: string; } interface ContentData { name: string; Resum: string; picture?: ImageData[]; link?: string; linkText?: string; } interface ContentSectionProps { collection: string; slug: string; titleClass?: string; contentClass?: string; } export default function ContentSection({ collection, slug, titleClass, contentClass }: ContentSectionProps) { const [data, setData] = useState(null); const apiUrl = getApiUrl(); useEffect(() => { async function fetchContent() { const result = await fetchData(collection, slug); setData(result); } fetchContent(); }, [collection, slug, apiUrl]); if (!data) { return
Contenu introuvable.
; } const { name, Resum: richText, picture, link, linkText } = data; const images = picture?.map((img: ImageData) => ({ url: `${apiUrl}${img.formats?.large?.url || img.url}`, alt: img.name || "Image", })) || []; return (

{name}

{richText}
{link && (
{linkText || "Voir plus/lien externe"}
)}
); }