@atom-learning/components 8.0.1 → 8.0.3

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