@automattic/simple-components
Version:
React components, as used on WordPress.com
107 lines (85 loc) • 3.62 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
/** @format */
/**
* External dependencies
*/
var Button =
/*#__PURE__*/
function (_PureComponent) {
(0, _inherits2.default)(Button, _PureComponent);
function Button() {
(0, _classCallCheck2.default)(this, Button);
return (0, _possibleConstructorReturn2.default)(this, (Button.__proto__ || Object.getPrototypeOf(Button)).apply(this, arguments));
}
(0, _createClass2.default)(Button, [{
key: "render",
value: function render() {
var className = (0, _classnames.default)('button', this.props.className, {
'is-compact': this.props.compact,
'is-primary': this.props.primary,
'is-scary': this.props.scary,
'is-busy': this.props.busy,
'is-borderless': this.props.borderless
});
if (this.props.href) {
var _props2 = this.props,
_compact = _props2.compact,
_primary = _props2.primary,
_scary = _props2.scary,
_busy = _props2.busy,
_borderless = _props2.borderless,
type = _props2.type,
_props = (0, _objectWithoutProperties2.default)(_props2, ["compact", "primary", "scary", "busy", "borderless", "type"]); // block referrers when external link
var _rel = _props.target ? (_props.rel || '').replace(/noopener|noreferrer/g, '') + ' noopener noreferrer' : _props.rel;
return _react.default.createElement("a", (0, _extends2.default)({}, _props, {
rel: _rel,
className: className
}));
}
var _props3 = this.props,
compact = _props3.compact,
primary = _props3.primary,
scary = _props3.scary,
busy = _props3.busy,
borderless = _props3.borderless,
target = _props3.target,
rel = _props3.rel,
props = (0, _objectWithoutProperties2.default)(_props3, ["compact", "primary", "scary", "busy", "borderless", "target", "rel"]);
return _react.default.createElement("button", (0, _extends2.default)({}, props, {
className: className
}));
}
}]);
return Button;
}(_react.PureComponent);
exports.default = Button;
Button.propTypes = {
compact: _propTypes.default.bool,
primary: _propTypes.default.bool,
scary: _propTypes.default.bool,
busy: _propTypes.default.bool,
type: _propTypes.default.string,
href: _propTypes.default.string,
borderless: _propTypes.default.bool,
target: _propTypes.default.string,
rel: _propTypes.default.string
};
Button.defaultProps = {
type: 'button'
};
module.exports = exports["default"];