rumahjo/app/library/outclick.js

21 lines
533 B
JavaScript
Raw Permalink Normal View History

2024-09-07 00:46:58 +00:00
import { useEffect, useRef } from 'react';
export const useOutsideClick = (callback) => {
const ref = useRef(null);
useEffect(() => {
const handleClickOutside = (event) => {
if (ref.current && !ref.current.contains(event.target)) {
callback();
}
};
document.addEventListener('mousedown', handleClickOutside);
return () => {
document.removeEventListener('mousedown', handleClickOutside);
};
}, [callback]);
return ref;
};