UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

174 lines (136 loc) 5.66 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _react = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _omit = _interopRequireDefault(require("lodash/omit")); var _animate = _interopRequireDefault(require("../animate")); var _addEventListener = _interopRequireDefault(require("../_util/addEventListener")); var _configure = require("../configure"); var _getScroll = _interopRequireDefault(require("../_util/getScroll")); var _scrollTo = _interopRequireDefault(require("../_util/scrollTo")); function _createSuper(Derived) { function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } return function () { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (isNativeReflectConstruct()) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } function getDefaultTarget() { return window; } var BackTop = /*#__PURE__*/ function (_Component) { (0, _inherits2["default"])(BackTop, _Component); var _super = _createSuper(BackTop); function BackTop() { var _this; (0, _classCallCheck2["default"])(this, BackTop); _this = _super.apply(this, arguments); _this.state = { visible: false }; _this.scrollToTop = function (e) { var _this$props = _this.props, _this$props$target = _this$props.target, target = _this$props$target === void 0 ? getDefaultTarget : _this$props$target, onClick = _this$props.onClick; (0, _scrollTo["default"])(0, { getContainer: target }); if (typeof onClick === 'function') { onClick(e); } }; _this.handleScroll = function () { var _this$props2 = _this.props, visibilityHeight = _this$props2.visibilityHeight, _this$props2$target = _this$props2.target, target = _this$props2$target === void 0 ? getDefaultTarget : _this$props2$target; var scrollTop = (0, _getScroll["default"])(target(), true); _this.setState({ visible: scrollTop > visibilityHeight }); }; return _this; } (0, _createClass2["default"])(BackTop, [{ key: "componentDidMount", value: function componentDidMount() { var _this$props$target2 = this.props.target, target = _this$props$target2 === void 0 ? getDefaultTarget : _this$props$target2; this.scrollEvent = (0, _addEventListener["default"])(target(), 'scroll', this.handleScroll); this.handleScroll(); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { if (this.scrollEvent) { this.scrollEvent.remove(); } } }, { key: "render", value: function render() { var _this$props3 = this.props, customizePrefixCls = _this$props3.prefixCls, _this$props3$classNam = _this$props3.className, className = _this$props3$classNam === void 0 ? '' : _this$props3$classNam, propsVisible = _this$props3.visible, children = _this$props3.children; var stateVisible = this.state.visible; var prefixCls = (0, _configure.getPrefixCls)('back-top', customizePrefixCls); var classString = (0, _classnames["default"])(prefixCls, className); var defaultElement = _react["default"].createElement("div", { className: "".concat(prefixCls, "-content") }, _react["default"].createElement("div", { className: "".concat(prefixCls, "-icon") })); // fix https://fb.me/react-unknown-prop var divProps = (0, _omit["default"])(this.props, ['prefixCls', 'className', 'children', 'visibilityHeight', 'target', 'visible']); var visible = 'visible' in this.props ? propsVisible : stateVisible; var backTopBtn = visible ? _react["default"].createElement("div", (0, _extends2["default"])({}, divProps, { className: classString, onClick: this.scrollToTop }), children || defaultElement) : null; return _react["default"].createElement(_animate["default"], { component: "", transitionName: "fade" }, backTopBtn); } }]); return BackTop; }(_react.Component); exports["default"] = BackTop; BackTop.displayName = 'BackTop'; BackTop.defaultProps = { visibilityHeight: 400 }; //# sourceMappingURL=index.js.map