UNPKG

3.17 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4
5var _extends2 = require('babel-runtime/helpers/extends');
6
7var _extends3 = _interopRequireDefault(_extends2);
8
9var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
10
11var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
12
13var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
14
15var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
16
17var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
18
19var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
20
21var _inherits2 = require('babel-runtime/helpers/inherits');
22
23var _inherits3 = _interopRequireDefault(_inherits2);
24
25var _propTypes = require('prop-types');
26
27var _propTypes2 = _interopRequireDefault(_propTypes);
28
29var _react = require('react');
30
31var _react2 = _interopRequireDefault(_react);
32
33var _Button = require('./Button');
34
35var _Button2 = _interopRequireDefault(_Button);
36
37function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
38
39var propTypes = {
40 /**
41 * The `<input>` `type`
42 * @type {[type]}
43 */
44 type: _propTypes2.default.oneOf(['checkbox', 'radio']),
45
46 /**
47 * The HTML input name, used to group like checkboxes or radio buttons together
48 * semantically
49 */
50 name: _propTypes2.default.string,
51
52 /**
53 * The checked state of the input, managed by `<ToggleButtonGroup>`` automatically
54 */
55 checked: _propTypes2.default.bool,
56
57 /**
58 * The disabled state of both the label and input
59 */
60 disabled: _propTypes2.default.bool,
61
62 /**
63 * [onChange description]
64 */
65 onChange: _propTypes2.default.func,
66 /**
67 * The value of the input, and unique identifier in the ToggleButtonGroup
68 */
69 value: _propTypes2.default.any.isRequired
70};
71
72var ToggleButton = function (_React$Component) {
73 (0, _inherits3.default)(ToggleButton, _React$Component);
74
75 function ToggleButton() {
76 (0, _classCallCheck3.default)(this, ToggleButton);
77 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
78 }
79
80 ToggleButton.prototype.render = function render() {
81 var _props = this.props,
82 children = _props.children,
83 name = _props.name,
84 checked = _props.checked,
85 type = _props.type,
86 onChange = _props.onChange,
87 value = _props.value,
88 props = (0, _objectWithoutProperties3.default)(_props, ['children', 'name', 'checked', 'type', 'onChange', 'value']);
89
90 var disabled = props.disabled;
91
92 return _react2.default.createElement(
93 _Button2.default,
94 (0, _extends3.default)({}, props, { active: !!checked, componentClass: 'label' }),
95 _react2.default.createElement('input', {
96 name: name,
97 type: type,
98 autoComplete: 'off',
99 value: value,
100 checked: !!checked,
101 disabled: !!disabled,
102 onChange: onChange
103 }),
104 children
105 );
106 };
107
108 return ToggleButton;
109}(_react2.default.Component);
110
111ToggleButton.propTypes = propTypes;
112
113exports.default = ToggleButton;
114module.exports = exports['default'];
\No newline at end of file