indicator-ui 0.0.263 → 0.0.264
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -35598,7 +35598,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
35598
35598
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
|
|
35599
35599
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
|
|
35600
35600
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
|
|
35601
|
-
var _excluded = ["onScroll", "onScrollTop", "onScrollBottom", "accuracy", "wrapper"];
|
|
35601
|
+
var _excluded = ["onScroll", "onScrollTop", "onScrollBottom", "accuracy", "wrapper", "onWheelTopUp", "onWheelBottomDown"];
|
|
35602
35602
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
35603
35603
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
35604
35604
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
@@ -35620,8 +35620,13 @@ var ScrollProvider = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardR
|
|
|
35620
35620
|
accuracy = _props$accuracy === void 0 ? 10 : _props$accuracy,
|
|
35621
35621
|
_props$wrapper = props.wrapper,
|
|
35622
35622
|
wrapper = _props$wrapper === void 0 ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {}) : _props$wrapper,
|
|
35623
|
+
onWheelTopUp = props.onWheelTopUp,
|
|
35624
|
+
onWheelBottomDown = props.onWheelBottomDown,
|
|
35623
35625
|
componentProps = _objectWithoutProperties(props, _excluded);
|
|
35626
|
+
var lastScrollHeightRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(undefined);
|
|
35624
35627
|
var elementRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
|
|
35628
|
+
var isTopTriggeredRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false);
|
|
35629
|
+
var isBottomTriggeredRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false);
|
|
35625
35630
|
(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
|
|
35626
35631
|
if (elementRef.current) {
|
|
35627
35632
|
var handleScroll = function handleScroll(_event) {
|
|
@@ -35630,12 +35635,9 @@ var ScrollProvider = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardR
|
|
|
35630
35635
|
var scrollTop = Math.abs(el.scrollTop);
|
|
35631
35636
|
var clientHeight = el.clientHeight;
|
|
35632
35637
|
var scrollHeight = el.scrollHeight;
|
|
35633
|
-
|
|
35634
|
-
|
|
35635
|
-
|
|
35636
|
-
if (onScrollBottom && scrollTop + clientHeight + accuracy >= scrollHeight) {
|
|
35637
|
-
onScrollBottom();
|
|
35638
|
-
}
|
|
35638
|
+
var prevScrollHeight = lastScrollHeightRef.current;
|
|
35639
|
+
lastScrollHeightRef.current = scrollHeight;
|
|
35640
|
+
// Обработка обычного скролла
|
|
35639
35641
|
if (onScroll) {
|
|
35640
35642
|
if (typeof onScroll === "function") {
|
|
35641
35643
|
onScroll(scrollTop);
|
|
@@ -35653,15 +35655,37 @@ var ScrollProvider = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardR
|
|
|
35653
35655
|
}
|
|
35654
35656
|
}
|
|
35655
35657
|
}
|
|
35658
|
+
// Сброс флагов при выходе за границы accuracy
|
|
35659
|
+
if (scrollTop > accuracy) {
|
|
35660
|
+
isTopTriggeredRef.current = false;
|
|
35661
|
+
}
|
|
35662
|
+
if (scrollTop + clientHeight < scrollHeight - accuracy) {
|
|
35663
|
+
isBottomTriggeredRef.current = false;
|
|
35664
|
+
}
|
|
35665
|
+
// Обработка верхней границы
|
|
35666
|
+
if (onScrollTop && scrollTop <= accuracy) {
|
|
35667
|
+
var shouldSkipDueToHeightChange = prevScrollHeight !== undefined && scrollHeight > prevScrollHeight;
|
|
35668
|
+
if (!shouldSkipDueToHeightChange && !isTopTriggeredRef.current) {
|
|
35669
|
+
onScrollTop();
|
|
35670
|
+
isTopTriggeredRef.current = true;
|
|
35671
|
+
}
|
|
35672
|
+
}
|
|
35673
|
+
// Обработка нижней границы
|
|
35674
|
+
if (onScrollBottom && scrollTop + clientHeight + accuracy >= scrollHeight) {
|
|
35675
|
+
var _shouldSkipDueToHeightChange = prevScrollHeight !== undefined && scrollHeight < prevScrollHeight;
|
|
35676
|
+
if (!_shouldSkipDueToHeightChange && !isBottomTriggeredRef.current) {
|
|
35677
|
+
onScrollBottom();
|
|
35678
|
+
isBottomTriggeredRef.current = true;
|
|
35679
|
+
}
|
|
35680
|
+
}
|
|
35656
35681
|
};
|
|
35657
|
-
// Добавляем слушатель события scroll
|
|
35658
35682
|
elementRef.current.addEventListener("scroll", handleScroll);
|
|
35659
35683
|
return function () {
|
|
35660
35684
|
var _elementRef$current;
|
|
35661
35685
|
(_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 || _elementRef$current.removeEventListener("scroll", handleScroll);
|
|
35662
35686
|
};
|
|
35663
35687
|
}
|
|
35664
|
-
}, [onScroll, onScrollTop, onScrollBottom]);
|
|
35688
|
+
}, [onScroll, onScrollTop, onScrollBottom, accuracy]);
|
|
35665
35689
|
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().cloneElement(wrapper, _objectSpread({
|
|
35666
35690
|
ref: function ref(node) {
|
|
35667
35691
|
elementRef.current = node;
|