"use client"; import { memo, type ReactNode } from "react"; import { getAssetPath } from "../../../../lib/assetUtils"; import type { CenteredHeaderIcon, CenteredHeaderSegment, CenteredHeaderViewProps, } from "./CenteredHeader.types"; const ICON_SRC: Record = { arrow: "assets/shapes/about-header-arrow.svg", ring: "assets/shapes/about-header-ring.svg", }; const ICON_CLASS: Record = { arrow: "size-10 md:size-[54px] lg:size-20", ring: "size-8 md:size-[54px] lg:size-20", }; /** Poster lines at 1024+, matching the desktop frame. Narrower widths wrap on their own. */ const DESKTOP_LINES = [[0], [1], [2, 3], [4, 5], [6, 7, 8]] as const; function SegmentView({ segment }: { segment: CenteredHeaderSegment }) { if (segment.type === "word") { return ( {segment.text} ); } return ( {/* eslint-disable-next-line @next/next/no-img-element -- decorative Figma mark */} ); } function CenteredHeaderView({ accessibleName, segments, subhead, credit, }: CenteredHeaderViewProps) { const desktopLines: ReactNode = DESKTOP_LINES.map((line) => (
{line.map((index) => { const segment = segments[index]; return segment ? : null; })}
)); return (

{accessibleName}

{segments.map((segment, index) => ( ))}
{desktopLines}

{subhead}

{credit}

); } CenteredHeaderView.displayName = "CenteredHeaderView"; export default memo(CenteredHeaderView);