UNPKG

shineout

Version:

Shein 前端组件库

110 lines (84 loc) 3.63 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); 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 _styles = require("../Scroll/styles"); var _shallowEqual = require("../utils/shallowEqual"); var _component = require("../component"); var _default = function _default(Table) { var _temp; return _temp = /*#__PURE__*/ function (_Component) { (0, _inheritsLoose2.default)(AutoFixed, _Component); function AutoFixed(props) { var _this; _this = _Component.call(this, props) || this; (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "wrapper", void 0); _this.state = { fixed: null }; _this.bindWrapper = _this.bindWrapper.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); _this.resetAutoFixedState = _this.resetAutoFixedState.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); return _this; } var _proto = AutoFixed.prototype; _proto.componentDidUpdate = function componentDidUpdate(prevProps) { var _this2 = this; var diff = ['fixed', 'width', 'height', 'data'].find(function (k) { return _this2.props[k] && prevProps[k] !== _this2.props[k]; }); var reset = !(0, _shallowEqual.compareColumns)(prevProps.columns, this.props.columns) || diff; if (reset) { // eslint-disable-next-line react/no-did-update-set-state this.setState({ fixed: null }); } }; _proto.getFixed = function getFixed() { if (this.state.fixed !== null) return this.state.fixed; if (this.props.fixed === 'auto') return 'both'; return this.props.fixed; }; _proto.bindWrapper = function bindWrapper(wrapper) { this.wrapper = wrapper; }; _proto.resetFixed = function resetFixed() { if (!this.wrapper) return; var verticalHandle = this.wrapper.querySelector("." + (0, _styles.scrollClass)('y') + "." + (0, _styles.scrollClass)('show')); var horizontalHandle = this.wrapper.querySelector("." + (0, _styles.scrollClass)('x') + "." + (0, _styles.scrollClass)('show')); if (verticalHandle && horizontalHandle) return; var fixed; if (horizontalHandle) fixed = 'x';else if (verticalHandle) fixed = 'y'; this.setState({ fixed: fixed }); }; _proto.fixedAuto = function fixedAuto() { if (this.props.fixed !== 'auto' || this.state.fixed !== null) return; this.resetFixed(); }; _proto.resetAutoFixedState = function resetAutoFixedState() { this.setState({ fixed: null }); }; _proto.render = function render() { var fixed = this.getFixed(); setTimeout(this.fixedAuto.bind(this)); return _react.default.createElement(Table, (0, _extends2.default)({}, this.props, { fixed: fixed, bindWrapper: this.bindWrapper, resetFixAuto: this.resetAutoFixedState })); }; return AutoFixed; }(_component.Component), _temp; }; exports.default = _default;