UNPKG

rsuite

Version:

A suite of react components

33 lines (32 loc) 875 B
'use client'; "use strict"; exports.__esModule = true; exports.default = void 0; exports.useClickOutside = useClickOutside; var _react = require("react"); function useClickOutside({ enabled = true, isOutside, handle }) { const isOutsideRef = (0, _react.useRef)(isOutside); const handleRef = (0, _react.useRef)(handle); (0, _react.useEffect)(() => { isOutsideRef.current = isOutside; handleRef.current = handle; }, [isOutside, handle]); (0, _react.useEffect)(() => { if (enabled) { const eventHandler = event => { if (isOutsideRef.current?.(event)) { handleRef.current?.(event); } }; window.addEventListener('mousedown', eventHandler); return () => { window.removeEventListener('mousedown', eventHandler); }; } }, [enabled]); } var _default = exports.default = useClickOutside;