UNPKG

@dossierhq/design

Version:

The design system for Dossier.

20 lines 793 B
import { useCallback } from 'react'; import { findAscendantElement } from '../utils/DOMUtils.js'; import { isEventTargetNode } from '../utils/EventUtils.js'; import { useWindowEventListener } from './useWindowEventListener.js'; export function useWindowClick(ignoreRef, onClick, enabled) { const listener = useCallback((event) => { if (enabled === false) { return; } const ignoreElement = ignoreRef.current; if (ignoreElement && isEventTargetNode(event.target)) { if (findAscendantElement(event.target, (it) => it === ignoreElement)) { return; } } onClick(); }, [enabled, onClick, ignoreRef]); useWindowEventListener('click', listener); } //# sourceMappingURL=useWindowClick.js.map