Skip to main content
cngx-src documentation

createDomAnchorRetry

Functioncommon/tabs/overflow

projects/common/tabs/overflow/dom-anchor-retry.ts

Description#

Bounded retry loop for DOM-anchoring patterns - shared attempt-counter and give-up and cancellation contract.
Used by <cngx-tab-overflow>'s rAF strip-attach loop and [cngxMatTabs]'s afterNextRender header-anchor loop.

Consumer-supplied scheduler lets different timing primitives flow through one counter.

const retry = createDomAnchorRetry({
  attempt: () => {
    const root = host.closest('.strip-wrapper');
    if (!root) return null;
    observer.observe(root);
    return true;
  },
  maxAttempts: 60,
  schedule: (cb) => {
    const h = requestAnimationFrame(cb);
    return () => cancelAnimationFrame(h);
  },
  onGiveUp: () => console.warn('strip wrapper not found'),
});
afterNextRender(() => retry.start());
destroyRef.onDestroy(() => retry.cancel());

Signature#

createDomAnchorRetry(options: CngxDomAnchorRetryOptions)

Parameters#

Returns#

CngxDomAnchorRetryHandle