UNPKG

@primer/react

Version:

An implementation of GitHub's Primer Design System using React

78 lines (75 loc) 1.8 kB
import { c } from 'react-compiler-runtime'; import { useOnOutsideClick } from './useOnOutsideClick.js'; import { useOpenAndCloseFocus } from './useOpenAndCloseFocus.js'; import { useOnEscapePress } from './useOnEscapePress.js'; import { useProvidedRefOrCreate } from './useProvidedRefOrCreate.js'; const useOverlay = t0 => { const $ = c(13); const { overlayRef: _overlayRef, returnFocusRef, initialFocusRef, onEscape, ignoreClickRefs, onClickOutside, preventFocusOnOpen } = t0; const overlayRef = useProvidedRefOrCreate(_overlayRef); let t1; if ($[0] !== initialFocusRef || $[1] !== overlayRef || $[2] !== preventFocusOnOpen || $[3] !== returnFocusRef) { t1 = { containerRef: overlayRef, returnFocusRef, initialFocusRef, preventFocusOnOpen }; $[0] = initialFocusRef; $[1] = overlayRef; $[2] = preventFocusOnOpen; $[3] = returnFocusRef; $[4] = t1; } else { t1 = $[4]; } useOpenAndCloseFocus(t1); let t2; if ($[5] !== ignoreClickRefs || $[6] !== onClickOutside || $[7] !== overlayRef) { t2 = { containerRef: overlayRef, ignoreClickRefs, onClickOutside }; $[5] = ignoreClickRefs; $[6] = onClickOutside; $[7] = overlayRef; $[8] = t2; } else { t2 = $[8]; } useOnOutsideClick(t2); let t3; if ($[9] !== onEscape) { t3 = event => { onEscape(event); event.preventDefault(); }; $[9] = onEscape; $[10] = t3; } else { t3 = $[10]; } const preventeddefaultCheckedEscape = t3; useOnEscapePress(preventeddefaultCheckedEscape); let t4; if ($[11] !== overlayRef) { t4 = { ref: overlayRef }; $[11] = overlayRef; $[12] = t4; } else { t4 = $[12]; } return t4; }; export { useOverlay };