UNPKG

2.17 kBJavaScriptView Raw
1import _extends from "@babel/runtime-corejs2/helpers/esm/extends";
2import _objectWithoutPropertiesLoose from "@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose";
3import _inheritsLoose from "@babel/runtime-corejs2/helpers/esm/inheritsLoose";
4import PropTypes from 'prop-types';
5import React from 'react';
6import Button from './Button';
7var propTypes = {
8 /**
9 * The `<input>` `type`
10 * @type {[type]}
11 */
12 type: PropTypes.oneOf(['checkbox', 'radio']),
13
14 /**
15 * The HTML input name, used to group like checkboxes or radio buttons together
16 * semantically
17 */
18 name: PropTypes.string,
19
20 /**
21 * The checked state of the input, managed by `<ToggleButtonGroup>`` automatically
22 */
23 checked: PropTypes.bool,
24
25 /**
26 * The disabled state of both the label and input
27 */
28 disabled: PropTypes.bool,
29
30 /**
31 * [onChange description]
32 */
33 onChange: PropTypes.func,
34
35 /**
36 * The value of the input, and unique identifier in the ToggleButtonGroup
37 */
38 value: PropTypes.any.isRequired
39};
40
41var ToggleButton =
42/*#__PURE__*/
43function (_React$Component) {
44 _inheritsLoose(ToggleButton, _React$Component);
45
46 function ToggleButton() {
47 return _React$Component.apply(this, arguments) || this;
48 }
49
50 var _proto = ToggleButton.prototype;
51
52 _proto.render = function render() {
53 var _this$props = this.props,
54 children = _this$props.children,
55 name = _this$props.name,
56 checked = _this$props.checked,
57 type = _this$props.type,
58 onChange = _this$props.onChange,
59 value = _this$props.value,
60 props = _objectWithoutPropertiesLoose(_this$props, ["children", "name", "checked", "type", "onChange", "value"]);
61
62 var disabled = props.disabled;
63 return React.createElement(Button, _extends({}, props, {
64 active: !!checked,
65 componentClass: "label"
66 }), React.createElement("input", {
67 name: name,
68 type: type,
69 autoComplete: "off",
70 value: value,
71 checked: !!checked,
72 disabled: !!disabled,
73 onChange: onChange
74 }), children);
75 };
76
77 return ToggleButton;
78}(React.Component);
79
80ToggleButton.propTypes = propTypes;
81export default ToggleButton;
\No newline at end of file