@streamoid/ui 0.6.22 → 0.6.23

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
@@ -5551,10 +5551,18 @@ function useStreamoidSidebarPopoverPosition(sidebarRef, {
5551
5551
  (0, import_react14.useLayoutEffect)(() => {
5552
5552
  const sidebar = sidebarRef.current;
5553
5553
  if (!sidebar || typeof window === "undefined") return;
5554
- const card = (sidebar.matches("[data-streamoid-sidebar-card]") ? sidebar : sidebar.querySelector(
5554
+ const findCard = () => (sidebar.matches("[data-streamoid-sidebar-card]") ? sidebar : sidebar.querySelector(
5555
5555
  "[data-streamoid-sidebar-card]"
5556
5556
  )) ?? sidebar;
5557
+ let observedCard = null;
5558
+ let resizeObserver = null;
5557
5559
  const measure = () => {
5560
+ const card = findCard();
5561
+ if (resizeObserver && observedCard !== card) {
5562
+ if (observedCard) resizeObserver.unobserve(observedCard);
5563
+ resizeObserver.observe(card);
5564
+ observedCard = card;
5565
+ }
5558
5566
  const bounds = card.getBoundingClientRect();
5559
5567
  const availableWidth = Math.max(0, window.innerWidth - VIEWPORT_INSET * 2);
5560
5568
  const panelWidth = Math.min(width, availableWidth);
@@ -5583,13 +5591,15 @@ function useStreamoidSidebarPopoverPosition(sidebarRef, {
5583
5591
  ...vertical
5584
5592
  });
5585
5593
  };
5594
+ resizeObserver = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(measure);
5586
5595
  measure();
5587
5596
  window.addEventListener("resize", measure);
5588
- const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(measure);
5589
- observer?.observe(card);
5597
+ const mutationObserver = typeof MutationObserver === "undefined" ? null : new MutationObserver(measure);
5598
+ mutationObserver?.observe(sidebar, { childList: true, subtree: true });
5590
5599
  return () => {
5591
5600
  window.removeEventListener("resize", measure);
5592
- observer?.disconnect();
5601
+ resizeObserver?.disconnect();
5602
+ mutationObserver?.disconnect();
5593
5603
  };
5594
5604
  }, [gap, inset, placement, sidebarRef, width]);
5595
5605
  return position;
package/dist/index.mjs CHANGED
@@ -5395,10 +5395,18 @@ function useStreamoidSidebarPopoverPosition(sidebarRef, {
5395
5395
  useLayoutEffect(() => {
5396
5396
  const sidebar = sidebarRef.current;
5397
5397
  if (!sidebar || typeof window === "undefined") return;
5398
- const card = (sidebar.matches("[data-streamoid-sidebar-card]") ? sidebar : sidebar.querySelector(
5398
+ const findCard = () => (sidebar.matches("[data-streamoid-sidebar-card]") ? sidebar : sidebar.querySelector(
5399
5399
  "[data-streamoid-sidebar-card]"
5400
5400
  )) ?? sidebar;
5401
+ let observedCard = null;
5402
+ let resizeObserver = null;
5401
5403
  const measure = () => {
5404
+ const card = findCard();
5405
+ if (resizeObserver && observedCard !== card) {
5406
+ if (observedCard) resizeObserver.unobserve(observedCard);
5407
+ resizeObserver.observe(card);
5408
+ observedCard = card;
5409
+ }
5402
5410
  const bounds = card.getBoundingClientRect();
5403
5411
  const availableWidth = Math.max(0, window.innerWidth - VIEWPORT_INSET * 2);
5404
5412
  const panelWidth = Math.min(width, availableWidth);
@@ -5427,13 +5435,15 @@ function useStreamoidSidebarPopoverPosition(sidebarRef, {
5427
5435
  ...vertical
5428
5436
  });
5429
5437
  };
5438
+ resizeObserver = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(measure);
5430
5439
  measure();
5431
5440
  window.addEventListener("resize", measure);
5432
- const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(measure);
5433
- observer?.observe(card);
5441
+ const mutationObserver = typeof MutationObserver === "undefined" ? null : new MutationObserver(measure);
5442
+ mutationObserver?.observe(sidebar, { childList: true, subtree: true });
5434
5443
  return () => {
5435
5444
  window.removeEventListener("resize", measure);
5436
- observer?.disconnect();
5445
+ resizeObserver?.disconnect();
5446
+ mutationObserver?.disconnect();
5437
5447
  };
5438
5448
  }, [gap, inset, placement, sidebarRef, width]);
5439
5449
  return position;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamoid/ui",
3
- "version": "0.6.22",
3
+ "version": "0.6.23",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.ts",