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

Function useOpenAndCloseFocus

packages/react/src/hooks/useOpenAndCloseFocus.ts:12–33  ·  view source on GitHub ↗
({
  initialFocusRef,
  returnFocusRef,
  containerRef,
  preventFocusOnOpen,
}: UseOpenAndCloseFocusSettings)

Source from the content-addressed store, hash-verified

10}
11
12export function useOpenAndCloseFocus({
13 initialFocusRef,
14 returnFocusRef,
15 containerRef,
16 preventFocusOnOpen,
17}: UseOpenAndCloseFocusSettings): void {
18 useEffect(() => {
19 if (preventFocusOnOpen) {
20 return
21 }
22 const returnRef = returnFocusRef.current
23 if (initialFocusRef && initialFocusRef.current) {
24 initialFocusRef.current.focus()
25 } else if (containerRef.current) {
26 const firstItem = iterateFocusableElements(containerRef.current).next().value
27 firstItem?.focus()
28 }
29 return function () {
30 returnRef?.focus()
31 }
32 }, [initialFocusRef, returnFocusRef, containerRef, preventFocusOnOpen])
33}

Callers 3

useOverlayFunction · 0.90
ComponentFunction · 0.90
ComponentTwoFunction · 0.90

Calls

no outgoing calls

Tested by 2

ComponentFunction · 0.72
ComponentTwoFunction · 0.72