UNPKG

@botonic/react

Version:

Build Chatbots using React

20 lines 823 B
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