@primer/components
Version:
Primer react components
30 lines • 762 B
JavaScript
import { useOnOutsideClick } from './useOnOutsideClick';
import { useOpenAndCloseFocus } from './useOpenAndCloseFocus';
import { useOnEscapePress } from './useOnEscapePress';
import { useProvidedRefOrCreate } from './useProvidedRefOrCreate';
export const useOverlay = ({
overlayRef: _overlayRef,
returnFocusRef,
initialFocusRef,
onEscape,
ignoreClickRefs,
onClickOutside,
preventFocusOnOpen
}) => {
const overlayRef = useProvidedRefOrCreate(_overlayRef);
useOpenAndCloseFocus({
containerRef: overlayRef,
returnFocusRef,
initialFocusRef,
preventFocusOnOpen
});
useOnOutsideClick({
containerRef: overlayRef,
ignoreClickRefs,
onClickOutside
});
useOnEscapePress(onEscape);
return {
ref: overlayRef
};
};