showMenu refactor - context is now available inside menu

This commit is contained in:
Jan Prochazka
2020-12-03 09:33:29 +01:00
parent e4b605162e
commit 327f2140cf
11 changed files with 144 additions and 65 deletions

View File

@@ -0,0 +1,20 @@
import React from 'react';
export default function useDocumentClick(callback) {
const mouseUpListener = React.useCallback((e) => {
callback();
document.removeEventListener('mouseup', mouseUpListener, true);
}, []);
const mouseDownListener = React.useCallback((e) => {
document.addEventListener('mouseup', mouseUpListener, true);
document.removeEventListener('mousedown', mouseDownListener, true);
}, []);
React.useEffect(() => {
document.addEventListener('mousedown', mouseDownListener, true);
return () => {
document.removeEventListener('mouseup', mouseUpListener, true);
document.removeEventListener('mousedown', mouseDownListener, true);
};
}, []);
}