UNPKG

reakit-utils

Version:

Reakit utils

28 lines (27 loc) 924 B
import { hasFocus } from "./hasFocus"; declare type EnsureFocusOptions = FocusOptions & { isActive?: typeof hasFocus; }; /** * Ensures `element` will receive focus if it's not already. * * @example * import { ensureFocus } from "reakit-utils"; * * ensureFocus(document.activeElement); // does nothing * * const element = document.querySelector("input"); * * ensureFocus(element); // focuses element * ensureFocus(element, { preventScroll: true }); // focuses element preventing scroll jump * * function isActive(el) { * return el.dataset.active === "true"; * } * * ensureFocus(document.querySelector("[data-active='true']"), { isActive }); // does nothing * * @returns {number} `requestAnimationFrame` call ID so it can be passed to `cancelAnimationFrame` if needed. */ export declare function ensureFocus(element: HTMLElement, { preventScroll, isActive }?: EnsureFocusOptions): number; export {};