UNPKG

sc-react-ions

Version:

An open source set of React components that implement Ambassador's Design and UX patterns.

83 lines (66 loc) 2.09 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactRouter = require('react-router'); var _style = require('./style.scss'); var _style2 = _interopRequireDefault(_style); var _bind = require('classnames/bind'); var _bind2 = _interopRequireDefault(_bind); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var ButtonAnchor = function ButtonAnchor(props) { var cx = _bind2.default.bind(_style2.default); var collapseClass = props.collapse ? 'collapse' : null; var btnAnchorClasses = cx(_style2.default.btn, props.optClass, props.size, collapseClass); var buttonAnchor = void 0; var handleClick = function handleClick(e) { if (props.disabled) { e.preventDefault(); } }; if (props.internal) { buttonAnchor = _react2.default.createElement( _reactRouter.Link, { to: props.path, className: btnAnchorClasses, size: props.size, disabled: props.disabled, onClick: handleClick }, props.children ); } else { buttonAnchor = _react2.default.createElement( 'a', { href: props.path, className: btnAnchorClasses, target: props.target, disabled: props.disabled, onClick: handleClick }, props.children ); } return buttonAnchor; }; ButtonAnchor.propTypes = { /** * Optional styles to add to the button. */ optClass: _propTypes2.default.string, /** * The size of button. */ size: _propTypes2.default.string, /** * Whether the button is disabled. */ disabled: _propTypes2.default.bool, /** * A path to pass to the anchor tag. */ path: _propTypes2.default.string, /** * Whether the link it to an internal page, or external (default) */ internal: _propTypes2.default.bool, /** * Whether to display only an icon on small screens */ collapse: _propTypes2.default.bool }; exports.default = ButtonAnchor;