@primer/components
Version:
Primer react components
31 lines (25 loc) • 914 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useOpenAndCloseFocus = useOpenAndCloseFocus;
var _react = require("react");
var _iterateFocusableElements = require("../utils/iterateFocusableElements");
function useOpenAndCloseFocus({
initialFocusRef,
returnFocusRef,
containerRef
}) {
(0, _react.useEffect)(() => {
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]);
}