// Block `roof_hero` — réutilise le composant RoofHero (extrait de
// RoofPageTemplate, exporté). Construit l'objet `page` partiel attendu à partir
// des champs WP éditables ; le formulaire interne + la barre de logos restent
// gérés par le composant. Champs vides → valeurs neutres par défaut.

import { RoofHero as RoofHeroView } from "@/components/roof/RoofPageTemplate";
import { arr, mapImage } from "@/lib/wp/mappers";
import type { RoofPageData } from "@/data/roofPages";
import type { RoofHeroBlock } from "@/lib/wp/types";

const RoofHero = (props: RoofHeroBlock & { position?: number }) => {
  const img = mapImage(props.image);
  const heroStats = arr(props.roofHeroStats)
    .filter((s) => s.value || s.label)
    .map((s) => ({ value: s.value ?? "", label: s.label ?? "" }));

  // RoofHero consomme un RoofPageData ; on ne fournit que les champs qu'il lit
  // (slug fixe → pas de cas particulier d'object-position membrane).
  const page = {
    slug: "roof-hero",
    breadcrumb: props.breadcrumb ?? "Toiture",
    h1: props.titre ?? "Cool roof pour votre toiture",
    lead: props.lead ?? "",
    heroImage: img?.sourceUrl ?? "",
    heroImageAlt: img?.altText ?? "",
    heroStats,
  } as RoofPageData;

  return <RoofHeroView page={page} />;
};

export default RoofHero;
