// Block `logos_presse` — réutilise le composant d'origine PressSection
// (bandeau « on parle de nous » + grille de logos presse). Les champs WP non
// remplis retombent sur les défauts du composant (parité pixel préservée).

import PressSection from "@/components/PressSection";
import { arr, mapImage } from "@/lib/wp/mappers";
import type { LogosPresseBlock } from "@/lib/wp/types";

const LogosPresse = (props: LogosPresseBlock & { position?: number }) => {
  const outlets = arr(props.medias)
    .map((l) => {
      const img = mapImage(l.image);
      if (!img) return null;
      return {
        name: l.nom ?? img.altText ?? "",
        logo: img.sourceUrl,
        ...(l.lien ? { url: l.lien } : {}),
      };
    })
    .filter((o): o is { name: string; logo: string; url?: string } => o !== null);

  return (
    <PressSection
      {...(props.label ? { label: props.label } : {})}
      {...(outlets.length ? { outlets } : {})}
    />
  );
};

export default LogosPresse;
