@massds/mayflower-react
Version:
React versions of Mayflower design system UI components
57 lines (56 loc) • 2.74 kB
JavaScript
;
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;