UNPKG

@base-ui/react

Version:

Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.

27 lines 568 B
import { NOOP } from '@base-ui/utils/empty'; let rafId = 0; export function enqueueFocus(el, options = {}) { const { preventScroll = false, cancelPrevious = true, sync = false } = options; if (cancelPrevious) { cancelAnimationFrame(rafId); } const exec = () => el?.focus({ preventScroll }); if (sync) { exec(); return NOOP; } const currentRafId = requestAnimationFrame(exec); rafId = currentRafId; return () => { if (rafId === currentRafId) { cancelAnimationFrame(currentRafId); rafId = 0; } }; }