UNPKG

react-tm-nucleus

Version:
150 lines (117 loc) 4.8 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _get2 = require('babel-runtime/helpers/get'); var _get3 = _interopRequireDefault(_get2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _callbackBase = require('../abstract/callbackBase'); var _callbackBase2 = _interopRequireDefault(_callbackBase); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Button = function (_CallbackBase) { (0, _inherits3.default)(Button, _CallbackBase); function Button(props) { (0, _classCallCheck3.default)(this, Button); var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Button).call(this, props)); _this.state = { disabled: props.disabled }; return _this; } (0, _createClass3.default)(Button, [{ key: '_onClick', value: function _onClick(e) { e.preventDefault(); (0, _get3.default)((0, _getPrototypeOf2.default)(Button.prototype), '_onClick', this).call(this, e); } }, { key: 'filterProps', value: function filterProps(props) { var button = props.button; var disabled = props.disabled; var type = props.type; var other = (0, _objectWithoutProperties3.default)(props, ['button', 'disabled', 'type']); return (0, _get3.default)((0, _getPrototypeOf2.default)(Button.prototype), 'filterProps', this).call(this, other); } }, { key: 'disabled', value: function disabled(v) { if (typeof v !== "undefined") { if (typeof v !== "boolean") { throw new Error("Invalid type of value: requires boolean!!!"); } else { this.setState({ disabled: v }); } } else { return this.state.disabled; } } }, { key: 'render', value: function render() { var props = this.filterProps(this.props); if (this.props.disabled) { props.disabled = this.state.disabled; } props.className = Button.buttonTypes[this.props.type]; if (this.props.button) { return _react2.default.createElement( 'button', props, this.props.children ); } else { return _react2.default.createElement( 'a', (0, _extends3.default)({ href: '#' }, props), this.props.children ); } } }]); return Button; }(_callbackBase2.default); Button.buttonTypes = { button: "button", buttonCTA: "button button--cta", buttonStatic: "button button--static", buttonFull: "button button--full", buttonAux: "button-aux", buttonAuxSecondary: "button-aux button-aux--secondary", buttonAuxFull: "button-aux button-aux--full", buttonAuxMinor: "button-aux button-aux--minor", buttonOutlined: "button-outlined", buttonOutlinedStatic: "button-outlined button-outlined--static", buttonOutlinedFull: "button-outlined button-outlined--full", unbutton: "unbutton" }; Button.propTypes = { button: _react2.default.PropTypes.bool, disabled: _react2.default.PropTypes.bool, type: _react2.default.PropTypes.oneOf(_lodash2.default.keys(Button.buttonTypes)) }; Button.defaultProps = { button: false, disabled: false, type: 'button' }; exports.default = Button;