@nok-integration/storefront-react 0.19.4 → 0.19.5

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.mjs CHANGED
@@ -5410,6 +5410,7 @@ const styles$M = {
5410
5410
  surface: surface$1,
5411
5411
  fill
5412
5412
  };
5413
+ const SETTLE_MS$1 = 150;
5413
5414
  function offsetFromViewportTop(el) {
5414
5415
  let top = el.getBoundingClientRect().top;
5415
5416
  for (let node = el.parentElement; node; node = node.parentElement) {
@@ -5423,17 +5424,30 @@ function useTopOffset(ref, property, enabled = true) {
5423
5424
  useEffect(() => {
5424
5425
  const el = ref.current;
5425
5426
  if (!el || !enabled) return;
5427
+ let timer2;
5426
5428
  const measure = () => {
5427
5429
  el.style.setProperty(property, `${offsetFromViewportTop(el)}px`);
5428
5430
  };
5431
+ const settle = () => {
5432
+ if (timer2) clearTimeout(timer2);
5433
+ timer2 = setTimeout(measure, SETTLE_MS$1);
5434
+ };
5429
5435
  measure();
5430
5436
  window.addEventListener("resize", measure);
5431
5437
  window.addEventListener("orientationchange", measure);
5438
+ document.addEventListener("scroll", settle, {
5439
+ capture: true,
5440
+ passive: true
5441
+ });
5432
5442
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(measure);
5433
5443
  if (observer && el.parentElement) observer.observe(el.parentElement);
5434
5444
  return () => {
5445
+ if (timer2) clearTimeout(timer2);
5435
5446
  window.removeEventListener("resize", measure);
5436
5447
  window.removeEventListener("orientationchange", measure);
5448
+ document.removeEventListener("scroll", settle, {
5449
+ capture: true
5450
+ });
5437
5451
  observer?.disconnect();
5438
5452
  };
5439
5453
  }, [ref, property, enabled]);
@@ -5410,6 +5410,7 @@ const styles$M = {
5410
5410
  surface: surface$1,
5411
5411
  fill
5412
5412
  };
5413
+ const SETTLE_MS$1 = 150;
5413
5414
  function offsetFromViewportTop(el) {
5414
5415
  let top = el.getBoundingClientRect().top;
5415
5416
  for (let node = el.parentElement; node; node = node.parentElement) {
@@ -5423,17 +5424,30 @@ function useTopOffset(ref, property, enabled = true) {
5423
5424
  useEffect(() => {
5424
5425
  const el = ref.current;
5425
5426
  if (!el || !enabled) return;
5427
+ let timer2;
5426
5428
  const measure = () => {
5427
5429
  el.style.setProperty(property, `${offsetFromViewportTop(el)}px`);
5428
5430
  };
5431
+ const settle = () => {
5432
+ if (timer2) clearTimeout(timer2);
5433
+ timer2 = setTimeout(measure, SETTLE_MS$1);
5434
+ };
5429
5435
  measure();
5430
5436
  window.addEventListener("resize", measure);
5431
5437
  window.addEventListener("orientationchange", measure);
5438
+ document.addEventListener("scroll", settle, {
5439
+ capture: true,
5440
+ passive: true
5441
+ });
5432
5442
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(measure);
5433
5443
  if (observer && el.parentElement) observer.observe(el.parentElement);
5434
5444
  return () => {
5445
+ if (timer2) clearTimeout(timer2);
5435
5446
  window.removeEventListener("resize", measure);
5436
5447
  window.removeEventListener("orientationchange", measure);
5448
+ document.removeEventListener("scroll", settle, {
5449
+ capture: true
5450
+ });
5437
5451
  observer?.disconnect();
5438
5452
  };
5439
5453
  }, [ref, property, enabled]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nok-integration/storefront-react",
3
- "version": "0.19.4",
3
+ "version": "0.19.5",
4
4
  "description": "Mountable React storefront components: catalogue, product detail and cart, mounted directly into a host DOM tree. No iframe.",
5
5
  "license": "UNLICENSED",
6
6
  "publishConfig": {