// Mapper de la vue monolithique src/views/References.tsx.
// Les items de la grille restent issus de src/data/references (CPT référence
// non couvert par cette page) ; le mapper alimente hero, entête de grille et CTA.

import type { CtaBlock, HeroBlock, ReferencesGrilleBlock, WpSection } from "../types";
import type { ReferencesProps } from "@/views/References";
import { nthLayout, plainTitle, stripHtml, u } from "./shared";

export function mapReferencesProps(sections: WpSection[]): ReferencesProps {
  const hero = nthLayout<HeroBlock>(sections, "HeroLayout");
  const grille = nthLayout<ReferencesGrilleBlock>(sections, "ReferencesGrilleLayout");
  const cta = nthLayout<CtaBlock>(sections, "CtaLayout");

  return {
    heroBadge: u(hero?.eyebrow),
    heroTitre: plainTitle(hero?.titre),
    heroIntro: stripHtml(hero?.lead),
    heroCtaLabel: u(hero?.ctaPrimaire?.label),
    heroCtaHref: u(hero?.ctaPrimaire?.lien),
    heroSecondaireLabel: u(hero?.ctaSecondaire?.label),
    heroSecondaireHref: u(hero?.ctaSecondaire?.lien),
    grilleBadge: u(grille?.entete?.badge),
    grilleTitre: plainTitle(grille?.entete?.titre),
    grilleIntro: stripHtml(grille?.entete?.intro),
    ctaTitre: plainTitle(cta?.titre),
    ctaTexte: stripHtml(cta?.texte),
    ctaLabel: u(cta?.ctaPrimaire?.label),
    ctaHref: u(cta?.ctaPrimaire?.lien),
  };
}
