UNPKG

@massds/mayflower-react

Version:

React versions of Mayflower design system UI components

127 lines (111 loc) 5.01 kB
"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;