UNPKG

backpack-ui

Version:
151 lines (112 loc) 4.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require("babel-runtime/helpers/extends"); var _extends3 = _interopRequireDefault(_extends2); 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 _inherits2 = require("babel-runtime/helpers/inherits"); var _inherits3 = _interopRequireDefault(_inherits2); var _react = require("react"); var _react2 = _interopRequireDefault(_react); var _propTypes = require("prop-types"); var _propTypes2 = _interopRequireDefault(_propTypes); var _radium = require("radium"); var _radium2 = _interopRequireDefault(_radium); var _checkboxComponent = require("./checkboxComponent"); var _checkboxComponent2 = _interopRequireDefault(_checkboxComponent); var _keyCode = require("../../utils/keyCode"); var _keyCode2 = _interopRequireDefault(_keyCode); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Checkbox = function (_Component) { (0, _inherits3.default)(Checkbox, _Component); function Checkbox(props) { (0, _classCallCheck3.default)(this, Checkbox); var _this = (0, _possibleConstructorReturn3.default)(this, (Checkbox.__proto__ || (0, _getPrototypeOf2.default)(Checkbox)).call(this, props)); _this.state = { checked: props.checked }; _this.onClick = _this.onClick.bind(_this); _this.handleKeydown = _this.handleKeydown.bind(_this); return _this; } (0, _createClass3.default)(Checkbox, [{ key: "componentDidMount", value: function componentDidMount() { if (typeof document !== "undefined") { document.addEventListener("keydown", this.handleKeydown); } } }, { key: "componentWillReceiveProps", value: function componentWillReceiveProps(_ref) { var checked = _ref.checked; this.setState({ checked: checked }); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { if (typeof document !== "undefined") { document.removeEventListener("keydown", this.handleKeydown); } } }, { key: "onClick", value: function onClick(event) { this.setState({ checked: !this.state.checked }); if (this.props.onClick) { this.props.onClick({ value: event.currentTarget.value, name: event.currentTarget.name, checked: !this.state.checked }); } event.preventDefault(); } }, { key: "handleKeydown", value: function handleKeydown(event) { var hasFocus = typeof document !== "undefined" && this.checkbox === document.activeElement || false; if (hasFocus && event.keyCode === _keyCode2.default.spacebar) { event.preventDefault(); this.setState({ checked: !this.state.checked }); } } }, { key: "render", value: function render() { var _this2 = this; return _react2.default.createElement(_checkboxComponent2.default, (0, _extends3.default)({}, this.props, { checked: this.state.checked, onClick: this.onClick, qaHook: this.props.qaHook, innerRef: function innerRef(node) { return _this2.checkbox = node; } })); } }]); return Checkbox; }(_react.Component); Checkbox.propTypes = { checked: _propTypes2.default.bool, onClick: _propTypes2.default.func, qaHook: _propTypes2.default.bool }; Checkbox.defaultProps = { qaHook: false }; exports.default = (0, _radium2.default)(Checkbox);