UNPKG

dora-ui

Version:

A React.js Mobile UI Library

78 lines (58 loc) 2.61 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = require("react"); var _warning = _interopRequireDefault(require("warning")); var _utils = require("../utils"); /* eslint-disable @typescript-eslint/no-unused-vars */ var defaultProps = { defaultToggled: false, afterToggled: function afterToggled(flag) {} }; // 交叉类型 属性全部变成了必填 抹去了组件内部默认属性可能为undefined的情况 var Toggler = /*#__PURE__*/ function (_Component) { (0, _inherits2.default)(Toggler, _Component); function Toggler(props) { var _this; (0, _classCallCheck2.default)(this, Toggler); _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Toggler).call(this, props)); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onToggle", function (flag) { var afterToggled = _this.props.afterToggled; _this.setState(function (prevState) { return { toggled: (0, _utils.isBoolean)(flag) ? flag : !prevState.toggled }; }, function () { afterToggled(_this.state.toggled); }); }); _this.state = { toggled: props.defaultToggled }; return _this; } (0, _createClass2.default)(Toggler, [{ key: "render", value: function render() { var children = this.props.children; (0, _warning.default)((0, _utils.isFunction)(children), 'Props endTime must be a function which returns JSX.Element'); var toggled = this.state.toggled; return (0, _utils.isFunction)(children) ? children([toggled, this.onToggle]) : null; } }]); return Toggler; }(_react.Component); var _default = (0, _utils.withDefaultProps)(defaultProps, Toggler); exports.default = _default;