Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

3 лет назад
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
  3. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  4. exports.__esModule = true;
  5. exports.default = void 0;
  6. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  7. var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
  8. var _classnames = _interopRequireDefault(require("classnames"));
  9. var _react = _interopRequireWildcard(require("react"));
  10. var _Button = _interopRequireDefault(require("./Button"));
  11. var noop = function noop() {};
  12. var ToggleButton = _react.default.forwardRef(function (_ref, ref) {
  13. var children = _ref.children,
  14. name = _ref.name,
  15. className = _ref.className,
  16. checked = _ref.checked,
  17. type = _ref.type,
  18. onChange = _ref.onChange,
  19. value = _ref.value,
  20. disabled = _ref.disabled,
  21. inputRef = _ref.inputRef,
  22. props = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["children", "name", "className", "checked", "type", "onChange", "value", "disabled", "inputRef"]);
  23. var _useState = (0, _react.useState)(false),
  24. focused = _useState[0],
  25. setFocused = _useState[1];
  26. var handleFocus = (0, _react.useCallback)(function (e) {
  27. if (e.target.tagName === 'INPUT') setFocused(true);
  28. }, []);
  29. var handleBlur = (0, _react.useCallback)(function (e) {
  30. if (e.target.tagName === 'INPUT') setFocused(false);
  31. }, []);
  32. return /*#__PURE__*/_react.default.createElement(_Button.default, (0, _extends2.default)({}, props, {
  33. ref: ref,
  34. className: (0, _classnames.default)(className, focused && 'focus', disabled && 'disabled'),
  35. type: null,
  36. active: !!checked,
  37. as: "label"
  38. }), /*#__PURE__*/_react.default.createElement("input", {
  39. name: name,
  40. type: type,
  41. value: value,
  42. ref: inputRef,
  43. autoComplete: "off",
  44. checked: !!checked,
  45. disabled: !!disabled,
  46. onFocus: handleFocus,
  47. onBlur: handleBlur,
  48. onChange: onChange || noop
  49. }), children);
  50. });
  51. ToggleButton.displayName = 'ToggleButton';
  52. var _default = ToggleButton;
  53. exports.default = _default;
  54. module.exports = exports["default"];