MCPcopy Index your code
hub / github.com/primer/react / useOverlay

Function useOverlay

packages/react/src/hooks/useOverlay.tsx:21–41  ·  view source on GitHub ↗
({
  overlayRef: _overlayRef,
  returnFocusRef,
  initialFocusRef,
  onEscape,
  ignoreClickRefs,
  onClickOutside,
  preventFocusOnOpen,
}: UseOverlaySettings)

Source from the content-addressed store, hash-verified

19}
20
21export const useOverlay = ({
22 overlayRef: _overlayRef,
23 returnFocusRef,
24 initialFocusRef,
25 onEscape,
26 ignoreClickRefs,
27 onClickOutside,
28 preventFocusOnOpen,
29}: UseOverlaySettings): OverlayReturnProps => {
30 const overlayRef = useProvidedRefOrCreate<HTMLDivElement>(_overlayRef)
31 useOpenAndCloseFocus({containerRef: overlayRef, returnFocusRef, initialFocusRef, preventFocusOnOpen})
32 useOnOutsideClick({containerRef: overlayRef, ignoreClickRefs, onClickOutside})
33
34 // We only want one overlay to close at a time
35 const preventeddefaultCheckedEscape: UseOverlaySettings['onEscape'] = event => {
36 onEscape(event)
37 event.preventDefault()
38 }
39 useOnEscapePress(preventeddefaultCheckedEscape)
40 return {ref: overlayRef}
41}

Callers 1

Overlay.tsxFile · 0.90

Calls 4

useProvidedRefOrCreateFunction · 0.90
useOpenAndCloseFocusFunction · 0.90
useOnOutsideClickFunction · 0.90
useOnEscapePressFunction · 0.90

Tested by

no test coverage detected