UNPKG

@primer/react

Version:

An implementation of GitHub's Primer Design System using React

59 lines (58 loc) 1.62 kB
import { useOnOutsideClick } from "./useOnOutsideClick.js"; import { useProvidedRefOrCreate } from "./useProvidedRefOrCreate.js"; import { useOnEscapePress } from "./useOnEscapePress.js"; import { useOpenAndCloseFocus } from "./useOpenAndCloseFocus.js"; import { c } from "react-compiler-runtime"; //#region src/hooks/useOverlay.tsx 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]; useOnEscapePress(t3); let t4; if ($[11] !== overlayRef) { t4 = { ref: overlayRef }; $[11] = overlayRef; $[12] = t4; } else t4 = $[12]; return t4; }; //#endregion export { useOverlay };