Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.65 KB | None | 0 0
  1. import React, {useState, useEffect} from 'react';
  2.  
  3. export default function usePopup(wrapperRef, state = false) {
  4. const [opened, setOpened] = useState(state);
  5.  
  6. function handleClickOutside(event) {
  7. if (wrapperRef && wrapperRef.current && !wrapperRef.current.contains(event.target)) {
  8. setOpened(false);
  9. }
  10. }
  11.  
  12. function toggler () {
  13. setOpened(!opened);
  14. }
  15.  
  16. useEffect(() => {
  17. document.addEventListener('mousedown', handleClickOutside);
  18. return () => {
  19. document.removeEventListener('mousedown', handleClickOutside);
  20. }
  21. }
  22. );
  23.  
  24. return [opened, toggler];
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement