@massds/mayflower-react
Version:
React versions of Mayflower design system UI components
64 lines • 2.97 kB
JavaScript
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
/**
* FooterLinks module.
* @module @massds/mayflower-react/FooterLinks
* @requires module:@massds/mayflower-assets/scss/02-molecules/footer-links
* @requires module:@massds/mayflower-assets/scss/01-atoms/sidebar-heading
*/
import React from "react";
import PropTypes from "prop-types";
import SidebarHeading from "../SidebarHeading/index.mjs";
import Heading from "../Heading/index.mjs";
const FooterLinks = footerLinks => /*#__PURE__*/React.createElement("nav", {
className: "ma__footer-links",
"aria-label": "Footer navigation"
}, footerLinks.items.map((footerLinksNav, i) =>
/*#__PURE__*/
/* eslint-disable-next-line react/no-array-index-key */
React.createElement(FooterLinksNav, _extends({}, footerLinksNav, {
showNavHeading: footerLinks.showNavHeading,
key: "footerLinksNav_" + i,
index: i
}))));
const FooterLinksNav = footerLinksNav => /*#__PURE__*/React.createElement("div", {
className: "ma__footer-links__nav " + (footerLinksNav.showNavHeading ? ' ma__footer-links__nav--heading' : '')
}, footerLinksNav.showNavHeading ? /*#__PURE__*/React.createElement(SidebarHeading, {
title: footerLinksNav.heading,
level: footerLinksNav.headingLevel || 2
}) : /*#__PURE__*/React.createElement(Heading, {
text: footerLinksNav.heading,
level: footerLinksNav.headingLevel || 2,
"class": "visually-hidden"
}), /*#__PURE__*/React.createElement("ul", {
className: "ma__footer-links__items"
}, footerLinksNav.links.map((link, i) =>
/*#__PURE__*/
/* eslint-disable-next-line react/no-array-index-key */
React.createElement(FooterLink, _extends({}, link, {
key: "footerLink_" + i
})))));
const FooterLink = footerLink => /*#__PURE__*/React.createElement("li", {
className: "ma__footer-links__item"
}, /*#__PURE__*/React.createElement("a", {
href: footerLink.href,
className: "ma__footer-links__link"
}, footerLink.text));
FooterLink.propTypes = process.env.NODE_ENV !== "production" ? {
/** The URL for the link */
href: PropTypes.string.isRequired,
/** The text for the link */
text: PropTypes.string.isRequired
} : {};
FooterLinksNav.propTypes = process.env.NODE_ENV !== "production" ? {
/** The text for the heading above the column of links, visually hidden from users */
heading: PropTypes.string.isRequired,
/** The heading level above the column of links, default to 2 */
headingLevel: PropTypes.number,
/** The links in the column */
links: PropTypes.arrayOf(PropTypes.shape(FooterLink.propTypes)).isRequired
} : {};
FooterLinks.propTypes = process.env.NODE_ENV !== "production" ? {
/** The columns of the nav links */
items: PropTypes.arrayOf(PropTypes.shape(FooterLinksNav.propTypes)).isRequired
} : {};
export default FooterLinks;