@atom-learning/components 8.0.1 → 8.0.2

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.cjs.js CHANGED
@@ -1370,7 +1370,7 @@ var useCallbackRef = () => {
1370
1370
  var useCallbackRefState = () => {
1371
1371
  const [elRef, setElRef] = react.useState(null);
1372
1372
  return [elRef, react.useCallback((el) => {
1373
- if (el) setElRef(el);
1373
+ if (el) setElRef((prev) => prev === el ? prev : el);
1374
1374
  }, [])];
1375
1375
  };
1376
1376
  //#endregion
@@ -1506,7 +1506,11 @@ var createResizeObserver = (callback) => {
1506
1506
  }
1507
1507
  };
1508
1508
  var useResizeObserver = ({ delay = 500, elements, onResize }) => {
1509
- const observer = react.useMemo(() => createResizeObserver((0, throttle_debounce.debounce)(delay, onResize)), [delay, onResize]);
1509
+ const onResizeRef = react.useRef(onResize);
1510
+ react.useLayoutEffect(() => {
1511
+ onResizeRef.current = onResize;
1512
+ });
1513
+ const observer = react.useMemo(() => createResizeObserver((0, throttle_debounce.debounce)(delay, (entries) => onResizeRef.current(entries))), [delay]);
1510
1514
  react.useEffect(() => {
1511
1515
  elements.forEach((element) => {
1512
1516
  if (element) observer?.observe(element);
@@ -9702,7 +9706,7 @@ var useScrollPosition = ({ element, delay = 500, delayMethod = "throttle" }) =>
9702
9706
  (0, react.useEffect)(() => {
9703
9707
  if (!element) return;
9704
9708
  const handleScroll = delayMethodFn(delay, () => {
9705
- setScrollPosition({
9709
+ setScrollPosition((prev) => prev.left === element.scrollLeft && prev.top === element.scrollTop ? prev : {
9706
9710
  left: element.scrollLeft,
9707
9711
  top: element.scrollTop
9708
9712
  });
@@ -9726,9 +9730,11 @@ var useSize = ({ element, delay = 500 }) => {
9726
9730
  height: void 0
9727
9731
  });
9728
9732
  const handleResize = (0, react.useCallback)(() => {
9729
- setSize({
9730
- width: element?.clientWidth,
9731
- height: element?.clientHeight
9733
+ const width = element?.clientWidth;
9734
+ const height = element?.clientHeight;
9735
+ setSize((prev) => prev.width === width && prev.height === height ? prev : {
9736
+ width,
9737
+ height
9732
9738
  });
9733
9739
  }, [element]);
9734
9740
  useResizeObserver({