@massds/mayflower-react
Version:
React versions of Mayflower design system UI components
117 lines (116 loc) • 6.2 kB
JavaScript
"use strict";
exports.__esModule = true;
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _index = _interopRequireDefault(require("../FooterLinks/index.js"));
var _index2 = _interopRequireDefault(require("../SocialLinks/index.js"));
var _IconArrow = _interopRequireDefault(require("../Icon/IconArrow.js"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
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); } /**
* Footer With Columns module.
* @module @massds/mayflower-react/FooterWithColumns
* @requires module:@massds/mayflower-assets/scss/03-organisms/footer-with-columns
* @requires module:@massds/mayflower-assets/scss/02-molecules/footer-links
* @requires module:@massds/mayflower-assets/scss/01-atoms/sidebar-heading
* @requires module:@massds/mayflower-assets/scss/02-molecules/social-links
*/ // eslint-disable-next-line import/no-unresolved
var today = new Date();
var year = today.getFullYear();
var FooterWithColumns = function FooterWithColumns(_ref) {
var footerLinks = _ref.footerLinks,
socialLinks = _ref.socialLinks,
_ref$footerText = _ref.footerText,
_ref$footerText$copyr = _ref$footerText.copyright,
copyright = _ref$footerText$copyr === void 0 ? year + " Commonwealth of Massachusetts." : _ref$footerText$copyr,
_ref$footerText$descr = _ref$footerText.description,
description = _ref$footerText$descr === void 0 ? 'Mass.gov® is a registered service mark of the Commonwealth of Massachusetts.' : _ref$footerText$descr,
_ref$footerText$priva = _ref$footerText.privacyPolicy,
privacyPolicy = _ref$footerText$priva === void 0 ? {
text: 'Mass.gov Privacy Policy',
url: 'https://www.mass.gov/privacypolicy'
} : _ref$footerText$priva,
_ref$footerLogo = _ref.footerLogo,
_ref$footerLogo$domai = _ref$footerLogo.domain,
domain = _ref$footerLogo$domai === void 0 ? '/' : _ref$footerLogo$domai,
_ref$footerLogo$title = _ref$footerLogo.title,
title = _ref$footerLogo$title === void 0 ? 'Mass.gov homepage' : _ref$footerLogo$title,
src = _ref$footerLogo.src,
_ref$showNavHeading = _ref.showNavHeading,
showNavHeading = _ref$showNavHeading === void 0 ? false : _ref$showNavHeading,
_ref$backToTopButton = _ref.backToTopButton,
backToTopButton = _ref$backToTopButton === void 0 ? false : _ref$backToTopButton;
return /*#__PURE__*/_react["default"].createElement("footer", {
className: "ma__footer js-footer",
id: "footer"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "ma__footer__container"
}, /*#__PURE__*/_react["default"].createElement("section", {
className: "ma__footer__info"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "ma__footer__logo"
}, /*#__PURE__*/_react["default"].createElement("a", {
href: domain,
title: title,
"aria-label": title
}, /*#__PURE__*/_react["default"].createElement("img", {
src: src,
alt: "",
width: "100",
height: "100"
}))), /*#__PURE__*/_react["default"].createElement("div", {
className: "ma__footer__social"
}, /*#__PURE__*/_react["default"].createElement(_index2["default"], socialLinks)), /*#__PURE__*/_react["default"].createElement("div", {
className: "ma__footer__copyright"
}, /*#__PURE__*/_react["default"].createElement("p", {
className: "ma__footer__copyright--date"
}, "\xA9", ' ', copyright), /*#__PURE__*/_react["default"].createElement("p", null, description), /*#__PURE__*/_react["default"].createElement("a", {
href: privacyPolicy.url
}, privacyPolicy.text))), /*#__PURE__*/_react["default"].createElement("div", {
className: "ma__footer__nav"
}, /*#__PURE__*/_react["default"].createElement(_index["default"], _extends({}, footerLinks, {
showNavHeading: showNavHeading
})))), backToTopButton && /*#__PURE__*/_react["default"].createElement("button", {
type: "button",
className: "ma__footer__back2top js-back2top is-hidden"
}, /*#__PURE__*/_react["default"].createElement(_IconArrow["default"], null), /*#__PURE__*/_react["default"].createElement("span", {
"aria-hidden": "true"
}, "Top"), /*#__PURE__*/_react["default"].createElement("span", {
className: "visually-hidden"
}, "Go to the top of the page")));
};
FooterWithColumns.propTypes = process.env.NODE_ENV !== "production" ? {
/** `@molecules/FooterLinks` */
footerLinks: _propTypes["default"].shape(_index["default"].propTypes).isRequired,
/** Whether to display or visually hiding footer nav headings */
showNavHeading: _propTypes["default"].bool,
/** `@molecules/SocialLinks` */
socialLinks: _propTypes["default"].shape(_index2["default"].propTypes).isRequired,
/** A floating button on the lower right corner which onClick takes user to the top of the page. */
backToTopButton: _propTypes["default"].bool,
/** Adds footer logo. (Defaults to matching Mass.gov) <br />
* `src:` logo image source url <br />
* `domain:` The URL for the site root <br />
* `title:` The title of the logo link
*/
footerLogo: _propTypes["default"].shape({
src: _propTypes["default"].string.isRequired,
domain: _propTypes["default"].string,
title: _propTypes["default"].string
}),
/** Adds footer info section. (Defaults to matching Mass.gov) <br />
* `copyright:` Bolded copyright info starting with © <br />
* `description:` Descriptive info below copyright <br />
* `privacyPolicy:` A link to the privacy policy page of the site
*/
footerText: _propTypes["default"].shape({
copyright: _propTypes["default"].string,
description: _propTypes["default"].string,
privacyPolicy: _propTypes["default"].shape({
text: _propTypes["default"].string,
url: _propTypes["default"].string
})
})
} : {};
var _default = exports["default"] = FooterWithColumns;
module.exports = exports.default;