UNPKG

@primer/components

Version:
36 lines (29 loc) 1.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useOpenAndCloseFocus = useOpenAndCloseFocus; var _react = require("react"); var _iterateFocusableElements = require("../utils/iterateFocusableElements"); function useOpenAndCloseFocus({ initialFocusRef, returnFocusRef, containerRef, preventFocusOnOpen }) { (0, _react.useEffect)(() => { if (preventFocusOnOpen) { return; } const returnRef = returnFocusRef.current; if (initialFocusRef && initialFocusRef.current) { initialFocusRef.current.focus(); } else if (containerRef.current) { const firstItem = (0, _iterateFocusableElements.iterateFocusableElements)(containerRef.current).next().value; firstItem === null || firstItem === void 0 ? void 0 : firstItem.focus(); } return function () { returnRef === null || returnRef === void 0 ? void 0 : returnRef.focus(); }; }, [initialFocusRef, returnFocusRef, containerRef, preventFocusOnOpen]); }