UNPKG

shineout

Version:

Shein 前端组件库

85 lines (65 loc) 2.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = datum; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread")); var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _Tree = _interopRequireDefault(require("../Datum/Tree")); var _shallowEqual = _interopRequireDefault(require("../utils/shallowEqual")); function toArray(value) { if (!value) return []; if (!Array.isArray(value)) return [value]; return value; } function datum(Origin) { var _class, _temp; return _temp = _class = /*#__PURE__*/ function (_React$Component) { (0, _inheritsLoose2.default)(TreeDatum, _React$Component); function TreeDatum(props) { var _this; _this = _React$Component.call(this, props) || this; (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "datum", void 0); _this.datum = new _Tree.default({ data: props.data, loader: props.loader, keygen: props.keygen, mode: props.mode, value: toArray(props.value), onChange: props.onChange, disabled: typeof props.disabled === 'function' ? props.disabled : undefined, childrenKey: props.childrenKey || 'children', unmatch: props.unmatch }); return _this; } var _proto = TreeDatum.prototype; _proto.componentDidUpdate = function componentDidUpdate(prevProps) { if (!(0, _shallowEqual.default)(prevProps.data, this.props.data)) { var disabled = this.props.disabled; this.datum.updateDisabled(typeof disabled === 'function' ? disabled : undefined); this.datum.setData(this.props.data, true); this.forceUpdate(); } }; _proto.render = function render() { var value = this.props.value; var props = (0, _objectSpread2.default)({}, this.props, { datum: this.datum }); if (!(0, _shallowEqual.default)(toArray(value), this.datum.getValue())) { this.datum.setValue(toArray(value)); } return _react.default.createElement(Origin, props); }; return TreeDatum; }(_react.default.Component), (0, _defineProperty2.default)(_class, "defaultProps", { mode: 1, childrenKey: 'children', unmatch: true }), _temp; }