UNPKG

@primer/react

Version:

An implementation of GitHub's Primer Design System using React

47 lines (44 loc) 1.39 kB
import { c } from 'react-compiler-runtime'; import { useEffect } from 'react'; import { iterateFocusableElements } from '@primer/behaviors/utils'; function useOpenAndCloseFocus(t0) { const $ = c(6); const { initialFocusRef, returnFocusRef, containerRef, preventFocusOnOpen } = t0; let t1; let t2; if ($[0] !== containerRef || $[1] !== initialFocusRef || $[2] !== preventFocusOnOpen || $[3] !== returnFocusRef) { t1 = () => { if (!preventFocusOnOpen) { if (initialFocusRef && initialFocusRef.current) { initialFocusRef.current.focus(); } else { if (containerRef.current) { const firstItem = iterateFocusableElements(containerRef.current).next().value; firstItem === null || firstItem === void 0 ? void 0 : firstItem.focus(); } } } const returnFocusRefCurrent = returnFocusRef.current; return function () { returnFocusRefCurrent === null || returnFocusRefCurrent === void 0 ? void 0 : returnFocusRefCurrent.focus(); }; }; t2 = [initialFocusRef, returnFocusRef, containerRef, preventFocusOnOpen]; $[0] = containerRef; $[1] = initialFocusRef; $[2] = preventFocusOnOpen; $[3] = returnFocusRef; $[4] = t1; $[5] = t2; } else { t1 = $[4]; t2 = $[5]; } useEffect(t1, t2); } export { useOpenAndCloseFocus };