UNPKG

react-phylogeny-tree-gl

Version:

React integration of phylocanvas.gl. Component and hook for phylogenetic tree visualistion.

37 lines 1.36 kB
import React from 'react'; export function useCloseModal(onCloseRequest) { const modalElem = React.useRef(null); React.useEffect(() => { function handleOutsideClick(e) { if (modalElem.current) { if (!modalElem.current.contains(e.target)) { if (onCloseRequest) onCloseRequest(); document.removeEventListener('click', handleOutsideClick, false); } } } function handleKeyUp(e) { const escKeyNo = 27; const keys = { [escKeyNo]: () => { e.preventDefault(); if (onCloseRequest) onCloseRequest(); window.removeEventListener('keyup', handleKeyUp, false); }, }; if (keys[e.keyCode]) { keys[e.keyCode](); } } window.addEventListener('keyup', handleKeyUp, false); document.addEventListener('click', handleOutsideClick, false); return function unmountCleanUp() { window.removeEventListener('keyup', handleKeyUp, false); document.removeEventListener('click', handleOutsideClick, false); }; }); return modalElem; } //# sourceMappingURL=useCloseModal.js.map