UNPKG

@massds/mayflower-react

Version:

React versions of Mayflower design system UI components

64 lines 2.97 kB
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;