UNPKG

@redocly/theme

Version:

Shared UI components lib

25 lines 958 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useOutsideClick = useOutsideClick; const react_1 = require("react"); function useOutsideClick(refs, handler) { (0, react_1.useEffect)(() => { const refList = Array.isArray(refs) ? refs : [refs]; const listener = (event) => { if (!handler) return; const target = event.target; const isInside = refList.some((ref) => ref.current && ref.current.contains(target)); if (!isInside) { handler(event); } }; document.addEventListener('mousedown', listener); document.addEventListener('touchstart', listener); return () => { document.removeEventListener('mousedown', listener); document.removeEventListener('touchstart', listener); }; }, [refs, handler]); } //# sourceMappingURL=use-outside-click.js.map