@playbooks/hooks
Version:
A collection of React hooks for Playbooks.
39 lines (38 loc) • 1.17 kB
JavaScript
import { useEffect } from "react";
const useMouseDown = (method, listeners) => {
useEffect(() => {
window.addEventListener("mousedown", method);
return () => window.removeEventListener("mousedown", method);
}, [...listeners]);
};
const useMouseEnter = (method, listeners) => {
useEffect(() => {
window.addEventListener("mouseenter", method);
return () => window.removeEventListener("mouseenter", method);
}, [...listeners]);
};
const useMouseLeave = (method, listeners) => {
useEffect(() => {
window.addEventListener("mouseleave", method);
return () => window.removeEventListener("mouseleave", method);
}, [...listeners]);
};
const useMouseUp = (method, listeners) => {
useEffect(() => {
window.addEventListener("mouseup", method);
return () => window.removeEventListener("mouseup", method);
}, [...listeners]);
};
const useMouseMenu = (method, listeners) => {
useEffect(() => {
window.addEventListener("contextmenu", method);
return () => window.removeEventListener("contextmenu", method);
}, [...listeners]);
};
export {
useMouseDown,
useMouseEnter,
useMouseLeave,
useMouseMenu,
useMouseUp
};