@massds/mayflower-react
Version:
React versions of Mayflower design system UI components
127 lines (111 loc) • 5.01 kB
JavaScript
"use strict";
exports.__esModule = true;
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
/**
* FooterSlim module.
* @module @massds/mayflower-react/FooterSlim
* @requires module:@massds/mayflower-assets/scss/03-organisms/footer-slim
* @requires module:@massds/mayflower-assets/scss/01-atoms/svg-icons
* @requires module:@massds/mayflower-assets/scss/01-atoms/svg-loc-icons
* @requires module:@massds/mayflower-assets/scss/01-atoms/email
* @requires module:@massds/mayflower-assets/scss/01-atoms/phone-number
* @requires module:@massds/mayflower-assets/scss/01-atoms/address
*/
var today = new Date();
var year = today.getFullYear();
var FooterSlim = function FooterSlim(props) {
var title = props.title,
description = props.description,
siteLogo = props.siteLogo,
_props$stackedLogo = props.stackedLogo,
stackedLogo = _props$stackedLogo === void 0 ? false : _props$stackedLogo,
_props$links = props.links,
links = _props$links === void 0 ? null : _props$links,
_props$contact = props.contact,
contact = _props$contact === void 0 ? null : _props$contact,
_props$copyright = props.copyright,
copyright = _props$copyright === void 0 ? year + " Commonwealth of Massachusetts." : _props$copyright;
var containerClasses = (0, _classnames["default"])('ma__footer-slim__container ma__container', {
'ma__footer-slim__container--stacked': stackedLogo
});
var logoWrapperClasses = (0, _classnames["default"])({
'ma__footer-slim__container__logos': true,
'ma__footer-slim__container__logos--stacked': stackedLogo
});
var innerWrapperClasses = (0, _classnames["default"])({
'ma__footer-slim__container__inner': true,
'ma__footer-slim__container__inner--stacked': stackedLogo
});
return /*#__PURE__*/_react["default"].createElement("footer", {
className: "ma__footer-slim",
id: "footer"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: containerClasses
}, /*#__PURE__*/_react["default"].createElement("div", {
className: logoWrapperClasses
}, siteLogo), /*#__PURE__*/_react["default"].createElement("div", {
className: innerWrapperClasses
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "ma__footer-slim__info"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "ma__footer-slim__title"
}, title), /*#__PURE__*/_react["default"].createElement("p", null, description), /*#__PURE__*/_react["default"].createElement("p", {
className: "ma__footer-slim__copyright"
}, "\xA9", ' ', copyright)), /*#__PURE__*/_react["default"].createElement("div", {
className: "ma__footer-slim__details"
}, links && /*#__PURE__*/_react["default"].createElement("div", {
className: "ma__footer-slim__links"
}, links.map(function (link, linkIndex) {
return (
/*#__PURE__*/
/* eslint-disable-next-line react/no-array-index-key */
_react["default"].createElement("a", {
href: link.href,
key: "footslimlinks-" + linkIndex
}, link.title)
);
})), contact && /*#__PURE__*/_react["default"].createElement("address", {
className: "ma__footer-slim__contact"
}, contact.map(function (field, i) {
return (
/*#__PURE__*/
/* eslint-disable-next-line react/no-array-index-key */
_react["default"].createElement("div", {
className: "ma__footer-slim__contact__item",
key: "filterbox-field-" + i
}, field.icon && /*#__PURE__*/_react["default"].cloneElement(field.icon, {
width: 20,
height: 20
}), field.component)
);
}))))));
};
FooterSlim.propTypes = process.env.NODE_ENV !== "production" ? {
/** The main title to be displayed in the footer */
title: _propTypes["default"].string.isRequired,
/** Bolded copyright info starting with © (Defaults to matching Mass.gov) */
copyright: _propTypes["default"].string,
/** A short description */
description: _propTypes["default"].string.isRequired,
/** Additional links for key information */
links: _propTypes["default"].arrayOf(_propTypes["default"].shape({
href: _propTypes["default"].string,
title: _propTypes["default"].string
})),
/** Contact details for the responsible authority */
contact: _propTypes["default"].arrayOf(_propTypes["default"].shape({
icon: _propTypes["default"].element,
component: _propTypes["default"].node
})),
/** One or multiple logos rendered at the footer */
siteLogo: _propTypes["default"].node.isRequired,
/** Whether logo(s) should be stacked on top of footer title */
stackedLogo: _propTypes["default"].bool
} : {};
var _default = FooterSlim;
exports["default"] = _default;
module.exports = exports.default;