export function useOpenAndCloseFocus()

in src/hooks/useOpenAndCloseFocus.ts [11:32]


export function useOpenAndCloseFocus({
  initialFocusRef,
  returnFocusRef,
  containerRef,
  preventFocusOnOpen
}: UseOpenAndCloseFocusSettings): void {
  useEffect(() => {
    if (preventFocusOnOpen) {
      return
    }
    const returnRef = returnFocusRef.current
    if (initialFocusRef && initialFocusRef.current) {
      initialFocusRef.current.focus()
    } else if (containerRef.current) {
      const firstItem = iterateFocusableElements(containerRef.current).next().value
      firstItem?.focus()
    }
    return function () {
      returnRef?.focus()
    }
  }, [initialFocusRef, returnFocusRef, containerRef, preventFocusOnOpen])
}