@massds/mayflower-react
Version:
React versions of Mayflower design system UI components
70 lines (68 loc) • 2.48 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"));
var _index = _interopRequireDefault(require("../ArrowButton/index.js"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
/**
* ArrowNav module.
* @module @massds/mayflower-react/ArrowNav
* @requires module:@massds/mayflower-assets/scss/02-molecules/arrow-nav
* @requires module:@massds/mayflower-assets/scss/01-atoms/arrow-button
*/
var ArrowNav = function ArrowNav(props) {
var _classNames;
var sectionClasses = (0, _classnames["default"])((_classNames = {
'js-clickable-link': true,
'ma__arrow-nav': true
}, _classNames["ma__arrow-nav--" + props.direction] = props.direction, _classNames));
var Element = props.href ? 'a' : 'section';
var onClickCallback = function onClickCallback(e) {
if (typeof props.onClick === 'function') {
e.preventDefault();
props.onClick(e);
}
};
return /*#__PURE__*/_react["default"].createElement(Element, {
className: sectionClasses,
onClick: function onClick(e) {
return onClickCallback(e);
},
href: props.href,
title: props.info
}, /*#__PURE__*/_react["default"].createElement(_index["default"], {
direction: props.direction
}), /*#__PURE__*/_react["default"].createElement("h2", {
className: "ma__arrow-nav__title",
"data-label": props.label
}, /*#__PURE__*/_react["default"].createElement("span", null, props.title)), /*#__PURE__*/_react["default"].createElement("div", {
className: "ma__arrow-nav__text"
}, props.text));
};
ArrowNav.propTypes = process.env.NODE_ENV !== "production" ? {
/** Top label information */
label: _propTypes["default"].string.isRequired,
/** Title */
title: _propTypes["default"].string.isRequired,
/** Link information */
info: _propTypes["default"].string,
/** Arrow Direction */
direction: _propTypes["default"].oneOf(['left', 'right']),
/** Link href */
href: _propTypes["default"].string,
/** Function */
onClick: _propTypes["default"].func,
/** Bottom Link text */
text: _propTypes["default"].string
} : {};
ArrowNav.defaultProps = {
info: '',
href: '',
onClick: '',
text: '',
direction: 'left'
};
var _default = exports["default"] = ArrowNav;
module.exports = exports.default;