gsy-component-library
Version:
reusable components from grid singularity
78 lines (61 loc) • 1.95 kB
JavaScript
'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 _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _reactInlinesvg = require('react-inlinesvg');
var _reactInlinesvg2 = _interopRequireDefault(_reactInlinesvg);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
require('./Button.' + (process.env.NODE_ENV === 'storybook' ? 'scss' : 'css'));
var Button = function Button(props) {
var label = props.label,
disabled = props.disabled,
onClick = props.onClick,
type = props.type,
className = props.className,
icon = props.icon,
style = props.style;
var classes = (0, _classnames2.default)('button', 'button--' + type, className);
return _react2.default.createElement(
'button',
{
className: classes,
disabled: disabled,
onClick: onClick,
style: style
},
icon && _react2.default.createElement(
'i',
{ className: 'button__icon' },
_react2.default.createElement(_reactInlinesvg2.default, { src: icon })
),
_react2.default.createElement(
'span',
{ className: 'button__label' },
' ',
label,
' '
)
);
};
Button.propTypes = {
label: _propTypes2.default.string.isRequired,
disabled: _propTypes2.default.bool,
onClick: _propTypes2.default.func,
type: _propTypes2.default.oneOf(['primary', 'secondary', 'cta', 'icon', 'verbund-primary', 'verbund-secondary']),
icon: _propTypes2.default.string,
className: _propTypes2.default.string
};
Button.defaultProps = {
type: 'primary',
icon: undefined,
disabled: false,
onClick: function onClick() {},
className: ''
};
exports.default = Button;