@botonic/react
Version:
Build Chatbots using React
20 lines • 823 B
JavaScript
import { useEffect, useRef, useState } from 'react';
export function useComponentVisible(initialIsVisible, onClickOutside) {
const [isComponentVisible, setIsComponentVisible] = useState(initialIsVisible);
const ref = useRef(null);
const handleClickOutside = event => {
const target = event.path ? event.path[0] : event.target;
if (ref.current && !ref.current.contains(target)) {
setIsComponentVisible(false);
onClickOutside();
}
};
useEffect(() => {
document.addEventListener('click', handleClickOutside, false);
return () => {
document.removeEventListener('click', handleClickOutside, false);
};
});
return { ref, isComponentVisible, setIsComponentVisible };
}
//# sourceMappingURL=use-component-visible.js.map