@kubit-ui-web/react-components
Version:
Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience
23 lines • 951 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useClickOutside = void 0;
const react_1 = require("react");
const useClickOutside = (ref, onClickOutside, preventOnClickElements = []) => {
(0, react_1.useEffect)(() => {
function handleClickOutside(event) {
if (ref.current &&
!ref.current.contains(event.target) &&
!preventOnClickElements.some(element => element?.contains(event.target))) {
onClickOutside(event);
}
}
// Bind the event listener
document.addEventListener('mouseup', handleClickOutside);
return () => {
// Unbind the event listener on clean up
document.removeEventListener('mouseup', handleClickOutside);
};
}, [ref, onClickOutside, preventOnClickElements]);
};
exports.useClickOutside = useClickOutside;
//# sourceMappingURL=useClickOutside.js.map