@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
19 lines • 792 B
JavaScript
import { useEffect } from 'react';
export const useClickOutside = (ref, onClickOutside, preventOnClickElements = []) => {
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]);
};
//# sourceMappingURL=useClickOutside.js.map