UNPKG

@massds/mayflower-react

Version:

React versions of Mayflower design system UI components

65 lines (52 loc) 1.93 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 }; } /** * 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;