UNPKG

@massds/mayflower-react

Version:

React versions of Mayflower design system UI components

57 lines (56 loc) 2.74 kB
"use strict"; exports.__esModule = true; exports["default"] = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _index = _interopRequireDefault(require("../Image/index.js")); var _getFallbackComponent = _interopRequireDefault(require("../utilities/getFallbackComponent.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); } /** * SiteLogo module. * @module @massds/mayflower-react/SiteLogo * @requires module:@massds/mayflower-assets/scss/01-atoms/site-logo * @requires module:@massds/mayflower-assets/scss/01-atoms/image */ var SiteLogo = function SiteLogo(_ref) { var url = _ref.url, image = _ref.image, siteName = _ref.siteName, title = _ref.title, Wrapper = _ref.Wrapper; var RenderedWrapper = (0, _getFallbackComponent["default"])(Wrapper, _react["default"].Fragment); // Remove title attribute and use alt attribute for image as screen reader label. var computedAlt = title || 'Mass.gov home'; return /*#__PURE__*/_react["default"].createElement(RenderedWrapper, null, /*#__PURE__*/_react["default"].createElement("div", { className: "ma__site-logo" }, /*#__PURE__*/_react["default"].createElement("a", { href: (url === null || url === void 0 ? void 0 : url.domain) || '/' }, (image === null || image === void 0 ? void 0 : image.src) && /*#__PURE__*/_react["default"].createElement(_index["default"], _extends({}, image, { alt: computedAlt })), siteName && /*#__PURE__*/_react["default"].createElement("span", { "aria-hidden": "true" }, siteName)))); }; SiteLogo.propTypes = process.env.NODE_ENV !== "production" ? { /** The URL for the site */ url: _propTypes["default"].shape({ /** The URL for the site root */ domain: _propTypes["default"].string.isRequired }), /** The site logo image to display. */ image: _propTypes["default"].shape(_index["default"].propTypes), /** An optional label to display next to the site logo. */ siteName: _propTypes["default"].string, /** The screen reader label for the site logo link. */ title: _propTypes["default"].string, /** An uninstantiated component for rendering a wrapper around the site logo div. */ Wrapper: _propTypes["default"].elementType } : {}; SiteLogo.defaultProps = { image: { width: 45, height: 45 } }; var _default = exports["default"] = SiteLogo; module.exports = exports.default;