Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 66x 8x 8x 8x 8x 8x 8x 8x | import { useState, useEffect } from 'react'; const useClickToggleVisible = (): [ boolean, React.Dispatch<React.SetStateAction<boolean>> ] => { const [visible, setVisible] = useState(false); const handleClickOutside = (event: MouseEvent): void => { const triggerNode = event.target as HTMLElement; if (!triggerNode.closest('.ant-popover')) { setVisible(false); } }; useEffect(() => { document.addEventListener('mousedown', handleClickOutside); return () => { document.removeEventListener('mousedown', handleClickOutside); }; }, []); return [visible, setVisible]; }; export default useClickToggleVisible; |