pages/RadEnablement/RadEnablement.jsxjavascript
import React from "react";
import { useContent } from "../../services/content";
import { SlidePage } from "../../components/SlidePage/SlidePage";
import { Headline } from "../../components/elements/Headline/Headline";
import "./RadEnablement.scss";

/**
 * Page header shown on every RadEnablement slide (title/subline from
 * content.header); the story icon on the right follows whichever story the
 * current view belongs to.
 *
 * @param {Object} props
 * @param {string} props.viewId - Currently shown view id.
 */
const RadHeader = ({ viewId }) => {
  const { content, views, stories } = useContent();
  if (!content.header) return null;

  const storyId = views.get(viewId)?.story;
  const storyHeaderIcon = storyId ? stories[storyId]?.header?.icon : null;

  return (
    <div className="rad-header">
      <div className="rad-header-content">
        <Headline text={content.header.title} level={1} color="orange" />
        <Headline text={content.header.subline} level={3} />
      </div>
      {storyHeaderIcon && (
        <div className="rad-header-icon">
          <img src={storyHeaderIcon} alt="" />
        </div>
      )}
    </div>
  );
};

/**
 * "RadEnablement Services" presentation app - the shared {@link SlidePage}
 * plus a persistent {@link RadHeader} (content: public/data/rad-content.json).
 */
export const RadEnablementPage = () => (
  <SlidePage
    basePath="/rad-enablement"
    startViewId="rad-intro"
    storyHubViewId="rad-select-story"
    classPrefix="rad"
    renderHeader={(viewId) => <RadHeader viewId={viewId} />}
  />
);