@massds/mayflower-react
Version:
React versions of Mayflower design system UI components
65 lines (52 loc) • 1.93 kB
JavaScript
;
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 }; }
/**
* ArrowButton module.
* @module @massds/mayflower-react/ArrowButton
* @requires module:@massds/mayflower-assets/scss/01-atoms/arrow-button
*/
var ArrowButton = function ArrowButton(props) {
var _classNames;
var buttonClasses = (0, _classnames["default"])((_classNames = {
'ma__arrow-button': true
}, _classNames["ma__arrow-button--" + props.direction] = props.direction, _classNames['ma__arrow-button--left'] = !props.direction, _classNames));
var Element = props.href ? 'a' : 'button';
var onClickCallback = function onClickCallback(e) {
if (typeof props.onClick === 'function') {
e.preventDefault();
props.onClick(e);
}
};
return /*#__PURE__*/_react["default"].createElement(Element, {
className: buttonClasses,
onClick: function onClick(e) {
return onClickCallback(e);
},
href: props.href,
title: props.info,
"aria-label": props.info
});
};
ArrowButton.propTypes = process.env.NODE_ENV !== "production" ? {
/** Custom click handler function. */
onClick: _propTypes["default"].func,
/** When populated with a url, this component renders a `<a>` vs a `<button>` */
href: _propTypes["default"].string,
/** The text which renders in the standard browser tooltip on hover */
info: _propTypes["default"].string,
/** Direction of the arrow. */
direction: _propTypes["default"].oneOf(['left', 'right'])
} : {};
ArrowButton.defaultProps = {
href: '',
info: '',
direction: 'left'
};
var _default = ArrowButton;
exports["default"] = _default;
module.exports = exports.default;