react-inky
Version:
React components for Inky
55 lines (46 loc) • 1.77 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = Button;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _getAttrs = _interopRequireDefault(require("../util/getAttrs"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function Button(props) {
const expanded = props.className.match('expand') !== null;
return _react.default.createElement("table", (0, _getAttrs.default)(props, ['href', 'target', 'children'], 'button'), _react.default.createElement("tr", null, _react.default.createElement("td", null, _react.default.createElement("table", null, _react.default.createElement("tr", null, _react.default.createElement("td", null, expanded ? _react.default.createElement("center", null, _react.default.createElement("a", {
href: props.href,
target: props.target,
align: "center",
className: "float-center"
}, props.children)) : _react.default.createElement("a", {
href: props.href,
target: props.target
}, props.children))))), expanded ? _react.default.createElement("td", {
className: "expander"
}) : null));
}
/**
* Prop types for `<Button />`.
* @type Object
* @prop children - Child elements.
* @prop {String} className - Extra CSS classes.
* @prop {String} href - Link destination.
* @prop {String} target - Link target.
*/
Button.propTypes = {
children: _propTypes.default.node,
className: _propTypes.default.string,
href: _propTypes.default.string.isRequired,
target: _propTypes.default.string
};
/**
* Default props for `<Button />`.
* @type Object
*/
Button.defaultProps = {
children: null,
className: '',
target: null
};